UNPKG

nerve-sdk-js

Version:
156 lines (130 loc) 4.68 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 nuls = require('../index'); var { getNulsBalance, countFee, inputsOrOutputs, validateTx, broadcastTx, getConsensusNode } = require('./api/util'); var axios = require('axios').default; console.log(axios.post, '---'); /** * @disc: 注销节点 dome * @date: 2019-10-18 10:38 * @author: Wave */ var pri = ''; var pub = '0243a092a010f668680238546f2b68b598bb8c606820f0d5051435adaff59e95b9'; var fromAddress = "TNVTdN9i4JSE9C1PrZZzuQpvrzdhXakSw3UxY"; var remark = 'stop agent....'; //调用注销节点 // stopAgent(pri, pub, fromAddress, 4, 1, '6e1f8aaa80f64244a024db0a1979495fb77455fa60650da48b01761e7defa908'); /** * 注销节点 * @param pri * @param pub * @param fromAddress * @param assetsChainId * @param assetsId * @param agentHash * @returns {Promise<void>} */ function stopAgent(_x, _x2, _x3, _x4, _x5, _x6) { return _stopAgent.apply(this, arguments); } /** * @disc: 获取退出节点/退出保证金对应的追加保证金交易列表 * @params: agentHash 节点hash * @params: reduceAmount 退出金额 * @params: quitAll 是否全部退出 0:部分 1:全部 * @date: 2020-05-15 16:03 * @author: Wave */ function _stopAgent() { _stopAgent = _asyncToGenerator(function* (pri, pub, fromAddress, assetsChainId, assetsId, agentHash) { var reduceNonceList = yield getReduceNonceList(agentHash, '0', 1); //console.log(reduceNonceList); if (!reduceNonceList.success) { console.log("获取退出保证金ReduceNonceList错误"); return; } var balanceInfo = yield getNulsBalance(fromAddress); //console.log(balanceInfo); if (!balanceInfo.success) { console.log("获取账户balanceInfo错误"); return; } var allAmount = 0; for (var item of reduceNonceList.data) { allAmount = allAmount + Number(item.deposit); } var transferInfo = { fromAddress: fromAddress, assetsChainId: assetsChainId, assetsId: assetsId, nonceList: reduceNonceList.data, amount: allAmount, fee: 100000, depositHash: agentHash }; //console.log(transferInfo); var inOrOutputs = yield inputsOrOutputs(transferInfo, balanceInfo.data, 9); //console.log(inOrOutputs); if (!inOrOutputs.success) { console.log("inputOutputs组装失败!"); return; } var tAssemble = yield nuls.transactionAssemble(inOrOutputs.data.inputs, inOrOutputs.data.outputs, remark, 9, { address: fromAddress, agentHash: agentHash }); //console.log(tAssemble); var txhex = yield nuls.transactionSerialize(pri, pub, tAssemble); console.log(txhex); var result = yield validateTx(txhex); //console.log(result); if (result.success) { console.log(result.data.value); var results = yield broadcastTx(txhex); //console.log(results); if (results && results.value) { console.log("交易完成"); } else { console.log("广播交易失败"); } } else { console.log("验证交易失败"); } }); return _stopAgent.apply(this, arguments); } function getReduceNonceList(_x7, _x8, _x9) { return _getReduceNonceList.apply(this, arguments); } function _getReduceNonceList() { _getReduceNonceList = _asyncToGenerator(function* (agentHash, reduceAmount, quitAll) { var url = 'http://seede.nuls.io:17004/jsonrpc'; var data = [4, agentHash, reduceAmount, quitAll]; var params = { "jsonrpc": "2.0", "method": 'getReduceNonceList', "params": data, "id": Math.floor(Math.random() * 1000) }; try { var res = yield axios.post(url, params); //console.log(res.data); if (res.data.hasOwnProperty('result')) { return { success: true, data: res.data.result }; } else { return { success: false, data: res.data }; } } catch (err) { return { success: false, data: err }; } }); return _getReduceNonceList.apply(this, arguments); }