UNPKG

nerve-sdk-js

Version:
60 lines (40 loc) 2.47 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); }); }; } /** * 创建swap交易对 */ var nerve = require('../../..'); var sdk = require('../../../api/sdk'); // 设置网络环境 // nerve.testnet(); nerve.customnet(5, "http://192.168.1.110:17003/"); // 账户信息 var fromAddress = "TNVTdTSPRnXkDiagy7enti1KL75NU5AxC9sQA"; var pri = ''; var tokenAmountA = nerve.swap.tokenAmount(5, 1, "140000000000"); // 添加的资产A的数量 var tokenAmountB = nerve.swap.tokenAmount(5, 3, "100000000"); // 添加的资产B的数量 var deadline = nerve.swap.currentTime() + 300; // 过期时间 var amountAMin = "140000000000"; // 资产A最小添加值 var amountBMin = "100000000"; // 资产B最小添加值 var toAddress = "TNVTdTSPNEpLq2wnbsBcD8UDTVMsArtkfxWgz"; // 流动性份额接收地址 var remark = 'swap add liquidity remark...'; //调用 test(); function test() { return _test.apply(this, arguments); } function _test() { _test = _asyncToGenerator(function* () { var tx = yield nerve.swap.swapAddLiquidity(fromAddress, tokenAmountA, tokenAmountB, amountAMin, amountBMin, deadline, toAddress, remark); console.log('hash: ' + tx.hash); console.log('hex: ' + tx.hex); // 签名交易 // 反序列回交易对象 var tAssemble = nerve.deserializationTx(tx.hex); //获取hash var hash = yield tAssemble.getHash(); //交易签名 var txSignature = yield sdk.getSignData(hash.toString('hex'), pri); //通过拼接签名、公钥获取HEX var signData = yield sdk.appSplicingPub(txSignature.signValue, sdk.getPub(pri)); tAssemble.signatures = signData; var txhex = tAssemble.txSerialize().toString("hex"); console.log("signedTx hex(metamask):" + txhex.toString('hex')); // 广播交易 var result = yield nerve.broadcastTx(txhex); console.log(result); }); return _test.apply(this, arguments); }