func (kcl Client) ListKeys(walletHandle string) (resp ListKeysResponse, err error) {
	req := ListKeysRequest{
		WalletHandleToken: walletHandle,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
ListKeys accepts a wallet handle and returns a ListKeysResponse containing
all of the addresses for which this wallet contains secret keys.
package kmd
import (
	"golang.org/x/crypto/ed25519"
	"github.com/algorand/go-algorand-sdk/encoding/msgpack"
	"github.com/algorand/go-algorand-sdk/types"
)
func (kcl Client) Version() (resp VersionsResponse, err error) {
	req := VersionsRequest{}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) ListWallets() (resp ListWalletsResponse, err error) {
	req := ListWalletsRequest{}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) CreateWallet(walletName, walletPassword, walletDriverName string, walletMDK types.MasterDerivationKey) (resp CreateWalletResponse, err error) {
	req := CreateWalletRequest{
		WalletName:          walletName,
		WalletDriverName:    walletDriverName,
		WalletPassword:      walletPassword,
		MasterDerivationKey: walletMDK,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) InitWalletHandle(walletID, walletPassword string) (resp InitWalletHandleResponse, err error) {
	req := InitWalletHandleRequest{
		WalletID:       walletID,
		WalletPassword: walletPassword,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) ReleaseWalletHandle(walletHandle string) (resp ReleaseWalletHandleResponse, err error) {
	req := ReleaseWalletHandleRequest{
		WalletHandleToken: walletHandle,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) RenewWalletHandle(walletHandle string) (resp RenewWalletHandleResponse, err error) {
	req := RenewWalletHandleRequest{
		WalletHandleToken: walletHandle,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) RenameWallet(walletID, walletPassword, newWalletName string) (resp RenameWalletResponse, err error) {
	req := RenameWalletRequest{
		WalletID:       walletID,
		WalletPassword: walletPassword,
		NewWalletName:  newWalletName,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) GetWallet(walletHandle string) (resp GetWalletResponse, err error) {
	req := GetWalletRequest{
		WalletHandleToken: walletHandle,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) ExportMasterDerivationKey(walletHandle, walletPassword string) (resp ExportMasterDerivationKeyResponse, err error) {
	req := ExportMasterDerivationKeyRequest{
		WalletHandleToken: walletHandle,
		WalletPassword:    walletPassword,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) ImportKey(walletHandle string, secretKey ed25519.PrivateKey) (resp ImportKeyResponse, err error) {
	req := ImportKeyRequest{
		WalletHandleToken: walletHandle,
		PrivateKey:        secretKey,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) ExportKey(walletHandle, walletPassword, addr string) (resp ExportKeyResponse, err error) {
	req := ExportKeyRequest{
		WalletHandleToken: walletHandle,
		WalletPassword:    walletPassword,
		Address:           addr,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) GenerateKey(walletHandle string) (resp GenerateKeyResponse, err error) {
	req := GenerateKeyRequest{
		WalletHandleToken: walletHandle,
		DisplayMnemonic:   false,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}
func (kcl Client) DeleteKey(walletHandle, walletPassword, addr string) (resp DeleteKeyResponse, err error) {
	req := DeleteKeyRequest{
		WalletHandleToken: walletHandle,
		WalletPassword:    walletPassword,
		Address:           addr,
	}
	err = kcl.DoV1Request(req, &resp)
	return
}