Wallets

將 Metamask 帳戶導出到 JSON 文件

  • January 12, 2021

我正在嘗試使用需要 JSON 格式的乙太坊帳戶的ethers-ens 。如何從我的 metamask 帳戶導出或生成 account.json?還有另一種方法可以在沒有 account.json 的情況下使用 ethers-ens 嗎?

這是一個基於 ethers-ens 生成的 account.json 的淨化範例格式:

{
   "address": "",
   "id": "",
   "version": ,
   "Crypto": {
       "cipher": "",
       "cipherparams": {
           "iv": ""
       },
       "ciphertext": "",
       "kdf": "",
       "kdfparams": {
           "salt": "",
           "n": ,
           "dklen":,
           "p": ,
           "r": 
       },
       "mac": ""
   }

}

安裝ethereumjs-wallet

npm install ethereumjs-wallet

創建export-key-as-json.js具有以下內容的文件;

const fs = require("fs")
const wallet = require("ethereumjs-wallet").default

const pk = new Buffer.from(process.argv[2], 'hex') // replace by correct private key
const account = wallet.fromPrivateKey(pk)
const password = process.argv[3] // will be required to unlock/sign after importing to a wallet like MyEtherWallet

account.toV3(password)
   .then(value => {
       const address = account.getAddress().toString('hex')
       const file = `UTC--${new Date().toISOString().replace(/[:]/g, '-')}--${address}.json`
       fs.writeFileSync(file, JSON.stringify(value))
   });

node export-key-as-json.js <your-private-key> <some-random-password>

執行此命令後,檢查目前工作目錄以發現生成了一些新的 JSON 文件。

雖然MetaMask 計劃添加導出此文件格式的功能(檢查該連結以查看是否已完成),但它目前僅允許為個人帳戶導出十六進制編碼的私鑰。這是一系列 64 個字元(0-9 和 AF),您可以將其複製到剪貼板。

此私鑰字元串未加密,因此可以在任何可以讀取的地方使用它來控制其帳戶。

JSON 文件格式包括加密密鑰,以及一些關於如何加密的資訊。這有助於保存到您的硬碟驅動器。

複製此私鑰後,您可以將其導入 GethParity,然後從其中一個導出 JSON 文件。

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