nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
102 lines (85 loc) • 3.39 kB
JavaScript
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);
}