@galacticcouncil/sdk 0.0.1-beta.2 → 0.0.1-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +110 -0
  2. package/dist/index.esm.js +2 -0
  3. package/dist/index.esm.js.map +7 -0
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +7 -0
  6. package/dist/types/api/index.d.ts +1 -0
  7. package/{types/api/trader.d.ts → dist/types/api/trade/executor.d.ts} +0 -0
  8. package/{types/api → dist/types/api/trade}/router.d.ts +3 -3
  9. package/{types → dist/types}/client/capi.d.ts +0 -0
  10. package/{types → dist/types}/client/index.d.ts +0 -0
  11. package/{types → dist/types}/client/polkadot.d.ts +0 -0
  12. package/{types → dist/types}/client/types.d.ts +0 -0
  13. package/{types → dist/types}/index.d.ts +2 -2
  14. package/{types → dist/types}/pool/index.d.ts +0 -0
  15. package/{types → dist/types}/pool/polkadotPoolService.d.ts +0 -0
  16. package/{types → dist/types}/pool/poolFactory.d.ts +0 -0
  17. package/{types/pool/xyk/math/bundler.d.ts → dist/types/pool/xyk/xykMath.d.ts} +0 -0
  18. package/{types → dist/types}/pool/xyk/xykPolkadotClient.d.ts +0 -0
  19. package/{types → dist/types}/pool/xyk/xykPool.d.ts +0 -0
  20. package/{types → dist/types}/suggester/bfs.d.ts +0 -0
  21. package/{types → dist/types}/suggester/graph.d.ts +0 -0
  22. package/{types → dist/types}/suggester/index.d.ts +0 -0
  23. package/{types → dist/types}/suggester/suggester.d.ts +0 -0
  24. package/{types → dist/types}/types.d.ts +0 -0
  25. package/{types → dist/types}/utils/bignumber.d.ts +0 -0
  26. package/{types → dist/types}/utils/math.d.ts +0 -0
  27. package/{types → dist/types}/utils/queue.d.ts +0 -0
  28. package/{types → dist/types}/utils/stack.d.ts +0 -0
  29. package/{types → dist/types}/utils/traversal/bfs.d.ts +0 -0
  30. package/package.json +5 -7
  31. package/cjs/hydra_dx_wasm_bg-ZX7K4FM7.wasm +0 -0
  32. package/cjs/index.js +0 -2
  33. package/cjs/index.js.map +0 -7
  34. package/esm/hydra_dx_wasm_bg-ZX7K4FM7.wasm +0 -0
  35. package/esm/index.js +0 -2
  36. package/esm/index.js.map +0 -7
  37. package/types/api/index.d.ts +0 -1
  38. package/types/pool/xyk/math/nodejs.d.ts +0 -9
package/README.md ADDED
@@ -0,0 +1,110 @@
1
+ <h1><code>Galactic SDK</code></h1>
2
+ <p>
3
+ <a href="https://badge.fury.io/js/@galacticcouncil%2Fsdk"><img src="https://badge.fury.io/js/@galacticcouncil%2Fsdk.svg" alt="npm version" height="18"></a>
4
+ </p>
5
+ Galactic SDK is collection of components crafted to ease Basilisk & HydraDX chains integration.
6
+ <br />
7
+ <br />
8
+ Table of content:
9
+
10
+ - [Installation](#installation)
11
+ - [Components](#components)
12
+ - [Router](#router)
13
+ - [Trader](#trader)
14
+ - [Examples](#examples)
15
+ - [Packaging](#packaging)
16
+ - [Roadmap](#roadmap)
17
+ - [Issue reporting](#issue-reporting)
18
+
19
+ ## Installation
20
+
21
+ Install with [npm](https://www.npmjs.com/):
22
+
23
+ `npm install @galacticcouncil/sdk`
24
+
25
+ ## Components
26
+
27
+ ### Router
28
+
29
+ Off-chain optimization of orders across pools for best price execution. Router does not perform any on-chain transations.
30
+
31
+ #### API
32
+
33
+ ```typescript
34
+ getPools(): PoolBase[]
35
+ getAllAssets(): PoolAsset[]
36
+ getAssetPairs(token: string): PoolAsset[]
37
+ getAllPaths(tokenIn: string, tokenOut: string): Hop[][]
38
+ getBestSellPrice(tokenIn: string, tokenOut: string, amountIn: BigNumber): Swap[]
39
+ getBestBuyPrice(tokenIn: string, tokenOut: string, amountOut: BigNumber): Swap[]
40
+ ```
41
+
42
+ For type signature visit [types.ts](src/types.ts)<br />
43
+
44
+ #### Usage
45
+
46
+ ```typescript
47
+ // Import
48
+ import { ApiPromise, WsProvider } from '@polkadot/api';
49
+ import { PolkadotPoolService } from '@galactic/pool';
50
+ import { Router } from '@galactic/api';
51
+
52
+ // Initialize Polkadot API
53
+ const wsProvider = new WsProvider('wss://rpc.basilisk.cloud');
54
+ const api = await ApiPromise.create({ provider: wsProvider });
55
+
56
+ // Initialize Router
57
+ const poolService = new PolkadotPoolService(api);
58
+ const router = new Router(poolService);
59
+
60
+ // Do something
61
+ const result = await router.getAllAssets();
62
+ console.log(result);
63
+ ```
64
+
65
+ ### Trader
66
+
67
+ On-chain transaction executor using data from router to perform best possible trade.
68
+
69
+ Not supported yet. 🛠
70
+
71
+ ## Examples
72
+
73
+ SDK Examples and testing helpers.
74
+
75
+ ### Run
76
+
77
+ Run: `$ npx tsx ./test/script/examples/${{examplePackage}}/${{exampleName}}.ts` with valid example package & name.
78
+
79
+ To demonstrate full working examples on real chain see [script](test/script/examples) section.
80
+
81
+ ## Packaging
82
+
83
+ - api - Trade api, ...
84
+ - client - Substrate chain based clients
85
+ - pool - Pool specific logic, math, client
86
+ - suggester - Route proposing, graph utils & algorithms, BFS, DFS
87
+ - utils - bignumber, math, collections
88
+
89
+ ## Roadmap
90
+
91
+ Component list and current status ⬇️
92
+
93
+ - 🧪 Done
94
+ - 🛠 Work in progress
95
+ - ⏳ Planning to build
96
+
97
+ | Name | Type | |
98
+ | -------- | :----: | --: |
99
+ | Router | API | 🧪 |
100
+ | Trader | API | 🛠 |
101
+ | Polkadot | Client | 🧪 |
102
+ | Capi | Client | ⏳ |
103
+ | XYK | Pool | 🧪 |
104
+ | LBP | Pool | ⏳ |
105
+ | Stable | Pool | ⏳ |
106
+ | Omni | Pool | ⏳ |
107
+
108
+ ## Issue reporting
109
+
110
+ In case of unexpected sdk behaviour, please create well-written issue [here](https://https://github.com/nohaapav/router-sdk/issues/new). It makes it easier to find & fix the problem accordingly.
@@ -0,0 +1,2 @@
1
+ var re=Object.defineProperty;var ne=(g,r)=>{for(var a in r)re(g,a,{get:r[a],enumerable:!0})};var oe=(()=>{for(var g=new Uint8Array(128),r=0;r<64;r++)g[r<26?r+65:r<52?r+71:r<62?r-4:r*4-205]=r;return a=>{for(var p=a.length,o=new Uint8Array((p-(a[p-1]=="=")-(a[p-2]=="="))*3/4|0),_=0,h=0;_<p;){var B=g[a.charCodeAt(_++)],P=g[a.charCodeAt(_++)],v=g[a.charCodeAt(_++)],b=g[a.charCodeAt(_++)];o[h++]=B<<2|P>>4,o[h++]=P<<4|v>>2,o[h++]=v<<6|b}return o}})();var BA=class{constructor(r=1/0){this.capacity=r}storage=[];enqueue(r){if(this.size()===this.capacity)throw Error("Queue has reached max capacity, you cannot add more items");this.storage.push(r)}dequeue(){return this.storage.shift()}size(){return this.storage.length}};var cA=class{isNotVisited(r,a){let p=!0;return a.forEach(o=>{o[0]===r&&(p=!1)}),p}findPaths(r,a,p){let o=[],_=new BA,h=[];for(h.push([a,""]),_.enqueue(h);_.size()>0;){let B=_.dequeue();if(B==null)return o;let P=B[B.length-1];(p===null||P[0]===p)&&o.push(B),r[P[0]].forEach(b=>{if(this.isNotVisited(b[0],B)){let T=[...B];T.push(b),_.enqueue(T)}})}return o}buildAndPopulateGraph(r,a){let p=[];for(let o=0;o<r.length;o++)p.push([]);for(let[o,_,h]of a){let B=parseInt(_),P=parseInt(h);p[B].push([P,o])}return p}};function MA(g){let r={};for(let a of g){let p=a.tokens.length;for(let o=0;o<p;o++){r[a.tokens[o].id]||(r[a.tokens[o].id]=[]);for(let _=0;_<p;_++){if(o==_)continue;let h=[a.address,a.tokens[o].id,a.tokens[_].id];r[a.tokens[o].id].push(h)}}}return r}var uA=class{getProposals(r,a,p){let o=MA(p),_=Object.keys(o),h=_.map(b=>o[b]).flat(),B=new cA,P=B.buildAndPopulateGraph(_,h),v=B.findPaths(P,parseInt(r),a?parseInt(a):null);return this.parsePaths(v)}parsePaths(r){let a=[];for(let p of r){let o=[];for(let _=0;_<p.length;_++){let h=p[_],B=p[_+1];if(B==null)break;o.push(this.toEdge(h,B))}a.push(o)}return a}toEdge(r,a){return[a[1],r[0].toString(),a[0].toString()]}};var fA=class{api;constructor(r){this.api=r}getStorageKey(r,a){return r[0].toHuman()[a]}getStorageEntryArray(r){return r[1].toHuman()}async getAssetMetadata(r){return await this.api.query.assetRegistry.assetMetadataMap(r)}async getSystemAccountBalance(r){let{data:{free:a}}=await this.api.query.system.account(r);return a.toString()}async getTokenAccountBalance(r,a){let{free:p}=await this.api.query.tokens.accounts(r,a);return p.toString()}};var hA=(o=>(o.XYK="XYK",o.LBP="LBP",o.Stable="Stable",o.Omni="Omni",o))(hA||{});var wA=class extends fA{async getPools(){let a=(await this.api.query.xyk.poolAssets.entries()).map(async p=>{let o=this.getStorageKey(p,0),_=this.getStorageEntryArray(p),h=await this.getPoolTokens(o,_);return{address:o,type:"XYK",swapFee:this.getSwapFee(),tokens:h}});return Promise.all(a)}async getPoolTokens(r,a){let p=a.map(async o=>{let _=await this.getBalance(r,o),B=(await super.getAssetMetadata(o)).toHuman();return{id:o,balance:_,decimals:B?B.decimals:"12",symbol:B?B.symbol:"BSX"}});return Promise.all(p)}getBalance(r,a){return a==="0"?this.getSystemAccountBalance(r):this.getTokenAccountBalance(r,a)}getSwapFee(){let r=this.api.consts.xyk.getExchangeFee;return(r[0].toNumber()/r[1].toNumber()*100).toString()}};var kA=class{api;constructor(r){this.api=r}async getPools(){let r=[],a=await new wA(this.api).getPools();return r.push(a),r.flat()}};var je=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,GA=Math.ceil,V=Math.floor,K="[BigNumber Error] ",XA=K+"Number primitive has more than 15 significant digits: ",U=1e14,E=14,KA=9007199254740991,RA=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],tA=1e7,I=1e9;function zA(g){var r,a,p,o=d.prototype={constructor:d,toString:null,valueOf:null},_=new d(1),h=20,B=4,P=-7,v=21,b=-1e7,T=1e7,M=!1,aA=1,eA=0,OA={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},nA="0123456789abcdefghijklmnopqrstuvwxyz",NA=!0;function d(A,e){var t,c,j,s,f,n,i,u,l=this;if(!(l instanceof d))return new d(A,e);if(e==null){if(A&&A._isBigNumber===!0){l.s=A.s,!A.c||A.e>T?l.c=l.e=null:A.e<b?l.c=[l.e=0]:(l.e=A.e,l.c=A.c.slice());return}if((n=typeof A=="number")&&A*0==0){if(l.s=1/A<0?(A=-A,-1):1,A===~~A){for(s=0,f=A;f>=10;f/=10,s++);s>T?l.c=l.e=null:(l.e=s,l.c=[A]);return}u=String(A)}else{if(!je.test(u=String(A)))return p(l,u,n);l.s=u.charCodeAt(0)==45?(u=u.slice(1),-1):1}(s=u.indexOf("."))>-1&&(u=u.replace(".","")),(f=u.search(/e/i))>0?(s<0&&(s=f),s+=+u.slice(f+1),u=u.substring(0,f)):s<0&&(s=u.length)}else{if(O(e,2,nA.length,"Base"),e==10&&NA)return l=new d(A),H(l,h+l.e+1,B);if(u=String(A),n=typeof A=="number"){if(A*0!=0)return p(l,u,n,e);if(l.s=1/A<0?(u=u.slice(1),-1):1,d.DEBUG&&u.replace(/^0\.0*|\./,"").length>15)throw Error(XA+A)}else l.s=u.charCodeAt(0)===45?(u=u.slice(1),-1):1;for(t=nA.slice(0,e),s=f=0,i=u.length;f<i;f++)if(t.indexOf(c=u.charAt(f))<0){if(c=="."){if(f>s){s=i;continue}}else if(!j&&(u==u.toUpperCase()&&(u=u.toLowerCase())||u==u.toLowerCase()&&(u=u.toUpperCase()))){j=!0,f=-1,s=0;continue}return p(l,String(A),n,e)}n=!1,u=a(u,e,10,l.s),(s=u.indexOf("."))>-1?u=u.replace(".",""):s=u.length}for(f=0;u.charCodeAt(f)===48;f++);for(i=u.length;u.charCodeAt(--i)===48;);if(u=u.slice(f,++i)){if(i-=f,n&&d.DEBUG&&i>15&&(A>KA||A!==V(A)))throw Error(XA+l.s*A);if((s=s-f-1)>T)l.c=l.e=null;else if(s<b)l.c=[l.e=0];else{if(l.e=s,l.c=[],f=(s+1)%E,s<0&&(f+=E),f<i){for(f&&l.c.push(+u.slice(0,f)),i-=E;f<i;)l.c.push(+u.slice(f,f+=E));f=E-(u=u.slice(f)).length}else f-=i;for(;f--;u+="0");l.c.push(+u)}}else l.c=[l.e=0]}d.clone=zA,d.ROUND_UP=0,d.ROUND_DOWN=1,d.ROUND_CEIL=2,d.ROUND_FLOOR=3,d.ROUND_HALF_UP=4,d.ROUND_HALF_DOWN=5,d.ROUND_HALF_EVEN=6,d.ROUND_HALF_CEIL=7,d.ROUND_HALF_FLOOR=8,d.EUCLID=9,d.config=d.set=function(A){var e,t;if(A!=null)if(typeof A=="object"){if(A.hasOwnProperty(e="DECIMAL_PLACES")&&(t=A[e],O(t,0,I,e),h=t),A.hasOwnProperty(e="ROUNDING_MODE")&&(t=A[e],O(t,0,8,e),B=t),A.hasOwnProperty(e="EXPONENTIAL_AT")&&(t=A[e],t&&t.pop?(O(t[0],-I,0,e),O(t[1],0,I,e),P=t[0],v=t[1]):(O(t,-I,I,e),P=-(v=t<0?-t:t))),A.hasOwnProperty(e="RANGE"))if(t=A[e],t&&t.pop)O(t[0],-I,-1,e),O(t[1],1,I,e),b=t[0],T=t[1];else if(O(t,-I,I,e),t)b=-(T=t<0?-t:t);else throw Error(K+e+" cannot be zero: "+t);if(A.hasOwnProperty(e="CRYPTO"))if(t=A[e],t===!!t)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))M=t;else throw M=!t,Error(K+"crypto unavailable");else M=t;else throw Error(K+e+" not true or false: "+t);if(A.hasOwnProperty(e="MODULO_MODE")&&(t=A[e],O(t,0,9,e),aA=t),A.hasOwnProperty(e="POW_PRECISION")&&(t=A[e],O(t,0,I,e),eA=t),A.hasOwnProperty(e="FORMAT"))if(t=A[e],typeof t=="object")OA=t;else throw Error(K+e+" not an object: "+t);if(A.hasOwnProperty(e="ALPHABET"))if(t=A[e],typeof t=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(t))NA=t.slice(0,10)=="0123456789",nA=t;else throw Error(K+e+" invalid: "+t)}else throw Error(K+"Object expected: "+A);return{DECIMAL_PLACES:h,ROUNDING_MODE:B,EXPONENTIAL_AT:[P,v],RANGE:[b,T],CRYPTO:M,MODULO_MODE:aA,POW_PRECISION:eA,FORMAT:OA,ALPHABET:nA}},d.isBigNumber=function(A){if(!A||A._isBigNumber!==!0)return!1;if(!d.DEBUG)return!0;var e,t,c=A.c,j=A.e,s=A.s;A:if({}.toString.call(c)=="[object Array]"){if((s===1||s===-1)&&j>=-I&&j<=I&&j===V(j)){if(c[0]===0){if(j===0&&c.length===1)return!0;break A}if(e=(j+1)%E,e<1&&(e+=E),String(c[0]).length==e){for(e=0;e<c.length;e++)if(t=c[e],t<0||t>=U||t!==V(t))break A;if(t!==0)return!0}}}else if(c===null&&j===null&&(s===null||s===1||s===-1))return!0;throw Error(K+"Invalid BigNumber: "+A)},d.maximum=d.max=function(){return UA(arguments,o.lt)},d.minimum=d.min=function(){return UA(arguments,o.gt)},d.random=function(){var A=9007199254740992,e=Math.random()*A&2097151?function(){return V(Math.random()*A)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(t){var c,j,s,f,n,i=0,u=[],l=new d(_);if(t==null?t=h:O(t,0,I),f=GA(t/E),M)if(crypto.getRandomValues){for(c=crypto.getRandomValues(new Uint32Array(f*=2));i<f;)n=c[i]*131072+(c[i+1]>>>11),n>=9e15?(j=crypto.getRandomValues(new Uint32Array(2)),c[i]=j[0],c[i+1]=j[1]):(u.push(n%1e14),i+=2);i=f/2}else if(crypto.randomBytes){for(c=crypto.randomBytes(f*=7);i<f;)n=(c[i]&31)*281474976710656+c[i+1]*1099511627776+c[i+2]*4294967296+c[i+3]*16777216+(c[i+4]<<16)+(c[i+5]<<8)+c[i+6],n>=9e15?crypto.randomBytes(7).copy(c,i):(u.push(n%1e14),i+=7);i=f/7}else throw M=!1,Error(K+"crypto unavailable");if(!M)for(;i<f;)n=e(),n<9e15&&(u[i++]=n%1e14);for(f=u[--i],t%=E,f&&t&&(n=RA[E-t],u[i]=V(f/n)*n);u[i]===0;u.pop(),i--);if(i<0)u=[s=0];else{for(s=-1;u[0]===0;u.splice(0,1),s-=E);for(i=1,n=u[0];n>=10;n/=10,i++);i<E&&(s-=E-i)}return l.e=s,l.c=u,l}}(),d.sum=function(){for(var A=1,e=arguments,t=new d(e[0]);A<e.length;)t=t.plus(e[A++]);return t},a=function(){var A="0123456789";function e(t,c,j,s){for(var f,n=[0],i,u=0,l=t.length;u<l;){for(i=n.length;i--;n[i]*=c);for(n[0]+=s.indexOf(t.charAt(u++)),f=0;f<n.length;f++)n[f]>j-1&&(n[f+1]==null&&(n[f+1]=0),n[f+1]+=n[f]/j|0,n[f]%=j)}return n.reverse()}return function(t,c,j,s,f){var n,i,u,l,m,w,k,q,N=t.indexOf("."),$=h,y=B;for(N>=0&&(l=eA,eA=0,t=t.replace(".",""),q=new d(c),w=q.pow(t.length-N),eA=l,q.c=e(Z(C(w.c),w.e,"0"),10,j,A),q.e=q.c.length),k=e(t,c,j,f?(n=nA,A):(n=A,nA)),u=l=k.length;k[--l]==0;k.pop());if(!k[0])return n.charAt(0);if(N<0?--u:(w.c=k,w.e=u,w.s=s,w=r(w,q,$,y,j),k=w.c,m=w.r,u=w.e),i=u+$+1,N=k[i],l=j/2,m=m||i<0||k[i+1]!=null,m=y<4?(N!=null||m)&&(y==0||y==(w.s<0?3:2)):N>l||N==l&&(y==4||m||y==6&&k[i-1]&1||y==(w.s<0?8:7)),i<1||!k[0])t=m?Z(n.charAt(1),-$,n.charAt(0)):n.charAt(0);else{if(k.length=i,m)for(--j;++k[--i]>j;)k[i]=0,i||(++u,k=[1].concat(k));for(l=k.length;!k[--l];);for(N=0,t="";N<=l;t+=n.charAt(k[N++]));t=Z(t,u,n.charAt(0))}return t}}(),r=function(){function A(c,j,s){var f,n,i,u,l=0,m=c.length,w=j%tA,k=j/tA|0;for(c=c.slice();m--;)i=c[m]%tA,u=c[m]/tA|0,f=k*i+u*w,n=w*i+f%tA*tA+l,l=(n/s|0)+(f/tA|0)+k*u,c[m]=n%s;return l&&(c=[l].concat(c)),c}function e(c,j,s,f){var n,i;if(s!=f)i=s>f?1:-1;else for(n=i=0;n<s;n++)if(c[n]!=j[n]){i=c[n]>j[n]?1:-1;break}return i}function t(c,j,s,f){for(var n=0;s--;)c[s]-=n,n=c[s]<j[s]?1:0,c[s]=n*f+c[s]-j[s];for(;!c[0]&&c.length>1;c.splice(0,1));}return function(c,j,s,f,n){var i,u,l,m,w,k,q,N,$,y,x,S,dA,IA,SA,z,lA,W=c.s==j.s?1:-1,G=c.c,F=j.c;if(!G||!G[0]||!F||!F[0])return new d(!c.s||!j.s||(G?F&&G[0]==F[0]:!F)?NaN:G&&G[0]==0||!F?W*0:W/0);for(N=new d(W),$=N.c=[],u=c.e-j.e,W=s+u+1,n||(n=U,u=L(c.e/E)-L(j.e/E),W=W/E|0),l=0;F[l]==(G[l]||0);l++);if(F[l]>(G[l]||0)&&u--,W<0)$.push(1),m=!0;else{for(IA=G.length,z=F.length,l=0,W+=2,w=V(n/(F[0]+1)),w>1&&(F=A(F,w,n),G=A(G,w,n),z=F.length,IA=G.length),dA=z,y=G.slice(0,z),x=y.length;x<z;y[x++]=0);lA=F.slice(),lA=[0].concat(lA),SA=F[0],F[1]>=n/2&&SA++;do{if(w=0,i=e(F,y,z,x),i<0){if(S=y[0],z!=x&&(S=S*n+(y[1]||0)),w=V(S/SA),w>1)for(w>=n&&(w=n-1),k=A(F,w,n),q=k.length,x=y.length;e(k,y,q,x)==1;)w--,t(k,z<q?lA:F,q,n),q=k.length,i=1;else w==0&&(i=w=1),k=F.slice(),q=k.length;if(q<x&&(k=[0].concat(k)),t(y,k,x,n),x=y.length,i==-1)for(;e(F,y,z,x)<1;)w++,t(y,z<x?lA:F,x,n),x=y.length}else i===0&&(w++,y=[0]);$[l++]=w,y[0]?y[x++]=G[dA]||0:(y=[G[dA]],x=1)}while((dA++<IA||y[0]!=null)&&W--);m=y[0]!=null,$[0]||$.splice(0,1)}if(n==U){for(l=1,W=$[0];W>=10;W/=10,l++);H(N,s+(N.e=l+u*E-1)+1,f,m)}else N.e=u,N.r=+m;return N}}();function FA(A,e,t,c){var j,s,f,n,i;if(t==null?t=B:O(t,0,8),!A.c)return A.toString();if(j=A.c[0],f=A.e,e==null)i=C(A.c),i=c==1||c==2&&(f<=P||f>=v)?EA(i,f):Z(i,f,"0");else if(A=H(new d(A),e,t),s=A.e,i=C(A.c),n=i.length,c==1||c==2&&(e<=s||s<=P)){for(;n<e;i+="0",n++);i=EA(i,s)}else if(e-=f,i=Z(i,s,"0"),s+1>n){if(--e>0)for(i+=".";e--;i+="0");}else if(e+=s-n,e>0)for(s+1==n&&(i+=".");e--;i+="0");return A.s<0&&j?"-"+i:i}function UA(A,e){for(var t,c=1,j=new d(A[0]);c<A.length;c++)if(t=new d(A[c]),t.s)e.call(j,t)&&(j=t);else{j=t;break}return j}function $A(A,e,t){for(var c=1,j=e.length;!e[--j];e.pop());for(j=e[0];j>=10;j/=10,c++);return(t=c+t*E-1)>T?A.c=A.e=null:t<b?A.c=[A.e=0]:(A.e=t,A.c=e),A}p=function(){var A=/^(-?)0([xbo])(?=\w[\w.]*$)/i,e=/^([^.]+)\.$/,t=/^\.([^.]+)$/,c=/^-?(Infinity|NaN)$/,j=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(s,f,n,i){var u,l=n?f:f.replace(j,"");if(c.test(l))s.s=isNaN(l)?null:l<0?-1:1;else{if(!n&&(l=l.replace(A,function(m,w,k){return u=(k=k.toLowerCase())=="x"?16:k=="b"?2:8,!i||i==u?w:m}),i&&(u=i,l=l.replace(e,"$1").replace(t,"0.$1")),f!=l))return new d(l,u);if(d.DEBUG)throw Error(K+"Not a"+(i?" base "+i:"")+" number: "+f);s.s=null}s.c=s.e=null}}();function H(A,e,t,c){var j,s,f,n,i,u,l,m=A.c,w=RA;if(m){A:{for(j=1,n=m[0];n>=10;n/=10,j++);if(s=e-j,s<0)s+=E,f=e,i=m[u=0],l=i/w[j-f-1]%10|0;else if(u=GA((s+1)/E),u>=m.length)if(c){for(;m.length<=u;m.push(0));i=l=0,j=1,s%=E,f=s-E+1}else break A;else{for(i=n=m[u],j=1;n>=10;n/=10,j++);s%=E,f=s-E+j,l=f<0?0:i/w[j-f-1]%10|0}if(c=c||e<0||m[u+1]!=null||(f<0?i:i%w[j-f-1]),c=t<4?(l||c)&&(t==0||t==(A.s<0?3:2)):l>5||l==5&&(t==4||c||t==6&&(s>0?f>0?i/w[j-f]:0:m[u-1])%10&1||t==(A.s<0?8:7)),e<1||!m[0])return m.length=0,c?(e-=A.e+1,m[0]=w[(E-e%E)%E],A.e=-e||0):m[0]=A.e=0,A;if(s==0?(m.length=u,n=1,u--):(m.length=u+1,n=w[E-s],m[u]=f>0?V(i/w[j-f]%w[f])*n:0),c)for(;;)if(u==0){for(s=1,f=m[0];f>=10;f/=10,s++);for(f=m[0]+=n,n=1;f>=10;f/=10,n++);s!=n&&(A.e++,m[0]==U&&(m[0]=1));break}else{if(m[u]+=n,m[u]!=U)break;m[u--]=0,n=1}for(s=m.length;m[--s]===0;m.pop());}A.e>T?A.c=A.e=null:A.e<b&&(A.c=[A.e=0])}return A}function Q(A){var e,t=A.e;return t===null?A.toString():(e=C(A.c),e=t<=P||t>=v?EA(e,t):Z(e,t,"0"),A.s<0?"-"+e:e)}return o.absoluteValue=o.abs=function(){var A=new d(this);return A.s<0&&(A.s=1),A},o.comparedTo=function(A,e){return jA(this,new d(A,e))},o.decimalPlaces=o.dp=function(A,e){var t,c,j,s=this;if(A!=null)return O(A,0,I),e==null?e=B:O(e,0,8),H(new d(s),A+s.e+1,e);if(!(t=s.c))return null;if(c=((j=t.length-1)-L(this.e/E))*E,j=t[j])for(;j%10==0;j/=10,c--);return c<0&&(c=0),c},o.dividedBy=o.div=function(A,e){return r(this,new d(A,e),h,B)},o.dividedToIntegerBy=o.idiv=function(A,e){return r(this,new d(A,e),0,1)},o.exponentiatedBy=o.pow=function(A,e){var t,c,j,s,f,n,i,u,l,m=this;if(A=new d(A),A.c&&!A.isInteger())throw Error(K+"Exponent not an integer: "+Q(A));if(e!=null&&(e=new d(e)),n=A.e>14,!m.c||!m.c[0]||m.c[0]==1&&!m.e&&m.c.length==1||!A.c||!A.c[0])return l=new d(Math.pow(+Q(m),n?2-PA(A):+Q(A))),e?l.mod(e):l;if(i=A.s<0,e){if(e.c?!e.c[0]:!e.s)return new d(NaN);c=!i&&m.isInteger()&&e.isInteger(),c&&(m=m.mod(e))}else{if(A.e>9&&(m.e>0||m.e<-1||(m.e==0?m.c[0]>1||n&&m.c[1]>=24e7:m.c[0]<8e13||n&&m.c[0]<=9999975e7)))return s=m.s<0&&PA(A)?-0:0,m.e>-1&&(s=1/s),new d(i?1/s:s);eA&&(s=GA(eA/E+2))}for(n?(t=new d(.5),i&&(A.s=1),u=PA(A)):(j=Math.abs(+Q(A)),u=j%2),l=new d(_);;){if(u){if(l=l.times(m),!l.c)break;s?l.c.length>s&&(l.c.length=s):c&&(l=l.mod(e))}if(j){if(j=V(j/2),j===0)break;u=j%2}else if(A=A.times(t),H(A,A.e+1,1),A.e>14)u=PA(A);else{if(j=+Q(A),j===0)break;u=j%2}m=m.times(m),s?m.c&&m.c.length>s&&(m.c.length=s):c&&(m=m.mod(e))}return c?l:(i&&(l=_.div(l)),e?l.mod(e):s?H(l,eA,B,f):l)},o.integerValue=function(A){var e=new d(this);return A==null?A=B:O(A,0,8),H(e,e.e+1,A)},o.isEqualTo=o.eq=function(A,e){return jA(this,new d(A,e))===0},o.isFinite=function(){return!!this.c},o.isGreaterThan=o.gt=function(A,e){return jA(this,new d(A,e))>0},o.isGreaterThanOrEqualTo=o.gte=function(A,e){return(e=jA(this,new d(A,e)))===1||e===0},o.isInteger=function(){return!!this.c&&L(this.e/E)>this.c.length-2},o.isLessThan=o.lt=function(A,e){return jA(this,new d(A,e))<0},o.isLessThanOrEqualTo=o.lte=function(A,e){return(e=jA(this,new d(A,e)))===-1||e===0},o.isNaN=function(){return!this.s},o.isNegative=function(){return this.s<0},o.isPositive=function(){return this.s>0},o.isZero=function(){return!!this.c&&this.c[0]==0},o.minus=function(A,e){var t,c,j,s,f=this,n=f.s;if(A=new d(A,e),e=A.s,!n||!e)return new d(NaN);if(n!=e)return A.s=-e,f.plus(A);var i=f.e/E,u=A.e/E,l=f.c,m=A.c;if(!i||!u){if(!l||!m)return l?(A.s=-e,A):new d(m?f:NaN);if(!l[0]||!m[0])return m[0]?(A.s=-e,A):new d(l[0]?f:B==3?-0:0)}if(i=L(i),u=L(u),l=l.slice(),n=i-u){for((s=n<0)?(n=-n,j=l):(u=i,j=m),j.reverse(),e=n;e--;j.push(0));j.reverse()}else for(c=(s=(n=l.length)<(e=m.length))?n:e,n=e=0;e<c;e++)if(l[e]!=m[e]){s=l[e]<m[e];break}if(s&&(j=l,l=m,m=j,A.s=-A.s),e=(c=m.length)-(t=l.length),e>0)for(;e--;l[t++]=0);for(e=U-1;c>n;){if(l[--c]<m[c]){for(t=c;t&&!l[--t];l[t]=e);--l[t],l[c]+=U}l[c]-=m[c]}for(;l[0]==0;l.splice(0,1),--u);return l[0]?$A(A,l,u):(A.s=B==3?-1:1,A.c=[A.e=0],A)},o.modulo=o.mod=function(A,e){var t,c,j=this;return A=new d(A,e),!j.c||!A.s||A.c&&!A.c[0]?new d(NaN):!A.c||j.c&&!j.c[0]?new d(j):(aA==9?(c=A.s,A.s=1,t=r(j,A,0,3),A.s=c,t.s*=c):t=r(j,A,0,aA),A=j.minus(t.times(A)),!A.c[0]&&aA==1&&(A.s=j.s),A)},o.multipliedBy=o.times=function(A,e){var t,c,j,s,f,n,i,u,l,m,w,k,q,N,$,y=this,x=y.c,S=(A=new d(A,e)).c;if(!x||!S||!x[0]||!S[0])return!y.s||!A.s||x&&!x[0]&&!S||S&&!S[0]&&!x?A.c=A.e=A.s=null:(A.s*=y.s,!x||!S?A.c=A.e=null:(A.c=[0],A.e=0)),A;for(c=L(y.e/E)+L(A.e/E),A.s*=y.s,i=x.length,m=S.length,i<m&&(q=x,x=S,S=q,j=i,i=m,m=j),j=i+m,q=[];j--;q.push(0));for(N=U,$=tA,j=m;--j>=0;){for(t=0,w=S[j]%$,k=S[j]/$|0,f=i,s=j+f;s>j;)u=x[--f]%$,l=x[f]/$|0,n=k*u+l*w,u=w*u+n%$*$+q[s]+t,t=(u/N|0)+(n/$|0)+k*l,q[s--]=u%N;q[s]=t}return t?++c:q.splice(0,1),$A(A,q,c)},o.negated=function(){var A=new d(this);return A.s=-A.s||null,A},o.plus=function(A,e){var t,c=this,j=c.s;if(A=new d(A,e),e=A.s,!j||!e)return new d(NaN);if(j!=e)return A.s=-e,c.minus(A);var s=c.e/E,f=A.e/E,n=c.c,i=A.c;if(!s||!f){if(!n||!i)return new d(j/0);if(!n[0]||!i[0])return i[0]?A:new d(n[0]?c:j*0)}if(s=L(s),f=L(f),n=n.slice(),j=s-f){for(j>0?(f=s,t=i):(j=-j,t=n),t.reverse();j--;t.push(0));t.reverse()}for(j=n.length,e=i.length,j-e<0&&(t=i,i=n,n=t,e=j),j=0;e;)j=(n[--e]=n[e]+i[e]+j)/U|0,n[e]=U===n[e]?0:n[e]%U;return j&&(n=[j].concat(n),++f),$A(A,n,f)},o.precision=o.sd=function(A,e){var t,c,j,s=this;if(A!=null&&A!==!!A)return O(A,1,I),e==null?e=B:O(e,0,8),H(new d(s),A,e);if(!(t=s.c))return null;if(j=t.length-1,c=j*E+1,j=t[j]){for(;j%10==0;j/=10,c--);for(j=t[0];j>=10;j/=10,c++);}return A&&s.e+1>c&&(c=s.e+1),c},o.shiftedBy=function(A){return O(A,-KA,KA),this.times("1e"+A)},o.squareRoot=o.sqrt=function(){var A,e,t,c,j,s=this,f=s.c,n=s.s,i=s.e,u=h+4,l=new d("0.5");if(n!==1||!f||!f[0])return new d(!n||n<0&&(!f||f[0])?NaN:f?s:1/0);if(n=Math.sqrt(+Q(s)),n==0||n==1/0?(e=C(f),(e.length+i)%2==0&&(e+="0"),n=Math.sqrt(+e),i=L((i+1)/2)-(i<0||i%2),n==1/0?e="5e"+i:(e=n.toExponential(),e=e.slice(0,e.indexOf("e")+1)+i),t=new d(e)):t=new d(n+""),t.c[0]){for(i=t.e,n=i+u,n<3&&(n=0);;)if(j=t,t=l.times(j.plus(r(s,j,u,1))),C(j.c).slice(0,n)===(e=C(t.c)).slice(0,n))if(t.e<i&&--n,e=e.slice(n-3,n+1),e=="9999"||!c&&e=="4999"){if(!c&&(H(j,j.e+h+2,0),j.times(j).eq(s))){t=j;break}u+=4,n+=4,c=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(H(t,t.e+h+2,1),A=!t.times(t).eq(s));break}}return H(t,t.e+h+1,B,A)},o.toExponential=function(A,e){return A!=null&&(O(A,0,I),A++),FA(this,A,e,1)},o.toFixed=function(A,e){return A!=null&&(O(A,0,I),A=A+this.e+1),FA(this,A,e)},o.toFormat=function(A,e,t){var c,j=this;if(t==null)A!=null&&e&&typeof e=="object"?(t=e,e=null):A&&typeof A=="object"?(t=A,A=e=null):t=OA;else if(typeof t!="object")throw Error(K+"Argument not an object: "+t);if(c=j.toFixed(A,e),j.c){var s,f=c.split("."),n=+t.groupSize,i=+t.secondaryGroupSize,u=t.groupSeparator||"",l=f[0],m=f[1],w=j.s<0,k=w?l.slice(1):l,q=k.length;if(i&&(s=n,n=i,i=s,q-=s),n>0&&q>0){for(s=q%n||n,l=k.substr(0,s);s<q;s+=n)l+=u+k.substr(s,n);i>0&&(l+=u+k.slice(s)),w&&(l="-"+l)}c=m?l+(t.decimalSeparator||"")+((i=+t.fractionGroupSize)?m.replace(new RegExp("\\d{"+i+"}\\B","g"),"$&"+(t.fractionGroupSeparator||"")):m):l}return(t.prefix||"")+c+(t.suffix||"")},o.toFraction=function(A){var e,t,c,j,s,f,n,i,u,l,m,w,k=this,q=k.c;if(A!=null&&(n=new d(A),!n.isInteger()&&(n.c||n.s!==1)||n.lt(_)))throw Error(K+"Argument "+(n.isInteger()?"out of range: ":"not an integer: ")+Q(n));if(!q)return new d(k);for(e=new d(_),u=t=new d(_),c=i=new d(_),w=C(q),s=e.e=w.length-k.e-1,e.c[0]=RA[(f=s%E)<0?E+f:f],A=!A||n.comparedTo(e)>0?s>0?e:u:n,f=T,T=1/0,n=new d(w),i.c[0]=0;l=r(n,e,0,1),j=t.plus(l.times(c)),j.comparedTo(A)!=1;)t=c,c=j,u=i.plus(l.times(j=u)),i=j,e=n.minus(l.times(j=e)),n=j;return j=r(A.minus(t),c,0,1),i=i.plus(j.times(u)),t=t.plus(j.times(c)),i.s=u.s=k.s,s=s*2,m=r(u,c,s,B).minus(k).abs().comparedTo(r(i,t,s,B).minus(k).abs())<1?[u,c]:[i,t],T=f,m},o.toNumber=function(){return+Q(this)},o.toPrecision=function(A,e){return A!=null&&O(A,1,I),FA(this,A,e,2)},o.toString=function(A){var e,t=this,c=t.s,j=t.e;return j===null?c?(e="Infinity",c<0&&(e="-"+e)):e="NaN":(A==null?e=j<=P||j>=v?EA(C(t.c),j):Z(C(t.c),j,"0"):A===10&&NA?(t=H(new d(t),h+j+1,B),e=Z(C(t.c),t.e,"0")):(O(A,2,nA.length,"Base"),e=a(Z(C(t.c),j,"0"),10,A,c,!0)),c<0&&t.c[0]&&(e="-"+e)),e},o.valueOf=o.toJSON=function(){return Q(this)},o._isBigNumber=!0,o[Symbol.toStringTag]="BigNumber",o[Symbol.for("nodejs.util.inspect.custom")]=o.valueOf,g!=null&&d.set(g),d}function L(g){var r=g|0;return g>0||g===r?r:r-1}function C(g){for(var r,a,p=1,o=g.length,_=g[0]+"";p<o;){for(r=g[p++]+"",a=E-r.length;a--;r="0"+r);_+=r}for(o=_.length;_.charCodeAt(--o)===48;);return _.slice(0,o+1||1)}function jA(g,r){var a,p,o=g.c,_=r.c,h=g.s,B=r.s,P=g.e,v=r.e;if(!h||!B)return null;if(a=o&&!o[0],p=_&&!_[0],a||p)return a?p?0:-B:h;if(h!=B)return h;if(a=h<0,p=P==v,!o||!_)return p?0:!o^a?1:-1;if(!p)return P>v^a?1:-1;for(B=(P=o.length)<(v=_.length)?P:v,h=0;h<B;h++)if(o[h]!=_[h])return o[h]>_[h]^a?1:-1;return P==v?0:P>v^a?1:-1}function O(g,r,a,p){if(g<r||g>a||g!==V(g))throw Error(K+(p||"Argument")+(typeof g=="number"?g<r||g>a?" out of range: ":" not an integer: ":" not a primitive number: ")+String(g))}function PA(g){var r=g.c.length-1;return L(g.e/E)==r&&g.c[r]%2!=0}function EA(g,r){return(g.length>1?g.charAt(0)+"."+g.slice(1):g)+(r<0?"e":"e+")+r}function Z(g,r,a){var p,o;if(r<0){for(o=a+".";++r;o+=a);g=o+g}else if(p=g.length,++r>p){for(o=a,r-=p;--r;o+=a);g+=o}else r<p&&(g=g.slice(0,r)+"."+g.slice(r));return g}var pA=zA();var DA=12;pA.config({EXPONENTIAL_AT:[-100,100],ROUNDING_MODE:1,DECIMAL_PLACES:DA});var Ze=R(0),At=R(1),et=R("Infinity");function gA(g,r){let a=new pA(r.toString()),p=new pA(10).pow(a);return g.times(p)}function R(g){return new pA(g.toString())}function VA(g){return R(parseFloat(g)/100)}function HA(g,r){return g.multipliedBy(r).decimalPlaces(0,1)}function WA(g,r){if(r==DA)return g;let a=g.shiftedBy(-1*r);return gA(a,12)}var ie={};ne(ie,{default:()=>CA});var CA=oe("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IQQDQCADQdABaiAEaiADQagBaiAEaikDACAeiDcDACAEQQhqIgRBIEcNAAsMBwsgB0EEEEQACyACQQQQRAALIAhBBBBEAAsgAEIANwMAIABBGGpCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIAAgASkDADcDICAAQShqIAFBCGopAwA3AwAgAEEwaiABQRBqKQMANwMAIABBOGogAUEYaikDADcDAAwECyADQbwBakEANgIAIANBnITAADYCuAEgA0IBNwKsASADQbiFwAA2AqgBIANBqAFqQcCFwAAQWQALIANBwAFqIgkgAUEYaikDADcDACADQbgBaiIGIAFBEGopAwA3AwAgA0GwAWoiBCABQQhqKQMANwMAIAMgASkDADcDqAEgAyACKQMANwPQASADQgA3A2AgA0GoAWogA0HIAWogA0HgAGogA0HQAWoQPyAAQShqQgA3AwAgAEEwakIANwMAIABBOGpCADcDACAAQRhqIAkpAwA3AwAgAEEQaiAGKQMANwMAIABBCGogBCkDADcDACAAIAMpA6gBNwMAIAAgAykDYDcDIAwCCyACQQUQRAALAkAgEgRAQgAgG31CP4MhGEEBIQQDQEEDIQVBBCEBIARBBEYiBkUEQCAEQX9qIgVBA0sNAyAEQQFqIQELIANB0AFqIAVBA3RqIgIgAikDACADQagBaiAEQQN0aikDACAYhoQ3AwAgASEEIAZFDQALCyAAIAMpA4gBNwMAIAAgAykD0AE3AyAgAEEYaiADQaABaikDADcDACAAQRBqIANBmAFqKQMANwMAIABBCGogA0GQAWopAwA3AwAgAEEoaiADQdgBaikDADcDACAAQTBqIANB4AFqKQMANwMAIABBOGogA0HoAWopAwA3AwAMAQtBf0EEEEQACyADQfABaiQAC7IMAQ5/IwBB8ARrIgkkAAJAIAcgCIRQBEAgAEGBBjsBAAwBCyAJQYgBaiABIAIQYyAJQagBaiIMIAMgBBBjIAlByAFqIAUgBhBjIAlB6AFqIAcgCBBjIAlBIGoiDSAJQaABaiIKKQMANwMAIAlBGGoiDiAJQZgBaiILKQMANwMAIAlBEGoiDyAJQZABaiIQKQMANwMAIAkgCSkDiAE3AwggCUFAayAJQcABaikDADcDACAJQThqIAlBuAFqKQMANwMAIAlBMGogCUGwAWop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AwA3AwAgDCALKQMANwMAIA0gDykDADcDACAHIAcpAwA3A6ADIAdB2AJqIAdBgANqIAdBoANqECogBykD2AJCAVINASAHQbgDaiAHQfgCaikDADcDACAHQbADaiAHQfACaikDADcDACAHQagDaiAHQegCaikDADcDACAHIAcpA+ACNwOgAyAHQeAAahBgIAdBsAJqIAdBoANqIAdB4ABqEC8gBykDsAJCAVINASAHQfIBaiAHQcACaikDACIBNwEAIAdByAFqIgggATcDACAHQdgBaiAHQdACaikDACIBNwMAIAdB0AFqIAdByAJqKQMAIgI3AwAgByAHKQO4AiIDNwPAASAHQfgAaiABNwMAIAdB8ABqIgogAjcDACAHQegAaiAIKQMANwMAIAcgAzcDYEEAIQgDQCAIQQhqIglBGEYNAyAIIApqIAkhCCkDAFANAAsgAEEAOgABQQEMAwsgAEEAOgAAIABBEGpCADcDACAAQQhqQgA3AwAMAwsgAEEBOwEADAILIAcpA2AhASAAQRBqIAcpA2g3AwAgAEEIaiABNwMAQQALOgAACyAHQcADaiQAC/QGAQZ/AkACQAJAAkACQCAAKAIIIghBAUdBACAAKAIQIgRBAUcbRQRAIARBAUcNAyABIAJqIQcgAEEUaigCACIGDQEgASEEDAILIAAoAhggASACIABBHGooAgAoAgwRAwAhAwwDCyABIQQDQCAEIgMgB0YNAgJ/IANBAWogAywAACIEQX9KDQAaIANBAmogBEFgSQ0AGiADQQNqIARBcEkNABogBEH/AXFBEnRBgIDwAHEgAy0AA0E/cSADLQACQT9xQQZ0IAMtAAFBP3FBDHRycnJBgIDEAEYNAyADQQRqCyIEIAUgA2tqIQUgBkF/aiIGDQALCyAEIAdGDQAgBCwAACIDQX9KIANBYElyIANBcElyRQRAIANB/wFxQRJ0QYCA8ABxIAQtAANBP3EgBC0AAkE/cUEGdCAELQABQT9xQQx0cnJyQYCAxABGDQELAkACQCAFRQRAQQAhBAwBCyAFIAJPBEBBACEDIAUgAiIERg0BDAILQQAhAyAFIgQgAWosAABBQEgNAQsgBCEFIAEhAwsgBSACIAMbIQIgAyABIAMbIQELIAhBAUcNASAAQQxqKAIAIQcCQCACQRBPBEAgASACEAUhBAwBCyACRQRA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AyAENgIAIANB+IfAACABKAIIIAIgAS0AEBAxAAsgA0EANgIEIAMgADYCACADQeSHwAAgASgCCCACIAEtABAQMQALbgEGfiAAIANC/////w+DIgUgAUL/////D4MiBn4iByAFIAFCIIgiCH4iCSAGIANCIIgiBn58IgVCIIZ8Igo3AwAgACAKIAdUrSAGIAh+IAUgCVStQiCGIAVCIIiEfHwgASAEfiACIAN+fHw3AwgLfQEBfyMAQUBqIgQkACAEQTc2AgwgBCAANgIIIAQgAjYCFCAEIAE2AhAgBEEsakECNgIAIARBPGpBHjYCACAEQgI3AhwgBEHEicAANgIYIARBHzYCNCAEIARBMGo2AiggBCAEQRBqNgI4IAQgBEEIajYCMCAEQRhqIAMQWQALeAEDfyAAIAAQigEiAEEIEGogAGsiAhCIASEAQfiPwAAgASACayIBNgIAQYCQwAAgADYCACAAIAFBAXI2AgRBCEEIEGohAkEUQQgQaiEDQRBBCBBqIQQgACABEIgBIAQgAyACQQhramo2AgRBnJDAAEGAgIABNgIAC28BAX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEcNgIAIAJCAjcCDCACQbCJwAA2AgggAkEcNgIkIAIgAkEgajYCGCACIAI2AiggAiACQQRqNgIgIAJBCGpBwIXAABBZAAtvAQF/IwBBMGsiASQAIAFBBTYCBCABIAA2AgAgAUEcakECNgIAIAFBLGpBHDYCACABQgI3AgwgAUGYjMAANgIIIAFBHDYCJCABIAFBIGo2AhggASABQQRqNgIoIAEgATYCICABQQhqQcCFwAAQWQALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHEgsAAIAJBCGoQECACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGMiMAAIAJBCGoQECACQSBqJAALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHEgsAAIAJBCGoQECACQSBqJAALVgECfgJAIAJBwABxRQRAIAJFDQFCACACQT9xrSIEhiABQQAgAmtBP3GtiIQhAyABIASGIQEMAQsgASACQT9xrYYhA0IAIQELIAAgATcDACAAIAM3AwgLJgEBf0EBQQEQciIBRQRAQQFBARCFAQALIABBATYCBCAAIAE2AgALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQNyAEKAIAIQALIAMoAgAgAGogASACEIcBGiAEIAAgAmo2AgBBAAtGAQF/IwBBEGsiAiQAIAIgACABEDMCQCACKAIAQQFGBEAgAkEIaigCACIARQ0BIAIoAgQgABCFAQALIAJBEGokAA8LEFgAC0gBAX8jAEEQayIDJAAgAyAAIAEgAhA0AkAgAygCAEEBRgRAIANBCGooAgAiAEUNASADKAIEIAAQhQEACyADQRBqJAAPCxBYAAtFAQF/IAAoAgQgACgCCCIDayACIAFrIgJJBEAgACADIAIQTSAAKAIIIQMLIAAoAgAgA2ogASACEIcBGiAAIAIgA2o2AggLRgEBfyMAQRBrIgIkACACIAAgARAyAkAgAigCAEEBRgRAIAJBCGooAgAiAEUNASACKAIEIAAQhQEACyACQRBqJAAPCxBYAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAAANARoLIAINAUEACw8LIAAoAhggAkEAIABBHGooAgAoAgwRAwALRwECfyMAQRBrIgEkACABQQhqEEogASgCCCECIAAgASgCDDYCBCAAIAI2AgAgAkHcgsAAQQEQhwEaIABBATYCCCABQRBqJAALRwEBfyMAQSBrIgMkACADQRRqQQA2AgAgA0HsiMAANgIQIANCATcCBCADIAE2AhwgAyAANgIYIAMgA0EYajYCACADIAIQWQALRQECfyABKAIEIQIgASgCACEDQQhBBBByIgFFBEBBCEEEEIUBAAsgASACNgIEIAEgAzYCACAAQdSHwAA2AgQgACABNgIACzkBAX8gAUEQdkAAIQIgAEEANgIIIABBACABQYCAfHEgAkF/RiIBGzYCBCAAQQAgAkEQdCABGzYCAAs5AQF/IwBBIGsiBCQAIAQgASACIAMQDCAEKQMAIQEgACAEQQhqKQMANwMIIAAgATcDACAEQSBqJAALaAEDfyMAQRBrIgEkACAAKAIMIgJFBEBB3IbAAEErQaSHwAAQUgALIAAoAggiA0UEQEHchsAAQStBtIfAABBSAAsgASACNgIIIAEgADYCBCABIAM2AgAgASgCACABKAIEIAEoAggQQAALNgEBfyABKAIEIAEoAggiAksEQCABIAIQTyABKAIIIQILIAEoAgAhASAAIAI2AgQgACABNgIACz8BAX8jAEEgayIAJAAgAEEcakEANgIAIABBwIjAADYCGCAAQgE3AgwgAEHUiMAANgIIIABBCGpB3IjAABBZAAs+AQF/IwBBIGsiAiQAIAJBAToAGCACIAE2AhQgAiAANgIQIAJB7IjAADYCDCACQeyIwAA2AgggAkEIahBWAAsqAAJAIABBfEsNACAARQRAQQQPCyAAIABBfUlBAnQQciIARQ0AIAAPCwALMQEBfyABKAIEIgIEQCAAIAI2AgQgAEEIakEBNgIAIAAgASgCADYCAA8LIABBADYCAAs0ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcaiACNgIACycAIAAgACgCBEEBcSABckECcjYCBCAAIAFqIgAgACgCBEEBcjYCBAseAAJAIABBBGooAgBFDQAgACgCACIARQ0AIAAQBgsLIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQBgsLJAAgAEIANwMIIABCATcDACAAQRhqQgA3AwAgAEEQakIANwMACx4AAkAgAUF8TQRAIAAgAUEEIAIQbCIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAshACAAQgA3AxAgACACNwMIIAAgATcDACAAQRhqQgA3AwALHgAgACABQQNyNgIEIAAgAWoiACAAKAIEQQFyNgIECxEAIAAoAgQEQCAAKAIAEAYLCxkBAX8gACgCECIBBH8gAQUgAEEUaigCAAsLEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEGojMAAQQUgAUEcaigCACgCDBEDAAsQACAAIAFqQX9qQQAgAWtxCxMAIAApAwAgAEEIaikDACABEBQLDAAgACABIAIgAxANCxYAIAAgASgCCDYCBCAAIAEoAgA2AgALCwAgAQRAIAAQBgsLDwAgAEEBdCIAQQAgAGtyCxQAIAAoAgAgASAAKAIEKAIMEQAACw8AIAAoAgAgASACEHNBAAsIACAAIAEQFwsNACAAIAEgASACahBOCxMAIABB1IfAADYCBCAAIAE2AgALDQAgACgCACABEB9BAAsNACAALQAEQQJxQQF2CxAAIAEgACgCACAAKAIEEAoLDAAgACABIAIQc0EACwoAQQAgAGsgAHELCwAgAC0ABEEDcUULDAAgACABQQNyNgIECw0AIAAoAgAgACgCBGoLDgAgACgCABoDQAwACwALCwAgADUCACABECELCwAgACMAaiQAIwALBgAgABBlCwoAIAAoAgRBeHELCgAgACgCBEEBcQsKACAAKAIMQQFxCwoAIAAoAgxBAXYLGQAgACABQdCMwAAoAgAiAEEPIAAbEQEAAAsKACAAIAEgAhA6CwoAIAAgASACECALBwAgACABagsHACAAIAFrCwcAIABBCGoLBwAgAEF4agsMAEL9uPTL5bXvkX8LDQBC0a6YxJmDsveEfwsNAEKxyPiAt8utzNkACwMAAQsDAAELC7cMAQBBgIDAAAutDAEAAAAMAAAABAAAAAIAAAADAAAABAAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvYjE3MjI2ZmNjMTE1ODdmZWQ2MTI2MzFiZTM3MmE1YjRjYjg5OTg4YS9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAAE8AEABLAAAAXwkAAA4AAAAFAAAAAAAAAAEAAAAGAAAAVHJpZWQgdG8gc2hyaW5rIHRvIGEgbGFyZ2VyIGNhcGFjaXR5vAAQACQAAAAvcnVzdGMvYjE3MjI2ZmNjMTE1ODdmZWQ2MTI2MzFiZTM3MmE1YjRjYjg5OTg4YS9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjLnJz6AAQAEwAAACrAQAACQAAAAcAAAAEAAAABAAAAAgAAAAJAAAACgAAADAAAAALAAAADAAAAAQAAAAMAAAADQAAAAQAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5L3J1c3RjL2IxNzIyNmZjYzExNTg3ZmVkNjEyNjMxYmUzNzJhNWI0Y2I4OTk4OGEvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAACvARAASwAAAF8JAAAOAAAADgAAAAAAAAABAAAABgAAAC9Vc2Vycy9tYXJ0aW4vLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcHJpbWl0aXZlLXR5cGVzLTAuOC4wL3NyYy9saWIucnNJbnRlZ2VyIG92ZXJmbG93IHdoZW4gY2FzdGluZyB0byB1c2l6ZXoCEAAmAAAAZGl2aXNpb24gYnkgemVyb6gCEAAQAAAAHAIQAF4AAAAmAAAAAQAAAC9Vc2Vycy9tYXJ0aW4vLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcHJpbWl0aXZlLXR5cGVzLTAuOC4wL3NyYy9saWIucnMAAGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8AAADQAhAAXgAAACYAAAABAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZWxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMAhwMQABwAAABGAgAAHwAAAIcDEAAcAAAARwIAAB4AAAAQAAAADAAAAAQAAAARAAAAEgAAAAgAAAAEAAAAEwAAABQAAAAQAAAABAAAABUAAAAWAAAAEgAAAAgAAAAEAAAAFwAAABgAAAASAAAABAAAAAQAAAAZAAAAGgAAABsAAABsaWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjLnJzY2FwYWNpdHkgb3ZlcmZsb3cAAABABBAAEQAAACQEEAAcAAAABgIAAAUAAAAgAAAAAAAAAAEAAAAhAAAAaW5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyAgYnV0IHRoZSBpbmRleCBpcyAAAHwEEAAgAAAAnAQQABIAAAA6IAAAbAQQAAAAAADABBAAAgAAAGxpYnJhcnkvY29yZS9zcmMvZm10L251bS5yczAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5YXNzZXJ0aW9uIGZhaWxlZDogKmN1cnIgPiAxOQDUBBAAGwAAAOUBAAAFAAAAcmFuZ2Ugc3RhcnQgaW5kZXggIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIOQFEAASAAAA9gUQACIAAABFcnJvcgCDAQlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjJTEuNjAuMC1uaWdodGx5IChiMTcyMjZmY2MgMjAyMi0wMi0xOCkGd2FscnVzBjAuMTkuMAx3YXNtLWJpbmRnZW4SMC4yLjgwICg0Y2FhOTgxNjUp");var ae={};async function le(g,r){if(typeof g=="string"){let a=await fetch(g);if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(a,r)}catch(p){if(a.headers.get("Content-Type")!="application/wasm")console.warn(p);else throw p}g=await a.arrayBuffer()}return await WebAssembly.instantiate(g,r)}var{instance:D,module:it}=await le(CA,ae),mA=D.exports.memory,ce=D.exports.calculate_pool_trade_fee,JA=D.exports.get_spot_price,YA=D.exports.calculate_out_given_in,QA=D.exports.calculate_in_given_out,ue=D.exports.calculate_liquidity_in,fe=D.exports.calculate_shares,pe=D.exports.calculate_liquidity_out_asset_a,ge=D.exports.calculate_liquidity_out_asset_b,oA=D.exports.__wbindgen_add_to_stack_pointer,J=D.exports.__wbindgen_malloc,Y=D.exports.__wbindgen_realloc,vA=D.exports.__wbindgen_free;var X=0,bA=null;function qA(){return(bA===null||bA.buffer!==mA.buffer)&&(bA=new Uint8Array(mA.buffer)),bA}var _e=typeof TextEncoder>"u"?(0,module.require)("util").TextEncoder:TextEncoder,xA=new _e("utf-8"),de=typeof xA.encodeInto=="function"?function(g,r){return xA.encodeInto(g,r)}:function(g,r){let a=xA.encode(g);return r.set(a),{read:g.length,written:a.length}};function AA(g,r,a){if(a===void 0){let B=xA.encode(g),P=r(B.length);return qA().subarray(P,P+B.length).set(B),X=B.length,P}let p=g.length,o=r(p),_=qA(),h=0;for(;h<p;h++){let B=g.charCodeAt(h);if(B>127)break;_[o+h]=B}if(h!==p){h!==0&&(g=g.slice(h)),o=a(o,p,p=h+g.length*3);let B=qA().subarray(o+h,o+p);h+=de(g,B).written}return X=h,o}var yA=null;function iA(){return(yA===null||yA.buffer!==mA.buffer)&&(yA=new Int32Array(mA.buffer)),yA}var Be=typeof TextDecoder>"u"?(0,module.require)("util").TextDecoder:TextDecoder,ZA=new Be("utf-8",{ignoreBOM:!0,fatal:!0});ZA.decode();function LA(g,r){return ZA.decode(qA().subarray(g,g+r))}function Ae(g,r,a){try{let _=oA(-16),h=AA(g,J,Y),B=X,P=AA(r,J,Y),v=X,b=AA(a,J,Y);JA(_,h,B,P,v,b,X);var p=iA()[_/4+0],o=iA()[_/4+1];return LA(p,o)}finally{oA(16),vA(p,o)}}function ee(g,r,a){try{let _=oA(-16),h=AA(g,J,Y),B=X,P=AA(r,J,Y),v=X,b=AA(a,J,Y);YA(_,h,B,P,v,b,X);var p=iA()[_/4+0],o=iA()[_/4+1];return LA(p,o)}finally{oA(16),vA(p,o)}}function te(g,r,a){try{let _=oA(-16),h=AA(g,J,Y),B=X,P=AA(r,J,Y),v=X,b=AA(a,J,Y);QA(_,h,B,P,v,b,X);var p=iA()[_/4+0],o=iA()[_/4+1];return LA(p,o)}finally{oA(16),vA(p,o)}}function he(g,r,a){return Ae(g,r,a)}function we(g,r,a){return te(g,r,a)}function ke(g,r,a){return ee(g,r,a)}var _A={getSpotPrice:he,calculateInGivenOut:we,calculateOutGivenIn:ke};var rA=class{type;address;swapFee;tokens;static fromPool(r){return new rA(r.address,r.swapFee,r.tokens)}constructor(r,a,p){this.type="XYK",this.address=r,this.swapFee=a,this.tokens=p}validPair(r,a){return!0}parsePoolPair(r,a){let p=new Map(this.tokens.map(P=>[P.id,P])),o=p.get(r),_=p.get(a);if(o==null)throw new Error("Pool does not contain tokenIn");if(_==null)throw new Error("Pool does not contain tokenOut");let h=R(o.balance),B=R(_.balance);return{swapFee:VA(this.swapFee),tokenIn:r,tokenOut:a,balanceIn:WA(h,o.decimals),balanceOut:WA(B,_.decimals)}}calculateInGivenOut(r,a){let p=_A.calculateInGivenOut(r.balanceIn.toString(),r.balanceOut.toString(),a.toString());return R(p)}getSpotPriceIn(r){let a=_A.getSpotPrice(r.balanceOut.toString(),r.balanceIn.toString(),gA(R(1),12).toString());return R(a)}calculateOutGivenIn(r,a){let p=_A.calculateOutGivenIn(r.balanceIn.toString(),r.balanceOut.toString(),a.toString());return R(p)}getSpotPriceOut(r){let a=_A.getSpotPrice(r.balanceIn.toString(),r.balanceOut.toString(),gA(R(1),12).toString());return R(a)}};var sA=class{static get(r){switch(r.type){case"XYK":return rA.fromPool(r);default:throw new Error("Pool type "+r.type+" is not supported yet")}}};var TA=class{routeSuggester;poolService;constructor(r){this.poolService=r,this.routeSuggester=new uA}getPools(){return this.poolService.getPools()}async getAllAssets(){let r=await this.getAssets();return[...new Map(r).values()]}async getAssetPairs(r){let a=await this.poolService.getPools();if(a.length===0)return[];let{assets:p,poolsMap:o}=await this.validateToken(r,a),h=this.getPaths(r,null,o,a).map(B=>B[B.length-1].tokenOut);return this.toPoolAssets([...new Set(h)],p)}async getAllPaths(r,a){let p=await this.poolService.getPools();if(p.length===0)return[];let{poolsMap:o}=await this.validateTokenPair(r,a,p);return this.getPaths(r,a,o,p)}async getBestSellPrice(r,a,p){let o=await this.poolService.getPools();if(o.length===0)return[];let{poolsMap:_}=await this.validateTokenPair(r,a,o);return this.getPaths(r,a,_,o).map(v=>this.toSellSwaps(p,v,_)).sort((v,b)=>{let T=v[v.length-1].returnFinalAmount,M=b[b.length-1].returnFinalAmount;return T.isGreaterThan(M)?-1:1})[0]}toSellSwaps(r,a,p){let o=[];for(let _=0;_<a.length;_++){let h=a[_],B=p.get(h.poolId);if(B==null)throw new Error("Pool does not exit");let P;_>0?P=o[_-1].returnFinalAmount:P=r;let v=B.parsePoolPair(h.tokenIn,h.tokenOut),b=B.calculateOutGivenIn(v,P),T=HA(b,v.swapFee),M=B.getSpotPriceOut(v);o.push({...h,swapAmount:P,returnAmount:b,returnFinalAmount:b.minus(T),swapFee:T,spotPrice:M})}return o}async getBestBuyPrice(r,a,p){let o=await this.poolService.getPools();if(o.length===0)return[];let{poolsMap:_}=await this.validateTokenPair(r,a,o);return this.getPaths(r,a,_,o).map(v=>this.toBuySwaps(p,v,_)).sort((v,b)=>{let T=v[0].returnFinalAmount,M=b[0].returnFinalAmount;return T.isGreaterThan(M)?1:-1})[0]}toBuySwaps(r,a,p){let o=[];for(let _=a.length-1;_>=0;_--){let h=a[_],B=p.get(h.poolId);if(B==null)throw new Error("Pool does not exit");let P;_==a.length-1?P=r:P=o[0].returnFinalAmount;let v=B.parsePoolPair(h.tokenIn,h.tokenOut),b=B.calculateInGivenOut(v,P),T=HA(b,v.swapFee),M=B.getSpotPriceIn(v);o.unshift({...h,swapAmount:P,returnAmount:b,returnFinalAmount:b.plus(T),swapFee:T,spotPrice:M})}return o}async getAssets(){let r=await this.poolService.getPools();if(r.length===0)return new Map;let a=r.map(p=>p.tokens.map(({id:o,symbol:_})=>({token:o,symbol:_}))).flat();return new Map(a.map(p=>[p.token,p]))}getPaths(r,a,p,o){return this.routeSuggester.getProposals(r,a,o).filter(B=>this.validPath(B,p)).map(B=>this.toHops(B,p))}async validateTokenPair(r,a,p){let o=await this.getAssets();if(o.get(r)==null)throw new Error(r+" is not supported token");if(o.get(a)==null)throw new Error(a+" is not supported token");let _=this.getPoolMap(p);return{assets:o,poolsMap:_}}async validateToken(r,a){let p=await this.getAssets();if(p.get(r)==null)throw new Error(r+" is not supported token");let o=this.getPoolMap(a);return{assets:p,poolsMap:o}}getPoolMap(r){return new Map(r.map(a=>[a.address,sA.get(a)]))}validPath(r,a){return r.length>0&&r.map(p=>this.validEdge(p,a)).reduce((p,o)=>p&&o)}validEdge([r,a,p],o){return o.get(r)?.validPair(a,p)||!1}toHops(r,a){return r.map(([p,o,_])=>{let h=a.get(p);return{poolId:p,poolType:h?.type,tokenIn:o,tokenOut:_,fee:h?.swapFee}})}toPoolAssets(r,a){return r.map(p=>{let o=a.get(p);return{token:p,symbol:o?.symbol}})}};export{pA as BigNumber,DA as DECIMAL_PLACES,et as INFINITY,At as ONE,kA as PolkadotPoolService,sA as PoolFactory,hA as PoolType,TA as TradeRouter,rA as XykPool,Ze as ZERO,R as bnum,gA as scale};
2
+ //# sourceMappingURL=index.esm.js.map