nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
113 lines (94 loc) • 4.37 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 {
HTGNET
} = require('./htgConfig');
var {
getProvider,
getEthBalance,
getERC20Balance,
isNeedApprovedERC20,
approveERC20,
sendETH,
sendERC20,
validateAddress
} = require('./api_ethers'); // NERVE网络信息
var NERVE_INFO = {
chainId: 5,
assetId: 1,
prefix: "TNVT",
symbol: "TNVT",
decimals: 8,
blackHolePublicKey: "000000000000000000000000000000000000000000000000000000000000000000",
blockHoleAddress: "TNVTdTSPGwjgRMtHqjmg8yKeMLnpBpVN5ZuuY",
feePubkey: "111111111111111111111111111111111111111111111111111111111111111111"
};
crossMainAssetTest(); // crossTokenTest();
// approveCrossTokenTest();
// 跨链转入异构链主资产, 示例为HT
function crossMainAssetTest() {
return _crossMainAssetTest.apply(this, arguments);
} // 跨链转入异构链ERC20标准的token资产, 示例为USDT(0x02e1afeef2a25eabd0362c4ba2dc6d20ca638151)
function _crossMainAssetTest() {
_crossMainAssetTest = _asyncToGenerator(function* () {
// 选择异构链网络的RPC服务
// Heco - HT
// Binance - BNB
// Ethereum - ETH
var provider = getProvider("BNB", HTGNET); // 转出地址
var fromAddress = "0xc11D9943805e56b630A401D4bd9A29550353EFa1";
var pri = '';
var amount = "0.0125";
var toAddress = "TNVTdTSPRnXkDiagy7enti1KL75NU5AxC9sQA";
var multySignContractAddress = "0xf85f03C3fAAC61ACF7B187513aeF10041029A1b2";
var result = yield sendETH(pri, fromAddress, provider, multySignContractAddress, toAddress, amount);
console.log(JSON.stringify(result));
});
return _crossMainAssetTest.apply(this, arguments);
}
function crossTokenTest() {
return _crossTokenTest.apply(this, arguments);
} // 授权-ERC20跨链转入, 示例为USDT(0x02e1afeef2a25eabd0362c4ba2dc6d20ca638151)
function _crossTokenTest() {
_crossTokenTest = _asyncToGenerator(function* () {
// 选择异构链网络的RPC服务
// Heco - HT
// Binance - BNB
// Ethereum - ETH
var provider = getProvider("BNB", HTGNET); // 转出地址
var fromAddress = "0xc11D9943805e56b630A401D4bd9A29550353EFa1";
var pri = '';
var amount = "0.128";
var toAddress = "TNVTdTSPRnXkDiagy7enti1KL75NU5AxC9sQA";
var tokenContract = "0x02e1aFEeF2a25eAbD0362C4Ba2DC6d20cA638151";
var tokenDecimals = 18;
var multySignContractAddress = "0xf85f03C3fAAC61ACF7B187513aeF10041029A1b2"; // 检查是否已经授权
var isNeedApproved = yield isNeedApprovedERC20(provider, tokenContract, multySignContractAddress, fromAddress);
if (isNeedApproved) {
throw "请先授权, 调用授权函数`approveERC20`";
}
var result = yield sendERC20(pri, fromAddress, provider, tokenContract, multySignContractAddress, toAddress, tokenDecimals, amount);
console.log(JSON.stringify(result));
});
return _crossTokenTest.apply(this, arguments);
}
function approveCrossTokenTest() {
return _approveCrossTokenTest.apply(this, arguments);
}
function _approveCrossTokenTest() {
_approveCrossTokenTest = _asyncToGenerator(function* () {
// 选择异构链网络的RPC服务
// Heco - HT
// Binance - BNB
// Ethereum - ETH
var provider = getProvider("BNB", HTGNET); // 转出地址
var fromAddress = "0xc11D9943805e56b630A401D4bd9A29550353EFa1";
var pri = '';
var toAddress = "TNVTdTSPRnXkDiagy7enti1KL75NU5AxC9sQA";
var tokenContract = "0x02e1aFEeF2a25eAbD0362C4Ba2DC6d20cA638151";
var multySignContractAddress = "0xf85f03C3fAAC61ACF7B187513aeF10041029A1b2";
var result = yield approveERC20(pri, fromAddress, provider, tokenContract, multySignContractAddress);
console.log(JSON.stringify(result));
});
return _approveCrossTokenTest.apply(this, arguments);
}