var Mnemonic = require('bitcore-mnemonic');
var bitcore = require('bitcore-lib');
Создайте новую мнемонику:
var code = new Mnemonic(Mnemonic.Words.ENGLISH);
var mnemonic = code.toString();
var data = codeToDetails(code);
Получите открытый и закрытый ключи:
function codeToDetails(code) {
var xpriv = code.toHDPrivateKey(bitcore.Networks.livenet);
var derived = xpriv.derive("m/0'");
var privateKey = derived.privateKey;
var pk = new bitcore.PrivateKey(privateKey.toString(), bitcore.Networks.livenet);
var privateKeyStr = pk.toString();
var publicKey = new bitcore.PublicKey(pk);
var publicKeyStr = publicKey.toString();
var address = new bitcore.Address(publicKey, bitcore.Networks.testnet);
return {
privateKeyStr: privateKeyStr,
publicKeyStr: publicKeyStr
};
}
Оплатить Пользователю
Теперь вы хотите заплатить пользователю. Для этого вы хотите создать необработанную транзакцию на своем сервере, подписать ее и транслировать. Итак, вам нужен закрытый ключ пользователя.
Мы используем ту же функцию codeToDetails, что и выше, учитывая исходную фразу, предоставленную пользователем.
Во-первых, мы проверяем, является ли это допустимой мнемоникой,
var valid = Mnemonic.isValid(seed);
И если оно действительно,
var code = new Mnemonic(seed);
var data = codeToDetails(code);
var pk = new bitcore.PrivateKey(data.privateKeyStr, bitcore.Networks.livenet);
var wif = pk.toWIF();
Нам нужен формат WIF для создания необработанной транзакции.