Как создать адрес в сети Эфир на js
Попалась интересная статья о том, как с помощью ethers создать валидный адрес с приватным ключом, который потом можно импортировать, например, в Метамаск.
Давайте для начала разберемся, как вообще создается подобный адрес.
1. В начале необходимо сгенерировать приватный ключ 64 hex (256 бит / 32 байта).
2. Затем с помощью ECDSA и нашего приватного ключа создается публичный ключ (128 hex, 64 байта).
3. В конце, к нашему публичному ключу применяется keccak256, из чего получается строка в 64 символа (32 байта). К последним 40 символов (20 байт) этой строки добавляется префикс "0х" и получается адрес.
Для того чтобы сгенерировать адрес на JavaScript нам потребуется установка node и библиотеки ethers.
Как обычно перед стартом проекта мы заходим в нужную папку, открываем из нее консоль и прописываем npm init. Далее создаем файл, например address.js.
В файле пишем код (можно скопипастить этот):
var ethers = require('ethers');
var crypto = require('crypto');
var id = crypto.randomBytes(32).toString('hex');
var privateKey = "0x"+id;
console.log("SAVE BUT DO NOT SHARE THIS:", privateKey);
var wallet = new ethers.Wallet(privateKey);
console.log("Address: " + wallet.address
Сохраняем изменения в файле и прописываем в консоли node address.
Если появилась информация с приватным ключом и адресом, то все ок. В противном случае, решfем ошибки.
Далее этот адрес можно добавить в Метамаск и импортировать счет, нажав на иконку вашего профиля в правом верхнем углу.
#address #metamask #ethers
Post #507
265
- 👍 4