Versions in this module Expand all Collapse all v1 v1.0.0 Apr 12, 2019 Changes in this version + const Closed + const Opened + const RefreshWalletInfoDuration + var DefaultBaseDerivationPath = DerivationPath + var DefaultLedgerBaseDerivationPath = DerivationPath + var DefaultRootDerivationPath = DerivationPath + var ErrAESDecryption = errors.New("AES decryption operation error") + var ErrAESInvalidParameter = errors.New("AES operation parameter error") + var ErrAddressBalanceNotEnough = errors.New("the address balance isn't enough when wallet send transaction") + var ErrAnalysisDerivedPath = errors.New("invalid Derived Path") + var ErrDeleteWalletFile = errors.New("delete wallet error") + var ErrDeriveKey = errors.New("symmetric key derivation error") + var ErrEmptySign = errors.New("empty sign") + var ErrInvalidAddress = errors.New("invalid address") + var ErrInvalidDerivedPath = errors.New("invalid derived path") + var ErrInvalidKDFParameter = errors.New("invalid KDFParameter") + var ErrMacAuthentication = errors.New("MAC authentication error") + var ErrNotFindWallet = errors.New("not find the wallet") + var ErrNotSupportUsbWallet = errors.New("not support USB wallet") + var ErrNotSupported = errors.New("not supported") + var ErrPasswordIsNil = errors.New("password is nil") + var ErrSignatureInvalid = errors.New("verify signature fail") + var ErrWalletFileExist = errors.New("wallet file exist") + var ErrWalletFileNotExist = errors.New("wallet file doesn't exist") + var ErrWalletNotOpen = errors.New("wallet isn't open") + var ErrWalletPasswordNotValid = errors.New("wallet password error") + var ErrWalletPathError = errors.New("the path should be in the home path") + var ErrWalletSendTransaction = errors.New("wallet send transaction error") + type Account struct + Address common.Address + type AddressInfoReader interface + CurrentBalance func(address common.Address) *big.Int + GetTransactionNonce func(addr common.Address) (nonce uint64, err error) + type DerivationPath []uint32 + func ParseDerivationPath(path string) (DerivationPath, error) + func (path DerivationPath) String() string + type Wallet interface + Accounts func() ([]Account, error) + Close func() error + Contains func(account Account) (bool, error) + Derive func(path DerivationPath, pin bool) (Account, error) + Establish func(path, name, password, passPhrase string) (string, error) + Evaluate func(account Account, seed []byte) (index [32]byte, proof []byte, err error) + GetAddressNonce func(address common.Address) (nonce uint64, err error) + GetPKFromAddress func(account Account) (*ecdsa.PublicKey, error) + GetSKFromAddress func(address common.Address) (*ecdsa.PrivateKey, error) + GetWalletIdentifier func() (WalletIdentifier, error) + Open func(path, name, password string) error + PaddingAddressNonce func(GetAddressRelatedInfo AddressInfoReader) (err error) + RestoreWallet func(path, name, password, passPhrase, mnemonic string, ...) (err error) + SelfDerive func(base DerivationPath) error + SetAddressNonce func(address common.Address, nonce uint64) (err error) + SignHash func(account Account, hash []byte) ([]byte, error) + SignTx func(account Account, tx *model.Transaction, chainID *big.Int) (*model.Transaction, error) + Status func() (string, error) + type WalletEvent struct + Type WalletEventType + Wallet Wallet + type WalletEventType int + const WalletArrived + const WalletDropped + const WalletOpened + type WalletIdentifier struct + Path string + WalletName string + type WalletManager struct + Event chan WalletEvent + GetAddressRelatedInfo AddressInfoReader + HandleResult chan bool + Lock sync.RWMutex + ManagerClose chan bool + Wallets []Wallet + func NewWalletManager(getAddressInfo AddressInfoReader, wallets ...Wallet) (*WalletManager, error) + func (manager *WalletManager) FindWalletFromAddress(address common.Address) (Wallet, error) + func (manager *WalletManager) FindWalletFromIdentifier(identifier WalletIdentifier) (Wallet, error) + func (manager *WalletManager) ListWalletIdentifier() ([]WalletIdentifier, error) + func (manager *WalletManager) Start() error + func (manager *WalletManager) Stop() + type WalletSigner struct + func MakeWalletSigner(addr common.Address, wm *WalletManager) *WalletSigner + func (signer *WalletSigner) Evaluate(account Account, seed []byte) (index [32]byte, proof []byte, err error) + func (signer *WalletSigner) GetAddress() common.Address + func (signer *WalletSigner) PublicKey() *ecdsa.PublicKey + func (signer *WalletSigner) SetBaseAddress(address common.Address) + func (signer *WalletSigner) SignHash(hash []byte) ([]byte, error) + func (signer *WalletSigner) ValidSign(hash []byte, pubKey []byte, sign []byte) error + type WalletType int + const LedgerWallet + const SoftWallet + const TrezorWallet