UNPKG

multichain-crypto-wallet

Version:

A Multichain crypto wallet library that supports Ethereum, Bitcoin, Solana, Waves and other EVM compatible blockchains E.g. Binance Smart Chain, Polygon, Avalanche etc.

1 lines 54.4 kB
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("bip39"),r=require("bitcoinjs-lib"),n=require("tiny-secp256k1"),a=require("bip32"),o=require("ecpair");require("base64-js");var s=t(require("bignumber.js")),i=require("immutable"),c=require("@bitgo/utxo-lib"),u=t(require("axios")),p=require("url"),l=require("ethers"),f=require("@solana/web3.js"),d=require("@solana/spl-token"),h=require("bs58"),m=require("ed25519-hd-key"),v=require("buffer-layout"),y=require("@waves/ts-lib-crypto"),w=require("@waves/waves-transactions"),b=require("tronweb");function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function k(t,e,r,n,a,o,s){try{var i=t[o](s),c=i.value}catch(t){return void r(t)}i.done?e(c):Promise.resolve(c).then(n,a)}function g(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var o=t.apply(e,r);function s(t){k(o,n,a,s,i,"next",t)}function i(t){k(o,n,a,s,i,"throw",t)}s(void 0)}))}}function T(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return x(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(){return(E=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(null,arguments)}function I(t,e){if(null==t)return{};var r={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(-1!==e.indexOf(n))continue;r[n]=t[n]}return r}function A(){A=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},s=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function p(t,e,r,n){var o=Object.create((e&&e.prototype instanceof v?e:v).prototype),s=new _(n||[]);return a(o,"_invoke",{value:I(t,r,s)}),o}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=p;var f="suspendedStart",d="executing",h="completed",m={};function v(){}function y(){}function w(){}var b={};u(b,s,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(B([])));k&&k!==r&&n.call(k,s)&&(b=k);var g=w.prototype=v.prototype=Object.create(b);function T(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(a,o,s,i){var c=l(t[a],t,o);if("throw"!==c.type){var u=c.arg,p=u.value;return p&&"object"==typeof p&&n.call(p,"__await")?e.resolve(p.__await).then((function(t){r("next",t,s,i)}),(function(t){r("throw",t,s,i)})):e.resolve(p).then((function(t){u.value=t,s(u)}),(function(t){return r("throw",t,s,i)}))}i(c.arg)}var o;a(this,"_invoke",{value:function(t,n){function a(){return new e((function(e,a){r(t,n,e,a)}))}return o=o?o.then(a,a):a()}})}function I(e,r,n){var a=f;return function(o,s){if(a===d)throw Error("Generator is already running");if(a===h){if("throw"===o)throw s;return{value:t,done:!0}}for(n.method=o,n.arg=s;;){var i=n.delegate;if(i){var c=S(i,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===f)throw a=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=d;var u=l(e,r,n);if("normal"===u.type){if(a=n.done?h:"suspendedYield",u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(a=h,n.method="throw",n.arg=u.arg)}}}function S(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,S(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var o=l(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,m;var s=o.arg;return s?s.done?(r[e.resultName]=s.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):s:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function K(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(K,this),this.reset(!0)}function B(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,o=function r(){for(;++a<e.length;)if(n.call(e,a))return r.value=e[a],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return y.prototype=w,a(g,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:y,configurable:!0}),y.displayName=u(w,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,u(t,c,"GeneratorFunction")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},T(E.prototype),u(E.prototype,i,(function(){return this})),e.AsyncIterator=E,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var s=new E(p(t,r,n,a),o);return e.isGeneratorFunction(r)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},T(g),u(g,c,"Generator"),u(g,s,(function(){return this})),u(g,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=B,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function a(n,a){return i.type="throw",i.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var s=this.tryEntries[o],i=s.completion;if("root"===s.tryLoc)return a("end");if(s.tryLoc<=this.prev){var c=n.call(s,"catchLoc"),u=n.call(s,"finallyLoc");if(c&&u){if(this.prev<s.catchLoc)return a(s.catchLoc,!0);if(this.prev<s.finallyLoc)return a(s.finallyLoc)}else if(c){if(this.prev<s.catchLoc)return a(s.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return a(s.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var s=o?o.completion:{};return s.type=t,s.arg=e,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(s)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;P(r)}return a}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:B(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}var S,K=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];for(var n=1===e.length&&Array.isArray(e[0])?e[0]:e,a=n.length-1;a>0;a--){var o=Math.floor(Math.random()*(a+1)),s=[n[o],n[a]];n[a]=s[0],n[o]=s[1]}return n},P=function(t,e){return t.amount!==e.amount?e.amount-t.amount:t.confirmations!==e.confirmations?t.confirmations-e.confirmations:t.txHash<=e.txHash?-1:1},_=function(t,e){return new s(t).multipliedBy(new s(10).exponentiatedBy(e)).decimalPlaces(0).toNumber()},B=function(t,e){return t.map((function(t){return function(t,e){return E({},t,{amount:_(t.amount,e)})}(t,e)}))};!function(t){t.Bitcoin="btc",t.BitcoinCash="bch",t.BitcoinTestnet="btc-testnet",t.BitcoinCashTestnet="bch-testnet"}(S||(S={}));var O,U=function(){var t=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="https://api.blockchain.info/haskoin-store/"+e+"/block/best?notx=true",t.next=3,u.get(r);case 3:return t.abrupt("return",t.sent.data.height);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),C=function(t){return function(){var e=g(A().mark((function e(r,n,a,o,s){var i,c,p,l,f,d,h,m,v;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n=0),void 0===a&&(a=25),void 0===o&&(o=0),void 0===s&&(s=!1),i="https://api.blockchain.info/haskoin-store/"+t+"/address/"+r+"/transactions/full?limit="+a+"&offset="+o,e.next=7,u.get(i,{timeout:3e4});case 7:p=[],l=T(e.sent.data);case 10:if((f=l()).done){e.next=22;break}if(d=f.value,e.t0=c,e.t0){e.next=17;break}return e.next=16,U(t);case 16:e.t0=e.sent;case 17:for(c=e.t0,h=d.block&&d.block.height?Math.max(c-d.block.height+1,0):0,m=0;m<d.outputs.length;m++)(v=d.outputs[m]).address!==r||s&&!1!==v.spent||p.push({txHash:d.txid,amount:v.value,vOut:m,confirmations:h});case 20:e.next=10;break;case 22:return e.abrupt("return",p.filter((function(t){return 0===n||t.confirmations>=n})).sort(P));case 23:case"end":return e.stop()}}),e)})));return function(t,r,n,a,o){return e.apply(this,arguments)}}()},L=function(t){return"https://blockstream.info/"+(t?"testnet/":"")+"api"};!function(t){t.BITCOIN="bitcoin",t.BITCOIN_CASH="bitcoin-cash",t.LITECOIN="litecoin",t.BITCOIN_SV="bitcoin-sv",t.DOGECOIN="dogecoin",t.DASH="dash",t.GROESTLCOIN="groestlcoin",t.BITCOIN_TESTNET="bitcoin/testnet"}(O||(O={}));var W={networks:O,fetchUTXO:function(t){return function(){var e=g(A().mark((function e(r,n){var a,o,s,i,c,p;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="https://api.blockchair.com/"+t+"/dashboards/transaction/"+r,e.next=3,u.get(""+a,{timeout:3e4});case 3:if((o=e.sent.data).data[r]){e.next=6;break}throw new Error("Transaction not found.");case 6:if(s=o.data[r],0!==(i=o.context.state)){e.next=14;break}return c="https://api.blockchair.com/"+t+"/stats",e.next=12,u.get(c);case 12:i=e.sent.data.data.blocks-1;case 14:return p=-1===s.transaction.block_id?0:Math.max(i-s.transaction.block_id+1,0),e.abrupt("return",{txHash:r,block:-1===s.transaction.block_id?0:s.transaction.block_id,amount:s.outputs[n].value,confirmations:p});case 16:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()},fetchUTXOs:function(t){return function(){var e=g(A().mark((function e(r,n){var a,o,s,i;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a="https://api.blockchair.com/"+t+"/dashboards/address/"+r+"?limit=0,100",e.next=3,u.get(a,{timeout:3e4});case 3:if(0!==(s=(o=e.sent.data).context.state)){e.next=11;break}return i="https://api.blockchair.com/"+t+"/stats",e.next=9,u.get(i);case 9:s=e.sent.data.data.blocks-1;case 11:return e.abrupt("return",o.data[r].utxo.map((function(t){return{txHash:t.transaction_hash,amount:t.value,vOut:t.index,confirmations:-1===t.block_id?0:s-t.block_id+1}})).filter((function(t){return 0===n||t.confirmations>=n})).sort(P));case 12:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()},broadcastTransaction:function(t){return function(){var e=g(A().mark((function e(r){var n,a;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="https://api.blockchair.com/"+t+"/push/transaction",e.next=3,u.post(n,{data:r},{timeout:3e4});case 3:if(!(a=e.sent).data.error){e.next=6;break}throw new Error(a.data.error);case 6:return e.abrupt("return",a.data.data.transaction_hash);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},fetchTXs:function(t){return function(){var e=g(A().mark((function e(r,n,a){var o,s,i,c,p,l,f,d,h,m,v,y,w,b,x;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n=0),void 0===a&&(a=25),o="https://api.blockchair.com/"+t+"/dashboards/address/"+r+"?limit="+a+",0",e.next=5,u.get(o,{timeout:3e4});case 5:if(0!==(i=(s=e.sent.data).context.state)){e.next=13;break}return c="https://api.blockchair.com/"+t+"/stats",e.next=11,u.get(c);case 11:i=e.sent.data.data.blocks-1;case 13:p=s.data[r].transactions,l={},f=0;case 16:if(!(f<Math.ceil(p.length/10))){e.next=25;break}return d="https://api.blockchair.com/"+t+"/dashboards/transactions/"+p.slice(10*f,10*(f+1)).join(","),e.next=20,u.get(d,{timeout:3e4});case 20:l=E({},l,e.sent.data.data);case 22:f++,e.next=16;break;case 25:for(h=[],m=T(p);!(v=m()).done;)for(w=-1===(y=l[v.value]).transaction.block_id?0:Math.max(i-y.transaction.block_id+1,0),b=0;b<y.outputs.length;b++)(x=y.outputs[b]).recipient===r&&h.push({txHash:y.transaction.hash,amount:x.value,vOut:b,confirmations:w});return e.abrupt("return",h.filter((function(t){return 0===n||t.confirmations>=n})).sort(P));case 28:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}()}},N=function(t,e){return"https://multichain-web-proxy.herokuapp.com/electrumx-"+t+"-"+(e?"testnet":"mainnet")},F=function(t,e,r){return[].concat(K((function(){return function(t){return function(){var e=g(A().mark((function e(r,n){var a,o,s,i;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=L(t),e.next=3,u.get(a+"/tx/"+r,{timeout:3e4});case 3:return o=e.sent.data,e.next=6,u.get(a+"/blocks/tip/height",{timeout:3e4});case 6:return s=e.sent.data,i=o.status.confirmed?Math.max(1+parseInt(s,10)-o.status.block_height,0):0,e.abrupt("return",{txHash:r,block:o.status.confirmed?o.status.block_height:0,amount:o.vout[n].value,confirmations:i});case 9:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()}(t)(e,r)}),(function(){return W.fetchUTXO(t?W.networks.BITCOIN_TESTNET:W.networks.BITCOIN)(e,r)})),[function(){return(n=t?S.BitcoinTestnet:S.Bitcoin,function(){var t=g(A().mark((function t(e,r){var a,o;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a="https://api.blockchain.info/haskoin-store/"+n+"/transaction/"+e,t.next=3,u.get(""+a,{timeout:3e4});case 3:if((o=t.sent.data).block&&o.block.height){t.next=8;break}t.t0=0,t.next=16;break;case 8:return t.t1=Math,t.next=11,U(n);case 11:t.t2=t.sent,t.t3=o.block.height,t.t4=t.t2-t.t3,t.t5=t.t4+1,t.t0=t.t1.max.call(t.t1,t.t5,0);case 16:return t.abrupt("return",{txHash:e,block:o.block&&o.block.height?o.block.height:0,amount:o.outputs[r].value,confirmations:t.t0});case 18:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}())(e,r);var n}])},M=function(t,e,r,n){return[].concat(K((function(){return function(t){return function(){var e=g(A().mark((function e(r,n){var a,o,s;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=L(t),e.next=3,u.get(a+"/address/"+r+"/utxo",{timeout:3e4});case 3:return o=e.sent,e.next=6,u.get(a+"/blocks/tip/height",{timeout:3e4});case 6:return s=e.sent,e.abrupt("return",o.data.map((function(t){return{txHash:t.txid,amount:t.value,vOut:t.vout,confirmations:t.status.confirmed?1+parseInt(s.data,10)-t.status.block_height:0}})).filter((function(t){return 0===n||t.confirmations>=n})).sort(P));case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()}(t)(e,r)}),(function(){return W.fetchUTXOs(t?W.networks.BITCOIN_TESTNET:W.networks.BITCOIN)(e,r)})),[function(){return(n=t?"BTCTEST":"BTC",function(){var t=g(A().mark((function t(e,r){var a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a="https://sochain.com/api/v2/get_tx_unspent/"+n+"/"+e+"/"+r,t.next=3,u.get(a,{timeout:3e4});case 3:return t.abrupt("return",B(t.sent.data.data.txs.map((function(t){return{txHash:t.txid,amount:t.value,vOut:t.output_no,confirmations:t.confirmations}})),8).filter((function(t){return 0===r||t.confirmations>=r})).sort(P));case 5:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}())(e,r);var n},function(){return(n=t?S.BitcoinTestnet:S.Bitcoin,function(){var t=g(A().mark((function t(e,r,a,o){return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return void 0===a&&(a=25),void 0===o&&(o=0),t.abrupt("return",C(n)(e,r,a,o,!0));case 3:case"end":return t.stop()}}),t)})));return function(e,r,n,a){return t.apply(this,arguments)}}())(e,r);var n},function(){return function(t,e){return function(){var t=g(A().mark((function t(r,n,a){var o,s;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a){t.next=2;break}throw new Error("Must provide script hash."+r);case 2:return o=N("bitcoin",e),t.next=5,u.post(o,{jsonrpc:"1.0",id:"67",method:"blockchain.scripthash.listunspent",params:[a]});case 5:return s=t.sent.data.result.height,t.next=8,u.post(o,{jsonrpc:"1.0",id:"67",method:"blockchain.scripthash.listunspent",params:[a]});case 8:return t.abrupt("return",t.sent.data.result.map((function(t){return{txHash:t.tx_hash,amount:t.value,vOut:t.tx_pos,confirmations:t.height?1+s-t.height:0}})).filter((function(t){return 0===n||t.confirmations>=n})).sort(P));case 10:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}()}(0,t)(e,r,n)}])},j=function(t,e){return[].concat(K((function(){return function(t){return function(){var e=g(A().mark((function e(r){var n;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=L(t),e.next=3,u.post(n+"/tx",r,{timeout:3e4});case 3:return e.abrupt("return",e.sent.data);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}(t)(e)}),(function(){return W.broadcastTransaction(t?W.networks.BITCOIN_TESTNET:W.networks.BITCOIN)(e)})),[function(){return(r=t?"BTCTEST":"BTC",function(){var t=g(A().mark((function t(e){return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.post("https://sochain.com/api/v2/send_tx/"+r,{tx_hex:e},{timeout:3e4});case 2:return t.abrupt("return",t.sent.data.data.txid);case 4:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())(e);var r},function(){return function(t){return function(){var e=g(A().mark((function e(r){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.post(t,{jsonrpc:"1.0",id:"67",method:"sendrawtransaction",params:[r]},{timeout:3e4});case 2:return e.abrupt("return",e.sent.data.result);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}(t?"https://multichain-web-proxy.herokuapp.com/multichain-bitcoin-testnet":"https://multichain-web-proxy.herokuapp.com/multichain-bitcoin")(e)},t?void 0:function(){return(t=S.Bitcoin,function(){var e=g(A().mark((function e(r){var n,a;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t===S.Bitcoin){e.next=2;break}throw new Error("Broadcasting "+t+" transactions not supported by endpoint.");case 2:return(n=new p.URLSearchParams).append("tx",r),e.next=7,u.post("https://blockchain.info/pushtx",n,{timeout:3e4});case 7:if(!(a=e.sent).data.error){e.next=10;break}throw new Error(a.data.error);case 10:return e.abrupt("return",a.data);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())(e);var t}])},q=function(t){return new Promise((function(e){return setTimeout(e,t)}))},R=function(t){if(t&&"object"==typeof t){if(t.response)return R(t.response);if(t.error)return R(t.error);if(t.message)return R(t.message);if(t.data)return R(t.data);if(t.context)return R(t.context);if(t.statusText)return R(t.statusText);try{return JSON.stringify(t)}catch(t){}}try{return"string"==typeof t?("Error: "===t.slice(0,7).toLowerCase()&&(t=t.slice(7)),t):JSON.stringify(t)}catch(t){}return String(t)},H=function(){var t=g(A().mark((function t(e){var r,n,a,o;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=T(e);case 1:if((a=n()).done){t.next=16;break}if(o=a.value){t.next=5;break}return t.abrupt("continue",14);case 5:return t.prev=5,t.next=8,o();case 8:return t.abrupt("return",t.sent);case 11:t.prev=11,t.t0=t.catch(5),r=r||t.t0;case 14:t.next=1;break;case 16:throw r||new Error("No result returned");case 17:case"end":return t.stop()}}),t,null,[[5,11]])})));return function(e){return t.apply(this,arguments)}}(),J=function(){var t=g(A().mark((function t(e,r){var n,a,o;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=0;case 1:if(!(a<r)){t.next=22;break}return t.prev=2,t.next=5,e();case 5:return t.abrupt("return",t.sent);case 8:if(t.prev=8,t.t0=t.catch(2),!String(t.t0).match(/timeout of .* exceeded/)){t.next=14;break}n=t.t0,t.next=17;break;case 14:throw(o=R(t.t0))&&(t.t0.message+=" ("+o+")"),t.t0;case 17:return t.next=19,q(500);case 19:a++,t.next=1;break;case 22:throw n;case 23:case"end":return t.stop()}}),t,null,[[2,8]])})));return function(e,r){return t.apply(this,arguments)}}(),G={buildUTXO:function(){var t=g(A().mark((function t(e,r,n,a,o,i,u){var p,l,f,d,h,m,v;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(p=new s(u&&void 0!==u.fee?u.fee:1e4),!(l=u&&u.subtractFee?o.minus(p):o).lt(0)){t.next=4;break}throw new Error("Unable to include fee in value, fee exceeds value ("+p.toFixed()+" > "+o.toFixed()+")");case 4:if(f=new c.TransactionBuilder(e),u&&u.version&&f.setVersion(u.version),u&&u.versionGroupID&&f.setVersionGroupId(u.versionGroupID),u&&u.expiryHeight&&f.setExpiryHeight(u.expiryHeight),u&&u.lockTime&&f.setLockTime(u.lockTime),u&&u.consensusBranchId&&f.setConsensusBranchId(u.consensusBranchId),d=i.reduce((function(t,e){var r=t[0],n=t[1];return n.lt(l.plus(p))?[[].concat(r,[e]),n.plus(e.amount)]:[r,n]}),[[],new s(0)]),h=d[0],!(m=d[1]).lt(l.plus(p))){t.next=13;break}throw new Error("Insufficient balance to broadcast transaction");case 13:return h.map((function(t){return f.addInput(t.txHash,t.vOut)})),v=m.minus(l).minus(p),f.addOutput(a,l.toNumber()),v.gt(0)&&f.addOutput(n,v.toNumber()),h.map((function(t,e){return f.sign(e,r,null,u&&void 0!==u.signFlag?u.signFlag:null,t.amount)})),t.abrupt("return",f.build());case 19:case"end":return t.stop()}}),t)})));return function(e,r,n,a,o,s,i){return t.apply(this,arguments)}}()},D=a.BIP32Factory(n),V=o.ECPairFactory(n),X=function(t,e){var n="bitcoin"===e?r.networks.bitcoin:"bitcoin-testnet"===e?r.networks.testnet:r.networks.bitcoin,a=V.fromWIF(t);return{address:r.payments.p2pkh({pubkey:a.publicKey,network:n}).address}},Y=function(){var t=g(A().mark((function t(e,r){var n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=M("bitcoin"!==r,e,0),t.next=4,H(n);case 4:return a=t.sent.reduce((function(t,e){return t.plus(e.amount)}),new s(0)).dividedBy(new s(10).exponentiatedBy(8)),t.abrupt("return",{balance:a.toNumber()});case 7:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),$=function(){var t=g(A().mark((function t(e){var r,n,a,o,u,p,l,f,d,h,m,v,y;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="bitcoin"!==e.network,n=V.fromWIF(e.privateKey),a=c.ECPair.fromPrivateKeyBuffer(n.privateKey,"bitcoin"===e.network?c.networks.bitcoin:c.networks.testnet),o=X(e.privateKey,e.network).address,u=o,p=M(r,o,0),t.t0=i.List,t.next=9,H(p);case 9:return t.t1=t.sent,l=(0,t.t0)(t.t1).sortBy((function(t){return t.amount})).reverse().toArray(),f=new s(e.amount.toString()),t.next=14,G.buildUTXO(r?c.networks.testnet:c.networks.bitcoin,a,u,e.recipientAddress,f.times(new s(10).exponentiatedBy(8)),l,{fee:e.fee,subtractFee:e.subtractFee});case 14:return d=t.sent,t.next=17,J((function(){return H(j(r,d.toHex()))}),3);case 17:return h=t.sent,t.prev=18,t.next=21,H(F(r,h,0));case 21:return v=new s((m=t.sent).amount),y=v.dividedBy(new s(10).exponentiatedBy(8)),t.abrupt("return",E({},m,{amount:y.toNumber()}));case 27:return t.prev=27,t.t2=t.catch(18),t.abrupt("return",{txHash:h});case 30:case"end":return t.stop()}}),t,null,[[18,27]])})));return function(e){return t.apply(this,arguments)}}(),z={createWallet:function(t,n){if(n&&"44'"!==(null==n?void 0:n.split("/")[1]))throw new Error("Invalid derivation path");var a=n||"m/44'/0'/0'/0/0",o=e.generateMnemonic(),s=e.mnemonicToSeedSync(o),i=D.fromSeed(s).derivePath(a);return{address:r.payments.p2pkh({pubkey:i.publicKey,network:"bitcoin"===t?r.networks.bitcoin:"bitcoin-testnet"===t?r.networks.testnet:r.networks.bitcoin}).address,privateKey:i.toWIF(),mnemonic:o}},generateWalletFromMnemonic:function(t,n,a){if(a&&"44'"!==(null==a?void 0:a.split("/")[1]))throw new Error("Invalid derivation path ");var o=e.mnemonicToSeedSync(n),s=a||"m/44'/0'/0'/0/0",i=D.fromSeed(o).derivePath(s);return{address:r.payments.p2pkh({pubkey:i.publicKey,network:"bitcoin"===t?r.networks.bitcoin:"bitcoin-testnet"===t?r.networks.testnet:r.networks.bitcoin}).address,privateKey:i.toWIF(),mnemonic:n}},getAddressFromPrivateKey:X,getBalance:Y,transfer:$,getTransaction:function(){var t=g(A().mark((function t(e){var r,n,a,o,i;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.hash,n="bitcoin"!==e.network,t.next=4,H(F(n,r,0));case 4:return o=new s((a=t.sent).amount),i=o.dividedBy(new s(10).exponentiatedBy(8)),t.abrupt("return",E({},a,{amount:i.toNumber()}));case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},Q=function(t){return new l.ethers.providers.JsonRpcProvider(t)},Z=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],tt=["privateKey","tokenAddress","rpcUrl"],et=function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u,p,f,d;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.contractAddress,a=e.privateKey,o=e.abi,n=e.rpcUrl){t.next=3;break}throw new Error("RPC URL is required");case 3:return s=Q(n),t.next=6,s.getGasPrice();case 6:return i=t.sent,c=l.ethers.BigNumber.from(21e3),d=o||Z,a&&r?(f=new l.ethers.Wallet(a,s),u=s.getTransactionCount(f.getAddress()),p=new l.ethers.Contract(r,d,f)):a&&!r?(f=new l.ethers.Wallet(a,s),u=s.getTransactionCount(f.getAddress())):r&&!a&&(p=new l.ethers.Contract(r,d,s)),t.abrupt("return",{contract:p,signer:f,gasPrice:i,gas:c,nonce:u,providerInstance:s});case 11:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),rt={getBalance:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.rpcUrl,n=e.tokenAddress,a=e.address,t.next=3,et({rpcUrl:r,contractAddress:n});case 3:if(s=(o=t.sent).contract,i=o.providerInstance,t.prev=6,!s){t.next=15;break}return t.next=10,s.decimals();case 10:return u=t.sent,t.next=13,s.balanceOf(a);case 13:return c=t.sent,t.abrupt("return",{balance:parseFloat(l.ethers.utils.formatUnits(c,u))});case 15:return t.next=17,i.getBalance(a);case 17:return c=t.sent,t.abrupt("return",{balance:parseFloat(l.ethers.utils.formatEther(c))});case 21:throw t.prev=21,t.t0=t.catch(6),t.t0;case 24:case"end":return t.stop()}}),t,null,[[6,21]])})));return function(e){return t.apply(this,arguments)}}(),createWallet:function(t){var e=l.ethers.Wallet.createRandom({path:t||"m/44'/60'/0'/0/0"});return{address:e.address,privateKey:e.privateKey,mnemonic:e.mnemonic.phrase}},getAddressFromPrivateKey:function(t){return{address:new l.ethers.Wallet(t).address}},generateWalletFromMnemonic:function(t,e){var r=l.ethers.Wallet.fromMnemonic(t,e||"m/44'/60'/0'/0/0");return{address:r.address,privateKey:r.privateKey,mnemonic:r.mnemonic.phrase}},transfer:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u,p,f,d,h;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.privateKey,n=e.tokenAddress,a=e.rpcUrl,o=I(e,tt),t.next=3,et({rpcUrl:a,privateKey:r,contractAddress:n});case 3:if(i=(s=t.sent).contract,c=s.gasPrice,u=s.nonce,p=new l.ethers.Wallet(r,s.providerInstance),t.prev=9,!i){t.next=22;break}return t.next=13,i.decimals();case 13:return d=t.sent,t.next=16,i.estimateGas.transfer(o.recipientAddress,l.ethers.utils.parseUnits(o.amount.toString(),d));case 16:return h=t.sent,t.next=19,i.transfer(o.recipientAddress,l.ethers.utils.parseUnits(o.amount.toString(),d),{gasPrice:o.gasPrice?l.ethers.utils.parseUnits(o.gasPrice.toString(),"gwei"):c,nonce:o.nonce||u,gasLimit:o.gasLimit||h});case 19:f=t.sent,t.next=25;break;case 22:return t.next=24,p.sendTransaction({to:o.recipientAddress,value:l.ethers.utils.parseEther(o.amount.toString()),gasPrice:o.gasPrice?l.ethers.utils.parseUnits(o.gasPrice.toString(),"gwei"):c,nonce:o.nonce||u,data:o.data?l.ethers.utils.hexlify(l.ethers.utils.toUtf8Bytes(o.data)):"0x"});case 24:f=t.sent;case 25:return t.abrupt("return",E({},f));case 28:throw t.prev=28,t.t0=t.catch(9),t.t0;case 31:case"end":return t.stop()}}),t,null,[[9,28]])})));return function(e){return t.apply(this,arguments)}}(),getTransaction:function(){var t=g(A().mark((function t(e){var r,n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.hash,n=e.rpcUrl,t.next=3,et({rpcUrl:n});case 3:return a=t.sent.providerInstance,t.prev=5,t.next=8,a.getTransactionReceipt(r);case 8:return t.abrupt("return",E({},t.sent));case 12:throw t.prev=12,t.t0=t.catch(5),t.t0;case 15:case"end":return t.stop()}}),t,null,[[5,12]])})));return function(e){return t.apply(this,arguments)}}(),getEncryptedJsonFromPrivateKey:function(){var t=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=new l.ethers.Wallet(e.privateKey),t.next=3,r.encrypt(e.password);case 3:return t.abrupt("return",{json:t.sent});case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),getWalletFromEncryptedJson:function(){var t=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.ethers.Wallet.fromEncryptedJson(e.json,e.password);case 2:return t.abrupt("return",{privateKey:(r=t.sent).privateKey,address:r.address});case 4:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),getTokenInfo:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.address,n=e.rpcUrl,t.next=3,et({contractAddress:r,rpcUrl:n});case 3:if(!(a=t.sent.contract)){t.next=15;break}return t.next=8,Promise.all([a.name(),a.symbol(),a.decimals(),a.totalSupply()]);case 8:return i={name:(o=t.sent)[0],symbol:o[1],decimals:s=o[2],address:a.address,totalSupply:l.ethers.utils.formatUnits(o[3],s).toString()},t.abrupt("return",E({},i));case 15:throw new Error("Contract not found");case 16:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),smartContractCall:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,et({rpcUrl:e.rpcUrl,contractAddress:e.contractAddress,abi:e.contractAbi,privateKey:e.privateKey});case 2:if(n=(r=t.sent).contract,a=r.gasPrice,o=r.nonce,t.prev=6,i={},"read"===e.methodType?i={}:"write"===e.methodType&&(i={gasPrice:e.gasPrice?l.ethers.utils.parseUnits(e.gasPrice,"gwei"):a,nonce:e.nonce||o,value:e.value?l.ethers.utils.parseEther(e.value.toString()):0},e.gasLimit&&(i.gasLimit=e.gasLimit)),!(e.params.length>0)){t.next=15;break}return t.next=12,null==n?void 0:n[e.method].apply(n,e.params.concat([i]));case 12:s=t.sent,t.next=18;break;case 15:return t.next=17,null==n?void 0:n[e.method](i);case 17:s=t.sent;case 18:return t.abrupt("return",{data:s});case 21:throw t.prev=21,t.t0=t.catch(6),t.t0;case 24:case"end":return t.stop()}}),t,null,[[6,21]])})));return function(e){return t.apply(this,arguments)}}()},nt=v.struct([v.blob(32,"mint"),v.blob(32,"owner"),v.nu64("amount"),v.blob(93)]),at={"mainnet-beta":101,testnet:102,devnet:103},ot=function(t){return function(t){return new f.Connection(t)}(t)},st=function(){var t=g(A().mark((function t(e){var r,n,a,o;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=ot(e.rpcUrl),t.prev=1,!e.tokenAddress){t.next=8;break}return t.next=5,r.getTokenAccountsByOwner(new f.PublicKey(e.address),{mint:new f.PublicKey(e.tokenAddress)});case 5:return n=(a=t.sent).value.length>0?nt.decode(a.value[0].account.data).amount:0,t.abrupt("return",{balance:n/f.LAMPORTS_PER_SOL});case 8:return o=new f.PublicKey(e.address),t.next=11,r.getBalance(o);case 11:return t.abrupt("return",{balance:(n=t.sent)/f.LAMPORTS_PER_SOL});case 15:throw t.prev=15,t.t0=t.catch(1),t.t0;case 18:case"end":return t.stop()}}),t,null,[[1,15]])})));return function(e){return t.apply(this,arguments)}}(),it=function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u,p;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=ot(e.rpcUrl),t.prev=1,n=new f.PublicKey(e.recipientAddress),a=e.privateKey.split(",").length>1?new Uint8Array(e.privateKey.split(",")):h.decode(e.privateKey),s=f.Keypair.fromSecretKey(a,{skipValidation:!0}),!e.tokenAddress){t.next=20;break}return t.next=8,d.getMint(r,new f.PublicKey(e.tokenAddress));case 8:return i=t.sent,t.next=11,d.getOrCreateAssociatedTokenAccount(r,s,i.address,s.publicKey);case 11:return c=t.sent,t.next=14,d.getOrCreateAssociatedTokenAccount(r,s,i.address,n);case 14:return u=t.sent,t.next=17,d.transfer(r,s,c.address,u.address,s.publicKey,f.LAMPORTS_PER_SOL*e.amount);case 17:o=t.sent,t.next=24;break;case 20:return p=(new f.Transaction).add(f.SystemProgram.transfer({fromPubkey:s.publicKey,toPubkey:n,lamports:f.LAMPORTS_PER_SOL*e.amount})),t.next=23,f.sendAndConfirmTransaction(r,p,[s]);case 23:o=t.sent;case 24:return t.next=26,r.getTransaction(o,{maxSupportedTransactionVersion:0});case 26:return t.abrupt("return",E({},t.sent));case 30:throw t.prev=30,t.t0=t.catch(1),t.t0;case 33:case"end":return t.stop()}}),t,null,[[1,30]])})));return function(e){return t.apply(this,arguments)}}(),ct=function(){var t=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=ot(e.rpcUrl),t.prev=1,t.next=4,r.getTransaction(e.hash,{maxSupportedTransactionVersion:0});case 4:return t.abrupt("return",E({},t.sent));case 8:throw t.prev=8,t.t0=t.catch(1),t.t0;case 11:case"end":return t.stop()}}),t,null,[[1,8]])})));return function(e){return t.apply(this,arguments)}}(),ut=function(){var t=g(A().mark((function t(e){var r,n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=ot(e.rpcUrl),t.next=4,pt(e.cluster);case 4:if(!(n=t.sent.find((function(t){return t.address===e.address})))){t.next=13;break}return a={name:n.name,symbol:n.symbol,address:n.address,decimals:n.decimals,logoUrl:n.logoURI,totalSupply:"0"},t.next=10,r.getTokenSupply(new f.PublicKey(a.address));case 10:return a.totalSupply=t.sent.value.uiAmount.toString(),t.abrupt("return",E({},a));case 13:return t.abrupt("return");case 16:throw t.prev=16,t.t0=t.catch(0),t.t0;case 19:case"end":return t.stop()}}),t,null,[[0,16]])})));return function(e){return t.apply(this,arguments)}}(),pt=function(){var t=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,u.get("https://raw.githubusercontent.com/solana-labs/token-list/main/src/tokens/solana.tokenlist.json");case 3:if(!(r=t.sent).data||!r.data.tokens){t.next=6;break}return t.abrupt("return",r.data.tokens.filter((function(t){return t.chainId===at[e]})));case 6:return t.abrupt("return",[]);case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),lt={getBalance:st,createWallet:function(t){var r=t||"m/44'/501'/0'/0'",n=e.generateMnemonic(),a=e.mnemonicToSeedSync(n),o=m.derivePath(r,a.toString("hex")).key,s=f.Keypair.fromSeed(o);return{address:s.publicKey.toBase58(),privateKey:h.encode(s.secretKey),mnemonic:n}},generateWalletFromMnemonic:function(t,r){var n=r||"m/44'/501'/0'/0'",a=e.mnemonicToSeedSync(t),o=m.derivePath(n,a.toString("hex")).key,s=f.Keypair.fromSeed(o);return{address:s.publicKey.toBase58(),privateKey:h.encode(s.secretKey),mnemonic:t}},transfer:it,getAddressFromPrivateKey:function(t){var e;return e=t.split(",").length>1?new Uint8Array(t.split(",")):h.decode(t),{address:f.Keypair.fromSecretKey(e,{skipValidation:!0}).publicKey.toBase58()}},getTransaction:ct,getTokenInfo:ut},ft=function(){var t=g(A().mark((function t(e){var r,n;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,e.rpcUrl){t.next=3;break}throw new Error("Error: Node URL is required");case 3:if(!e.tokenAddress){t.next=11;break}return t.next=6,w.nodeInteraction.assetBalance(e.tokenAddress,e.address,e.rpcUrl);case 6:return r=t.sent,t.next=9,mt({address:e.tokenAddress,rpcUrl:e.rpcUrl,network:e.network});case 9:return n=t.sent,t.abrupt("return",{balance:Number(r)/Math.pow(10,n.decimals)});case 11:return t.next=13,w.nodeInteraction.balance(e.address,e.rpcUrl);case 13:return t.abrupt("return",{balance:t.sent/Math.pow(10,8)});case 17:throw t.prev=17,t.t0=t.catch(0),t.t0;case 20:case"end":return t.stop()}}),t,null,[[0,17]])})));return function(e){return t.apply(this,arguments)}}(),dt=function(){var t=g(A().mark((function t(e){var r,n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,e.rpcUrl){t.next=3;break}throw new Error("Error: Node URL is required");case 3:if(!e.tokenAddress){t.next=10;break}return t.next=6,mt({address:e.tokenAddress,rpcUrl:e.rpcUrl,network:e.network});case 6:r=e.amount*Math.pow(10,t.sent.decimals),t.next=11;break;case 10:r=e.amount*Math.pow(10,8);case 11:return n={assetId:e.tokenAddress,recipient:e.recipientAddress,amount:parseInt(String(r)),chainId:yt(e.recipientAddress)},a=w.transfer(n,e.privateKey),t.next=15,w.nodeInteraction.broadcast(a,e.rpcUrl);case 15:return t.abrupt("return",E({},t.sent));case 19:throw t.prev=19,t.t0=t.catch(0),t.t0;case 22:case"end":return t.stop()}}),t,null,[[0,19]])})));return function(e){return t.apply(this,arguments)}}(),ht=function(){var t=g(A().mark((function t(e){return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,e.rpcUrl){t.next=3;break}throw new Error("Error: Node URL is required");case 3:return t.next=5,w.nodeInteraction.transactionById(e.hash,e.rpcUrl);case 5:return t.abrupt("return",E({},t.sent));case 9:throw t.prev=9,t.t0=t.catch(0),t.t0;case 12:case"end":return t.stop()}}),t,null,[[0,9]])})));return function(e){return t.apply(this,arguments)}}(),mt=function(){var t=g(A().mark((function t(e){var r,n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=new URL("assets/details/"+e.address,e.rpcUrl),t.next=4,u.get(r.toString());case 4:return a={name:(n=t.sent.data).name,symbol:n.name,address:n.assetId,decimals:n.decimals,totalSupply:n.quantity.toString()},t.abrupt("return",E({},a));case 10:throw t.prev=10,t.t0=t.catch(0),t.t0;case 13:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(e){return t.apply(this,arguments)}}();function vt(t){return"testnet"===t?y.TEST_NET_CHAIN_ID:"mainnet"===t?y.MAIN_NET_CHAIN_ID:void 0}function yt(t){return t.startsWith("3P")?y.MAIN_NET_CHAIN_ID:y.TEST_NET_CHAIN_ID}var wt={getBalance:ft,createWallet:function(t){var e=y.randomSeed(),r=vt(t);return{address:y.address(e,r),privateKey:y.privateKey(e),mnemonic:e}},generateWalletFromMnemonic:function(t,e){var r=vt(e);return{address:y.address(t,r),privateKey:y.privateKey(t),mnemonic:t}},transfer:dt,getTransaction:ht,getTokenInfo:mt,smartContractCall:function(){var t=g(A().mark((function t(e){var r,n,a,o;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("write"!==e.methodType){t.next=8;break}return n={dApp:e.contractAddress,call:{function:e.method,args:[].concat(e.params||[])},payment:[].concat(e.payment||[]),chainId:yt(e.contractAddress)},a=w.invokeScript(n,e.privateKey),t.next=5,w.nodeInteraction.broadcast(a,e.rpcUrl);case 5:r=t.sent,t.next=13;break;case 8:if("read"!==e.methodType){t.next=13;break}return t.next=11,w.nodeInteraction.accountDataByKey(e.method,e.contractAddress,e.rpcUrl);case 11:r=null==(o=t.sent)?void 0:o.value;case 13:return t.abrupt("return",{data:r});case 14:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},bt=function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.contractAddress,a=e.apiKey,o=e.privateKey,s=e.abi,n=e.rpcUrl){t.next=3;break}throw new Error("RPC URL is required");case 3:return i=new b.TronWeb({fullHost:n,headers:a?{"TRON-PRO-API-KEY":a}:void 0}),o&&i.setPrivateKey(o),r&&(o?(u=b.TronWeb.address.fromPrivateKey(o),i.setAddress(u)):i.setAddress(r),c=i.contract(s||Z,r)),t.abrupt("return",{contract:c,tronWeb:i});case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),xt={ethereum:rt,solana:lt,tron:{getBalance:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.rpcUrl,n=e.tokenAddress,a=e.address,t.next=3,bt({rpcUrl:r,contractAddress:n});case 3:if(s=(o=t.sent).tronWeb,i=o.contract,t.prev=6,!i||!n){t.next=12;break}return t.next=10,i.methods.balanceOf(a).call();case 10:return t.abrupt("return",{balance:b.TronWeb.fromSun(Number(t.sent))});case 12:return t.next=14,s.trx.getBalance(a);case 14:return t.abrupt("return",{balance:b.TronWeb.fromSun(t.sent).toString()});case 18:throw t.prev=18,t.t0=t.catch(6),t.t0;case 21:case"end":return t.stop()}}),t,null,[[6,18]])})));return function(e){return t.apply(this,arguments)}}(),createWallet:function(t){var e,r=b.TronWeb.createRandom(void 0,t||"m/44'/195'/0'/0/0");return{address:r.address,privateKey:r.privateKey,mnemonic:null==(e=r.mnemonic)?void 0:e.phrase}},getAddressFromPrivateKey:function(t){return{address:b.TronWeb.address.fromPrivateKey(t)}},generateWalletFromMnemonic:function(t,e){var r=b.TronWeb.fromMnemonic(t,e||"m/44'/195'/0'/0/0");return{address:r.address,privateKey:r.privateKey,mnemonic:t}},transfer:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u,p,l,f,d,h,m,v;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.privateKey,n=e.tokenAddress,a=e.rpcUrl,o=e.recipientAddress,s=e.amount,i=e.feeLimit,t.next=3,bt({rpcUrl:a,privateKey:r,contractAddress:n});case 3:if(u=(c=t.sent).tronWeb,p=c.contract,t.prev=6,!p||!n){t.next=23;break}return f=b.TronWeb.toSun(s),d=[{type:"address",value:o},{type:"uint256",value:f.toString()}],t.next=13,u.transactionBuilder.triggerSmartContract(n,"transfer(address,uint256)",i?{feeLimit:i}:{},d);case 13:return h=t.sent,t.next=16,u.trx.sign(h.transaction);case 16:return m=t.sent,t.next=19,u.trx.sendRawTransaction(m);case 19:l=t.sent,t.next=27;break;case 23:return v=b.TronWeb.toSun(s),t.next=26,u.trx.sendTransaction(o,Number(v.toString()));case 26:l=t.sent;case 27:return t.abrupt("return",E({},l));case 30:throw t.prev=30,t.t0=t.catch(6),t.t0;case 33:case"end":return t.stop()}}),t,null,[[6,30]])})));return function(e){return t.apply(this,arguments)}}(),getTransaction:function(){var t=g(A().mark((function t(e){var r,n,a;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.hash,n=e.rpcUrl,t.next=3,bt({rpcUrl:n});case 3:return a=t.sent.tronWeb,t.prev=5,t.next=8,a.trx.getTransactionInfo(r);case 8:return t.abrupt("return",E({},t.sent));case 12:throw t.prev=12,t.t0=t.catch(5),t.t0;case 15:case"end":return t.stop()}}),t,null,[[5,12]])})));return function(e){return t.apply(this,arguments)}}(),getTokenInfo:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.address,n=e.rpcUrl,a=e.apiKey,t.next=3,bt({contractAddress:r,rpcUrl:n,apiKey:a});case 3:if(!(o=t.sent.contract)){t.next=21;break}return t.prev=6,t.next=9,Promise.all([o.methods.name().call(),o.methods.symbol().call(),o.methods.decimals().call(),o.methods.totalSupply().call()]);case 9:return i=(s=t.sent)[3],c={name:s[0],symbol:s[1],decimals:Number(s[2]),address:r,totalSupply:b.TronWeb.fromSun(Number(i)).toString()},t.abrupt("return",E({},c));case 18:throw t.prev=18,t.t0=t.catch(6),t.t0;case 21:throw new Error("Contract not found");case 22:case"end":return t.stop()}}),t,null,[[6,18]])})));return function(e){return t.apply(this,arguments)}}(),smartContractCall:function(){var t=g(A().mark((function t(e){var r,n,a,o,s,i,c,u,p,l,f,d,h,m,v,y,w;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.rpcUrl,n=e.contractAddress,a=e.privateKey,o=e.method,i=void 0===(s=e.params)?[]:s,c=e.methodType,u=e.feeLimit,p=e.contractAbi,t.next=3,bt({rpcUrl:r,contractAddress:n,privateKey:a});case 3:if(l=t.sent.tronWeb,t.prev=5,p){t.next=8;break}throw new Error("Contract ABI is required");case 8:if("read"!==c){t.next=19;break}return d=p.find((function(t){return t.name===o})),h=d.name+"("+d.inputs.map((function(t){return t.type})).join(",")+")",t.next=13,l.transactionBuilder.triggerConstantContract(n,h,{},i);case 13:m=(f=t.sent).constant_result[0].startsWith("0x")?f.constant_result[0]:"0x"+f.constant_result[0],v=b.utils.abi.decodeParamsV2ByABI(d,m),f=v.toString(),t.next=29;break;case 19:if("write"!==c){t.next=29;break}return t.next=22,l.transactionBuilder.triggerSmartContract(n,o,u?{feeLimit:u}:{},i);case 22:return y=t.sent,t.next=25,l.trx.sign(y.transaction);case 25:return w=t.sent,t.next=28,l.trx.sendRawTransaction(w);case 28:f=t.sent;case 29:return t.abrupt("return",{data:f});case 32:throw t.prev=32,t.t0=t.catch(5),t.t0;case 35:case"end":return t.stop()}}),t,null,[[5,32]])})));return function(e){return t.apply(this,arguments)}}()},waves:wt,bitcoin:z,"bitcoin-testnet":z},kt=["createWallet","getAddressFromPrivateKey","generateWalletFromMnemonic","getBalance","transfer","getTransaction"],gt={ethereum:[].concat(kt,["getEncryptedJsonFromPrivateKey","getWalletFromEncryptedJson","getTokenInfo","smartContractCall"]),solana:[].concat(kt,["getTokenInfo"]),bitcoin:[].concat(kt),"bitcoin-testnet":[].concat(kt),waves:[].concat(kt.filter((function(t){return"getAddressFromPrivateKey"!==t})),["getTokenInfo","smartContractCall"]),tron:[].concat(kt,["getTokenInfo","smartContractCall"])};function Tt(t){var e=xt[t];if(!e)throw new Error("Unsupported network: "+t);return e}function Et(t,e){var r;return(null==(r=gt[t])?void 0:r.includes(e))||!1}function It(){return(It=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,Et(e.network,"getBalance")){t.next=3;break}throw new Error("getBalance is not supported for "+e.network);case 3:if(r=Tt(e.network)){t.next=6;break}throw new Error("Invalid network");case 6:return t.abrupt("return",r.getBalance(E({},e)));case 9:throw t.prev=9,t.t0=t.catch(0),t.t0;case 12:case"end":return t.stop()}}),t,null,[[0,9]])})))).apply(this,arguments)}function At(){return(At=g(A().mark((function t(e){var r;return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,Et(e.network,"transfer")){t.next=3;break}throw new Error(