Wallets

使用 ethers.js 恢復 Mnemonic 下的所有帳戶

  • June 29, 2020

我是使用 ethers.js 的新手

const { Wallet } = require('ethers');
const wallet = Wallet.fromMnemonic('one two three four ...');

我想使用該程式碼從該Mnemonic恢復所有帳戶。也許這是我不太了解的東西,但它只是檢索該Mnemonic的第一個帳戶。

如何恢復所有帳戶?

Wallet.fromMnemonic函式有第二個參數來指定 BIP-32 派生路徑。預設情況下它會使用m/44'/60'/0'/0/0,但是如果你想獲得第二個帳戶,你可以使用m/44'/60'/0'/0/1例如:

const { Wallet } = require('ethers');
const wallet = Wallet.fromMnemonic('one two three four ...', `m/44'/60'/0'/0/1`);

或者,您可以使用HDNode該類從助記詞快速派生子鍵。例如:

const { utils } = require('ethers');
const hdNode = utils.HDNode.fromMnemonic('one two three four ...');

const secondAccount = hdNode.derivePath(`m/44'/60'/0'/0/1`); // This returns a new HDNode
const thirdAccount = hdNode.derivePath(`m/44'/60'/0'/0/2`);

HDNode也可用於獲取 的實例Wallet。這也是這樣Wallet.fromMnemonic做的。

const wallet = new Wallet(hdNode);

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