UNPKG

nerve-sdk-js

Version:
113 lines (94 loc) 4.37 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 { 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); }