Transactions

在 web3.js 中解鎖帳戶並進行交易

  • September 22, 2020

這個問題與thisthis有關。它在這里這裡也有部分答案。

在第三個連結中,該帳戶正在使用web3.js解鎖一段時間:

web3.personal.unlockAccount("0x..", "<passs>", 1000);

解鎖週期參數是可選的。

如何檢查帳戶是否被鎖定(在進行交易之前)?

解鎖已經解鎖的帳戶是否有任何功能後果?

目前在 web3 JS API 中沒有檢查帳戶是否被鎖定的方法。

但是,從程式碼來看,如果一個賬戶已經解鎖,那麼再次呼叫解鎖是沒有問題的。

// If the account address is already unlocked for a duration, TimedUnlock extends or
// shortens the active unlock timeout. If the address was previously unlocked
// indefinitely the timeout is not altered.
func (am *Manager) TimedUnlock(a Account, passphrase string, timeout time.Duration) error {

為什麼我們只看TimedUnlock(),它大概只有在我們傳遞第三個參數時才會被呼叫?

如您所述,解鎖週期參數是可選的。如果沒有提供,那麼我們呼叫Unlock(),它是一個 wrapper ,但它作為時間段TimedUnlock()傳遞。0因此,我們只需要考慮TimedUnlock()解釋中的功能。

引用自:https://ethereum.stackexchange.com/questions/6903