Экспорт учетной записи Metamask в файл JSON

Я пытаюсь использовать ethers-ens , для которого требуется учетная запись ethereum в JSON формат. Как я могу экспортировать или генерировать account.json из моей учетной записи метамаски? Есть ли другой способ использовать ethers-ens без account.json?

Это формат с санитарной обработкой, основанный на account.json, созданный ethers-ens:

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

}
5 голосов | спросил ProGirlXOXO 29 Mayam17 2017, 11:23:07

2 ответа


3

Пока MetaMask планирует добавить возможность экспорта этого формата файла ( проверьте эту ссылку, чтобы узнать, выполнено ли это еще), теперь она позволяет экспортировать только закрытый ключ с шестью кодировками для отдельных учетных записей. Это серия из 64 символов (0-9 и A-F), которую вы можете скопировать в буфер обмена.

Эта строка закрытого ключа не зашифрована, и поэтому в любом месте, где она может быть прочитана, ее можно использовать для управления своей учетной записью.

Формат файла JSON включает в себя зашифрованный ключ с некоторой информацией о том, как он был зашифрован. Это делает его полезным для сохранения на вашем жестком диске.

После копирования этого закрытого ключа вы можете импортировать его в Geth или

ответил DanF 16 42017vEurope/Moscow11bEurope/MoscowThu, 16 Nov 2017 12:46:21 +0300 2017, 12:46:21
0

Это должен быть лучший способ, но вот как я это сделал.

Во-первых, важно понять, что мнемоническая фраза может быть использована для создания бесконечного количества секретных ключей, а в формате JSON Keystore хранится только один закрытый ключ. Это означает, что вам нужно будет выполнить следующую процедуру для каждого частного ключа, который вы хотите импортировать в кошельке Ethereum.

Сначала вам нужно найти секретный ключ для определенного адреса:

  1. Перейдите в MyEtherWallet.com
  2. Выберите выделенную сеть в правом верхнем углу.
  3. Нажмите «Просмотр информации о кошельке»
  4. Выберите «Мнемоническая фраза»
  5. Вставить /ввести свою мнемонику
  6. Введите пароль и откройте учетную запись
  7. Выберите правильный путь деривации. Если случай MetaMask должен быть первым: m /44 '/60' /0 '/0
  8. Выберите нужный адрес
  9. Вы должны увидеть свой закрытый ключ под полем «Частный ключ (незашифрованный)»

Теперь, когда у вас есть секретный ключ, вам нужно скрывать его в файле Keystore JSON. Вы можете сделать это с помощью geth, но в моем случае я использовал библиотеку javascript, названную ethereumjs-wallet, следующим образом:

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

const pk = new Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', 'hex') // replace by correct private key
const account = wallet.fromPrivateKey(pk)
const password = 'something' // will be required to unlock/sign after importing to a wallet like MyEtherWallet
const json = JSON.stringify(account.toV3(password))

// writes to a file
const address = account.getAddress().toString('hex')
const file = `UTC--${new Date().toISOString().replace(/[:]/g, '-')}--${address}`
fs.writeFileSync(file, content)

Надеюсь, у кого-то есть лучшая альтернатива.

ответил saulobrito 1 PM00000040000000731 2018, 16:47:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132