UNPKG

bsv-sdk

Version:

bsv sdk

323 lines (271 loc) 10.8 kB
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import { API_TARGET, bsv, SensibleFT } from "sensible-sdk"; import { getMergeTime, reverceFtByteString } from "../utils/CommonUtils"; import { defaultSigners, signersMap } from "../utils/SingersMap"; import fetch from "node-fetch"; function getFtGenesisInfo(_x) { return _getFtGenesisInfo.apply(this, arguments); } function _getFtGenesisInfo() { _getFtGenesisInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(ftGenesisTxid) { var response; return _regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return fetch('https://api.showmoney.app' + '/aggregation/v2/app/sensible/getFtGenesisByTxId', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ txId: ftGenesisTxid }) }).then(function (response) { return response.json(); }); case 2: response = _context4.sent; return _context4.abrupt("return", response); case 4: case "end": return _context4.stop(); } } }, _callee4); })); return _getFtGenesisInfo.apply(this, arguments); } var Sensible = /*#__PURE__*/function () { function Sensible(network, feeb, tokenWif, metasvAuth) { this.network = network; this.feeb = feeb; this.tokenWif = tokenWif; this.metasvAuth = metasvAuth; } var _proto = Sensible.prototype; _proto.ftMergeTime = /*#__PURE__*/function () { var _ftMergeTime = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(codehash, genesis, sensibleId) { var signersRaw, ftGenesisTxid, res, ft, senderAddress, balanceDetailRes, ftUtxoCount, _getMergeTime, remainUtxoCount, mergeTime; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: signersRaw = signersMap.get(sensibleId); if (!(signersRaw == undefined)) { _context.next = 7; break; } ftGenesisTxid = reverceFtByteString(sensibleId); _context.next = 5; return getFtGenesisInfo(ftGenesisTxid); case 5: res = _context.sent; if (res.code == 0 && res.data.signers) { signersRaw = res.data.signers; } else { signersRaw = defaultSigners; } case 7: ft = new SensibleFT({ network: this.network, purse: this.tokenWif, feeb: this.feeb, apiTarget: API_TARGET.METASV, signers: signersRaw }); ft.sensibleApi.authorize(this.metasvAuth); senderAddress = bsv.PrivateKey.fromWIF(this.tokenWif).toAddress(this.network).toString(); _context.next = 12; return ft.getBalanceDetail({ codehash: codehash, genesis: genesis, address: senderAddress }); case 12: balanceDetailRes = _context.sent; ftUtxoCount = balanceDetailRes.utxoCount; _getMergeTime = getMergeTime(ftUtxoCount), remainUtxoCount = _getMergeTime[0], mergeTime = _getMergeTime[1]; return _context.abrupt("return", mergeTime); case 16: case "end": return _context.stop(); } } }, _callee, this); })); function ftMergeTime(_x2, _x3, _x4) { return _ftMergeTime.apply(this, arguments); } return ftMergeTime; }(); _proto.ftMergeOne = /*#__PURE__*/function () { var _ftMergeOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(codehash, genesis, sensibleId, purseWif) { var signersRaw, ftGenesisTxid, res, _yield$SensibleFT$sel, signers, signerSelecteds, ft, senderAddress, _yield$ft$merge, txid; return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: signersRaw = signersMap.get(sensibleId); if (!(signersRaw == undefined)) { _context2.next = 7; break; } ftGenesisTxid = reverceFtByteString(sensibleId); _context2.next = 5; return getFtGenesisInfo(ftGenesisTxid); case 5: res = _context2.sent; if (res.code == 0 && res.data.signers) { signersRaw = res.data.signers; } else { signersRaw = defaultSigners; } case 7: _context2.next = 9; return SensibleFT.selectSigners(signersRaw); case 9: _yield$SensibleFT$sel = _context2.sent; signers = _yield$SensibleFT$sel.signers; signerSelecteds = _yield$SensibleFT$sel.signerSelecteds; ft = new SensibleFT({ network: this.network, purse: purseWif, feeb: this.feeb, apiTarget: API_TARGET.METASV, signers: signers, signerSelecteds: signerSelecteds }); ft.sensibleApi.authorize(this.metasvAuth); senderAddress = bsv.PrivateKey.fromWIF(this.tokenWif).toAddress(this.network).toString(); _context2.prev = 15; _context2.next = 18; return ft.merge({ codehash: codehash, genesis: genesis, ownerWif: this.tokenWif }); case 18: _yield$ft$merge = _context2.sent; txid = _yield$ft$merge.txid; console.log("merge token success,txid: " + txid); _context2.next = 27; break; case 23: _context2.prev = 23; _context2.t0 = _context2["catch"](15); console.log(_context2.t0); return _context2.abrupt("return", false); case 27: return _context2.abrupt("return", true); case 28: case "end": return _context2.stop(); } } }, _callee2, this, [[15, 23]]); })); function ftMergeOne(_x5, _x6, _x7, _x8) { return _ftMergeOne.apply(this, arguments); } return ftMergeOne; }(); _proto.ftMerge = /*#__PURE__*/function () { var _ftMerge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(codehash, genesis, sensibleId, purseWif) { var signersRaw, ftGenesisTxid, res, _yield$SensibleFT$sel2, signers, signerSelecteds, ft, senderAddress, balanceDetailRes, ftUtxoCount, _getMergeTime2, remainUtxoCount, mergeTime, receiverCount, i, _yield$ft$merge2, txid; return _regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: signersRaw = signersMap.get(sensibleId); if (!(signersRaw == undefined)) { _context3.next = 7; break; } ftGenesisTxid = reverceFtByteString(sensibleId); _context3.next = 5; return getFtGenesisInfo(ftGenesisTxid); case 5: res = _context3.sent; if (res.code == 0 && res.data.signers) { signersRaw = res.data.signers; } else { signersRaw = defaultSigners; } case 7: _context3.next = 9; return SensibleFT.selectSigners(signersRaw); case 9: _yield$SensibleFT$sel2 = _context3.sent; signers = _yield$SensibleFT$sel2.signers; signerSelecteds = _yield$SensibleFT$sel2.signerSelecteds; ft = new SensibleFT({ network: this.network, purse: purseWif, feeb: this.feeb, apiTarget: API_TARGET.METASV, signers: signers, signerSelecteds: signerSelecteds }); ft.sensibleApi.authorize(this.metasvAuth); senderAddress = bsv.PrivateKey.fromWIF(this.tokenWif).toAddress(this.network).toString(); _context3.next = 17; return ft.getBalanceDetail({ codehash: codehash, genesis: genesis, address: senderAddress }); case 17: balanceDetailRes = _context3.sent; ftUtxoCount = balanceDetailRes.utxoCount; _getMergeTime2 = getMergeTime(ftUtxoCount), remainUtxoCount = _getMergeTime2[0], mergeTime = _getMergeTime2[1]; receiverCount = 1; if (receiverCount > 10 && remainUtxoCount > 3) { //3to100 mergeTime++; } else if (receiverCount > 6 && receiverCount <= 10 && remainUtxoCount > 10) { //10to10 mergeTime++; } else if (receiverCount > 3 && receiverCount <= 6 && remainUtxoCount > 6) { //6to6 mergeTime++; } i = 0; case 23: if (!(i < mergeTime)) { _context3.next = 32; break; } _context3.next = 26; return ft.merge({ codehash: codehash, genesis: genesis, ownerWif: this.tokenWif }); case 26: _yield$ft$merge2 = _context3.sent; txid = _yield$ft$merge2.txid; console.log("merge token success " + i + ",txid: " + txid); // await sleep(15) case 29: i++; _context3.next = 23; break; case 32: return _context3.abrupt("return"); case 33: case "end": return _context3.stop(); } } }, _callee3, this); })); function ftMerge(_x9, _x10, _x11, _x12) { return _ftMerge.apply(this, arguments); } return ftMerge; }(); return Sensible; }(); export { Sensible as default };