Ethereumjs

無法從 EthereumJSWallet 中的 MetaMask 助記符生成相同的帳戶

  • October 10, 2018

即使我使用相同的助記符,我也無法生成在 EthereumJSWallet 的 MetaMask 中看到的帳戶。

由於缺乏文件,我可能會誤解如何這樣做。我在終端的 Truffle Node 控制台中執行了以下 2 個程式碼塊,但我從未得到正確的結果。

該變數mnemonic包含我的 MetaMask 12 字串。根據 EthereumJSWallet 文件的HD Wallet API部分,我應該“使用 bip39 來創建

$$ a seed $$來自 BIP39 助記符。”但是,我仍然無法生成適當的帳戶。 下面兩個wallet_test程式碼片段中的任何一個派生路徑都與我的第一個帳戶不對應。

嘗試1:

var seed = bip39.mnemonicToSeed(mnemonic)
var wallet_test = hdkey.fromMasterSeed(seed)
wallet_test.derivePath("m/44'/60'/0'/0/0")
wallet_test.derivePath("m/44'/60'/0'/0")

嘗試2:

var seed = bip39.mnemonicToSeedHex(mnemonic)
var wallet_test = hdkey.fromMasterSeed(seed)
wallet_test.derivePath("m/44'/60'/0'/0/0")
wallet_test.derivePath("m/44'/60'/0'/0")

請問有什麼幫助嗎?

此程式碼將從 MetaMask、MyEtherWallet 等的助記詞中生成相同的地址

const bip39 = require('bip39');
const hdkey = require('ethereumjs-wallet/hdkey');

const mnemonic = 'party box feel talent peace tiger endorse defy cheese girl tumble mail';
const seed = bip39.mnemonicToSeed(mnemonic);

const hdwallet = hdkey.fromMasterSeed(seed);
const myWallet = hdwallet.derivePath("m/44'/60'/0'/0/0").getWallet();

console.log(`Address: ${myWallet.getAddressString()}`);
console.log(`Private Key: ${myWallet.getPrivateKeyString()}`);

它不會將校驗和添加到地址

  • 0x999c43b9dd689b9a0bf12ce097663857f62ffbe7沒有校驗和
  • 0x999C43B9DD689b9a0bF12Ce097663857f62ffbe7帶校驗和

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