accounts包实现了以太坊客户端的钱包和账户管理。
账号的数据结构:
typeAccount struct {
Address common.Address `json:"address"` // Ethereum account addressderived from the key
URLURL `json:"url"` // Optional resource locator within a backend
}
钱包interface,是指包含了一个或多个账户的软件钱包或者硬件钱包
type Wallet struct {
URL() URL // URL 用来获取这个钱包可以访问的规范路径。它会被上层使用用来从所有的后端的钱包来排序。
Status() (string, error) // 用来返回一个文本值用来标识当前钱包的状态。同时也会返回一个error用来标识钱包遇到的任何错误。
Open(passphrase string) error //Open初始化对钱包实例的访问。如果你open了一个钱包,你必须close它。
Close() error // Close 释放由Open方法占用的任何资源。
Accounts() []Account // Accounts用来获取钱包发现了账户列表。对于分层次的钱包,这个列表不会详尽的列出所有的账号,而是只包含在帐户派生期间明确固定的帐户。
Derive(path DerivationPath, pin bool) (Account,error) //Derive尝试在指定的派生路径上显式派生出分层确定性帐户。如果pin为true,派生帐户将被添加到钱包的跟踪帐户列表中。
SelfDerive(