如何設置帳戶經理類型以在 Go 中籤署交易?
TL;DR: 我已經設置了一個私有乙太坊節點,我想向它發送一個簽名交易。通過閱讀文件,我知道有一個帳戶
Manager
類型可以訪問具有我想要用於此目的Wallet
的方法的類型。SignTx
我在設置帳戶Manager
類型以開始此過程時遇到問題。問題:
該
NewManager
函式需要一個實現Backend
介面的類型。這裡的問題是我找不到任何描述(準確)如何Manager
使用Backend
. 帳戶源中唯一可用的後端SimulatedBackend
用於測試(來源:https ://github.com/ethereum/go-ethereum/tree/3fa0fa713bc1508835bdecd7dea78ff09803e327/accounts/abi/bind/backends )。我試過的:
文件(此處:https ://github.com/ethereum/go-ethereum/wiki/Native:-Account-management#keystores-from-go )說可以這樣初始化:
am := accounts.NewManager("/path/to/keystore", accounts.StandardScryptN, accounts.StandardScryptP);
但是,它不會編譯為
accounts.StandardScryptN
並且accounts.StandardScryptP
不存在,並且當替換為它們的整數等效項(2
和1
分別)時,編譯錯誤指出密鑰庫路徑參數("/path/to/keystore"
)沒有實現Backend
介面,這是有道理的。我的猜測是文件沒有更新,因此該NewManager
函式無法使用這些參數進行編譯。
NewManager
供參考的類型的文件: https ://godoc.org/github.com/ethereum/go-ethereum/accounts#NewManager題:
有誰知道如何正確初始化客戶經理以開始在 Go 中籤署交易?
我發現 a
Manager
不需要與賬戶互動和簽署交易,相反,我們可以創建一個密鑰庫,並使用它的doc methods查找賬戶和錢包。我們可以像這樣創建一個密鑰庫:ks := keystore.NewKeyStore( KEYSTORE_DIR, keystore.LightScryptN, keystore.LightScryptP)
keystore
import在哪裡"github.com/ethereum/go-ethereum/accounts/keystore"
,KEYSTORE_DIR
是keystore
帳戶私鑰文件的目錄。