UNPKG

nerve-sdk-js

Version:
102 lines (85 loc) 3.39 kB
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var nuls = require('../index'); var sdk = require('../api/sdk'); var { getNulsBalance, countFee, inputsOrOutputs, validateTx, broadcastTx } = require('./api/util'); /** * @disc: 设置别名 dome * @params: * @date: 2019-10-18 10:38 * @author: Wave */ var pri = ''; var pub = '020e19418ed26700b0dba720dcc95483cb4adb1b5f8a103818dab17d5b05231854'; var fromAddress = "tNULSeBaMu38g1vnJsSZUCwTDU9GsE5TVNUtpD"; //黑洞地址 var toAddress = 'tNULSeBaMhZnRteniCy3UZqPjTbnWKBPHX1a5d'; var amount = 100000000; var remark = 'set alias....'; //调用设置别名 setAlias(pri, pub, fromAddress, toAddress, 2, 1, amount, remark); /** * 设置别名 * @param pri * @param pub * @param fromAddress * @param toAddress * @param assetsChainId * @param assetsId * @param amount * @param remark * @returns {Promise<void>} */ function setAlias(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) { return _setAlias.apply(this, arguments); } function _setAlias() { _setAlias = _asyncToGenerator(function* (pri, pub, fromAddress, toAddress, assetsChainId, assetsId, amount, remark) { var balanceInfo = yield getNulsBalance(fromAddress); var transferInfo = { fromAddress: fromAddress, toAddress: toAddress, assetsChainId: assetsChainId, assetsId: assetsId, amount: amount, fee: 100000 }; var inOrOutputs = yield inputsOrOutputs(transferInfo, balanceInfo, 3); var aliasInfo = { fromAddress: fromAddress, alias: 'wave' }; //交易组装 var tAssemble = yield nuls.transactionAssemble(inOrOutputs.data.inputs, inOrOutputs.data.outputs, remark, 3, aliasInfo); console.log(tAssemble); //获取hash var hash = yield tAssemble.getHash(); console.log(hash); //交易签名 var txSignature = yield sdk.getSignData(hash.toString('hex'), pri); console.log(txSignature); //通过拼接签名、公钥获取HEX var signData = yield sdk.appSplicingPub(txSignature.signValue, pub); tAssemble.signatures = signData; var txhex = tAssemble.txSerialize().toString("hex"); console.log(txhex.toString('hex')); /*let getHex = await sdk.appSplicingPub(txSignature); console.log(getHex); let txhex = await nuls.transactionSerialize(pri, pub, tAssemble); console.log(txhex);*/ var result = yield validateTx(txhex.toString('hex')); console.log(result); if (result) { console.log(result.data.value); var results = yield broadcastTx(txhex); if (results && result.data.value) { console.log("交易完成"); } else { console.log("广播交易失败"); } } else { console.log("验证交易失败"); } }); return _setAlias.apply(this, arguments); }