转载请注明出处:www.huamo.online
字节杭州 求贤若渴:
go-ethereum/accounts
accounts
包实现了高层的以太坊账号管理模块
首先看accounts.go
中的Account
结构体:Account
结构体描述了一个以太坊账号,可以定位到一个指定地址上,这个地址由结构体中的Account.URL
字段定义,Account.URL
字段是可选的。结构体中的另一个字段Account.Address
是必选的,该地址是由私钥衍生出来。
1 | // accounts/accounts.go |
接下来是Wallet
接口:Wallet
接口代表了一个可能包含一个或多个账号的软件或者硬件钱包。这些账号由同样的随机种子产生。
1 | // account/accounts.go |
accounts.go
中还有一个Backend
接口,它是一个“钱包提供商”,可能包含一批可以签名交易并根据请求签名交易的账户。
1 | // account/accounts.go |
在Backend.Subscribe()
中,订阅的事件类型为WalletEvent
类型,下面来看看WalletEvent
的定义,它是一个结构体,表示检测到钱包到来或离开时,由一个账户后端触发的事件。
1 | // account/accounts.go |
其中事件类型由WalletEventType
类型表示,它本质上是一个int
,只是为了区分不同的事件,以太坊共有3种钱包事件类型,分别为钱包到来,钱包打开,钱包离开。
1 | // account/accounts.go |
转载请注明出处:www.huamo.online