nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
113 lines (83 loc) • 4.42 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); }); }; }
/**
* Swap币币交换
*/
var nerve = require('../../index');
var rpcUtil = require('../api/util'); // 设置网络环境
// nerve.mainnet();
// nerve.testnet();
nerve.customnet(5, "http://127.0.0.1:17004/jsonrpc");
require('dotenv').config({
path: '../.env'
}); // 账户信息
var pri = process.env.acc4;
var fromAddress = nerve.getAddressByPri(nerve.chainId(), pri);
console.log(fromAddress);
var amountIn = "300000000"; // 卖出的资产数量
var tokenPath = [nerve.swap.token(5, 1), nerve.swap.token(5, 5)]; // 币币交换资产路径,路径中最后一个资产,是用户要买进的资产
var amountOutMin = "0"; // 最小买进的资产数量
var feeTo = null; // 交易手续费取出一部分给指定的接收地址
var deadline = nerve.swap.currentTime() + 300; // 过期时间
var toAddress = "TNVTdTSPJJMGh7ijUGDqVZyucbeN1z4jqb1ad"; // 资产接收地址
var remark = 'swap trade remark kkkkkk'; // 调用
testWithPS();
function testP() {
return _testP.apply(this, arguments);
}
function _testP() {
_testP = _asyncToGenerator(function* () {
var a = yield rpcUtil.getNulsBalance(fromAddress, 9, 1);
console.log(a);
});
return _testP.apply(this, arguments);
}
function test() {
return _test.apply(this, arguments);
}
function _test() {
_test = _asyncToGenerator(function* () {
var tx = yield nerve.swap.swapTrade(fromAddress, amountIn, tokenPath, amountOutMin, feeTo, deadline, toAddress, remark);
console.log('hash: ' + tx.hash);
console.log('hex: ' + tx.hex); // 签名交易
var signedTx = nerve.appendSignature(tx.hex, pri);
console.log('signedTx hash: ' + signedTx.data.hash);
console.log('signedTx hex: ' + signedTx.data.hex); // 广播交易
var result = yield nerve.broadcastTx(signedTx.data.hex);
console.log('result: ' + result);
});
return _test.apply(this, arguments);
}
function testWithPS() {
return _testWithPS.apply(this, arguments);
}
function _testWithPS() {
_testWithPS = _asyncToGenerator(function* () {
var tx = yield nerve.swap.swapTrade(fromAddress, amountIn, tokenPath, amountOutMin, feeTo, deadline, toAddress, remark);
console.log('hash: ' + tx.hash);
console.log('hex: ' + tx.hex);
var txObj = nerve.deserializationTx(tx.hex); // 签名交易
var txSignature = yield nerve.getSignDataWithPS(tx.hash, pri); //通过拼接签名、公钥获取HEX
var signData = yield nerve.appSplicingPubWithPS(txSignature.signValue, nerve.getPubByPri(pri));
txObj.signatures = signData;
var txhex = txObj.txSerialize().toString("hex");
console.log(txhex.toString('hex')); // 广播交易
var result = yield nerve.broadcastTx(txhex);
console.log('result: ' + result);
});
return _testWithPS.apply(this, arguments);
}
function test1() {
return _test2.apply(this, arguments);
}
function _test2() {
_test2 = _asyncToGenerator(function* () {
var txHex = "3f00212eed6013746573742072656d61726b20636f6e74656e74490000000000000000000000000000000000000000000000000000000000000000050001b9978dbea4abebb613b6be2d0d66b4179d2511cb00ee2fed60030500010005000100050003008c0117050001b9978dbea4abebb613b6be2d0d66b4179d2511cb0500010000a90dae0400000000000000000000000000000000000000000000000000000008e97fb78a6b5c97b400011705000444bbf88ae1b9bff4e07827fb363eea3362f868f40500010000a90dae04000000000000000000000000000000000000000000000000000000000000000000000000"; // 签名交易
var signedTx = nerve.appendSignature(txHex, pri);
console.log('signedTx hash: ' + signedTx.data.hash);
console.log('signedTx hex: ' + signedTx.data.hex); // 广播交易
var result = yield nerve.broadcastTx(signedTx.data.hex);
console.log('result: ' + result);
});
return _test2.apply(this, arguments);
}