UNPKG

multichain-controller

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.

3 lines (2 loc) 49.3 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("@bitcoinerlab/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"),b=require("@waves/waves-transactions");function w(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 x(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 k(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var o=t.apply(e,r);function s(t){x(o,n,a,s,i,"next",t)}function i(t){x(o,n,a,s,i,"throw",t)}s(void 0)}))}}function g(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 w(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)?w(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 T(){return(T=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(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}var E,A,_=(function(t){var e=function(t){var e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",s=n.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(t){i=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var a=Object.create((e&&e.prototype instanceof l?e:l).prototype),o=new T(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(a,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw o;return{value:void 0,done:!0}}for(r.method=a,r.arg=o;;){var s=r.delegate;if(s){var i=x(s,r);if(i){if(i===p)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=u(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,o),a}function u(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var p={};function l(){}function f(){}function d(){}var h={};i(h,a,(function(){return this}));var m=Object.getPrototypeOf,v=m&&m(m(I([])));v&&v!==e&&r.call(v,a)&&(h=v);var y=d.prototype=l.prototype=Object.create(h);function b(t){["next","throw","return"].forEach((function(e){i(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,e){var n;this._invoke=function(a,o){function s(){return new e((function(n,s){!function n(a,o,s,i){var c=u(t[a],t,o);if("throw"!==c.type){var p=c.arg,l=p.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,s,i)}),(function(t){n("throw",t,s,i)})):e.resolve(l).then((function(t){p.value=t,s(p)}),(function(t){return n("throw",t,s,i)}))}i(c.arg)}(a,o,n,s)}))}return n=n?n.then(s,s):s()}}function x(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,x(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=u(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,p;var a=n.arg;return a?a.done?(e[t.resultName]=a.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,p):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}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 g(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function I(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:E}}function E(){return{value:void 0,done:!0}}return f.prototype=d,i(y,"constructor",d),i(d,"constructor",f),f.displayName=i(d,s,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===f||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,i(t,s,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},b(w.prototype),i(w.prototype,o,(function(){return this})),t.AsyncIterator=w,t.async=function(e,r,n,a,o){void 0===o&&(o=Promise);var s=new w(c(e,r,n,a),o);return t.isGeneratorFunction(r)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},b(y),i(y,s,"Generator"),i(y,a,(function(){return this})),i(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=I,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(g),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return s.type="throw",s.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var i=r.call(o,"catchLoc"),c=r.call(o,"finallyLoc");if(i&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(i){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.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,p):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),p},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),g(r),p}},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;g(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:I(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(A={exports:{}}),A.exports),P=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},S=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},K=function(t,e){return new s(t).multipliedBy(new s(10).exponentiatedBy(e)).decimalPlaces(0).toNumber()},O=function(t,e){return t.map((function(t){return function(t,e){return T({},t,{amount:K(t.amount,e)})}(t,e)}))};!function(t){t.Bitcoin="btc",t.BitcoinCash="bch",t.BitcoinTestnet="btc-testnet",t.BitcoinCashTestnet="bch-testnet"}(E||(E={}));var B,U=function(){var t=k(_.mark((function t(e){var r;return _.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)}}(),L=function(t){return function(){var e=k(_.mark((function e(r,n,a,o,s){var i,c,p,l,f,d,h,m,v;return _.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=g(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(S));case 23:case"end":return e.stop()}}),e)})));return function(t,r,n,a,o){return e.apply(this,arguments)}}()},N=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"}(B||(B={}));var C={networks:B,fetchUTXO:function(t){return function(){var e=k(_.mark((function e(r,n){var a,o,s,i,c,p;return _.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=k(_.mark((function e(r,n){var a,o,s,i;return _.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(S));case 12:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()},broadcastTransaction:function(t){return function(){var e=k(_.mark((function e(r){var n,a;return _.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=k(_.mark((function e(r,n,a){var o,s,i,c,p,l,f,d,h,m,v,y,b,w,x;return _.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=T({},l,e.sent.data.data);case 22:f++,e.next=16;break;case 25:for(h=[],m=g(p);!(v=m()).done;)for(b=-1===(y=l[v.value]).transaction.block_id?0:Math.max(i-y.transaction.block_id+1,0),w=0;w<y.outputs.length;w++)(x=y.outputs[w]).recipient===r&&h.push({txHash:y.transaction.hash,amount:x.value,vOut:w,confirmations:b});return e.abrupt("return",h.filter((function(t){return 0===n||t.confirmations>=n})).sort(S));case 28:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}()}},M=function(t,e){return"https://multichain-web-proxy.herokuapp.com/electrumx-"+t+"-"+(e?"testnet":"mainnet")},F=function(t,e,r){return[].concat(P((function(){return function(t){return function(){var e=k(_.mark((function e(r,n){var a,o,s,i;return _.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=N(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 C.fetchUTXO(t?C.networks.BITCOIN_TESTNET:C.networks.BITCOIN)(e,r)})),[function(){return(n=t?E.BitcoinTestnet:E.Bitcoin,function(){var t=k(_.mark((function t(e,r){var a,o;return _.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}])},W=function(t,e,r,n){return[].concat(P((function(){return function(t){return function(){var e=k(_.mark((function e(r,n){var a,o,s;return _.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=N(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(S));case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()}(t)(e,r)}),(function(){return C.fetchUTXOs(t?C.networks.BITCOIN_TESTNET:C.networks.BITCOIN)(e,r)})),[function(){return(n=t?"BTCTEST":"BTC",function(){var t=k(_.mark((function t(e,r){var a;return _.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",O(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(S));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?E.BitcoinTestnet:E.Bitcoin,function(){var t=k(_.mark((function t(e,r,a,o){return _.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",L(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=k(_.mark((function t(r,n,a){var o,s;return _.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=M("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(S));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(P((function(){return function(t){return function(){var e=k(_.mark((function e(r){var n;return _.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=N(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 C.broadcastTransaction(t?C.networks.BITCOIN_TESTNET:C.networks.BITCOIN)(e)})),[function(){return(r=t?"BTCTEST":"BTC",function(){var t=k(_.mark((function t(e){return _.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=k(_.mark((function e(r){return _.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=E.Bitcoin,function(){var e=k(_.mark((function e(r){var n,a;return _.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t===E.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)}))},H=function t(e){if(e&&"object"==typeof e){if(e.response)return t(e.response);if(e.error)return t(e.error);if(e.message)return t(e.message);if(e.data)return t(e.data);if(e.context)return t(e.context);if(e.statusText)return t(e.statusText);try{return JSON.stringify(e)}catch(e){}}try{return"string"==typeof e?("Error: "===e.slice(0,7).toLowerCase()&&(e=e.slice(7)),e):JSON.stringify(e)}catch(e){}return String(e)},R=function(){var t=k(_.mark((function t(e){var r,n,a,o;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=g(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)}}(),G=function(){var t=k(_.mark((function t(e,r){var n,a,o;return _.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=H(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)}}(),J={buildUTXO:function(){var t=k(_.mark((function t(e,r,n,a,o,i,u){var p,l,f,d,h,m,v;return _.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),X=o.ECPairFactory(n),V=function(t,e){var n="bitcoin"===e?r.networks.bitcoin:"bitcoin-testnet"===e?r.networks.testnet:r.networks.bitcoin,a=X.fromWIF(t);return{address:r.payments.p2pkh({pubkey:a.publicKey,network:n}).address}},Y=function(){var t=k(_.mark((function t(e,r){var n,a;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=W("bitcoin"!==r,e,0),t.next=4,R(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=k(_.mark((function t(e){var r,n,a,o,u,p,l,f,d,h,m,v,y;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r="bitcoin"!==e.network,n=X.fromWIF(e.privateKey),a=c.ECPair.fromPrivateKeyBuffer(n.privateKey,"bitcoin"===e.network?c.networks.bitcoin:c.networks.testnet),o=V(e.privateKey,e.network).address,u=o,p=W(r,o,0),t.t0=i.List,t.next=9,R(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,J.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,G((function(){return R(j(r,d.toHex()))}),3);case 17:return h=t.sent,t.prev=18,t.next=21,R(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",T({},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:V,getBalance:Y,transfer:$,getTransaction:function(){var t=k(_.mark((function t(e){var r,n,a,o,i;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.hash,n="bitcoin"!==e.network,t.next=4,R(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",T({},a,{amount:i.toNumber()}));case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},Q=[{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"}],Z=["privateKey","tokenAddress","rpcUrl"],tt=function(){var t=k(_.mark((function t(e){var r,n,a,o,s,i,c,u,p,f;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.contractAddress,n=e.privateKey,a=e.abi,o=new l.ethers.providers.JsonRpcProvider(e.rpcUrl),t.next=4,o.getGasPrice();case 4:return s=t.sent,i=l.ethers.BigNumber.from(21e3),f=a||Q,n&&r?(p=new l.ethers.Wallet(n,o),c=o.getTransactionCount(p.getAddress()),u=new l.ethers.Contract(r,f,p)):n&&!r?(p=new l.ethers.Wallet(n,o),c=o.getTransactionCount(p.getAddress())):r&&!n&&(u=new l.ethers.Contract(r,f,o)),t.abrupt("return",{contract:u,signer:p,gasPrice:s,gas:i,nonce:c,providerInstance:o});case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),et={getBalance:function(){var t=k(_.mark((function t(e){var r,n,a,o,s,i,c,u;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.rpcUrl,n=e.tokenAddress,a=e.address,t.next=3,tt({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=k(_.mark((function t(e){var r,n,a,o,s,i,c,u,p,f,d,h;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.privateKey,n=e.tokenAddress,a=e.rpcUrl,o=I(e,Z),t.next=3,tt({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",T({},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=k(_.mark((function t(e){var r,n,a;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.hash,n=e.rpcUrl,t.next=3,tt({rpcUrl:n});case 3:return a=t.sent.providerInstance,t.prev=5,t.next=8,a.getTransaction(r);case 8:return t.abrupt("return",T({},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=k(_.mark((function t(e){var r;return _.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=k(_.mark((function t(e){var r;return _.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=k(_.mark((function t(e){var r,n,a,o,s,i;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.address,n=e.rpcUrl,t.next=3,tt({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:parseInt(l.ethers.utils.formatUnits(o[3],s))},t.abrupt("return",T({},i));case 15:return t.abrupt("return");case 16:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),smartContractCall:function(){var t=k(_.mark((function t(e){var r,n,a,o,s,i;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,tt({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)}}()},rt=v.struct([v.blob(32,"mint"),v.blob(32,"owner"),v.nu64("amount"),v.blob(93)]),nt={"mainnet-beta":101,testnet:102,devnet:103},at=function(t){return function(t){return new f.Connection(t)}(t)},ot=function(){var t=k(_.mark((function t(e){var r,n,a,o;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=at(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?rt.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)}}(),st=function(){var t=k(_.mark((function t(e){var r,n,a,o,s,i,c,u,p;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=at(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);case 26:return t.abrupt("return",T({},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)}}(),it=function(){var t=k(_.mark((function t(e){var r;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=at(e.rpcUrl),t.prev=1,t.next=4,r.getTransaction(e.hash);case 4:return t.abrupt("return",T({},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)}}(),ct=function(){var t=k(_.mark((function t(e){var r,n,a;return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=at(e.rpcUrl),t.next=4,ut(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,t.abrupt("return",T({},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)}}(),ut=function(){var t=k(_.mark((function t(e){var r;return _.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===nt[e]})));case 6:return t.abrupt("return",[]);case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),pt={getBalance:ot,createWallet:function(t){var r=t||"m/44'/501'/0'/0'",n=e.generateMnemonic(),a=e.mnemonicToSeedSync(n),o=m.derivePath(r,a).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).key,s=f.Keypair.fromSeed(o);return{address:s.publicKey.toBase58(),privateKey:h.encode(s.secretKey),mnemonic:t}},transfer:st,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:it,getTokenInfo:ct},lt=function(){var t=k(_.mark((function t(e){var r,n;return _.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,b.nodeInteraction.assetBalance(e.tokenAddress,e.address,e.rpcUrl);case 6:return r=t.sent,t.next=9,ht({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,b.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)}}(),ft=function(){var t=k(_.mark((function t(e){var r,n,a;return _.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,ht({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:vt(e.recipientAddress)},a=b.transfer(n,e.privateKey),t.next=15,b.nodeInteraction.broadcast(a,e.rpcUrl);case 15:return t.abrupt("return",T({},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)}}(),dt=function(){var t=k(_.mark((function t(e){return _.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,b.nodeInteraction.transactionById(e.hash,e.rpcUrl);case 5:return t.abrupt("return",T({},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)}}(),ht=function(){var t=k(_.mark((function t(e){var r,n;return _.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 t.abrupt("return",T({},{name:(n=t.sent.data).name,symbol:n.name,address:n.assetId,decimals:n.decimals,totalSupply:n.quantity}));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 mt(t){return"testnet"===t?y.TEST_NET_CHAIN_ID:"mainnet"===t?y.MAIN_NET_CHAIN_ID:void 0}function vt(t){return t.startsWith("3P")?y.MAIN_NET_CHAIN_ID:y.TEST_NET_CHAIN_ID}var yt={getBalance:lt,createWallet:function(t){var e=y.randomSeed(),r=mt(t);return{address:y.address(e,r),privateKey:y.privateKey(e),mnemonic:e}},generateWalletFromMnemonic:function(t,e){var r=mt(e);return{address:y.address(t,r),privateKey:y.privateKey(t),mnemonic:t}},transfer:ft,getTransaction:dt,getTokenInfo:ht,smartContractCall:function(){var t=k(_.mark((function t(e){var r,n,a,o;return _.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:vt(e.contractAddress)},a=b.invokeScript(n,e.privateKey),t.next=5,b.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,b.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)}}()};function bt(){return(bt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=7;break}return t.next=4,et.getBalance(T({},e));case 4:return t.abrupt("return",t.sent);case 7:if("solana"!==e.network){t.next=13;break}return t.next=10,pt.getBalance(T({},e));case 10:return t.abrupt("return",t.sent);case 13:if(!e.network.includes("bitcoin")){t.next=19;break}return t.next=16,z.getBalance(e.address,e.network);case 16:return t.abrupt("return",t.sent);case 19:if("waves"!==e.network){t.next=23;break}return t.next=22,yt.getBalance(T({},e));case 22:return t.abrupt("return",t.sent);case 23:throw new Error("Invalid network");case 26:throw t.prev=26,t.t0=t.catch(0),t.t0;case 29:case"end":return t.stop()}}),t,null,[[0,26]])})))).apply(this,arguments)}function wt(){return(wt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=7;break}return t.next=4,et.transfer(T({},e));case 4:return t.abrupt("return",t.sent);case 7:if("solana"!==e.network){t.next=13;break}return t.next=10,pt.transfer(T({},e));case 10:return t.abrupt("return",t.sent);case 13:if(!e.network.includes("bitcoin")){t.next=19;break}return t.next=16,z.transfer(T({},e));case 16:return t.abrupt("return",t.sent);case 19:if("waves"!==e.network){t.next=23;break}return t.next=22,yt.transfer(T({},e));case 22:return t.abrupt("return",t.sent);case 23:throw new Error("Invalid network");case 26:throw t.prev=26,t.t0=t.catch(0),t.t0;case 29:case"end":return t.stop()}}),t,null,[[0,26]])})))).apply(this,arguments)}function xt(){return(xt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=7;break}return t.next=4,et.getTransaction(T({},e));case 4:return t.abrupt("return",t.sent);case 7:if("solana"!==e.network){t.next=13;break}return t.next=10,pt.getTransaction(T({},e));case 10:return t.abrupt("return",t.sent);case 13:if(!e.network.includes("bitcoin")){t.next=19;break}return t.next=16,z.getTransaction(T({},e));case 16:return t.abrupt("return",t.sent);case 19:if("waves"!==e.network){t.next=23;break}return t.next=22,yt.getTransaction(T({},e));case 22:return t.abrupt("return",t.sent);case 23:throw new Error("Invalid network");case 26:throw t.prev=26,t.t0=t.catch(0),t.t0;case 29:case"end":return t.stop()}}),t,null,[[0,26]])})))).apply(this,arguments)}function kt(){return(kt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=5;break}return t.next=4,et.getEncryptedJsonFromPrivateKey(T({},e));case 4:return t.abrupt("return",t.sent);case 5:throw new Error("Invalid network");case 8:throw t.prev=8,t.t0=t.catch(0),t.t0;case 11:case"end":return t.stop()}}),t,null,[[0,8]])})))).apply(this,arguments)}function gt(){return(gt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=5;break}return t.next=4,et.getWalletFromEncryptedJson(T({},e));case 4:return t.abrupt("return",t.sent);case 5:throw new Error("Invalid network");case 8:throw t.prev=8,t.t0=t.catch(0),t.t0;case 11:case"end":return t.stop()}}),t,null,[[0,8]])})))).apply(this,arguments)}function Tt(){return(Tt=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=7;break}return t.next=4,et.getTokenInfo(T({},e));case 4:return t.abrupt("return",t.sent);case 7:if("solana"!==e.network){t.next=11;break}return t.abrupt("return",pt.getTokenInfo(T({},e)));case 11:if("waves"!==e.network){t.next=13;break}return t.abrupt("return",yt.getTokenInfo(T({},e)));case 13:throw new Error("Invalid network");case 16:throw t.prev=16,t.t0=t.catch(0),t.t0;case 19:case"end":return t.stop()}}),t,null,[[0,16]])})))).apply(this,arguments)}function It(){return(It=k(_.mark((function t(e){return _.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"ethereum"!==e.network){t.next=7;break}return t.next=4,et.smartContractCall(T({},e));case 4:return t.abrupt("return",t.sent);case 7:if("waves"!==e.network){t.next=13;break}return t.next=10,yt.smartContractCall(T({},e));case 10:return t.abrupt("return",t.sent);case 13:throw new Error("Only Ethereum and Waves is supported at this time");case 14:t.next=19;break;case 16:throw t.prev=16,t.t0=t.catch(0),t.t0;case 19:case"end":return t.stop()}}),t,null,[[0,16]])})))).apply(this,arguments)}exports.createWallet=function(t){try{if("ethereum"===t.network)return et.createWallet(t.derivationPath);if("solana"===t.network)return pt.createWallet(t.derivationPath);if(t.network.includes("bitcoin"))return z.createWallet(t.network,t.derivationPath);if("waves"===t.network)return yt.createWallet(t.cluster);throw new Error("Invalid network")}catch(t){throw t}},exports.generateMnemonic=function(t){return void 0===t&&(t=12),e.generateMnemonic(t/3*32)},exports.generateWalletFromMnemonic=function(t){try{if("ethereum"===t.network)return et.generateWalletFromMnemonic(t.mnemonic,t.derivationPath);if("solana"===t.network)return pt.generateWalletFromMnemonic(t.mnemonic,t.derivationPath);if(t.network.includes("bitcoin"))return z.generateWalletFromMnemonic(t.network,t.mnemonic,t.derivationPath);if("waves"===t.network)return yt.generateWalletFromMnemonic(t.mnemonic,t.cluster);throw new Error("Invalid network")}catch(t){throw t}},exports.getAddressFromPrivateKey=function(t){try{if("ethereum"===t.network)return et.getAddressFromPrivateKey(t.privateKey);if("solana"===t.network)return pt.getAddressFromPrivateKey(t.privateKey);if(t.network.includes("bitcoin"))return z.getAddressFromPrivateKey(t.privateKey,t.network);throw new Error("Invalid network")}catch(t){throw t}},exports.getBalance=function(t){return bt.apply(this,arguments)},exports.getEncryptedJsonFromPrivateKey=function(t){return kt.apply(this,arguments)},exports.getTokenInfo=function(t){return Tt.apply(this,arguments)},exports.getTransaction=function(t){return xt.apply(this,arguments)},exports.getWalletFromEncryptedJson=function(t){return gt.apply(this,arguments)},exports.smartContractCall=function(t){return It.apply(this,arguments)},exports.transfer=function(t){return wt.apply(this,arguments)}; //# sourceMappingURL=multichain-controller.cjs.production.min.js.map