Wallets
將 Metamask 帳戶導出到 JSON 文件
我正在嘗試使用需要 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 文件格式包括加密密鑰,以及一些關於如何加密的資訊。這有助於保存到您的硬碟驅動器。