nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
88 lines (69 loc) • 3.27 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 multi = require("../../model/mutilsigntxsignatures");
var nerve = require('../../index');
var {
getNulsBalance,
countFee,
inputsOrOutputs,
validateTx,
broadcastTx
} = require('../api/util');
nerve.customnet(5, "http://beta.public.nerve.network/");
function getTransferTransaction(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8) {
return _getTransferTransaction.apply(this, arguments);
}
function _getTransferTransaction() {
_getTransferTransaction = _asyncToGenerator(function* (m, pubkeyArray, fromAddress, toAddress, assetsChainId, assetsId, amount, remark) {
var balanceInfo = yield getNulsBalance(fromAddress);
if (!balanceInfo.success) {
console.log("获取账户balanceInfo错误");
return null;
}
var transferInfo = {
fromAddress: fromAddress,
toAddress: toAddress,
assetsChainId: assetsChainId,
assetsId: assetsId,
amount: amount,
fee: 0
};
var newAmount = transferInfo.amount + transferInfo.fee;
if (balanceInfo.data.balance < newAmount) {
console.log("余额不住,请更换账户");
return;
}
var inOrOutputs = yield inputsOrOutputs(transferInfo, balanceInfo.data, 2);
if (!inOrOutputs.success) {
console.log("inputOutputs组装失败!");
return;
}
var tAssemble = yield nerve.transactionAssemble(inOrOutputs.data.inputs, inOrOutputs.data.outputs, remark, 2); //交易组装
var pubkeyBufferArray = [];
for (index in pubkeyArray) {
pubkeyBufferArray.push(Buffer.from(pubkeyArray[index], "hex"));
}
var sign = new multi.MultiTransactionSignatures(m, pubkeyBufferArray);
tAssemble.signatures = sign.serialize();
var txHex = tAssemble.txSerialize().toString("hex");
return txHex;
});
return _getTransferTransaction.apply(this, arguments);
}
function test() {
return _test.apply(this, arguments);
}
function _test() {
_test = _asyncToGenerator(function* () {
var prikey2 = "3e73f764492e95362cf325bd7168d145110a75e447510c927612586c06b23e91";
var prikey1 = "6d10f3aa23018de6bc7d1ee52badd696f0db56082c62826ba822978fdf3a59fa";
var prikey3 = "f7bb391ab82ba9ec7a552955b2fe50d79eea085d7571e5e2480d1777bc171f5e";
var m = 2;
var pubkeyArray = [nerve.getPubByPri(prikey1), nerve.getPubByPri(prikey2), nerve.getPubByPri(prikey3)];
var txHex = yield getTransferTransaction(m, pubkeyArray, "TNVTdTSPyT1GGPrbahr9qo7S87dMBatx9NHtP", "TNVTdTSPQvEngihwxqwCNPq3keQL1PwrcLbtj", 5, 1, 1234, "multi-test");
console.log("txHex:");
console.log(txHex);
});
return _test.apply(this, arguments);
}
test();