UNPKG

nerve-sdk-js

Version:
88 lines (69 loc) 3.27 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 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();