my-arborswap-sdk
Version:
🛠An SDK for building applications on top of Arborswap.
3 lines (2 loc) • 33.3 kB
JavaScript
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e,n,r,i,a,o,u,s,p,d=t(require("jsbi")),c=t(require("tiny-invariant")),l=(t(require("tiny-warning")),require("@ethersproject/address")),y=t(require("big.js")),f=t(require("toformat")),m=t(require("decimal.js-light")),h=require("@ethersproject/solidity"),T=require("@ethersproject/contracts"),v=require("@ethersproject/networks"),w=require("@ethersproject/providers");(o=exports.ChainId||(exports.ChainId={}))[o.ETHEREUM=1]="ETHEREUM",o[o.BSC=56]="BSC",o[o.BSC_TESTNET=97]="BSC_TESTNET",o[o.ROBURNA=158]="ROBURNA",o[o.ROBURNA_TESTNET=159]="ROBURNA_TESTNET",(u=exports.TradeType||(exports.TradeType={}))[u.EXACT_INPUT=0]="EXACT_INPUT",u[u.EXACT_OUTPUT=1]="EXACT_OUTPUT",(s=exports.PairType||(exports.PairType={}))[s.INTERNAL=0]="INTERNAL",s[s.EXTERNAL=1]="EXTERNAL",(p=exports.Rounding||(exports.Rounding={}))[p.ROUND_DOWN=0]="ROUND_DOWN",p[p.ROUND_HALF_UP=1]="ROUND_HALF_UP",p[p.ROUND_UP=2]="ROUND_UP";var x,b="0xf74E4dfd6CC39cc9Ed98cA6a3900C46E39572aE2",E=((e={})[exports.ChainId.ETHEREUM]="0xff68DFd7230a098C10D02c043B6eb8A6400aE64F",e[exports.ChainId.BSC]=b,e[exports.ChainId.BSC_TESTNET]=b,e[exports.ChainId.ROBURNA]="0x96d6578747402e13C5D76e1B35D027f635AE5C37",e[exports.ChainId.ROBURNA_TESTNET]="0x96d6578747402e13C5D76e1B35D027f635AE5C37",e),g=((n={})[exports.ChainId.ETHEREUM]="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",n[exports.ChainId.BSC]="0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73",n[exports.ChainId.BSC_TESTNET]="0x6725F303b657a9451d8BA641348b6761A6CC7a17",n[exports.ChainId.ROBURNA]="0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73",n[exports.ChainId.ROBURNA_TESTNET]="0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73",n),A="0x2e26c6a371cb994ce7b30f334480a5782dff687140d5608ced830fc138a0ed7b",I=((r={})[exports.ChainId.ETHEREUM]="0x568d807ff31b5c3ec99125e4aeff3b02ee98c66ff603152daee8b2e7d279b83b",r[exports.ChainId.BSC]=A,r[exports.ChainId.BSC_TESTNET]=A,r[exports.ChainId.ROBURNA]="0x2e26c6a371cb994ce7b30f334480a5782dff687140d5608ced830fc138a0ed7b",r[exports.ChainId.ROBURNA_TESTNET]="0x2e26c6a371cb994ce7b30f334480a5782dff687140d5608ced830fc138a0ed7b",r),k=((i={})[exports.ChainId.ETHEREUM]="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",i[exports.ChainId.BSC]="0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5",i[exports.ChainId.BSC_TESTNET]="0x2e26c6a371cb994ce7b30f334480a5782dff687140d5608ced830fc138a0ed7b",i[exports.ChainId.ROBURNA]="0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5",i[exports.ChainId.ROBURNA_TESTNET]="0x2e26c6a371cb994ce7b30f334480a5782dff687140d5608ced830fc138a0ed7b",i),C=d.BigInt(1e3),R=d.BigInt(0),N=d.BigInt(1),O=d.BigInt(2),B=d.BigInt(3),U=d.BigInt(5),_=d.BigInt(10),q=d.BigInt(100),S=d.BigInt(9875),P=d.BigInt(1e4);!function(t){t.uint8="uint8",t.uint256="uint256"}(x||(x={}));var D=((a={})[x.uint8]=d.BigInt("0xff"),a[x.uint256]=d.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),a);function M(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function F(t,e,n){return e&&M(t.prototype,e),n&&M(t,n),t}function H(){return(H=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function j(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function L(t){return(L=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function W(t,e){return(W=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function X(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}function Y(t,e,n){return(Y=X()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&W(i,n.prototype),i}).apply(null,arguments)}function V(t){var e="function"==typeof Map?new Map:void 0;return(V=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return Y(t,arguments,L(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),W(n,t)})(t)}function Q(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function J(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return z(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=t[Symbol.iterator]()).next.bind(n)}var $,G="setPrototypeOf"in Object,K=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,G&&Object.setPrototypeOf(Q(n),(this instanceof e?this.constructor:void 0).prototype),n}return j(e,t),e}(V(Error)),Z=function(t){function e(){var n;return(n=t.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,G&&Object.setPrototypeOf(Q(n),(this instanceof e?this.constructor:void 0).prototype),n}return j(e,t),e}(V(Error));function tt(t,e){d.greaterThanOrEqual(t,R)||c(!1),d.lessThanOrEqual(t,D[e])||c(!1)}function et(t){try{return l.getAddress(t)}catch(t){c(!1)}}function nt(t){return t instanceof d?t:d.BigInt(t)}function rt(t){tt(t,x.uint256);var e,n=R;if(d.greaterThan(t,B))for(n=t,e=d.add(d.divide(t,O),N);d.lessThan(e,n);)n=e,e=d.divide(d.add(d.divide(t,e),e),O);else d.notEqual(t,R)&&(n=N);return n}function it(t,e,n,r){if(n>0||c(!1),t.length<=n||c(!1),0===t.length)return t.push(e),null;var i=t.length===n;if(i&&r(t[t.length-1],e)<=0)return e;for(var a=0,o=t.length;a<o;){var u=a+o>>>1;r(t[u],e)<=0?a=u+1:o=u}return t.splice(a,0,e),i?t.pop():null}var at=function(){function t(t,e,n){tt(d.BigInt(t),x.uint8),this.decimals=t,this.symbol=e,this.name=n}t.getNativeCurrency=function(e){if(!e)throw Error("No chainId "+e);if(!(e in t.NATIVE))throw Error("No native currency defined for chainId "+e);return t.NATIVE[e]},t.getNativeCurrencySymbol=function(t){return this.getNativeCurrency(t).symbol},t.getNativeCurrencyName=function(t){return this.getNativeCurrency(t).name};var e=t.prototype;return e.getSymbol=function(e){return e&&"ETH"===(null==this?void 0:this.symbol)?t.getNativeCurrencySymbol(e):null==this?void 0:this.symbol},e.getName=function(e){return e&&"Ether"===(null==this?void 0:this.name)?t.getNativeCurrencyName(e):null==this?void 0:this.name},t}();at.ETHER=new at(18,"ETH","Ether"),at.BNB=new at(18,"BNB","BNB"),at.RBA=new at(18,"RBA","RBA"),at.NATIVE=(($={})[exports.ChainId.ETHEREUM]=at.ETHER,$[exports.ChainId.BSC]=at.BNB,$[exports.ChainId.BSC_TESTNET]=at.BNB,$[exports.ChainId.ROBURNA]=at.RBA,$[exports.ChainId.ROBURNA_TESTNET]=at.RBA,$);var ot,ut=at.ETHER,st=function(t){function e(e,n,r,i,a,o){var u;return(u=t.call(this,r,i,a)||this).chainId=e,u.address=et(n),u.projectLink=o,u}j(e,t);var n=e.prototype;return n.equals=function(t){return this===t||this.chainId===t.chainId&&this.address===t.address},n.sortsBefore=function(t){return this.chainId!==t.chainId&&c(!1),this.address===t.address&&c(!1),this.address.toLowerCase()<t.address.toLowerCase()},e}(at);function pt(t,e){return t instanceof st&&e instanceof st?t.equals(e):!(t instanceof st||e instanceof st||t!==e)}var dt,ct,lt=((ot={})[exports.ChainId.ETHEREUM]=new st(exports.ChainId.ETHEREUM,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),ot[exports.ChainId.BSC]=new st(exports.ChainId.BSC,"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",18,"WBNB","Wrapped BNB"),ot[exports.ChainId.BSC_TESTNET]=new st(exports.ChainId.BSC_TESTNET,"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd",18,"WBNB","Wrapped BNB"),ot[exports.ChainId.ROBURNA]=new st(exports.ChainId.ROBURNA,"0x86D1D92E543220Bd2F91Ec01694100043a25675A",18,"WRBA","Wrapped RBA","https://www.roburna.com"),ot[exports.ChainId.ROBURNA_TESTNET]=new st(exports.ChainId.ROBURNA_TESTNET,"0x0C6eF4f55f315C524C590572625d733491DC0921",18,"WRBA","Wrapped RBA","https://www.roburna.com"),ot),yt=f(m),ft=f(y),mt=((dt={})[exports.Rounding.ROUND_DOWN]=yt.ROUND_DOWN,dt[exports.Rounding.ROUND_HALF_UP]=yt.ROUND_HALF_UP,dt[exports.Rounding.ROUND_UP]=yt.ROUND_UP,dt),ht=((ct={})[exports.Rounding.ROUND_DOWN]=0,ct[exports.Rounding.ROUND_HALF_UP]=1,ct[exports.Rounding.ROUND_UP]=3,ct),Tt=function(){function t(t,e){void 0===e&&(e=N),this.numerator=nt(t),this.denominator=nt(e)}var e=t.prototype;return e.invert=function(){return new t(this.denominator,this.numerator)},e.add=function(e){var n=e instanceof t?e:new t(nt(e));return d.equal(this.denominator,n.denominator)?new t(d.add(this.numerator,n.numerator),this.denominator):new t(d.add(d.multiply(this.numerator,n.denominator),d.multiply(n.numerator,this.denominator)),d.multiply(this.denominator,n.denominator))},e.subtract=function(e){var n=e instanceof t?e:new t(nt(e));return d.equal(this.denominator,n.denominator)?new t(d.subtract(this.numerator,n.numerator),this.denominator):new t(d.subtract(d.multiply(this.numerator,n.denominator),d.multiply(n.numerator,this.denominator)),d.multiply(this.denominator,n.denominator))},e.lessThan=function(e){var n=e instanceof t?e:new t(nt(e));return d.lessThan(d.multiply(this.numerator,n.denominator),d.multiply(n.numerator,this.denominator))},e.equalTo=function(e){var n=e instanceof t?e:new t(nt(e));return d.equal(d.multiply(this.numerator,n.denominator),d.multiply(n.numerator,this.denominator))},e.greaterThan=function(e){var n=e instanceof t?e:new t(nt(e));return d.greaterThan(d.multiply(this.numerator,n.denominator),d.multiply(n.numerator,this.denominator))},e.multiply=function(e){var n=e instanceof t?e:new t(nt(e));return new t(d.multiply(this.numerator,n.numerator),d.multiply(this.denominator,n.denominator))},e.divide=function(e){var n=e instanceof t?e:new t(nt(e));return new t(d.multiply(this.numerator,n.denominator),d.multiply(this.denominator,n.numerator))},e.toSignificant=function(t,e,n){void 0===e&&(e={groupSeparator:""}),void 0===n&&(n=exports.Rounding.ROUND_HALF_UP),Number.isInteger(t)||c(!1),t>0||c(!1),yt.set({precision:t+1,rounding:mt[n]});var r=new yt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return r.toFormat(r.decimalPlaces(),e)},e.toFixed=function(t,e,n){return void 0===e&&(e={groupSeparator:""}),void 0===n&&(n=exports.Rounding.ROUND_HALF_UP),Number.isInteger(t)||c(!1),t>=0||c(!1),ft.DP=t,ft.RM=ht[n],new ft(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)},F(t,[{key:"quotient",get:function(){return d.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new t(d.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new t(this.numerator,this.denominator)}}]),t}(),vt=f(y),wt=function(t){function e(e,n){var r,i=nt(n);return tt(i,x.uint256),(r=t.call(this,i,d.exponentiate(_,d.BigInt(e.decimals)))||this).currency=e,r}j(e,t),e.ether=function(t){return new e(ut,t)};var n=e.prototype;return n.add=function(t){return pt(this.currency,t.currency)||c(!1),new e(this.currency,d.add(this.raw,t.raw))},n.subtract=function(t){return pt(this.currency,t.currency)||c(!1),new e(this.currency,d.subtract(this.raw,t.raw))},n.toSignificant=function(e,n,r){return void 0===e&&(e=6),void 0===r&&(r=exports.Rounding.ROUND_DOWN),t.prototype.toSignificant.call(this,e,n,r)},n.toFixed=function(e,n,r){return void 0===e&&(e=this.currency.decimals),void 0===r&&(r=exports.Rounding.ROUND_DOWN),e<=this.currency.decimals||c(!1),t.prototype.toFixed.call(this,e,n,r)},n.toExact=function(t){return void 0===t&&(t={groupSeparator:""}),vt.DP=this.currency.decimals,new vt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)},F(e,[{key:"raw",get:function(){return this.numerator}}]),e}(Tt),xt=function(t){function e(e,n){var r;return(r=t.call(this,e,n)||this).token=e,r}j(e,t);var n=e.prototype;return n.add=function(t){return this.token.equals(t.token)||c(!1),new e(this.token,d.add(this.raw,t.raw))},n.subtract=function(t){return this.token.equals(t.token)||c(!1),new e(this.token,d.subtract(this.raw,t.raw))},e}(wt),bt=function(t){function e(e,n,r,i){var a;return(a=t.call(this,i,r)||this).baseCurrency=e,a.quoteCurrency=n,a.scalar=new Tt(d.exponentiate(_,d.BigInt(e.decimals)),d.exponentiate(_,d.BigInt(n.decimals))),a}j(e,t),e.fromRoute=function(t){for(var n,r=[],i=J(t.pairs.entries());!(n=i()).done;){var a=n.value,o=a[1];r.push(t.path[a[0]].equals(o.token0)?new e(o.reserve0.currency,o.reserve1.currency,o.reserve0.raw,o.reserve1.raw):new e(o.reserve1.currency,o.reserve0.currency,o.reserve1.raw,o.reserve0.raw))}return r.slice(1).reduce((function(t,e){return t.multiply(e)}),r[0])};var n=e.prototype;return n.invert=function(){return new e(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},n.multiply=function(n){pt(this.quoteCurrency,n.baseCurrency)||c(!1);var r=t.prototype.multiply.call(this,n);return new e(this.baseCurrency,n.quoteCurrency,r.denominator,r.numerator)},n.quote=function(e){return pt(e.currency,this.baseCurrency)||c(!1),this.quoteCurrency instanceof st?new xt(this.quoteCurrency,t.prototype.multiply.call(this,e.raw).quotient):wt.ether(t.prototype.multiply.call(this,e.raw).quotient)},n.toSignificant=function(t,e,n){return void 0===t&&(t=6),this.adjusted.toSignificant(t,e,n)},n.toFixed=function(t,e,n){return void 0===t&&(t=4),this.adjusted.toFixed(t,e,n)},F(e,[{key:"raw",get:function(){return new Tt(this.numerator,this.denominator)}},{key:"adjusted",get:function(){return t.prototype.multiply.call(this,this.scalar)}}]),e}(Tt),Et={},gt=function(t,e,n){return void 0===n&&(n=exports.PairType.INTERNAL),n+"-"+t.chainId+"-"+t.address+"-"+e.address},At=function(){function t(e,n,r){void 0===r&&(r=exports.PairType.INTERNAL);var i=e.token.sortsBefore(n.token)?[e,n]:[n,e];this.liquidityToken=r===exports.PairType.INTERNAL?new st(i[0].token.chainId,t.getAddress(i[0].token,i[1].token),18,"Arbor-LPs","Arbor LPs"):new st(i[0].token.chainId,t.getAddressEx(i[0].token,i[1].token),18,"Arbor-LPs","Arbor LPs"),this.pairType=r,this.tokenAmounts=i}t.getAddress=function(t,e){var n,r,i=t.sortsBefore(e)?[t,e]:[e,t],a=i[0],o=i[1],u=gt(a,o,exports.PairType.INTERNAL);return void 0===(null===(n=Et)||void 0===n?void 0:n[u])&&(Et=H({},Et,((r={})[u]=l.getCreate2Address(E[a.chainId],h.keccak256(["bytes"],[h.pack(["address","address"],[a.address,o.address])]),I[a.chainId]),r))),Et[u]},t.getAddressEx=function(t,e){var n,r,i=t.sortsBefore(e)?[t,e]:[e,t],a=i[0],o=i[1],u=gt(a,o,exports.PairType.EXTERNAL);return void 0===(null===(n=Et)||void 0===n?void 0:n[u])&&(Et=H({},Et,((r={})[u]=l.getCreate2Address(g[a.chainId],h.keccak256(["bytes"],[h.pack(["address","address"],[a.address,o.address])]),k[a.chainId]),r))),Et[u]};var e=t.prototype;return e.involvesToken=function(t){return t.equals(this.token0)||t.equals(this.token1)},e.priceOf=function(t){return this.involvesToken(t)||c(!1),t.equals(this.token0)?this.token0Price:this.token1Price},e.reserveOf=function(t){return this.involvesToken(t)||c(!1),t.equals(this.token0)?this.reserve0:this.reserve1},e.getOutputAmount=function(e){if(this.involvesToken(e.token)||c(!1),d.equal(this.reserve0.raw,R)||d.equal(this.reserve1.raw,R))throw new K;var n=this.reserveOf(e.token),r=this.reserveOf(e.token.equals(this.token0)?this.token1:this.token0),i=d.multiply(e.raw,S),a=d.multiply(i,r.raw),o=d.add(d.multiply(n.raw,P),i),u=new xt(e.token.equals(this.token0)?this.token1:this.token0,d.divide(a,o));if(d.equal(u.raw,R))throw new Z;return[u,new t(n.add(e),r.subtract(u))]},e.getInputAmount=function(e){if(this.involvesToken(e.token)||c(!1),d.equal(this.reserve0.raw,R)||d.equal(this.reserve1.raw,R)||d.greaterThanOrEqual(e.raw,this.reserveOf(e.token).raw))throw new K;var n=this.reserveOf(e.token),r=this.reserveOf(e.token.equals(this.token0)?this.token1:this.token0),i=d.multiply(d.multiply(r.raw,e.raw),P),a=d.multiply(d.subtract(n.raw,e.raw),S),o=new xt(e.token.equals(this.token0)?this.token1:this.token0,d.add(d.divide(i,a),N));return[o,new t(r.add(o),n.subtract(e))]},e.getLiquidityMinted=function(t,e,n){t.token.equals(this.liquidityToken)||c(!1);var r,i=e.token.sortsBefore(n.token)?[e,n]:[n,e];if(i[0].token.equals(this.token0)&&i[1].token.equals(this.token1)||c(!1),d.equal(t.raw,R))r=d.subtract(rt(d.multiply(i[0].raw,i[1].raw)),C);else{var a=d.divide(d.multiply(i[0].raw,t.raw),this.reserve0.raw),o=d.divide(d.multiply(i[1].raw,t.raw),this.reserve1.raw);r=d.lessThanOrEqual(a,o)?a:o}if(!d.greaterThan(r,R))throw new Z;return new xt(this.liquidityToken,r)},e.getLiquidityValue=function(t,e,n,r,i){var a;if(void 0===r&&(r=!1),this.involvesToken(t)||c(!1),e.token.equals(this.liquidityToken)||c(!1),n.token.equals(this.liquidityToken)||c(!1),d.lessThanOrEqual(n.raw,e.raw)||c(!1),r){i||c(!1);var o=nt(i);if(d.equal(o,R))a=e;else{var u=rt(d.multiply(this.reserve0.raw,this.reserve1.raw)),s=rt(o);if(d.greaterThan(u,s)){var p=d.multiply(e.raw,d.subtract(u,s)),l=d.add(d.multiply(u,U),s),y=d.divide(p,l);a=e.add(new xt(this.liquidityToken,y))}else a=e}}else a=e;return new xt(t,d.divide(d.multiply(n.raw,this.reserveOf(t).raw),a.raw))},F(t,[{key:"token0Price",get:function(){return new bt(this.token0,this.token1,this.tokenAmounts[0].raw,this.tokenAmounts[1].raw)}},{key:"token1Price",get:function(){return new bt(this.token1,this.token0,this.tokenAmounts[1].raw,this.tokenAmounts[0].raw)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"token0",get:function(){return this.tokenAmounts[0].token}},{key:"token1",get:function(){return this.tokenAmounts[1].token}},{key:"reserve0",get:function(){return this.tokenAmounts[0]}},{key:"reserve1",get:function(){return this.tokenAmounts[1]}}]),t}(),It=function(){function t(t,e,n){t.length>0||c(!1),t.every((function(e){return e.chainId===t[0].chainId}))||c(!1),e instanceof st&&t[0].involvesToken(e)||e===ut&&t[0].involvesToken(lt[t[0].chainId])||c(!1),void 0===n||n instanceof st&&t[t.length-1].involvesToken(n)||n===ut&&t[t.length-1].involvesToken(lt[t[0].chainId])||c(!1);for(var r,i=[e instanceof st?e:lt[t[0].chainId]],a=J(t.entries());!(r=a()).done;){var o=r.value,u=o[1],s=i[o[0]];s.equals(u.token0)||s.equals(u.token1)||c(!1);var p=s.equals(u.token0)?u.token1:u.token0;i.push(p)}this.pairs=t,this.path=i,this.midPrice=bt.fromRoute(this),this.input=e,this.output=null!=n?n:i[i.length-1]}return F(t,[{key:"chainId",get:function(){return this.pairs[0].chainId}}]),t}(),kt=new Tt(q),Ct=function(t){function e(){return t.apply(this,arguments)||this}j(e,t);var n=e.prototype;return n.toSignificant=function(t,e,n){return void 0===t&&(t=5),this.multiply(kt).toSignificant(t,e,n)},n.toFixed=function(t,e,n){return void 0===t&&(t=2),this.multiply(kt).toFixed(t,e,n)},e}(Tt);function Rt(t,e){return pt(t.inputAmount.currency,e.inputAmount.currency)||c(!1),pt(t.outputAmount.currency,e.outputAmount.currency)||c(!1),t.outputAmount.equalTo(e.outputAmount)?t.inputAmount.equalTo(e.inputAmount)?0:t.inputAmount.lessThan(e.inputAmount)?-1:1:t.outputAmount.lessThan(e.outputAmount)?1:-1}function Nt(t,e){var n=Rt(t,e);return 0!==n?n:t.priceImpact.lessThan(e.priceImpact)?-1:t.priceImpact.greaterThan(e.priceImpact)?1:t.route.path.length-e.route.path.length}function Ot(t,e){return t instanceof xt?t:t.currency===ut?new xt(lt[e],t.raw):void c(!1)}function Bt(t,e){return t instanceof st?t:t===ut?lt[e]:void c(!1)}var Ut=function(){function t(t,e,n){var r,i,a,o=new Array(t.path.length),u=new Array(t.pairs.length);if(n===exports.TradeType.EXACT_INPUT){pt(e.currency,t.input)||c(!1),o[0]=Ot(e,t.chainId);for(var s=0;s<t.path.length-1;s++){var p=t.pairs[s].getOutputAmount(o[s]),d=p[1];o[s+1]=p[0],u[s]=d}}else{pt(e.currency,t.output)||c(!1),o[o.length-1]=Ot(e,t.chainId);for(var l=t.path.length-1;l>0;l--){var y=t.pairs[l-1].getInputAmount(o[l]),f=y[1];o[l-1]=y[0],u[l-1]=f}}this.route=t,this.tradeType=n,this.inputAmount=n===exports.TradeType.EXACT_INPUT?e:t.input===ut?wt.ether(o[0].raw):o[0],this.outputAmount=n===exports.TradeType.EXACT_OUTPUT?e:t.output===ut?wt.ether(o[o.length-1].raw):o[o.length-1],this.executionPrice=new bt(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.raw,this.outputAmount.raw),this.nextMidPrice=bt.fromRoute(new It(u,t.input)),this.priceImpact=(r=this.outputAmount,a=(i=t.midPrice.raw.multiply(this.inputAmount.raw)).subtract(r.raw).divide(i),new Ct(a.numerator,a.denominator))}t.exactIn=function(e,n){return new t(e,n,exports.TradeType.EXACT_INPUT)},t.exactOut=function(e,n){return new t(e,n,exports.TradeType.EXACT_OUTPUT)};var e=t.prototype;return e.minimumAmountOut=function(t){if(t.lessThan(R)&&c(!1),this.tradeType===exports.TradeType.EXACT_OUTPUT)return this.outputAmount;var e=new Tt(N).add(t).invert().multiply(this.outputAmount.raw).quotient;return this.outputAmount instanceof xt?new xt(this.outputAmount.token,e):wt.ether(e)},e.maximumAmountIn=function(t){if(t.lessThan(R)&&c(!1),this.tradeType===exports.TradeType.EXACT_INPUT)return this.inputAmount;var e=new Tt(N).add(t).multiply(this.inputAmount.raw).quotient;return this.inputAmount instanceof xt?new xt(this.inputAmount.token,e):wt.ether(e)},t.bestTradeExactIn=function(e,n,r,i,a,o,u){var s=void 0===i?{}:i,p=s.maxNumResults,d=void 0===p?3:p,l=s.maxHops,y=void 0===l?3:l;void 0===a&&(a=[]),void 0===o&&(o=n),void 0===u&&(u=[]),e.length>0||c(!1),y>0||c(!1),o===n||a.length>0||c(!1);var f=n instanceof xt?n.token.chainId:r instanceof st?r.chainId:void 0;void 0===f&&c(!1);for(var m=Ot(n,f),h=Bt(r,f),T=0;T<e.length;T++){var v=e[T];if((v.token0.equals(m.token)||v.token1.equals(m.token))&&!v.reserve0.equalTo(R)&&!v.reserve1.equalTo(R)){var w=void 0;try{w=v.getOutputAmount(m)[0]}catch(t){if(t.isInsufficientInputAmountError)continue;throw t}if(w.token.equals(h))it(u,new t(new It([].concat(a,[v]),o.currency,r),o,exports.TradeType.EXACT_INPUT),d,Nt);else if(y>1&&e.length>1){var x=e.slice(0,T).concat(e.slice(T+1,e.length));t.bestTradeExactIn(x,w,r,{maxNumResults:d,maxHops:y-1},[].concat(a,[v]),o,u)}}}return u},t.bestTradeExactOut=function(e,n,r,i,a,o,u){var s=void 0===i?{}:i,p=s.maxNumResults,d=void 0===p?3:p,l=s.maxHops,y=void 0===l?3:l;void 0===a&&(a=[]),void 0===o&&(o=r),void 0===u&&(u=[]),e.length>0||c(!1),y>0||c(!1),o===r||a.length>0||c(!1);var f=r instanceof xt?r.token.chainId:n instanceof st?n.chainId:void 0;void 0===f&&c(!1);for(var m=Ot(r,f),h=Bt(n,f),T=0;T<e.length;T++){var v=e[T];if((v.token0.equals(m.token)||v.token1.equals(m.token))&&!v.reserve0.equalTo(R)&&!v.reserve1.equalTo(R)){var w=void 0;try{w=v.getInputAmount(m)[0]}catch(t){if(t.isInsufficientReservesError)continue;throw t}if(w.token.equals(h))it(u,new t(new It([v].concat(a),n,o.currency),o,exports.TradeType.EXACT_OUTPUT),d,Nt);else if(y>1&&e.length>1){var x=e.slice(0,T).concat(e.slice(T+1,e.length));t.bestTradeExactOut(x,n,w,{maxNumResults:d,maxHops:y-1},[v].concat(a),o,u)}}}return u},t}();function _t(t){return"0x"+t.raw.toString(16)}var qt,St=function(){function t(){}return t.swapCallParameters=function(t,e){var n=t.inputAmount.currency===ut,r=t.outputAmount.currency===ut,i=t.route.pairs[0].pairType.toString();n&&r&&c(!1),!("ttl"in e)||e.ttl>0||c(!1);var a,o,u,s=et(e.recipient),p=_t(t.maximumAmountIn(e.allowedSlippage)),d=_t(t.minimumAmountOut(e.allowedSlippage)),l=t.route.path.map((function(t){return t.address})),y="ttl"in e?"0x"+(Math.floor((new Date).getTime()/1e3)+e.ttl).toString(16):"0x"+e.deadline.toString(16),f=Boolean(e.feeOnTransfer);switch(t.tradeType){case exports.TradeType.EXACT_INPUT:n?(a="swapExactETHForTokens",o=[l[l.length-1],d,s,y,i],u=p):r?(a="swapExactTokenForETH",o=[l[0],p,d,s,y,i],u="0x0"):(a="swapExactTokensForTokens",o=[l[0],l[l.length-1],p,d,s,y,i],u="0x0");break;case exports.TradeType.EXACT_OUTPUT:f&&c(!1),n?(a="swapETHForExactTokens",o=[l[1],d,s,y,i],u=p):r?(a="swapTokensForExactETH",o=[l[0],p,d,s,y,i],u="0x0"):(a="swapTokensForExactTokens",o=[l[0],l[l.length-1],p,d,s,y,i],u="0x0")}return{methodName:a,args:o,value:u}},t}(),Pt=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0In",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1In",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount0Out",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1Out",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint112",name:"reserve0",type:"uint112"},{indexed:!1,internalType:"uint112",name:"reserve1",type:"uint112"}],name:"Sync",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MINIMUM_LIQUIDITY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getReserves",outputs:[{internalType:"uint112",name:"reserve0",type:"uint112"},{internalType:"uint112",name:"reserve1",type:"uint112"},{internalType:"uint32",name:"blockTimestampLast",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"kLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"mint",outputs:[{internalType:"uint256",name:"liquidity",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"price0CumulativeLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"price1CumulativeLast",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"skim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount0Out",type:"uint256"},{internalType:"uint256",name:"amount1Out",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],Dt=[{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"}],Mt=((qt={})[exports.ChainId.ETHEREUM]={"0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A":9},qt),Ft=function(){function t(){}return t.fetchTokenData=function(t,e,n,r,i){try{var a,o,u=function(n){return new st(t,e,n,r,i)};void 0===n&&(n=w.getDefaultProvider(v.getNetwork(t)));var s="number"==typeof(null===(a=Mt)||void 0===a||null===(o=a[t])||void 0===o?void 0:o[e]);return Promise.resolve(s?u(Mt[t][e]):Promise.resolve(new T.Contract(e,Dt,n).decimals().then((function(n){var r,i,a;return Mt=H({},Mt,((a={})[t]=H({},null===(r=Mt)||void 0===r?void 0:r[t],((i={})[e]=n,i)),a)),n}))).then(u))}catch(t){return Promise.reject(t)}},t.fetchPairData=function(t,e,n){try{void 0===n&&(n=w.getDefaultProvider(v.getNetwork(t.chainId))),t.chainId!==e.chainId&&c(!1);var r=At.getAddress(t,e);return Promise.resolve(new T.Contract(r,Pt,n).getReserves()).then((function(n){var r=n[0],i=n[1],a=t.sortsBefore(e)?[r,i]:[i,r];return new At(new xt(t,a[0]),new xt(e,a[1]))}))}catch(t){return Promise.reject(t)}},t}();exports.JSBI=d,exports.Currency=at,exports.CurrencyAmount=wt,exports.ETHER=ut,exports.FACTORY_ADDRESS=b,exports.FACTORY_ADDRESS_MAP=E,exports.Fetcher=Ft,exports.Fraction=Tt,exports.INIT_CODE_HASH=A,exports.INIT_CODE_HASH_MAP=I,exports.InsufficientInputAmountError=Z,exports.InsufficientReservesError=K,exports.MINIMUM_LIQUIDITY=C,exports.Pair=At,exports.Percent=Ct,exports.Price=bt,exports.Route=It,exports.Router=St,exports.Token=st,exports.TokenAmount=xt,exports.Trade=Ut,exports.WETH=lt,exports.currencyEquals=pt,exports.inputOutputComparator=Rt,exports.tradeComparator=Nt;
//# sourceMappingURL=my-arborswap-sdk.cjs.production.min.js.map