@raydium-io/raydium-sdk-v2 0.0.21-alpha → 0.0.23-alpha
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.
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/raydium/account/account.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +1 -1
- package/lib/raydium/clmm/index.d.ts +1 -1
- package/lib/raydium/cpmm/cpmm.d.ts +1 -1
- package/lib/raydium/cpmm/cpmm.js +1 -1
- package/lib/raydium/cpmm/cpmm.js.map +1 -1
- package/lib/raydium/cpmm/cpmm.mjs +1 -1
- package/lib/raydium/cpmm/cpmm.mjs.map +1 -1
- package/lib/raydium/farm/farm.d.ts +1 -1
- package/lib/raydium/ido/ido.d.ts +1 -1
- package/lib/raydium/ido/index.d.ts +1 -1
- package/lib/raydium/index.d.ts +1 -1
- package/lib/raydium/index.js +1 -1
- package/lib/raydium/index.js.map +1 -1
- package/lib/raydium/index.mjs +1 -1
- package/lib/raydium/index.mjs.map +1 -1
- package/lib/raydium/liquidity/liquidity.d.ts +1 -1
- package/lib/raydium/marketV2/createMarket.d.ts +1 -1
- package/lib/raydium/marketV2/index.d.ts +1 -1
- package/lib/raydium/moduleBase.d.ts +1 -1
- package/lib/raydium/raydium.d.ts +1 -1
- package/lib/raydium/raydium.js +1 -1
- package/lib/raydium/raydium.js.map +1 -1
- package/lib/raydium/raydium.mjs +1 -1
- package/lib/raydium/raydium.mjs.map +1 -1
- package/lib/raydium/token/token.d.ts +1 -1
- package/lib/raydium/tradeV2/trade.d.ts +1 -1
- package/lib/raydium/utils1216/index.d.ts +1 -1
- package/lib/raydium/utils1216/utils1216.d.ts +1 -1
- package/lib/{raydium-9f713012.d.ts → raydium-97f3539d.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/cpmm/cpmm.ts +10 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Fn=Object.defineProperty,Vn=Object.defineProperties;var qn=Object.getOwnPropertyDescriptors;var Fe=Object.getOwnPropertySymbols;var Et=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable;var Dt=(e,n,t)=>n in e?Fn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,O=(e,n)=>{for(var t in n||(n={}))Et.call(n,t)&&Dt(e,t,n[t]);if(Fe)for(var t of Fe(n))Rt.call(n,t)&&Dt(e,t,n[t]);return e},X=(e,n)=>Vn(e,qn(n));var ae=(e,n)=>{var t={};for(var r in e)Et.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Fe)for(var r of Fe(e))n.indexOf(r)<0&&Rt.call(e,r)&&(t[r]=e[r]);return t};import{PublicKey as x}from"@solana/web3.js";import{NATIVE_MINT as it,TOKEN_PROGRAM_ID as ye,AccountLayout as Wn}from"@solana/spl-token";import Jr from"big.js";import Xe from"bn.js";import Y from"bn.js";var Te=9e15,de=1e9,st="0123456789abcdef",qe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ue="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",at={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},Wt,ue,S=!0,He="[DecimalError] ",pe=He+"Invalid argument: ",Ft=He+"Precision limit exceeded",Vt=He+"crypto unavailable",qt="[object Decimal]",H=Math.floor,V=Math.pow,Un=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Gn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Hn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ut=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ee=1e7,A=7,jn=9007199254740991,zn=qe.length-1,ut=Ue.length-1,g={toStringTag:qt};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),T(e)};g.ceil=function(){return T(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,n){var t,r=this,i=r.constructor;if(e=new i(e),n=new i(n),!e.s||!n.s)return new i(NaN);if(e.gt(n))throw Error(pe+n);return t=r.cmp(e),t<0?e:r.cmp(n)>0?n:new i(r)};g.comparedTo=g.cmp=function(e){var n,t,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,n=0,t=r<i?r:i;n<t;++n)if(s[n]!==a[n])return s[n]>a[n]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};g.cosine=g.cos=function(){var e,n,t=this,r=t.constructor;return t.d?t.d[0]?(e=r.precision,n=r.rounding,r.precision=e+Math.max(t.e,t.sd())+A,r.rounding=1,t=Zn(r,Zt(r,t)),r.precision=e,r.rounding=n,T(ue==2||ue==3?t.neg():t,e,n,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var e,n,t,r,i,o,s,a,c,u,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(S=!1,o=l.s*V(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=q(l.d),e=l.e,(o=(e-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=V(t,1/3),e=H((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?t="5e"+e:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new f(t),r.s=l.s):r=new f(o.toString()),s=(e=f.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=D(u.plus(l).times(a),u.plus(c),s+2,1),q(a.d).slice(0,s)===(t=q(r.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!i&&t=="4999"){if(!i&&(T(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(T(r,e+1,1),n=!r.times(r).times(r).eq(l));break}return S=!0,T(r,e,f.rounding,n)};g.decimalPlaces=g.dp=function(){var e,n=this.d,t=NaN;if(n){if(e=n.length-1,t=(e-H(this.e/A))*A,e=n[e],e)for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t};g.dividedBy=g.div=function(e){return D(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var n=this,t=n.constructor;return T(D(n,new t(e),0,1,1),t.precision,t.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return T(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var n=this.cmp(e);return n==1||n===0};g.hyperbolicCosine=g.cosh=function(){var e,n,t,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,r=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),n=(1/ze(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),o=xe(s,1,o.times(n),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return T(o,s.precision=t,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var e,n,t,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(n=o.precision,t=o.rounding,o.precision=n+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/ze(5,e)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=n,o.rounding=t,T(i,n,t,!0)};g.hyperbolicTangent=g.tanh=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+7,r.rounding=1,D(t.sinh(),t.cosh(),r.precision=e,r.rounding=n)):new r(t.s)};g.inverseCosine=g.acos=function(){var e,n=this,t=n.constructor,r=n.abs().cmp(1),i=t.precision,o=t.rounding;return r!==-1?r===0?n.isNeg()?$(t,i,o):new t(0):new t(NaN):n.isZero()?$(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,n=n.asin(),e=$(t,i+4,o).times(.5),t.precision=i,t.rounding=o,e.minus(n))};g.inverseHyperbolicCosine=g.acosh=function(){var e,n,t=this,r=t.constructor;return t.lte(1)?new r(t.eq(1)?0:NaN):t.isFinite()?(e=r.precision,n=r.rounding,r.precision=e+Math.max(Math.abs(t.e),t.sd())+4,r.rounding=1,S=!1,t=t.times(t).minus(1).sqrt().plus(t),S=!0,r.precision=e,r.rounding=n,t.ln()):new r(t)};g.inverseHyperbolicSine=g.asinh=function(){var e,n,t=this,r=t.constructor;return!t.isFinite()||t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,r.rounding=1,S=!1,t=t.times(t).plus(1).sqrt().plus(t),S=!0,r.precision=e,r.rounding=n,t.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var e,n,t,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,n=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?T(new o(i),e,n,!0):(o.precision=t=r-i.e,i=D(i.plus(1),new o(1).minus(i),t+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=n,i.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var e,n,t,r,i=this,o=i.constructor;return i.isZero()?new o(i):(n=i.abs().cmp(1),t=o.precision,r=o.rounding,n!==-1?n===0?(e=$(o,t+4,r).times(.5),e.s=i.s,e):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=r,i.times(2)))};g.inverseTangent=g.atan=function(){var e,n,t,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&f+4<=ut)return s=$(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=ut)return s=$(l,f+4,m).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,t=Math.min(28,a/A+2|0),e=t;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(S=!1,n=Math.ceil(a/A),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[n]!==void 0)for(e=n;s.d[e]===o.d[e]&&e--;);return t&&(s=s.times(2<<t-1)),S=!0,T(s,l.precision=f,l.rounding=m,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&H(this.e/A)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.log=function(e){var n,t,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding,d=5;if(e==null)e=new l(10),n=!0;else{if(e=new l(e),t=e.d,e.s<0||!t||!t[0]||e.eq(1))return new l(NaN);n=e.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(n)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(S=!1,a=f+d,s=me(u,a),r=n?Ge(l,a+10):me(e,a),c=D(s,r,a,1),Be(c.d,i=f,m))do if(a+=10,s=me(u,a),r=n?Ge(l,a+10):me(e,a),c=D(s,r,a,1),!o){+q(c.d).slice(i+1,i+15)+1==1e14&&(c=T(c,f+1,0));break}while(Be(c.d,i+=10,m));return S=!0,T(c,f,m)};g.minus=g.sub=function(e){var n,t,r,i,o,s,a,c,u,l,f,m,d=this,b=d.constructor;if(e=new b(e),!d.d||!e.d)return!d.s||!e.s?e=new b(NaN):d.d?e.s=-e.s:e=new b(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,m=e.d,a=b.precision,c=b.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else if(u[0])e=new b(d);else return new b(c===3?-0:0);return S?T(e,a,c):e}if(t=H(e.e/A),l=H(d.e/A),u=u.slice(),o=l-t,o){for(f=o<0,f?(n=u,o=-o,s=m.length):(n=m,t=l,s=u.length),r=Math.max(Math.ceil(a/A),s)+2,o>r&&(o=r,n.length=1),n.reverse(),r=o;r--;)n.push(0);n.reverse()}else{for(r=u.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(u[r]!=m[r]){f=u[r]<m[r];break}o=0}for(f&&(n=u,u=m,m=n,e.s=-e.s),s=u.length,r=m.length-s;r>0;--r)u[s++]=0;for(r=m.length;r>o;){if(u[--r]<m[r]){for(i=r;i&&u[--i]===0;)u[i]=ee-1;--u[i],u[r]+=ee}u[r]-=m[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(e.d=u,e.e=je(u,t),S?T(e,a,c):e):new b(c===3?-0:0)};g.modulo=g.mod=function(e){var n,t=this,r=t.constructor;return e=new r(e),!t.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||t.d&&!t.d[0]?T(new r(t),r.precision,r.rounding):(S=!1,r.modulo==9?(n=D(t,e.abs(),0,3,1),n.s*=e.s):n=D(t,e,0,r.modulo,1),n=n.times(e),S=!0,t.minus(n))};g.naturalExponential=g.exp=function(){return ct(this)};g.naturalLogarithm=g.ln=function(){return me(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,T(e)};g.plus=g.add=function(e){var n,t,r,i,o,s,a,c,u,l,f=this,m=f.constructor;if(e=new m(e),!f.d||!e.d)return!f.s||!e.s?e=new m(NaN):f.d||(e=new m(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(u=f.d,l=e.d,a=m.precision,c=m.rounding,!u[0]||!l[0])return l[0]||(e=new m(f)),S?T(e,a,c):e;if(o=H(f.e/A),r=H(e.e/A),u=u.slice(),i=o-r,i){for(i<0?(t=u,i=-i,s=l.length):(t=l,r=o,s=u.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,i>s&&(i=s,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,t=l,l=u,u=t),n=0;i;)n=(u[--i]=u[i]+l[i]+n)/ee|0,u[i]%=ee;for(n&&(u.unshift(n),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=je(u,r),S?T(e,a,c):e};g.precision=g.sd=function(e){var n,t=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(pe+e);return t.d?(n=Gt(t.d),e&&t.e+1>n&&(n=t.e+1)):n=NaN,n};g.round=function(){var e=this,n=e.constructor;return T(new n(e),e.e+1,n.rounding)};g.sine=g.sin=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+Math.max(t.e,t.sd())+A,r.rounding=1,t=Jn(r,Zt(r,t)),r.precision=e,r.rounding=n,T(ue>2?t.neg():t,e,n,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var e,n,t,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(S=!1,u=Math.sqrt(+s),u==0||u==1/0?(n=q(a),(n.length+c)%2==0&&(n+="0"),u=Math.sqrt(n),c=H((c+1)/2)-(c<0||c%2),u==1/0?n="5e"+c:(n=u.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),r=new l(n)):r=new l(u.toString()),t=(c=l.precision)+3;;)if(o=r,r=o.plus(D(s,o,t+2,1)).times(.5),q(o.d).slice(0,t)===(n=q(r.d)).slice(0,t))if(n=n.slice(t-3,t+1),n=="9999"||!i&&n=="4999"){if(!i&&(T(o,c+1,0),o.times(o).eq(s))){r=o;break}t+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(T(r,c+1,1),e=!r.times(r).eq(s));break}return S=!0,T(r,c,l.rounding,e)};g.tangent=g.tan=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+10,r.rounding=1,t=t.sin(),t.s=1,t=D(t,new r(1).minus(t.times(t)).sqrt(),e+10,0),r.precision=e,r.rounding=n,T(ue==2||ue==4?t.neg():t,e,n,!0)):new r(NaN)};g.times=g.mul=function(e){var n,t,r,i,o,s,a,c,u,l=this,f=l.constructor,m=l.d,d=(e=new f(e)).d;if(e.s*=l.s,!m||!m[0]||!d||!d[0])return new f(!e.s||m&&!m[0]&&!d||d&&!d[0]&&!m?NaN:!m||!d?e.s/0:e.s*0);for(t=H(l.e/A)+H(e.e/A),c=m.length,u=d.length,c<u&&(o=m,m=d,d=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(n=0,i=c+r;i>r;)a=o[i]+d[r]*m[i-r-1]+n,o[i--]=a%ee|0,n=a/ee|0;o[i]=(o[i]+n)%ee|0}for(;!o[--s];)o.pop();return n?++t:o.shift(),e.d=o,e.e=je(o,t),S?T(e,f.precision,f.rounding):e};g.toBinary=function(e,n){return ft(this,2,e,n)};g.toDecimalPlaces=g.toDP=function(e,n){var t=this,r=t.constructor;return t=new r(t),e===void 0?t:(Z(e,0,de),n===void 0?n=r.rounding:Z(n,0,8),T(t,e+t.e+1,n))};g.toExponential=function(e,n){var t,r=this,i=r.constructor;return e===void 0?t=ie(r,!0):(Z(e,0,de),n===void 0?n=i.rounding:Z(n,0,8),r=T(new i(r),e+1,n),t=ie(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};g.toFixed=function(e,n){var t,r,i=this,o=i.constructor;return e===void 0?t=ie(i):(Z(e,0,de),n===void 0?n=o.rounding:Z(n,0,8),r=T(new o(i),e+i.e+1,n),t=ie(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};g.toFraction=function(e){var n,t,r,i,o,s,a,c,u,l,f,m,d=this,b=d.d,p=d.constructor;if(!b)return new p(d);if(u=t=new p(1),r=c=new p(0),n=new p(r),o=n.e=Gt(b)-d.e-1,s=o%A,n.d[0]=V(10,s<0?A+s:s),e==null)e=o>0?n:u;else{if(a=new p(e),!a.isInt()||a.lt(u))throw Error(pe+a);e=a.gt(n)?o>0?n:u:a}for(S=!1,a=new p(q(b)),l=p.precision,p.precision=o=b.length*A*2;f=D(a,n,0,1,1),i=t.plus(f.times(r)),i.cmp(e)!=1;)t=r,r=i,i=u,u=c.plus(f.times(i)),c=i,i=n,n=a.minus(f.times(i)),a=i;return i=D(e.minus(t),r,0,1,1),c=c.plus(i.times(u)),t=t.plus(i.times(r)),c.s=u.s=d.s,m=D(u,r,o,1).minus(d).abs().cmp(D(c,t,o,1).minus(d).abs())<1?[u,r]:[c,t],p.precision=l,S=!0,m};g.toHexadecimal=g.toHex=function(e,n){return ft(this,16,e,n)};g.toNearest=function(e,n){var t=this,r=t.constructor;if(t=new r(t),e==null){if(!t.d)return t;e=new r(1),n=r.rounding}else{if(e=new r(e),n===void 0?n=r.rounding:Z(n,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(S=!1,t=D(t,e,0,n,1).times(e),S=!0,T(t)):(e.s=t.s,t=e),t};g.toNumber=function(){return+this};g.toOctal=function(e,n){return ft(this,8,e,n)};g.toPower=g.pow=function(e){var n,t,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(V(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return T(a,r,o);if(n=H(e.e/A),n>=e.d.length-1&&(t=u<0?-u:u)<=jn)return i=Ht(c,a,t,r),e.s<0?new c(1).div(i):T(i,r,o);if(s=a.s,s<0){if(n<e.d.length-1)return new c(NaN);if((e.d[n]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=V(+a,u),n=t==0||!isFinite(t)?H(u*(Math.log("0."+q(a.d))/Math.LN10+a.e+1)):new c(t+"").e,n>c.maxE+1||n<c.minE-1?new c(n>0?s/0:0):(S=!1,c.rounding=a.s=1,t=Math.min(12,(n+"").length),i=ct(e.times(me(a,r+t)),r),i.d&&(i=T(i,r+5,1),Be(i.d,r,o)&&(n=r+10,i=T(ct(e.times(me(a,n+t)),n),n+5,1),+q(i.d).slice(r+1,r+15)+1==1e14&&(i=T(i,r+1,0)))),i.s=s,S=!0,c.rounding=o,T(i,r,o))};g.toPrecision=function(e,n){var t,r=this,i=r.constructor;return e===void 0?t=ie(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(Z(e,1,de),n===void 0?n=i.rounding:Z(n,0,8),r=T(new i(r),e,n),t=ie(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+t:t};g.toSignificantDigits=g.toSD=function(e,n){var t=this,r=t.constructor;return e===void 0?(e=r.precision,n=r.rounding):(Z(e,1,de),n===void 0?n=r.rounding:Z(n,0,8)),T(new r(t),e,n)};g.toString=function(){var e=this,n=e.constructor,t=ie(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t};g.truncated=g.trunc=function(){return T(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var e=this,n=e.constructor,t=ie(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+t:t};function q(e){var n,t,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,n=1;n<i;n++)r=e[n]+"",t=A-r.length,t&&(o+=fe(t)),o+=r;s=e[n],r=s+"",t=A-r.length,t&&(o+=fe(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Z(e,n,t){if(e!==~~e||e<n||e>t)throw Error(pe+e)}function Be(e,n,t,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--n;return--n<0?(n+=A,i=0):(i=Math.ceil((n+1)/A),n%=A),o=V(10,A-n),a=e[i]%o|0,r==null?n<3?(n==0?a=a/100|0:n==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(e[i+1]/o/100|0)==V(10,n-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:n<4?(n==0?a=a/1e3|0:n==1?a=a/100|0:n==2&&(a=a/10|0),s=(r||t<4)&&a==9999||!r&&t>3&&a==4999):s=((r||t<4)&&a+1==o||!r&&t>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==V(10,n-3)-1,s}function Ve(e,n,t){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=n;for(i[0]+=st.indexOf(e.charAt(s++)),r=0;r<i.length;r++)i[r]>t-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/t|0,i[r]%=t)}return i.reverse()}function Zn(e,n){var t,r,i;if(n.isZero())return n;r=n.d.length,r<32?(t=Math.ceil(r/3),i=(1/ze(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),e.precision+=t,n=xe(e,1,n.times(i),new e(1));for(var o=t;o--;){var s=n.times(n);n=s.times(s).minus(s).times(8).plus(1)}return e.precision-=t,n}var D=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function n(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function t(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,l,f,m,d,b,p,y,h,P,w,B,k,C,N,M,v,z,F,J,we=r.constructor,ot=r.s==i.s?1:-1,G=r.d,R=i.d;if(!G||!G[0]||!R||!R[0])return new we(!r.s||!i.s||(G?R&&G[0]==R[0]:!R)?NaN:G&&G[0]==0||!R?ot*0:ot/0);for(c?(d=1,l=r.e-i.e):(c=ee,d=A,l=H(r.e/d)-H(i.e/d)),F=R.length,v=G.length,h=new we(ot),P=h.d=[],f=0;R[f]==(G[f]||0);f++);if(R[f]>(G[f]||0)&&l--,o==null?(C=o=we.precision,s=we.rounding):a?C=o+(r.e-i.e)+1:C=o,C<0)P.push(1),b=!0;else{if(C=C/d+2|0,f=0,F==1){for(m=0,R=R[0],C++;(f<v||m)&&C--;f++)N=m*c+(G[f]||0),P[f]=N/R|0,m=N%R|0;b=m||f<v}else{for(m=c/(R[0]+1)|0,m>1&&(R=e(R,m,c),G=e(G,m,c),F=R.length,v=G.length),M=F,w=G.slice(0,F),B=w.length;B<F;)w[B++]=0;J=R.slice(),J.unshift(0),z=R[0],R[1]>=c/2&&++z;do m=0,u=n(R,w,F,B),u<0?(k=w[0],F!=B&&(k=k*c+(w[1]||0)),m=k/z|0,m>1?(m>=c&&(m=c-1),p=e(R,m,c),y=p.length,B=w.length,u=n(p,w,y,B),u==1&&(m--,t(p,F<y?J:R,y,c))):(m==0&&(u=m=1),p=R.slice()),y=p.length,y<B&&p.unshift(0),t(w,p,B,c),u==-1&&(B=w.length,u=n(R,w,F,B),u<1&&(m++,t(w,F<B?J:R,B,c))),B=w.length):u===0&&(m++,w=[0]),P[f++]=m,u&&w[0]?w[B++]=G[M]||0:(w=[G[M]],B=1);while((M++<v||w[0]!==void 0)&&C--);b=w[0]!==void 0}P[0]||P.shift()}if(d==1)h.e=l,Wt=b;else{for(f=1,m=P[0];m>=10;m/=10)f++;h.e=f+l*d-1,T(h,a?o+h.e+1:o,s,b)}return h}}();function T(e,n,t,r){var i,o,s,a,c,u,l,f,m,d=e.constructor;e:if(n!=null){if(f=e.d,!f)return e;for(i=1,a=f[0];a>=10;a/=10)i++;if(o=n-i,o<0)o+=A,s=n,l=f[m=0],c=l/V(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/A),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=A,s=o-A+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=A,s=o-A+i,c=s<0?0:l/V(10,i-s-1)%10|0}if(r=r||n<0||f[m+1]!==void 0||(s<0?l:l%V(10,i-s-1)),u=t<4?(c||r)&&(t==0||t==(e.s<0?3:2)):c>5||c==5&&(t==4||r||t==6&&(o>0?s>0?l/V(10,i-s):0:f[m-1])%10&1||t==(e.s<0?8:7)),n<1||!f[0])return f.length=0,u?(n-=e.e+1,f[0]=V(10,(A-n%A)%A),e.e=-n||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=V(10,A-o),f[m]=s>0?(l/V(10,i-s)%V(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==ee&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=ee)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return S&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function ie(e,n,t){if(!e.isFinite())return zt(e);var r,i=e.e,o=q(e.d),s=o.length;return n?(t&&(r=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+fe(-i-1)+o,t&&(r=t-s)>0&&(o+=fe(r))):i>=s?(o+=fe(i+1-s),t&&(r=t-i-1)>0&&(o=o+"."+fe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),t&&(r=t-s)>0&&(i+1===s&&(o+="."),o+=fe(r))),o}function je(e,n){var t=e[0];for(n*=A;t>=10;t/=10)n++;return n}function Ge(e,n,t){if(n>zn)throw S=!0,t&&(e.precision=t),Error(Ft);return T(new e(qe),n,1,!0)}function $(e,n,t){if(n>ut)throw Error(Ft);return T(new e(Ue),n,t,!0)}function Gt(e){var n=e.length-1,t=n*A+1;if(n=e[n],n){for(;n%10==0;n/=10)t--;for(n=e[0];n>=10;n/=10)t++}return t}function fe(e){for(var n="";e--;)n+="0";return n}function Ht(e,n,t,r){var i,o=new e(1),s=Math.ceil(r/A+4);for(S=!1;;){if(t%2&&(o=o.times(n),Ot(o.d,s)&&(i=!0)),t=H(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}n=n.times(n),Ot(n.d,s)}return S=!0,o}function _t(e){return e.d[e.d.length-1]&1}function jt(e,n,t){for(var r,i=new e(n[0]),o=0;++o<n.length;)if(r=new e(n[o]),r.s)i[t](r)&&(i=r);else{i=r;break}return i}function ct(e,n){var t,r,i,o,s,a,c,u=0,l=0,f=0,m=e.constructor,d=m.rounding,b=m.precision;if(!e.d||!e.d[0]||e.e>17)return new m(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(n==null?(S=!1,c=b):c=n,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(V(2,f))/Math.LN10*2+5|0,c+=r,t=o=s=new m(1),m.precision=c;;){if(o=T(o.times(e),c,1),t=t.times(++l),a=s.plus(D(o,t,c,1)),q(a.d).slice(0,c)===q(s.d).slice(0,c)){for(i=f;i--;)s=T(s.times(s),c,1);if(n==null)if(u<3&&Be(s.d,c-r,d,u))m.precision=c+=10,t=o=a=new m(1),l=0,u++;else return T(s,m.precision=b,d,S=!0);else return m.precision=b,s}s=a}}function me(e,n){var t,r,i,o,s,a,c,u,l,f,m,d=1,b=10,p=e,y=p.d,h=p.constructor,P=h.rounding,w=h.precision;if(p.s<0||!y||!y[0]||!p.e&&y[0]==1&&y.length==1)return new h(y&&!y[0]?-1/0:p.s!=1?NaN:y?0:p);if(n==null?(S=!1,l=w):l=n,h.precision=l+=b,t=q(y),r=t.charAt(0),Math.abs(o=p.e)<15e14){for(;r<7&&r!=1||r==1&&t.charAt(1)>3;)p=p.times(e),t=q(p.d),r=t.charAt(0),d++;o=p.e,r>1?(p=new h("0."+t),o++):p=new h(r+"."+t.slice(1))}else return u=Ge(h,l+2,w).times(o+""),p=me(new h(r+"."+t.slice(1)),l-b).plus(u),h.precision=w,n==null?T(p,w,P,S=!0):p;for(f=p,c=s=p=D(p.minus(1),p.plus(1),l,1),m=T(p.times(p),l,1),i=3;;){if(s=T(s.times(m),l,1),u=c.plus(D(s,new h(i),l,1)),q(u.d).slice(0,l)===q(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Ge(h,l+2,w).times(o+""))),c=D(c,new h(d),l,1),n==null)if(Be(c.d,l-b,P,a))h.precision=l+=b,u=s=p=D(f.minus(1),f.plus(1),l,1),m=T(p.times(p),l,1),i=a=1;else return T(c,h.precision=w,P,S=!0);else return h.precision=w,c;c=u,i+=2}}function zt(e){return String(e.s*e.s/0)}function lt(e,n){var t,r,i;for((t=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(t<0&&(t=r),t+=+n.slice(r+1),n=n.substring(0,r)):t<0&&(t=n.length),r=0;n.charCodeAt(r)===48;r++);for(i=n.length;n.charCodeAt(i-1)===48;--i);if(n=n.slice(r,i),n){if(i-=r,e.e=t=t-r-1,e.d=[],r=(t+1)%A,t<0&&(r+=A),r<i){for(r&&e.d.push(+n.slice(0,r)),i-=A;r<i;)e.d.push(+n.slice(r,r+=A));n=n.slice(r),r=A-n.length}else r-=i;for(;r--;)n+="0";e.d.push(+n),S&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Yn(e,n){var t,r,i,o,s,a,c,u,l;if(n.indexOf("_")>-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Ut.test(n))return lt(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(Gn.test(n))t=16,n=n.toLowerCase();else if(Un.test(n))t=2;else if(Hn.test(n))t=8;else throw Error(pe+n);for(o=n.search(/p/i),o>0?(c=+n.slice(o+1),n=n.substring(2,o)):n=n.slice(2),o=n.indexOf("."),s=o>=0,r=e.constructor,s&&(n=n.replace(".",""),a=n.length,o=a-o,i=Ht(r,new r(t),o,o*2)),u=Ve(n,t,ee),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=je(u,l),e.d=u,S=!1,s&&(e=D(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?V(2,c):Se.pow(2,c))),S=!0,e)}function Jn(e,n){var t,r=n.d.length;if(r<3)return n.isZero()?n:xe(e,2,n,n);t=1.4*Math.sqrt(r),t=t>16?16:t|0,n=n.times(1/ze(5,t)),n=xe(e,2,n,n);for(var i,o=new e(5),s=new e(16),a=new e(20);t--;)i=n.times(n),n=n.times(o.plus(i.times(s.times(i).minus(a))));return n}function xe(e,n,t,r,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/A);for(S=!1,c=t.times(t),a=new e(r);;){if(s=D(a.times(c),new e(n++*n++),l,1),a=i?r.plus(s):r.minus(s),r=D(s.times(c),new e(n++*n++),l,1),s=a.plus(r),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return S=!0,s.d.length=f+1,s}function ze(e,n){for(var t=e;--n;)t*=e;return t}function Zt(e,n){var t,r=n.s<0,i=$(e,e.precision,1),o=i.times(.5);if(n=n.abs(),n.lte(o))return ue=r?4:1,n;if(t=n.divToInt(i),t.isZero())ue=r?3:2;else{if(n=n.minus(t.times(i)),n.lte(o))return ue=_t(t)?r?2:3:r?4:1,n;ue=_t(t)?r?1:4:r?3:2}return n.minus(i).abs()}function ft(e,n,t,r){var i,o,s,a,c,u,l,f,m,d=e.constructor,b=t!==void 0;if(b?(Z(t,1,de),r===void 0?r=d.rounding:Z(r,0,8)):(t=d.precision,r=d.rounding),!e.isFinite())l=zt(e);else{for(l=ie(e),s=l.indexOf("."),b?(i=2,n==16?t=t*4-3:n==8&&(t=t*3-2)):i=n,s>=0&&(l=l.replace(".",""),m=new d(1),m.e=l.length-s,m.d=Ve(ie(m),10,i),m.e=m.d.length),f=Ve(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=b?"0p+0":"0";else{if(s<0?o--:(e=new d(e),e.d=f,e.e=o,e=D(e,m,t,r,0,i),f=e.d,o=e.e,u=Wt),s=f[t],a=i/2,u=u||f[t+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&f[t-1]&1||r===(e.s<0?8:7)),f.length=t,u)for(;++f[--t]>i-1;)f[t]=0,t||(++o,f.unshift(1));for(c=f.length;!f[c-1];--c);for(s=0,l="";s<c;s++)l+=st.charAt(f[s]);if(b){if(c>1)if(n==16||n==8){for(s=n==16?4:3,--c;c%s;c++)l+="0";for(f=Ve(l,i,n),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=st.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(n==16?"0x":n==2?"0b":n==8?"0o":"")+l}return e.s<0?"-"+l:l}function Ot(e,n){if(e.length>n)return e.length=n,!0}function Xn(e){return new this(e).abs()}function Qn(e){return new this(e).acos()}function $n(e){return new this(e).acosh()}function er(e,n){return new this(e).plus(n)}function tr(e){return new this(e).asin()}function nr(e){return new this(e).asinh()}function rr(e){return new this(e).atan()}function ir(e){return new this(e).atanh()}function or(e,n){e=new this(e),n=new this(n);var t,r=this.precision,i=this.rounding,o=r+4;return!e.s||!n.s?t=new this(NaN):!e.d&&!n.d?(t=$(this,o,1).times(n.s>0?.25:.75),t.s=e.s):!n.d||e.isZero()?(t=n.s<0?$(this,r,i):new this(0),t.s=e.s):!e.d||n.isZero()?(t=$(this,o,1).times(.5),t.s=e.s):n.s<0?(this.precision=o,this.rounding=1,t=this.atan(D(e,n,o,1)),n=$(this,o,1),this.precision=r,this.rounding=i,t=e.s<0?t.minus(n):t.plus(n)):t=this.atan(D(e,n,o,1)),t}function sr(e){return new this(e).cbrt()}function ar(e){return T(e=new this(e),e.e+1,2)}function ur(e,n,t){return new this(e).clamp(n,t)}function cr(e){if(!e||typeof e!="object")throw Error(He+"Object expected");var n,t,r,i=e.defaults===!0,o=["precision",1,de,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(n=0;n<o.length;n+=3)if(t=o[n],i&&(this[t]=at[t]),(r=e[t])!==void 0)if(H(r)===r&&r>=o[n+1]&&r<=o[n+2])this[t]=r;else throw Error(pe+t+": "+r);if(t="crypto",i&&(this[t]=at[t]),(r=e[t])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Vt);else this[t]=!1;else throw Error(pe+t+": "+r);return this}function lr(e){return new this(e).cos()}function fr(e){return new this(e).cosh()}function Yt(e){var n,t,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,vt(o)){u.s=o.s,S?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;S?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return lt(u,o.toString())}else if(c!=="string")throw Error(pe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Ut.test(o)?lt(u,o):Yn(u,o)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=cr,i.clone=Yt,i.isDecimal=vt,i.abs=Xn,i.acos=Qn,i.acosh=$n,i.add=er,i.asin=tr,i.asinh=nr,i.atan=rr,i.atanh=ir,i.atan2=or,i.cbrt=sr,i.ceil=ar,i.clamp=ur,i.cos=lr,i.cosh=fr,i.div=mr,i.exp=pr,i.floor=dr,i.hypot=gr,i.ln=hr,i.log=br,i.log10=wr,i.log2=yr,i.max=Pr,i.min=Tr,i.mod=xr,i.mul=Ar,i.pow=kr,i.random=Br,i.round=Sr,i.sign=Cr,i.sin=Ir,i.sinh=Lr,i.sqrt=Nr,i.sub=Kr,i.sum=Mr,i.tan=Dr,i.tanh=Er,i.trunc=Rr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<r.length;)e.hasOwnProperty(t=r[n++])||(e[t]=this[t]);return i.config(e),i}function mr(e,n){return new this(e).div(n)}function pr(e){return new this(e).exp()}function dr(e){return T(e=new this(e),e.e+1,3)}function gr(){var e,n,t=new this(0);for(S=!1,e=0;e<arguments.length;)if(n=new this(arguments[e++]),n.d)t.d&&(t=t.plus(n.times(n)));else{if(n.s)return S=!0,new this(1/0);t=n}return S=!0,t.sqrt()}function vt(e){return e instanceof Se||e&&e.toStringTag===qt||!1}function hr(e){return new this(e).ln()}function br(e,n){return new this(e).log(n)}function yr(e){return new this(e).log(2)}function wr(e){return new this(e).log(10)}function Pr(){return jt(this,arguments,"lt")}function Tr(){return jt(this,arguments,"gt")}function xr(e,n){return new this(e).mod(n)}function Ar(e,n){return new this(e).mul(n)}function kr(e,n){return new this(e).pow(n)}function Br(e){var n,t,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Z(e,1,de),r=Math.ceil(e/A),this.crypto)if(crypto.getRandomValues)for(n=crypto.getRandomValues(new Uint32Array(r));o<r;)i=n[o],i>=429e7?n[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(r*=4);o<r;)i=n[o]+(n[o+1]<<8)+(n[o+2]<<16)+((n[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(n,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Vt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=A,r&&e&&(i=V(10,A-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=A)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<A&&(t-=A-r)}return s.e=t,s.d=a,s}function Sr(e){return T(e=new this(e),e.e+1,this.rounding)}function Cr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ir(e){return new this(e).sin()}function Lr(e){return new this(e).sinh()}function Nr(e){return new this(e).sqrt()}function Kr(e,n){return new this(e).sub(n)}function Mr(){var e=0,n=arguments,t=new this(n[e]);for(S=!1;t.s&&++e<n.length;)t=t.plus(n[e]);return S=!0,T(t,this.precision,this.rounding)}function Dr(e){return new this(e).tan()}function Er(e){return new this(e).tanh()}function Rr(e){return T(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Se=g.constructor=Yt(at);qe=new Se(qe);Ue=new Se(Ue);var te=Se;import{PublicKey as dt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _r}from"@solana/spl-token";import{PublicKey as _,SystemProgram as Jt,SYSVAR_RENT_PUBKEY as Or}from"@solana/web3.js";function mt({pubkey:e,isSigner:n=!1,isWritable:t=!0}){return{pubkey:e,isWritable:t,isSigner:n}}var _i=[mt({pubkey:_r,isWritable:!1}),mt({pubkey:Jt.programId,isWritable:!1}),mt({pubkey:Or,isWritable:!1})];function Xt({publicKey:e,transformSol:n}){let t=Qt(e.toString());if(t instanceof _)return n&&t.equals(Ie)?Ce:t;if(n&&t.toString()===Ie.toBase58())return Ce;if(typeof t=="string"){if(t===_.default.toBase58())return _.default;try{return new _(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Qt(e){try{return new _(e)}catch{return e}}var Oi=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$t=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),en=new _("SysvarRent111111111111111111111111111111111"),vi=new _("SysvarC1ock11111111111111111111111111111111"),Wi=new _("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fi=new _("Sysvar1nstructions1111111111111111111111111"),tn=Jt.programId,Vi=new _("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qi=new _("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ui=new _("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gi=new _("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Hi=new _("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ji=new _("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zi=new _("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Zi=new _("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Yi=new _("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ji=new _("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xi=new _("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ce=new _("So11111111111111111111111111111111111111112"),Ie=_.default;import{PublicKey as vr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nn}from"@solana/spl-token";var pt={chainId:101,address:vr.default.toBase58(),programId:nn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ge={chainId:101,address:"So11111111111111111111111111111111111111112",programId:nn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var gt=class{constructor({mint:n,decimals:t,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(n===Ie.toBase58()||n instanceof dt&&Ie.equals(n)){this.decimals=ge.decimals,this.symbol=ge.symbol,this.name=ge.name,this.mint=new dt(ge.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||n.toString().substring(0,6),this.name=i||n.toString().substring(0,6),this.mint=o?dt.default:Xt({publicKey:n}),this.isToken2022=s}equals(n){return this===n?!0:this.mint.equals(n.mint)}},he=gt;he.WSOL=new gt(X(O({},ge),{mint:ge.address}));import{get as rn,set as Wr}from"lodash";import sn from"dayjs";import Fr from"dayjs/plugin/utc";sn.extend(Fr);var ht=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return sn().utc().format("YYYY/MM/DD HH:mm:ss UTC")}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},on={},Vr={};function U(e){let n=rn(on,e);if(!n){let t=rn(Vr,e);n=new ht({name:e,logLevel:t}),Wr(on,e,n)}return n}import Ye from"big.js";import Gr from"bn.js";import Hr from"decimal.js-light";import qr from"toformat";var Ur=qr,Le=Ur;var Ze=U("module/fraction"),bt=Le(Ye),Ne=Le(Hr),jr={[0]:Ne.ROUND_DOWN,[1]:Ne.ROUND_HALF_UP,[2]:Ne.ROUND_UP},zr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},E=class{constructor(n,t=new Gr(1)){this.numerator=ne(n),this.denominator=ne(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new E(this.denominator,this.numerator)}add(n){let t=n instanceof E?n:new E(ne(n));return this.denominator.eq(t.denominator)?new E(this.numerator.add(t.numerator),this.denominator):new E(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(n){let t=n instanceof E?n:new E(ne(n));return this.denominator.eq(t.denominator)?new E(this.numerator.sub(t.numerator),this.denominator):new E(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(n){let t=n instanceof E?n:new E(ne(n));return new E(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof E?n:new E(ne(n));return new E(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},r=1){Number.isInteger(n)||Ze.logWithError(`${n} is not an integer.`),n<=0&&Ze.logWithError(`${n} is not positive.`),Ne.set({precision:n+1,rounding:jr[r]});let i=new Ne(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return i.toFormat(i.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},r=1){return Number.isInteger(n)||Ze.logWithError(`${n} is not an integer.`),n<0&&Ze.logWithError(`${n} is negative.`),bt.DP=n,bt.RM=zr[r]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};var Io=U("Raydium_price");var yt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=r}equals(n){return this===n}},Je=yt;Je.SOL=new yt(pt);import Yr from"bn.js";var an=new E(new Yr(100)),be=class extends E{toSignificant(n=5,t,r){return this.mul(an).toSignificant(n,t,r)}toFixed(n=2,t,r){return this.mul(an).toFixed(n,t,r)}};import{PublicKey as Uo}from"@solana/web3.js";import Ho from"bn.js";var wt=new Y(0),us=new Y(1),cs=new Y(2),ls=new Y(3),fs=new Y(5),ln=new Y(10),ms=new Y(100),ps=new Y(1e3),ds=new Y(1e4),cn=9007199254740991;function ne(e){let n=U("Raydium_parseBigNumberish");if(e instanceof Y)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Y(e);n.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&n.logWithError(`BigNumberish number underflow: ${e}`),(e>=cn||e<=-cn)&&n.logWithError(`BigNumberish number overflow: ${e}`),new Y(String(e))):typeof e=="bigint"?new Y(e.toString()):(n.error(`invalid BigNumberish value: ${e}`),new Y(0))}var Xr=U("Raydium_amount"),fn=Le(Jr);function Qr(e,n){let t="0",r="0";if(e.includes(".")){let i=e.split(".");i.length===2?([t,r]=i,r=r.padEnd(n,"0")):Xr.logWithError(`invalid number string, num: ${e}`)}else t=e;return[t,r.slice(0,n)||r]}var Q=class extends E{constructor(t,r,i=!0,o){let s=new Xe(0),a=ln.pow(new Xe(t.decimals));if(i)s=ne(r);else{let c=new Xe(0),u=new Xe(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,f]=Qr(r.toString(),t.decimals);c=ne(l),u=ne(f)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=U(o||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Q(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Q(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,r,i=0){return super.toSignificant(t,r,i)}toFixed(t=this.token.decimals,r,i=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,r,i)}toExact(t={groupSeparator:""}){return fn.DP=this.token.decimals,new fn(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as si}from"@solana/web3.js";import hn,{isBN as bn}from"bn.js";import{bits as _s,BitStructure as Os,blob as $r,Blob as vs,cstr as Ws,f32 as Fs,f32be as Vs,f64 as qs,f64be as Us,greedy as Gs,Layout as ei,ns64 as Hs,ns64be as js,nu64 as zs,nu64be as Zs,offset as Ys,s16 as Js,s16be as Xs,s24 as Qs,s24be as $s,s32 as ea,s32be as ta,s40 as na,s40be as ra,s48 as ia,s48be as oa,s8 as sa,seq as ti,struct as aa,Structure as ni,u16 as ri,u16be as ua,u24 as ca,u24be as la,u32 as fa,u32be as ma,u40 as pa,u40be as da,u48 as ga,u48be as ha,u8 as ii,UInt as oi,union as ba,Union as ya,unionLayoutDiscriminator as wa,utf8 as Pa}from"@solana/buffer-layout";var Pt=ei,mn=ni;var Tt=oi;var pn=ii,dn=ri;var gn=ti;var Ae=$r;var xt=class extends Pt{constructor(t,r,i){super(t,i);this.blob=Ae(t),this.signed=r}decode(t,r=0){let i=new hn(this.blob.decode(t,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,r,i=0){return typeof t=="number"&&(t=new hn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),r,i)}};function oe(e){return new Tt(1,e)}function kt(e){return new Tt(4,e)}function K(e){return new xt(8,!1,e)}var Qe=class extends Pt{constructor(t,r,i,o){super(t.span,o);this.layout=t,this.decoder=r,this.encoder=i}decode(t,r){return this.decoder(this.layout.decode(t,r))}encode(t,r,i){return this.layout.encode(this.encoder(t),r,i)}getSpan(t,r){return this.layout.getSpan(t,r)}};function j(e){return new Qe(Ae(32),n=>new si(n),n=>n.toBuffer(),e)}function yn(e){return new Qe(pn(),ai,ui,e)}function ai(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function ui(e){return e?1:0}var At=class extends mn{decode(n,t){return super.decode(n,t)}};function re(e,n,t){return new At(e,n,t)}function Bt(e,n,t){let r,i=typeof n=="number"?n:bn(n)?n.toNumber():new Proxy(n,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=bn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return gn(e,i,t)}var Ea=re([kt("mintAuthorityOption"),j("mintAuthority"),K("supply"),oe("decimals"),oe("isInitialized"),kt("freezeAuthorityOption"),j("freezeAuthority")]);import{PublicKey as va}from"@solana/web3.js";import{MintLayout as Fa,TOKEN_PROGRAM_ID as qa}from"@solana/spl-token";var wn=e=>new he({mint:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name});import{PublicKey as di}from"@solana/web3.js";import{PublicKey as ci,ComputeBudgetProgram as Pn,Transaction as xn,TransactionMessage as li,Keypair as An,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fi}from"@solana/spl-token";var ce={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Tn=U("Raydium_txUtil"),Bn=1644;function $e(e){let n=[],t=[];return e.microLamports&&(n.push(Pn.setComputeUnitPrice({microLamports:e.microLamports})),t.push(ce.SetComputeUnitPrice)),e.units&&(n.push(Pn.setComputeUnitLimit({units:e.units})),t.push(ce.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function ke(e){var n,t;try{return((t=await((n=e.getLatestBlockhash)==null?void 0:n.call(e)))==null?void 0:t.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function mi(e,n){e.length<1&&Tn.logWithError(`no instructions provided: ${e.toString()}`),n.length<1&&Tn.logWithError(`no signers provided:, ${n.toString()}`);let t=new xn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...e);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function le(e,n){let[t,r]=ci.findProgramAddressSync(e,n);return{publicKey:t,nonce:r}}function Ke({instructions:e,payer:n,signers:t}){return mi(e,[n,...t])}function Me({instructions:e,payer:n,lookupTableAddressAccount:t,recentBlockhash:r=An.generate().publicKey.toString()}){let o=new li({payerKey:n,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new kn(o).serialize()).toString("base64").length<Bn}catch{return!1}}var pi=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function Pe(e){let n=[];return e.forEach(t=>{t instanceof xn&&(t.recentBlockhash||(t.recentBlockhash=fi.toBase58()),t.feePayer||(t.feePayer=An.generate().publicKey));let r=t.serialize({requireAllSignatures:!1,verifySignatures:!1});t instanceof kn&&(r=pi(r));let i=r.toString("base64");n.push(i)}),console.log("simulate tx string:",n),n}import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";function Sn(e,n,t){return le([e.toBuffer(),(t!=null?t:gi).toBuffer(),n.toBuffer()],new di("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as De,sendAndConfirmTransaction as Lt,Transaction as Ee,TransactionMessage as Re,VersionedTransaction as _e}from"@solana/web3.js";import bi from"axios";import{PublicKey as In,AddressLookupTableAccount as et}from"@solana/web3.js";import{PublicKey as hi}from"@solana/web3.js";import{getTransferFeeConfig as ac,unpackMint as uc}from"@solana/spl-token";function St(e,n=1,t=[]){let r=[...e];if(n<=0)return t;for(;r.length;)t.push(r.splice(0,n));return t}import{PublicKey as W}from"@solana/web3.js";var gu=new W("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),hu=new W("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bu=new W("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),yu=new W("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wu=new W("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Pu=new W("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Tu=new W("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xu=new W("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Au=new W("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ku=new W("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bu=new W("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Su=new W("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Cu=new W("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Iu=new W("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Lu=new W("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Nu=new W("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ku=new W("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mu=new W("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Du=new W("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Eu=new W("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");import Ou from"bn.js";var Ct=U("Raydium_accountInfo_util");async function Cn(e,n,t){let{batchRequest:r,commitment:i="confirmed"}=O({batchRequest:!1},t),o=St(n,100),s=new Array(o.length).fill([]);if(r){let a=o.map(l=>{let f=e._buildArgs([l.map(m=>m.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=St(a,10);s=(await(await Promise.all(c.map(async l=>await e._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:m,executable:d,lamports:b,owner:p,rentEpoch:y}=f;return m.length!==2&&m[1]!=="base64"&&Ct.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:d,lamports:b,owner:new hi(p),rentEpoch:y}}return null})))}else try{s=await Promise.all(o.map(a=>e.getMultipleAccountsInfo(a,i)))}catch(a){a instanceof Error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function It({connection:e,address:n}){let t=await Cn(e,[...new Set(n.map(i=>i.toString()))].map(i=>new In(i))),r={};for(let i=0;i<n.length;i++){let o=t[i],s=n[i];if(!o)continue;let a=new et({key:s,state:et.deserialize(o.data)});r[s.toString()]=a,tt[s.toString()]=a}return r}var tt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new et({key:new In("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:et.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var nt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let n=(await bi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(r=n==null?void 0:n[15])!=null?r:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:t,instructionTypes:r}=$e(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:n,defaultIns:t}){try{let r=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==De.default.toString())),this}async versionBuild({txVersion:n,extInfo:t}){return n===0?await this.buildV0(O({},t||{})):this.build(t)}build(n){let t=new Ee;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var i;let r=await ke(this.connection);if(t.recentBlockhash=r,this.signers.length&&t.sign(...this.signers),Pe([t]),(i=this.owner)!=null&&i.isKeyPair)return{txId:await Lt(this.connection,t,this.signers.find(o=>o.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer]),signedTx:t};if(this.signAllTransactions){let o=await this.signAllTransactions([t]);return{txId:await this.connection.sendRawTransaction(o[0].serialize(),{skipPreflight:!0}),signedTx:o[0]}}throw new Error("please connect wallet first")},extInfo:n||{}}}buildMultiTx(n){let{extraPreBuildData:t=[],extInfo:r}=n,{transaction:i}=this.build(r),o=t.filter(u=>u.transaction.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var d;let{sequentially:l,onTxUpdate:f}=u||{},m=await ke(this.connection);if((d=this.owner)!=null&&d.isKeyPair)return{txIds:await await Promise.all(s.map(async(b,p)=>(b.recentBlockhash=m,await Lt(this.connection,b,a[p].find(y=>y.publicKey.equals(this.owner.publicKey))?a[p]:[...a[p],this.owner.signer])))),signedTxs:s};if(this.signAllTransactions){let b=s.map((y,h)=>(y.recentBlockhash=m,a[h].length&&y.sign(...a[h]),y));Pe(b);let p=await this.signAllTransactions(b);if(l){let y=0,h=[],P=async()=>{if(!p[y])return;let w=await this.connection.sendRawTransaction(p[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:p[y]}),f==null||f([...h]),y++,this.connection.onSignature(w,B=>{let k=h.findIndex(C=>C.txId===w);k>-1&&(h[k].status=B.err?"error":"success"),f==null||f([...h]),B.err||P()},"processed"),this.connection.getSignatureStatus(w)};return await P(),{txIds:h.map(w=>w.txId),signedTxs:p}}else{let y=[];for(let h=0;h<p.length;h+=1){let P=await this.connection.sendRawTransaction(p[h].serialize(),{skipPreflight:!0});y.push(P)}return{txIds:y,signedTxs:p}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:r}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:r})}async buildV0(n){let m=n||{},{lookupTableCache:t={},lookupTableAddress:r=[],forerunCreate:i}=m,o=ae(m,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=O(O({},tt),t),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let d of a)s[d]===void 0&&c.push(new De(d));let u=await It({connection:this.connection,address:c});for(let[d,b]of Object.entries(u))s[d]=b;let l=new Re({payerKey:this.feePayer,recentBlockhash:i?De.default.toBase58():await ke(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),f=new _e(l);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var d;if(Pe([f]),(d=this.owner)!=null&&d.isKeyPair){this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))||f.sign([this.owner.signer]);let b=await this.connection.sendTransaction(f,{skipPreflight:!0}),{lastValidBlockHeight:p,blockhash:y}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:p,signature:b},"confirmed"),{txId:b,signedTx:f}}if(this.signAllTransactions){let b=await this.signAllTransactions([f]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:!0}),signedTx:b[0]}}throw new Error("please connect wallet first")},extInfo:o||{}}}async buildV0MultiTx(n){let{extraPreBuildData:t=[],buildProps:r}=n,{transaction:i}=await this.buildV0(r),o=t.filter(u=>u.builder.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,l)=>{u.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var m;Pe(s);let{sequentially:l,onTxUpdate:f}=u||{};if((m=this.owner)!=null&&m.isKeyPair){let{lastValidBlockHeight:d,blockhash:b}=await this.connection.getLatestBlockhash();return s.forEach((p,y)=>{a[y].find(h=>h.publicKey.equals(this.owner.publicKey))||p.sign([this.owner.signer])}),{txIds:await Promise.all(s.map(async p=>{let y=await this.connection.sendTransaction(p);return await this.connection.confirmTransaction({blockhash:b,lastValidBlockHeight:d,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(l){let b=0,p=[],y=async()=>{if(!d[b])return;let h=await this.connection.sendTransaction(d[b],{skipPreflight:!0});p.push({txId:h,status:"sent",signedTx:d[b]}),f==null||f([...p]),b++,this.connection.onSignature(h,P=>{let w=p.findIndex(B=>B.txId===h);w>-1&&(p[w].status=P.err?"error":"success"),f==null||f([...p]),P.err||y()},"processed"),this.connection.getSignatureStatus(h)};return y(),{txIds:[],signedTxs:d}}else{let b=[];for(let p=0;p<d.length;p+=1){let y=await this.connection.sendTransaction(d[p],{skipPreflight:!0});b.push(y)}return{txIds:b,signedTxs:d}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuild(n){let u=n||{},{computeBudgetConfig:t}=u,r=ae(u,["computeBudgetConfig"]),i=t?$e(t):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>X(O({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(l=>{let f=[...c,l],m=t?[...i.instructions,...f]:f,b=[...new Set(f.map(p=>p.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(p=>new De(p));if(c.length<12&&Ke({instructions:m,payer:this.feePayer,signers:b})||Ke({instructions:f,payer:this.feePayer,signers:b}))c.push(l);else{if(c.length===0)throw Error("item ins too big");Ke({instructions:t?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:b})?s.push(new Ee().add(...i.instructions,...c)):s.push(new Ee().add(...c)),a.push(Array.from(new Set(c.map(p=>p.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat())).map(p=>o[p]).filter(p=>p!==void 0)),c=[l]}}),c.length>0){let f=[...new Set(c.map(m=>m.keys.filter(d=>d.isSigner).map(d=>d.pubkey.toString())).flat()).values()].map(m=>o[m]).filter(m=>m!==void 0);Ke({instructions:t?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:f.map(m=>m.publicKey)})?s.push(new Ee().add(...i.instructions,...c)):s.push(new Ee().add(...c)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var b;let{sequentially:f,onTxUpdate:m}=l||{},d=await ke(this.connection);if(s.forEach(async(p,y)=>{p.recentBlockhash=d,a[y].length&&p.sign(...a[y])}),Pe(s),(b=this.owner)!=null&&b.isKeyPair)return{txIds:await Promise.all(s.map(async(p,y)=>await Lt(this.connection,p,a[y].find(h=>h.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer]))),signedTxs:s};if(this.signAllTransactions){let p=await this.signAllTransactions(s);if(f){let y=0,h=[],P=async()=>{if(!p[y])return;let w=await this.connection.sendRawTransaction(p[y].serialize(),{skipPreflight:!0});h.push({txId:w,status:"sent",signedTx:p[y]}),m==null||m([...h]),y++,this.connection.onSignature(w,B=>{let k=h.findIndex(C=>C.txId===w);k>-1&&(h[k].status=B.err?"error":"success"),m==null||m([...h]),B.err||P()},"processed"),this.connection.getSignatureStatus(w)};return await P(),{txIds:h.map(w=>w.txId),signedTxs:p}}else{let y=[];for(let h=0;h<p.length;h+=1){let P=await this.connection.sendRawTransaction(p[h].serialize(),{skipPreflight:!0});y.push(P)}return{txIds:y,signedTxs:p}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuildV0(n){let y=n||{},{computeBudgetConfig:t,lookupTableCache:r={},lookupTableAddress:i=[]}=y,o=ae(y,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=O(O({},tt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),c=[];for(let h of a)s[h]===void 0&&c.push(new De(h));let u=await It({connection:this.connection,address:c});for(let[h,P]of Object.entries(u))s[h]=P;let l=t?$e(t):{instructions:[],instructionTypes:[]},f=await ke(this.connection),m=this.signers.reduce((h,P)=>X(O({},h),{[P.publicKey.toBase58()]:P}),{}),d=[],b=[],p=[];if(this.allInstructions.forEach(h=>{let P=[...p,h],w=t?[...l.instructions,...P]:P;if(p.length<12&&Me({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||Me({instructions:P,payer:this.feePayer,lookupTableAddressAccount:s}))p.push(h);else{if(p.length===0)throw Error("item ins too big");let B={};for(let k of[...new Set(a)])s[k]!==void 0&&(B[k]=s[k]);if(t&&Me({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let k=new Re({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));d.push(new _e(k))}else{let k=new Re({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));d.push(new _e(k))}b.push(Array.from(new Set(p.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat())).map(k=>m[k]).filter(k=>k!==void 0)),p=[h]}}),p.length>0){let P=[...new Set(p.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>m[w]).filter(w=>w!==void 0);if(t&&Me({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:f})){let w=new Re({payerKey:this.feePayer,recentBlockhash:f,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));d.push(new _e(w))}else{let w=new Re({payerKey:this.feePayer,recentBlockhash:f,instructions:[...p]}).compileToV0Message(Object.values(s));d.push(new _e(w))}b.push(P)}return{builder:this,transactions:d,buildProps:n,signers:b,instructionTypes:this.instructionTypes,execute:async h=>{var B;let{sequentially:P,onTxUpdate:w}=h||{};if(d.map(async(k,C)=>{b[C].length&&k.sign(b[C])}),Pe(d),(B=this.owner)!=null&&B.isKeyPair){let{lastValidBlockHeight:k,blockhash:C}=await this.connection.getLatestBlockhash();return d.forEach((N,M)=>{b[M].find(v=>v.publicKey.equals(this.owner.publicKey))||N.sign([this.owner.signer])}),{txIds:await Promise.all(d.map(async N=>{let M=await this.connection.sendTransaction(N);return await this.connection.confirmTransaction({blockhash:C,lastValidBlockHeight:k,signature:M},"confirmed"),M})),signedTxs:d}}if(this.signAllTransactions){let k=await this.signAllTransactions(d);if(P){let C=0,N=[],M=async()=>{if(!k[C])return;let v=await this.connection.sendTransaction(k[C],{skipPreflight:!0});N.push({txId:v,status:"sent",signedTx:k[C]}),w==null||w([...N]),C++,this.connection.onSignature(v,z=>{let F=N.findIndex(J=>J.txId===v);F>-1&&(N[F].status=z.err?"error":"success"),w==null||w([...N]),z.err||M()},"processed"),this.connection.getSignatureStatus(v)};return M(),{txIds:[],signedTxs:k}}else{let C=[];for(let N=0;N<k.length;N+=1){let M=await this.connection.sendTransaction(k[N],{skipPreflight:!0});C.push(M)}return{txIds:C,signedTxs:k}}}throw new Error("please connect wallet first")},extInfo:o||{}}}};var Nt=(...e)=>e.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),Oe=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=U(t)}createTxBuilder(n){return this.scope.checkOwner(),new nt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(Nt(n))}logInfo(...n){this.logger.info(Nt(n))}logAndCreateError(...n){let t=Nt(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var yi=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),wi=Buffer.from("amm_config","utf8"),Pi=Buffer.from("pool","utf8"),Ti=Buffer.from("pool_lp_mint","utf8"),xi=Buffer.from("pool_vault","utf8"),Ai=Buffer.from("observation","utf8");function ki(e){return le([yi],e)}function Bi(e,n){return le([wi,Ii(n)],e)}function Si(e,n,t,r){return le([Pi,n.toBuffer(),t.toBuffer(),r.toBuffer()],e)}function Ci(e,n){return le([Ti,n.toBuffer()],e)}function Ln(e,n,t){return le([xi,n.toBuffer(),t.toBuffer()],e)}function rt(e,n){return le([Ai,n.toBuffer()],e)}function Ii(e){let n=new ArrayBuffer(2);return new DataView(n).setUint16(0,e,!1),new Uint8Array(n)}function Nn({programId:e,mintA:n,mintB:t}){let r=Bi(e,0).publicKey,i=ki(e).publicKey,o=Si(e,r,n,t).publicKey,s=Ci(e,o).publicKey,a=Ln(e,o,n).publicKey,c=Ln(e,o,t).publicKey,u=rt(e,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:c,observationId:u}}import{TransactionInstruction as ve}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kt,TOKEN_2022_PROGRAM_ID as Mn,ASSOCIATED_TOKEN_PROGRAM_ID as Li}from"@solana/spl-token";var Kn=U("Raydium_Cpmm_ins"),We={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173]};function Dn(e,n,t,r,i,o,s,a,c,u,l,f,m,d,b,p,y,h,P,w){let B=re([K("amountMaxA"),K("amountMaxB"),K("openTime")]),k=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:Li,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:en,isSigner:!1,isWritable:!1}],C=Buffer.alloc(B.span);return B.encode({amountMaxA:h,amountMaxB:P,openTime:w},C),new ve({keys:k,programId:e,data:Buffer.from([...We.initialize,...C])})}function En(e,n,t,r,i,o,s,a,c,u,l,f,m,d,b){Kn.info(123123,{mintA:u.toBase58(),mintB:l.toBase58(),lpAmount:m.toString(),amountMaxA:d.toString(),amountMaxB:b.toString()});let p=re([K("lpAmount"),K("amountMaxA"),K("amountMaxB")]),y=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:Mn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0}],h=Buffer.alloc(p.span);return Kn.debug("cpmm deposit data",{lpAmount:m.toString(),amountMaxA:d.toString(),amountMaxB:b.toString()}),p.encode({lpAmount:m,amountMaxA:d,amountMaxB:b},h),new ve({keys:y,programId:e,data:Buffer.from([...We.deposit,...h])})}function Rn(e,n,t,r,i,o,s,a,c,u,l,f,m,d,b){let p=re([K("lpAmount"),K("amountMinA"),K("amountMinB")]),y=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:Mn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:$t,isSigner:!1,isWritable:!1}],h=Buffer.alloc(p.span);return p.encode({lpAmount:m,amountMinA:d,amountMinB:b},h),new ve({keys:y,programId:e,data:Buffer.from([...We.withdraw,...h])})}function _n(e,n,t,r,i,o,s,a,c,u,l,f,m,d,b,p){let y=re([K("amountIn"),K("amounOutMin")]),h=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0}],P=Buffer.alloc(y.span);return y.encode({amountIn:b,amounOutMin:p},P),new ve({keys:h,programId:e,data:Buffer.from([...We.swapBaseInput,...P])})}function On(e,n,t,r,i,o,s,a,c,u,l,f,m,d,b,p){let y=re([K("amountInMax"),K("amountOut")]),h=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0}],P=Buffer.alloc(y.span);return y.encode({amountInMax:b,amountOut:p},P),new ve({keys:h,programId:e,data:Buffer.from([...We.swapBaseOutput,...P])})}import se from"bn.js";var Vc=re([Ae(8),oe("bump"),yn("disableCreatePool"),dn("index"),K("tradeFeeRate"),K("protocolFeeRate"),K("fundFeeRate"),K("createPoolFee"),j("protocolOwner"),j("fundOwner"),Bt(K(),16)]),vn=re([Ae(8),j("configId"),j("poolCreator"),j("vaultA"),j("vaultB"),j("mintLp"),j("mintA"),j("mintB"),j("mintProgramA"),j("mintProgramB"),j("observationId"),oe("bump"),oe("status"),oe("lpDecimals"),oe("mintDecimalA"),oe("mintDecimalB"),K("lpAmount"),K("protocolFeesMintA"),K("protocolFeesMintB"),K("fundFeesMintA"),K("fundFeesMintB"),K("openTime"),Bt(K(),32)]);var Mt=class extends Oe{constructor(n){super(n)}async load(){this.checkDisabled()}async getCpmmPoolKeys(n){return(await this.scope.api.fetchPoolKeysById({idList:[n]}))[0]}async getRpcPoolInfo(n){let t=await this.scope.connection.getAccountInfo(new x(n));if(!t)throw new Error(`pool not found: ${n}`);let r=vn.decode(t.data),[i,o]=await this.scope.connection.getMultipleAccountsInfo([r.vaultA,r.vaultB]);if(!i)throw new Error(`pool vaultA info not found: ${r.vaultA.toBase58()}`);if(!o)throw new Error(`pool vaultB info not found: ${r.vaultB.toBase58()}`);return X(O({},r),{baseReserve:new se(Wn.decode(i.data).amount.toString()).sub(r.protocolFeesMintA).sub(r.fundFeesMintA),quoteReserve:new se(Wn.decode(o.data).amount.toString()).sub(r.protocolFeesMintB).sub(r.fundFeesMintB)})}async createPool({programId:n,poolFeeAccount:t,mintA:r,mintB:i,mintAAmount:o,mintBAmount:s,startTime:a,ownerInfo:c,associatedOnly:u=!1,checkCreateATAOwner:l=!1,txVersion:f,computeBudgetConfig:m}){var M,v,z;let d=c.feePayer||((M=this.scope.owner)==null?void 0:M.publicKey),b=c.useSOLBalance&&r.address===it.toBase58(),p=c.useSOLBalance&&i.address===it.toBase58(),[y,h]=[new x(r.address),new x(i.address)],P=this.createTxBuilder(),{account:w,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({mint:y,tokenProgram:r.programId,owner:this.scope.ownerPubKey,createInfo:b?{payer:d,amount:o}:void 0,notUseTokenAccount:b,skipCloseAccount:!b,associatedOnly:b?!1:u,checkCreateATAOwner:l});P.addInstruction(B||{});let{account:k,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({mint:new x(i.address),tokenProgram:i.programId,owner:this.scope.ownerPubKey,createInfo:p?{payer:d,amount:s}:void 0,notUseTokenAccount:p,skipCloseAccount:!p,associatedOnly:p?!1:u,checkCreateATAOwner:l});if(P.addInstruction(C||{}),w===void 0||k===void 0)throw Error("you don't has some token account");let N=Nn({programId:n,mintA:y,mintB:h});return P.addInstruction({instructions:[Dn(n,this.scope.ownerPubKey,N.configId,N.authority,N.poolId,y,h,N.lpMint,w,k,Sn(this.scope.ownerPubKey,N.lpMint).publicKey,N.vaultA,N.vaultB,t,new x((v=r.programId)!=null?v:ye),new x((z=i.programId)!=null?z:ye),N.observationId,o,s,a)],instructionTypes:[ce.CpmmCreatePool]}),P.addCustomComputeBudget(m),P.versionBuild({txVersion:f,extInfo:{address:X(O({},N),{mintA:r,mintB:i,programId:n,poolFeeAccount:t})}})}async addLiquidity(n){let{poolInfo:t,inputAmount:r,baseIn:i,slippage:o,computeBudgetConfig:s,config:a,txVersion:c}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.toString()});let{account:u}=this.scope,{bypassAssociatedCheck:l,checkCreateATAOwner:f}=O({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},a),m=await this.getRpcPoolInfo(t.id),{liquidity:d,anotherAmount:b}=this.computePairAmount({poolInfo:X(O({},t),{mintAmountA:new te(m.baseReserve.toString()).div(10**t.mintA.decimals).toNumber(),mintAmountB:new te(m.quoteReserve.toString()).div(10**t.mintB.decimals).toNumber(),lpAmount:new te(m.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),slippage:o,baseIn:i,amount:new te(r.toString()).div(10**(i?t.mintA.decimals:t.mintB.decimals))}),p=b.raw,y=t.mintA.address===it.toString(),h=t.mintB.address===it.toString(),P=this.createTxBuilder(),[w,B]=[new x(t.mintA.address),new x(t.mintB.address)],{account:k,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new x(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:y||(i?r:p).isZero()?{payer:this.scope.ownerPubKey,amount:i?r:p}:void 0,skipCloseAccount:!y,notUseTokenAccount:y,associatedOnly:!1,checkCreateATAOwner:f});P.addInstruction(C||{});let{account:N,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new x(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(i?p:r).isZero()?{payer:this.scope.ownerPubKey,amount:i?p:r}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:f});P.addInstruction(M||{}),!k&&!N&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",u.tokenAccounts);let v=await u.getCreatedTokenAccount({mint:new x(t.lpMint.address)}),we=await u.handleTokenAccount({side:"out",amount:0,mint:new x(t.lpMint.address),tokenAccount:v,bypassAssociatedCheck:l,checkCreateATAOwner:f}),{tokenAccount:z}=we,F=ae(we,["tokenAccount"]);P.addInstruction(F);let J=await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[En(new x(t.programId),this.scope.ownerPubKey,new x(J.authority),new x(t.id),z,k,N,new x(J.vault.A),new x(J.vault.B),w,B,new x(t.lpMint.address),d,i?r:p,i?p:r)],instructionTypes:[ce.CpmmAddLiquidity],lookupTableAddress:J.lookupTableAccount?[J.lookupTableAccount]:[]}),P.addCustomComputeBudget(s),P.versionBuild({txVersion:c})}async withdrawLiquidity(n){let{poolInfo:t,lpAmount:r,slippage:i,computeBudgetConfig:o,txVersion:s}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let a=new be(new se(1)).sub(i),c=await this.getRpcPoolInfo(t.id),[u,l]=[a.mul(r.mul(c.baseReserve).div(c.lpAmount)).quotient,a.mul(r.mul(c.quoteReserve).div(c.lpAmount)).quotient],{account:f}=this.scope,m=this.createTxBuilder(),[d,b]=[new x(t.mintA.address),new x(t.mintB.address)],p=d.equals(Ce),y=b.equals(Ce),h,P,{account:w,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new x(t.mintA.address),notUseTokenAccount:p,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!p,associatedOnly:!p,checkCreateATAOwner:!1});h=w,B&&m.addInstruction(B);let{account:k,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new x(t.mintB.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!y,associatedOnly:!y,checkCreateATAOwner:!1});P=k,C&&m.addInstruction(C),(!h||!P)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",f.tokenAccounts);let N=await f.getCreatedTokenAccount({mint:new x(t.lpMint.address)});N||this.logAndCreateError("cannot found lp token account","tokenAccounts",f.tokenAccounts);let M=await this.getCpmmPoolKeys(t.id);return m.addInstruction({instructions:[Rn(new x(t.programId),this.scope.ownerPubKey,new x(M.authority),new x(t.id),N,h,P,new x(M.vault.A),new x(M.vault.B),d,b,new x(t.lpMint.address),r,u,l)],instructionTypes:[ce.CpmmWithdrawLiquidity],lookupTableAddress:M.lookupTableAccount?[M.lookupTableAccount]:[]}),m.addCustomComputeBudget(o),m.versionBuild({txVersion:s})}async swap(n){var B,k,M,v,z,F;let{poolInfo:t,baseIn:r,swapResult:i,config:o,computeBudgetConfig:s,txVersion:a}=n,{bypassAssociatedCheck:c,checkCreateATAOwner:u}=O({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},o),l=this.createTxBuilder(),[f,m]=[new x(t.mintA.address),new x(t.mintB.address)],d=await this.scope.account.getCreatedTokenAccount({programId:new x((B=t.mintA.programId)!=null?B:ye),mint:f,associatedOnly:!1}),b=await this.scope.account.getCreatedTokenAccount({programId:new x((k=t.mintB.programId)!=null?k:ye),mint:m,associatedOnly:!1}),C=await this.scope.account.handleTokenAccount({side:r?"in":"out",amount:r?i.sourceAmountSwapped:i.destinationAmountSwapped,mint:f,tokenAccount:d,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:p}=C,y=ae(C,["tokenAccount"]);l.addInstruction(y);let N=await this.scope.account.handleTokenAccount({side:r?"out":"in",amount:r?i.destinationAmountSwapped:i.sourceAmountSwapped,mint:m,tokenAccount:b,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:h}=N,P=ae(N,["tokenAccount"]);l.addInstruction(P),!p&&!h&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let w=await this.getCpmmPoolKeys(t.id);return l.addInstruction({instructions:[r?_n(new x(t.programId),this.scope.ownerPubKey,new x(w.authority),new x(w.id),new x(t.id),p,h,new x(w.vault.A),new x(w.vault.B),new x((M=t.mintA.programId)!=null?M:ye),new x((v=t.mintB.programId)!=null?v:ye),f,m,rt(new x(t.programId),new x(t.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped):On(new x(t.programId),this.scope.ownerPubKey,new x(w.authority),new x(w.id),new x(t.id),h,p,new x(w.vault.B),new x(w.vault.A),new x((z=t.mintB.programId)!=null?z:ye),new x((F=t.mintA.programId)!=null?F:ye),m,f,rt(new x(t.programId),new x(t.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped)],instructionTypes:[r?ce.CpmmSwapBaseIn:ce.CpmmSwapBaseOut]}),l.addCustomComputeBudget(s),l.versionBuild({txVersion:a})}computePairAmount({poolInfo:n,amount:t,slippage:r,baseIn:i}){let o=new se(new te(t).mul(10**n[i?"mintA":"mintB"].decimals).toFixed(0)),s=wn(n[i?"mintB":"mintA"]),[a,c]=[new se(new te(n.mintAmountA).mul(10**n.mintA.decimals).toString()),new se(new te(n.mintAmountB).mul(10**n.mintB.decimals).toString())],u=new se(new te(n.lpAmount).mul(10**n.lpMint.decimals).toFixed(0,te.ROUND_DOWN));this.logDebug("baseReserve:",a.toString(),"quoteReserve:",c.toString()),this.logDebug("tokenIn:",i?n.mintA.symbol:n.mintB.symbol,"amountIn:",o.toString(),"anotherToken:",i?n.mintB.symbol:n.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let l=i?"base":"quote";this.logDebug("input side:",l);let f=o.mul(u).div(l==="base"?a:c),m=wt;o.isZero()||(m=Ni(f,a,c,u)[i?"amountB":"amountA"]);let b=new be(new se(1)).add(r).mul(m).quotient,p=new Q(s,m),y=new Q(s,b);return this.logDebug("anotherAmount:",p.toFixed(),"maxAnotherAmount:",y.toFixed()),{anotherAmount:p,maxAnotherAmount:y,liquidity:f}}};function Ni(e,n,t,r){let i=e.mul(n).div(r);!i.isZero()&&!e.mul(n).mod(r).isZero()&&(i=i.add(new se(1)));let o=e.mul(t).div(r);return!o.isZero()&&!e.mul(t).mod(r).isZero()&&(o=o.add(new se(1))),{amountA:i,amountB:o}}export{Mt as default};
|
|
1
|
+
var Fn=Object.defineProperty,Vn=Object.defineProperties;var qn=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Et=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable;var Dt=(e,n,t)=>n in e?Fn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,v=(e,n)=>{for(var t in n||(n={}))Et.call(n,t)&&Dt(e,t,n[t]);if(Ve)for(var t of Ve(n))Rt.call(n,t)&&Dt(e,t,n[t]);return e},X=(e,n)=>Vn(e,qn(n));var se=(e,n)=>{var t={};for(var r in e)Et.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Ve)for(var r of Ve(e))n.indexOf(r)<0&&Rt.call(e,r)&&(t[r]=e[r]);return t};import{PublicKey as x}from"@solana/web3.js";import{NATIVE_MINT as ot,TOKEN_PROGRAM_ID as we,AccountLayout as Wn}from"@solana/spl-token";import Jr from"big.js";import Qe from"bn.js";import Y from"bn.js";var xe=9e15,ge=1e9,st="0123456789abcdef",Ue="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ge="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",at={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-xe,maxE:xe,crypto:!1},Wt,ce,C=!0,je="[DecimalError] ",de=je+"Invalid argument: ",Ft=je+"Precision limit exceeded",Vt=je+"crypto unavailable",qt="[object Decimal]",H=Math.floor,V=Math.pow,Un=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Gn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Hn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ut=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,te=1e7,A=7,jn=9007199254740991,zn=Ue.length-1,ut=Ge.length-1,g={toStringTag:qt};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),T(e)};g.ceil=function(){return T(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,n){var t,r=this,i=r.constructor;if(e=new i(e),n=new i(n),!e.s||!n.s)return new i(NaN);if(e.gt(n))throw Error(de+n);return t=r.cmp(e),t<0?e:r.cmp(n)>0?n:new i(r)};g.comparedTo=g.cmp=function(e){var n,t,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,n=0,t=r<i?r:i;n<t;++n)if(s[n]!==a[n])return s[n]>a[n]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};g.cosine=g.cos=function(){var e,n,t=this,r=t.constructor;return t.d?t.d[0]?(e=r.precision,n=r.rounding,r.precision=e+Math.max(t.e,t.sd())+A,r.rounding=1,t=Zn(r,Zt(r,t)),r.precision=e,r.rounding=n,T(ce==2||ce==3?t.neg():t,e,n,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var e,n,t,r,i,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(C=!1,o=l.s*V(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=q(l.d),e=l.e,(o=(e-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=V(t,1/3),e=H((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?t="5e"+e:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new m(t),r.s=l.s):r=new m(o.toString()),s=(e=m.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=E(u.plus(l).times(a),u.plus(c),s+2,1),q(a.d).slice(0,s)===(t=q(r.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!i&&t=="4999"){if(!i&&(T(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(T(r,e+1,1),n=!r.times(r).times(r).eq(l));break}return C=!0,T(r,e,m.rounding,n)};g.decimalPlaces=g.dp=function(){var e,n=this.d,t=NaN;if(n){if(e=n.length-1,t=(e-H(this.e/A))*A,e=n[e],e)for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t};g.dividedBy=g.div=function(e){return E(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var n=this,t=n.constructor;return T(E(n,new t(e),0,1,1),t.precision,t.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return T(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var n=this.cmp(e);return n==1||n===0};g.hyperbolicCosine=g.cosh=function(){var e,n,t,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,r=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),n=(1/Ze(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),o=Ae(s,1,o.times(n),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return T(o,s.precision=t,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var e,n,t,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(n=o.precision,t=o.rounding,o.precision=n+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Ae(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Ze(5,e)),i=Ae(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=n,o.rounding=t,T(i,n,t,!0)};g.hyperbolicTangent=g.tanh=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+7,r.rounding=1,E(t.sinh(),t.cosh(),r.precision=e,r.rounding=n)):new r(t.s)};g.inverseCosine=g.acos=function(){var e,n=this,t=n.constructor,r=n.abs().cmp(1),i=t.precision,o=t.rounding;return r!==-1?r===0?n.isNeg()?ee(t,i,o):new t(0):new t(NaN):n.isZero()?ee(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,n=n.asin(),e=ee(t,i+4,o).times(.5),t.precision=i,t.rounding=o,e.minus(n))};g.inverseHyperbolicCosine=g.acosh=function(){var e,n,t=this,r=t.constructor;return t.lte(1)?new r(t.eq(1)?0:NaN):t.isFinite()?(e=r.precision,n=r.rounding,r.precision=e+Math.max(Math.abs(t.e),t.sd())+4,r.rounding=1,C=!1,t=t.times(t).minus(1).sqrt().plus(t),C=!0,r.precision=e,r.rounding=n,t.ln()):new r(t)};g.inverseHyperbolicSine=g.asinh=function(){var e,n,t=this,r=t.constructor;return!t.isFinite()||t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,r.rounding=1,C=!1,t=t.times(t).plus(1).sqrt().plus(t),C=!0,r.precision=e,r.rounding=n,t.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var e,n,t,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,n=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?T(new o(i),e,n,!0):(o.precision=t=r-i.e,i=E(i.plus(1),new o(1).minus(i),t+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=n,i.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var e,n,t,r,i=this,o=i.constructor;return i.isZero()?new o(i):(n=i.abs().cmp(1),t=o.precision,r=o.rounding,n!==-1?n===0?(e=ee(o,t+4,r).times(.5),e.s=i.s,e):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=r,i.times(2)))};g.inverseTangent=g.atan=function(){var e,n,t,r,i,o,s,a,c,u=this,l=u.constructor,m=l.precision,f=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=ut)return s=ee(l,m+4,f).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=ut)return s=ee(l,m+4,f).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,t=Math.min(28,a/A+2|0),e=t;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(C=!1,n=Math.ceil(a/A),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[n]!==void 0)for(e=n;s.d[e]===o.d[e]&&e--;);return t&&(s=s.times(2<<t-1)),C=!0,T(s,l.precision=m,l.rounding=f,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&H(this.e/A)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.log=function(e){var n,t,r,i,o,s,a,c,u=this,l=u.constructor,m=l.precision,f=l.rounding,d=5;if(e==null)e=new l(10),n=!0;else{if(e=new l(e),t=e.d,e.s<0||!t||!t[0]||e.eq(1))return new l(NaN);n=e.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(n)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(C=!1,a=m+d,s=pe(u,a),r=n?He(l,a+10):pe(e,a),c=E(s,r,a,1),Se(c.d,i=m,f))do if(a+=10,s=pe(u,a),r=n?He(l,a+10):pe(e,a),c=E(s,r,a,1),!o){+q(c.d).slice(i+1,i+15)+1==1e14&&(c=T(c,m+1,0));break}while(Se(c.d,i+=10,f));return C=!0,T(c,m,f)};g.minus=g.sub=function(e){var n,t,r,i,o,s,a,c,u,l,m,f,d=this,h=d.constructor;if(e=new h(e),!d.d||!e.d)return!d.s||!e.s?e=new h(NaN):d.d?e.s=-e.s:e=new h(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,f=e.d,a=h.precision,c=h.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else if(u[0])e=new h(d);else return new h(c===3?-0:0);return C?T(e,a,c):e}if(t=H(e.e/A),l=H(d.e/A),u=u.slice(),o=l-t,o){for(m=o<0,m?(n=u,o=-o,s=f.length):(n=f,t=l,s=u.length),r=Math.max(Math.ceil(a/A),s)+2,o>r&&(o=r,n.length=1),n.reverse(),r=o;r--;)n.push(0);n.reverse()}else{for(r=u.length,s=f.length,m=r<s,m&&(s=r),r=0;r<s;r++)if(u[r]!=f[r]){m=u[r]<f[r];break}o=0}for(m&&(n=u,u=f,f=n,e.s=-e.s),s=u.length,r=f.length-s;r>0;--r)u[s++]=0;for(r=f.length;r>o;){if(u[--r]<f[r]){for(i=r;i&&u[--i]===0;)u[i]=te-1;--u[i],u[r]+=te}u[r]-=f[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(e.d=u,e.e=ze(u,t),C?T(e,a,c):e):new h(c===3?-0:0)};g.modulo=g.mod=function(e){var n,t=this,r=t.constructor;return e=new r(e),!t.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||t.d&&!t.d[0]?T(new r(t),r.precision,r.rounding):(C=!1,r.modulo==9?(n=E(t,e.abs(),0,3,1),n.s*=e.s):n=E(t,e,0,r.modulo,1),n=n.times(e),C=!0,t.minus(n))};g.naturalExponential=g.exp=function(){return ct(this)};g.naturalLogarithm=g.ln=function(){return pe(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,T(e)};g.plus=g.add=function(e){var n,t,r,i,o,s,a,c,u,l,m=this,f=m.constructor;if(e=new f(e),!m.d||!e.d)return!m.s||!e.s?e=new f(NaN):m.d||(e=new f(e.d||m.s===e.s?m:NaN)),e;if(m.s!=e.s)return e.s=-e.s,m.minus(e);if(u=m.d,l=e.d,a=f.precision,c=f.rounding,!u[0]||!l[0])return l[0]||(e=new f(m)),C?T(e,a,c):e;if(o=H(m.e/A),r=H(e.e/A),u=u.slice(),i=o-r,i){for(i<0?(t=u,i=-i,s=l.length):(t=l,r=o,s=u.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,i>s&&(i=s,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,t=l,l=u,u=t),n=0;i;)n=(u[--i]=u[i]+l[i]+n)/te|0,u[i]%=te;for(n&&(u.unshift(n),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=ze(u,r),C?T(e,a,c):e};g.precision=g.sd=function(e){var n,t=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(de+e);return t.d?(n=Gt(t.d),e&&t.e+1>n&&(n=t.e+1)):n=NaN,n};g.round=function(){var e=this,n=e.constructor;return T(new n(e),e.e+1,n.rounding)};g.sine=g.sin=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+Math.max(t.e,t.sd())+A,r.rounding=1,t=Jn(r,Zt(r,t)),r.precision=e,r.rounding=n,T(ce>2?t.neg():t,e,n,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var e,n,t,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(C=!1,u=Math.sqrt(+s),u==0||u==1/0?(n=q(a),(n.length+c)%2==0&&(n+="0"),u=Math.sqrt(n),c=H((c+1)/2)-(c<0||c%2),u==1/0?n="5e"+c:(n=u.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),r=new l(n)):r=new l(u.toString()),t=(c=l.precision)+3;;)if(o=r,r=o.plus(E(s,o,t+2,1)).times(.5),q(o.d).slice(0,t)===(n=q(r.d)).slice(0,t))if(n=n.slice(t-3,t+1),n=="9999"||!i&&n=="4999"){if(!i&&(T(o,c+1,0),o.times(o).eq(s))){r=o;break}t+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(T(r,c+1,1),e=!r.times(r).eq(s));break}return C=!0,T(r,c,l.rounding,e)};g.tangent=g.tan=function(){var e,n,t=this,r=t.constructor;return t.isFinite()?t.isZero()?new r(t):(e=r.precision,n=r.rounding,r.precision=e+10,r.rounding=1,t=t.sin(),t.s=1,t=E(t,new r(1).minus(t.times(t)).sqrt(),e+10,0),r.precision=e,r.rounding=n,T(ce==2||ce==4?t.neg():t,e,n,!0)):new r(NaN)};g.times=g.mul=function(e){var n,t,r,i,o,s,a,c,u,l=this,m=l.constructor,f=l.d,d=(e=new m(e)).d;if(e.s*=l.s,!f||!f[0]||!d||!d[0])return new m(!e.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:!f||!d?e.s/0:e.s*0);for(t=H(l.e/A)+H(e.e/A),c=f.length,u=d.length,c<u&&(o=f,f=d,d=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(n=0,i=c+r;i>r;)a=o[i]+d[r]*f[i-r-1]+n,o[i--]=a%te|0,n=a/te|0;o[i]=(o[i]+n)%te|0}for(;!o[--s];)o.pop();return n?++t:o.shift(),e.d=o,e.e=ze(o,t),C?T(e,m.precision,m.rounding):e};g.toBinary=function(e,n){return mt(this,2,e,n)};g.toDecimalPlaces=g.toDP=function(e,n){var t=this,r=t.constructor;return t=new r(t),e===void 0?t:(Z(e,0,ge),n===void 0?n=r.rounding:Z(n,0,8),T(t,e+t.e+1,n))};g.toExponential=function(e,n){var t,r=this,i=r.constructor;return e===void 0?t=ae(r,!0):(Z(e,0,ge),n===void 0?n=i.rounding:Z(n,0,8),r=T(new i(r),e+1,n),t=ae(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};g.toFixed=function(e,n){var t,r,i=this,o=i.constructor;return e===void 0?t=ae(i):(Z(e,0,ge),n===void 0?n=o.rounding:Z(n,0,8),r=T(new o(i),e+i.e+1,n),t=ae(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};g.toFraction=function(e){var n,t,r,i,o,s,a,c,u,l,m,f,d=this,h=d.d,p=d.constructor;if(!h)return new p(d);if(u=t=new p(1),r=c=new p(0),n=new p(r),o=n.e=Gt(h)-d.e-1,s=o%A,n.d[0]=V(10,s<0?A+s:s),e==null)e=o>0?n:u;else{if(a=new p(e),!a.isInt()||a.lt(u))throw Error(de+a);e=a.gt(n)?o>0?n:u:a}for(C=!1,a=new p(q(h)),l=p.precision,p.precision=o=h.length*A*2;m=E(a,n,0,1,1),i=t.plus(m.times(r)),i.cmp(e)!=1;)t=r,r=i,i=u,u=c.plus(m.times(i)),c=i,i=n,n=a.minus(m.times(i)),a=i;return i=E(e.minus(t),r,0,1,1),c=c.plus(i.times(u)),t=t.plus(i.times(r)),c.s=u.s=d.s,f=E(u,r,o,1).minus(d).abs().cmp(E(c,t,o,1).minus(d).abs())<1?[u,r]:[c,t],p.precision=l,C=!0,f};g.toHexadecimal=g.toHex=function(e,n){return mt(this,16,e,n)};g.toNearest=function(e,n){var t=this,r=t.constructor;if(t=new r(t),e==null){if(!t.d)return t;e=new r(1),n=r.rounding}else{if(e=new r(e),n===void 0?n=r.rounding:Z(n,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(C=!1,t=E(t,e,0,n,1).times(e),C=!0,T(t)):(e.s=t.s,t=e),t};g.toNumber=function(){return+this};g.toOctal=function(e,n){return mt(this,8,e,n)};g.toPower=g.pow=function(e){var n,t,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(V(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return T(a,r,o);if(n=H(e.e/A),n>=e.d.length-1&&(t=u<0?-u:u)<=jn)return i=Ht(c,a,t,r),e.s<0?new c(1).div(i):T(i,r,o);if(s=a.s,s<0){if(n<e.d.length-1)return new c(NaN);if((e.d[n]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=V(+a,u),n=t==0||!isFinite(t)?H(u*(Math.log("0."+q(a.d))/Math.LN10+a.e+1)):new c(t+"").e,n>c.maxE+1||n<c.minE-1?new c(n>0?s/0:0):(C=!1,c.rounding=a.s=1,t=Math.min(12,(n+"").length),i=ct(e.times(pe(a,r+t)),r),i.d&&(i=T(i,r+5,1),Se(i.d,r,o)&&(n=r+10,i=T(ct(e.times(pe(a,n+t)),n),n+5,1),+q(i.d).slice(r+1,r+15)+1==1e14&&(i=T(i,r+1,0)))),i.s=s,C=!0,c.rounding=o,T(i,r,o))};g.toPrecision=function(e,n){var t,r=this,i=r.constructor;return e===void 0?t=ae(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(Z(e,1,ge),n===void 0?n=i.rounding:Z(n,0,8),r=T(new i(r),e,n),t=ae(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+t:t};g.toSignificantDigits=g.toSD=function(e,n){var t=this,r=t.constructor;return e===void 0?(e=r.precision,n=r.rounding):(Z(e,1,ge),n===void 0?n=r.rounding:Z(n,0,8)),T(new r(t),e,n)};g.toString=function(){var e=this,n=e.constructor,t=ae(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t};g.truncated=g.trunc=function(){return T(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var e=this,n=e.constructor,t=ae(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+t:t};function q(e){var n,t,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,n=1;n<i;n++)r=e[n]+"",t=A-r.length,t&&(o+=fe(t)),o+=r;s=e[n],r=s+"",t=A-r.length,t&&(o+=fe(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Z(e,n,t){if(e!==~~e||e<n||e>t)throw Error(de+e)}function Se(e,n,t,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--n;return--n<0?(n+=A,i=0):(i=Math.ceil((n+1)/A),n%=A),o=V(10,A-n),a=e[i]%o|0,r==null?n<3?(n==0?a=a/100|0:n==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(e[i+1]/o/100|0)==V(10,n-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:n<4?(n==0?a=a/1e3|0:n==1?a=a/100|0:n==2&&(a=a/10|0),s=(r||t<4)&&a==9999||!r&&t>3&&a==4999):s=((r||t<4)&&a+1==o||!r&&t>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==V(10,n-3)-1,s}function qe(e,n,t){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=n;for(i[0]+=st.indexOf(e.charAt(s++)),r=0;r<i.length;r++)i[r]>t-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/t|0,i[r]%=t)}return i.reverse()}function Zn(e,n){var t,r,i;if(n.isZero())return n;r=n.d.length,r<32?(t=Math.ceil(r/3),i=(1/Ze(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),e.precision+=t,n=Ae(e,1,n.times(i),new e(1));for(var o=t;o--;){var s=n.times(n);n=s.times(s).minus(s).times(8).plus(1)}return e.precision-=t,n}var E=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function n(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function t(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,l,m,f,d,h,p,y,b,P,w,B,k,S,N,D,W,J,K,z,oe=r.constructor,Te=r.s==i.s?1:-1,G=r.d,_=i.d;if(!G||!G[0]||!_||!_[0])return new oe(!r.s||!i.s||(G?_&&G[0]==_[0]:!_)?NaN:G&&G[0]==0||!_?Te*0:Te/0);for(c?(d=1,l=r.e-i.e):(c=te,d=A,l=H(r.e/d)-H(i.e/d)),K=_.length,W=G.length,b=new oe(Te),P=b.d=[],m=0;_[m]==(G[m]||0);m++);if(_[m]>(G[m]||0)&&l--,o==null?(S=o=oe.precision,s=oe.rounding):a?S=o+(r.e-i.e)+1:S=o,S<0)P.push(1),h=!0;else{if(S=S/d+2|0,m=0,K==1){for(f=0,_=_[0],S++;(m<W||f)&&S--;m++)N=f*c+(G[m]||0),P[m]=N/_|0,f=N%_|0;h=f||m<W}else{for(f=c/(_[0]+1)|0,f>1&&(_=e(_,f,c),G=e(G,f,c),K=_.length,W=G.length),D=K,w=G.slice(0,K),B=w.length;B<K;)w[B++]=0;z=_.slice(),z.unshift(0),J=_[0],_[1]>=c/2&&++J;do f=0,u=n(_,w,K,B),u<0?(k=w[0],K!=B&&(k=k*c+(w[1]||0)),f=k/J|0,f>1?(f>=c&&(f=c-1),p=e(_,f,c),y=p.length,B=w.length,u=n(p,w,y,B),u==1&&(f--,t(p,K<y?z:_,y,c))):(f==0&&(u=f=1),p=_.slice()),y=p.length,y<B&&p.unshift(0),t(w,p,B,c),u==-1&&(B=w.length,u=n(_,w,K,B),u<1&&(f++,t(w,K<B?z:_,B,c))),B=w.length):u===0&&(f++,w=[0]),P[m++]=f,u&&w[0]?w[B++]=G[D]||0:(w=[G[D]],B=1);while((D++<W||w[0]!==void 0)&&S--);h=w[0]!==void 0}P[0]||P.shift()}if(d==1)b.e=l,Wt=h;else{for(m=1,f=P[0];f>=10;f/=10)m++;b.e=m+l*d-1,T(b,a?o+b.e+1:o,s,h)}return b}}();function T(e,n,t,r){var i,o,s,a,c,u,l,m,f,d=e.constructor;e:if(n!=null){if(m=e.d,!m)return e;for(i=1,a=m[0];a>=10;a/=10)i++;if(o=n-i,o<0)o+=A,s=n,l=m[f=0],c=l/V(10,i-s-1)%10|0;else if(f=Math.ceil((o+1)/A),a=m.length,f>=a)if(r){for(;a++<=f;)m.push(0);l=c=0,i=1,o%=A,s=o-A+1}else break e;else{for(l=a=m[f],i=1;a>=10;a/=10)i++;o%=A,s=o-A+i,c=s<0?0:l/V(10,i-s-1)%10|0}if(r=r||n<0||m[f+1]!==void 0||(s<0?l:l%V(10,i-s-1)),u=t<4?(c||r)&&(t==0||t==(e.s<0?3:2)):c>5||c==5&&(t==4||r||t==6&&(o>0?s>0?l/V(10,i-s):0:m[f-1])%10&1||t==(e.s<0?8:7)),n<1||!m[0])return m.length=0,u?(n-=e.e+1,m[0]=V(10,(A-n%A)%A),e.e=-n||0):m[0]=e.e=0,e;if(o==0?(m.length=f,a=1,f--):(m.length=f+1,a=V(10,A-o),m[f]=s>0?(l/V(10,i-s)%V(10,s)|0)*a:0),u)for(;;)if(f==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,m[0]==te&&(m[0]=1));break}else{if(m[f]+=a,m[f]!=te)break;m[f--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return C&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function ae(e,n,t){if(!e.isFinite())return zt(e);var r,i=e.e,o=q(e.d),s=o.length;return n?(t&&(r=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+fe(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+fe(-i-1)+o,t&&(r=t-s)>0&&(o+=fe(r))):i>=s?(o+=fe(i+1-s),t&&(r=t-i-1)>0&&(o=o+"."+fe(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),t&&(r=t-s)>0&&(i+1===s&&(o+="."),o+=fe(r))),o}function ze(e,n){var t=e[0];for(n*=A;t>=10;t/=10)n++;return n}function He(e,n,t){if(n>zn)throw C=!0,t&&(e.precision=t),Error(Ft);return T(new e(Ue),n,1,!0)}function ee(e,n,t){if(n>ut)throw Error(Ft);return T(new e(Ge),n,t,!0)}function Gt(e){var n=e.length-1,t=n*A+1;if(n=e[n],n){for(;n%10==0;n/=10)t--;for(n=e[0];n>=10;n/=10)t++}return t}function fe(e){for(var n="";e--;)n+="0";return n}function Ht(e,n,t,r){var i,o=new e(1),s=Math.ceil(r/A+4);for(C=!1;;){if(t%2&&(o=o.times(n),Ot(o.d,s)&&(i=!0)),t=H(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}n=n.times(n),Ot(n.d,s)}return C=!0,o}function _t(e){return e.d[e.d.length-1]&1}function jt(e,n,t){for(var r,i=new e(n[0]),o=0;++o<n.length;)if(r=new e(n[o]),r.s)i[t](r)&&(i=r);else{i=r;break}return i}function ct(e,n){var t,r,i,o,s,a,c,u=0,l=0,m=0,f=e.constructor,d=f.rounding,h=f.precision;if(!e.d||!e.d[0]||e.e>17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(n==null?(C=!1,c=h):c=n,a=new f(.03125);e.e>-2;)e=e.times(a),m+=5;for(r=Math.log(V(2,m))/Math.LN10*2+5|0,c+=r,t=o=s=new f(1),f.precision=c;;){if(o=T(o.times(e),c,1),t=t.times(++l),a=s.plus(E(o,t,c,1)),q(a.d).slice(0,c)===q(s.d).slice(0,c)){for(i=m;i--;)s=T(s.times(s),c,1);if(n==null)if(u<3&&Se(s.d,c-r,d,u))f.precision=c+=10,t=o=a=new f(1),l=0,u++;else return T(s,f.precision=h,d,C=!0);else return f.precision=h,s}s=a}}function pe(e,n){var t,r,i,o,s,a,c,u,l,m,f,d=1,h=10,p=e,y=p.d,b=p.constructor,P=b.rounding,w=b.precision;if(p.s<0||!y||!y[0]||!p.e&&y[0]==1&&y.length==1)return new b(y&&!y[0]?-1/0:p.s!=1?NaN:y?0:p);if(n==null?(C=!1,l=w):l=n,b.precision=l+=h,t=q(y),r=t.charAt(0),Math.abs(o=p.e)<15e14){for(;r<7&&r!=1||r==1&&t.charAt(1)>3;)p=p.times(e),t=q(p.d),r=t.charAt(0),d++;o=p.e,r>1?(p=new b("0."+t),o++):p=new b(r+"."+t.slice(1))}else return u=He(b,l+2,w).times(o+""),p=pe(new b(r+"."+t.slice(1)),l-h).plus(u),b.precision=w,n==null?T(p,w,P,C=!0):p;for(m=p,c=s=p=E(p.minus(1),p.plus(1),l,1),f=T(p.times(p),l,1),i=3;;){if(s=T(s.times(f),l,1),u=c.plus(E(s,new b(i),l,1)),q(u.d).slice(0,l)===q(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(He(b,l+2,w).times(o+""))),c=E(c,new b(d),l,1),n==null)if(Se(c.d,l-h,P,a))b.precision=l+=h,u=s=p=E(m.minus(1),m.plus(1),l,1),f=T(p.times(p),l,1),i=a=1;else return T(c,b.precision=w,P,C=!0);else return b.precision=w,c;c=u,i+=2}}function zt(e){return String(e.s*e.s/0)}function lt(e,n){var t,r,i;for((t=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(t<0&&(t=r),t+=+n.slice(r+1),n=n.substring(0,r)):t<0&&(t=n.length),r=0;n.charCodeAt(r)===48;r++);for(i=n.length;n.charCodeAt(i-1)===48;--i);if(n=n.slice(r,i),n){if(i-=r,e.e=t=t-r-1,e.d=[],r=(t+1)%A,t<0&&(r+=A),r<i){for(r&&e.d.push(+n.slice(0,r)),i-=A;r<i;)e.d.push(+n.slice(r,r+=A));n=n.slice(r),r=A-n.length}else r-=i;for(;r--;)n+="0";e.d.push(+n),C&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function Yn(e,n){var t,r,i,o,s,a,c,u,l;if(n.indexOf("_")>-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Ut.test(n))return lt(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(Gn.test(n))t=16,n=n.toLowerCase();else if(Un.test(n))t=2;else if(Hn.test(n))t=8;else throw Error(de+n);for(o=n.search(/p/i),o>0?(c=+n.slice(o+1),n=n.substring(2,o)):n=n.slice(2),o=n.indexOf("."),s=o>=0,r=e.constructor,s&&(n=n.replace(".",""),a=n.length,o=a-o,i=Ht(r,new r(t),o,o*2)),u=qe(n,t,te),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=ze(u,l),e.d=u,C=!1,s&&(e=E(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?V(2,c):Ce.pow(2,c))),C=!0,e)}function Jn(e,n){var t,r=n.d.length;if(r<3)return n.isZero()?n:Ae(e,2,n,n);t=1.4*Math.sqrt(r),t=t>16?16:t|0,n=n.times(1/Ze(5,t)),n=Ae(e,2,n,n);for(var i,o=new e(5),s=new e(16),a=new e(20);t--;)i=n.times(n),n=n.times(o.plus(i.times(s.times(i).minus(a))));return n}function Ae(e,n,t,r,i){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/A);for(C=!1,c=t.times(t),a=new e(r);;){if(s=E(a.times(c),new e(n++*n++),l,1),a=i?r.plus(s):r.minus(s),r=E(s.times(c),new e(n++*n++),l,1),s=a.plus(r),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return C=!0,s.d.length=m+1,s}function Ze(e,n){for(var t=e;--n;)t*=e;return t}function Zt(e,n){var t,r=n.s<0,i=ee(e,e.precision,1),o=i.times(.5);if(n=n.abs(),n.lte(o))return ce=r?4:1,n;if(t=n.divToInt(i),t.isZero())ce=r?3:2;else{if(n=n.minus(t.times(i)),n.lte(o))return ce=_t(t)?r?2:3:r?4:1,n;ce=_t(t)?r?1:4:r?3:2}return n.minus(i).abs()}function mt(e,n,t,r){var i,o,s,a,c,u,l,m,f,d=e.constructor,h=t!==void 0;if(h?(Z(t,1,ge),r===void 0?r=d.rounding:Z(r,0,8)):(t=d.precision,r=d.rounding),!e.isFinite())l=zt(e);else{for(l=ae(e),s=l.indexOf("."),h?(i=2,n==16?t=t*4-3:n==8&&(t=t*3-2)):i=n,s>=0&&(l=l.replace(".",""),f=new d(1),f.e=l.length-s,f.d=qe(ae(f),10,i),f.e=f.d.length),m=qe(l,10,i),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=h?"0p+0":"0";else{if(s<0?o--:(e=new d(e),e.d=m,e.e=o,e=E(e,f,t,r,0,i),m=e.d,o=e.e,u=Wt),s=m[t],a=i/2,u=u||m[t+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&m[t-1]&1||r===(e.s<0?8:7)),m.length=t,u)for(;++m[--t]>i-1;)m[t]=0,t||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=st.charAt(m[s]);if(h){if(c>1)if(n==16||n==8){for(s=n==16?4:3,--c;c%s;c++)l+="0";for(m=qe(l,i,n),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=st.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(n==16?"0x":n==2?"0b":n==8?"0o":"")+l}return e.s<0?"-"+l:l}function Ot(e,n){if(e.length>n)return e.length=n,!0}function Xn(e){return new this(e).abs()}function Qn(e){return new this(e).acos()}function $n(e){return new this(e).acosh()}function er(e,n){return new this(e).plus(n)}function tr(e){return new this(e).asin()}function nr(e){return new this(e).asinh()}function rr(e){return new this(e).atan()}function ir(e){return new this(e).atanh()}function or(e,n){e=new this(e),n=new this(n);var t,r=this.precision,i=this.rounding,o=r+4;return!e.s||!n.s?t=new this(NaN):!e.d&&!n.d?(t=ee(this,o,1).times(n.s>0?.25:.75),t.s=e.s):!n.d||e.isZero()?(t=n.s<0?ee(this,r,i):new this(0),t.s=e.s):!e.d||n.isZero()?(t=ee(this,o,1).times(.5),t.s=e.s):n.s<0?(this.precision=o,this.rounding=1,t=this.atan(E(e,n,o,1)),n=ee(this,o,1),this.precision=r,this.rounding=i,t=e.s<0?t.minus(n):t.plus(n)):t=this.atan(E(e,n,o,1)),t}function sr(e){return new this(e).cbrt()}function ar(e){return T(e=new this(e),e.e+1,2)}function ur(e,n,t){return new this(e).clamp(n,t)}function cr(e){if(!e||typeof e!="object")throw Error(je+"Object expected");var n,t,r,i=e.defaults===!0,o=["precision",1,ge,"rounding",0,8,"toExpNeg",-xe,0,"toExpPos",0,xe,"maxE",0,xe,"minE",-xe,0,"modulo",0,9];for(n=0;n<o.length;n+=3)if(t=o[n],i&&(this[t]=at[t]),(r=e[t])!==void 0)if(H(r)===r&&r>=o[n+1]&&r<=o[n+2])this[t]=r;else throw Error(de+t+": "+r);if(t="crypto",i&&(this[t]=at[t]),(r=e[t])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Vt);else this[t]=!1;else throw Error(de+t+": "+r);return this}function lr(e){return new this(e).cos()}function mr(e){return new this(e).cosh()}function Yt(e){var n,t,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,vt(o)){u.s=o.s,C?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;C?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return lt(u,o.toString())}else if(c!=="string")throw Error(de+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Ut.test(o)?lt(u,o):Yn(u,o)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=cr,i.clone=Yt,i.isDecimal=vt,i.abs=Xn,i.acos=Qn,i.acosh=$n,i.add=er,i.asin=tr,i.asinh=nr,i.atan=rr,i.atanh=ir,i.atan2=or,i.cbrt=sr,i.ceil=ar,i.clamp=ur,i.cos=lr,i.cosh=mr,i.div=fr,i.exp=pr,i.floor=dr,i.hypot=gr,i.ln=hr,i.log=br,i.log10=wr,i.log2=yr,i.max=Pr,i.min=Tr,i.mod=xr,i.mul=Ar,i.pow=kr,i.random=Br,i.round=Sr,i.sign=Cr,i.sin=Ir,i.sinh=Lr,i.sqrt=Nr,i.sub=Kr,i.sum=Mr,i.tan=Dr,i.tanh=Er,i.trunc=Rr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<r.length;)e.hasOwnProperty(t=r[n++])||(e[t]=this[t]);return i.config(e),i}function fr(e,n){return new this(e).div(n)}function pr(e){return new this(e).exp()}function dr(e){return T(e=new this(e),e.e+1,3)}function gr(){var e,n,t=new this(0);for(C=!1,e=0;e<arguments.length;)if(n=new this(arguments[e++]),n.d)t.d&&(t=t.plus(n.times(n)));else{if(n.s)return C=!0,new this(1/0);t=n}return C=!0,t.sqrt()}function vt(e){return e instanceof Ce||e&&e.toStringTag===qt||!1}function hr(e){return new this(e).ln()}function br(e,n){return new this(e).log(n)}function yr(e){return new this(e).log(2)}function wr(e){return new this(e).log(10)}function Pr(){return jt(this,arguments,"lt")}function Tr(){return jt(this,arguments,"gt")}function xr(e,n){return new this(e).mod(n)}function Ar(e,n){return new this(e).mul(n)}function kr(e,n){return new this(e).pow(n)}function Br(e){var n,t,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Z(e,1,ge),r=Math.ceil(e/A),this.crypto)if(crypto.getRandomValues)for(n=crypto.getRandomValues(new Uint32Array(r));o<r;)i=n[o],i>=429e7?n[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(r*=4);o<r;)i=n[o]+(n[o+1]<<8)+(n[o+2]<<16)+((n[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(n,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Vt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=A,r&&e&&(i=V(10,A-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=A)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<A&&(t-=A-r)}return s.e=t,s.d=a,s}function Sr(e){return T(e=new this(e),e.e+1,this.rounding)}function Cr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Ir(e){return new this(e).sin()}function Lr(e){return new this(e).sinh()}function Nr(e){return new this(e).sqrt()}function Kr(e,n){return new this(e).sub(n)}function Mr(){var e=0,n=arguments,t=new this(n[e]);for(C=!1;t.s&&++e<n.length;)t=t.plus(n[e]);return C=!0,T(t,this.precision,this.rounding)}function Dr(e){return new this(e).tan()}function Er(e){return new this(e).tanh()}function Rr(e){return T(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Ce=g.constructor=Yt(at);Ue=new Ce(Ue);Ge=new Ce(Ge);var ne=Ce;import{PublicKey as dt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _r}from"@solana/spl-token";import{PublicKey as O,SystemProgram as Jt,SYSVAR_RENT_PUBKEY as Or}from"@solana/web3.js";function ft({pubkey:e,isSigner:n=!1,isWritable:t=!0}){return{pubkey:e,isWritable:t,isSigner:n}}var _i=[ft({pubkey:_r,isWritable:!1}),ft({pubkey:Jt.programId,isWritable:!1}),ft({pubkey:Or,isWritable:!1})];function Xt({publicKey:e,transformSol:n}){let t=Qt(e.toString());if(t instanceof O)return n&&t.equals(Le)?Ie:t;if(n&&t.toString()===Le.toBase58())return Ie;if(typeof t=="string"){if(t===O.default.toBase58())return O.default;try{return new O(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Qt(e){try{return new O(e)}catch{return e}}var Oi=new O("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$t=new O("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),en=new O("SysvarRent111111111111111111111111111111111"),vi=new O("SysvarC1ock11111111111111111111111111111111"),Wi=new O("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fi=new O("Sysvar1nstructions1111111111111111111111111"),tn=Jt.programId,Vi=new O("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qi=new O("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ui=new O("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gi=new O("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Hi=new O("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ji=new O("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),zi=new O("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Zi=new O("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Yi=new O("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ji=new O("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xi=new O("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=new O("So11111111111111111111111111111111111111112"),Le=O.default;import{PublicKey as vr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nn}from"@solana/spl-token";var pt={chainId:101,address:vr.default.toBase58(),programId:nn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},he={chainId:101,address:"So11111111111111111111111111111111111111112",programId:nn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var gt=class{constructor({mint:n,decimals:t,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(n===Le.toBase58()||n instanceof dt&&Le.equals(n)){this.decimals=he.decimals,this.symbol=he.symbol,this.name=he.name,this.mint=new dt(he.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=r||n.toString().substring(0,6),this.name=i||n.toString().substring(0,6),this.mint=o?dt.default:Xt({publicKey:n}),this.isToken2022=s}equals(n){return this===n?!0:this.mint.equals(n.mint)}},be=gt;be.WSOL=new gt(X(v({},he),{mint:he.address}));import{get as rn,set as Wr}from"lodash";import sn from"dayjs";import Fr from"dayjs/plugin/utc";sn.extend(Fr);var ht=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return sn().utc().format("YYYY/MM/DD HH:mm:ss UTC")}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},on={},Vr={};function U(e){let n=rn(on,e);if(!n){let t=rn(Vr,e);n=new ht({name:e,logLevel:t}),Wr(on,e,n)}return n}import Je from"big.js";import Gr from"bn.js";import Hr from"decimal.js-light";import qr from"toformat";var Ur=qr,Ne=Ur;var Ye=U("module/fraction"),bt=Ne(Je),Ke=Ne(Hr),jr={[0]:Ke.ROUND_DOWN,[1]:Ke.ROUND_HALF_UP,[2]:Ke.ROUND_UP},zr={[0]:Je.roundDown,[1]:Je.roundHalfUp,[2]:Je.roundUp},R=class{constructor(n,t=new Gr(1)){this.numerator=re(n),this.denominator=re(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(n){let t=n instanceof R?n:new R(re(n));return this.denominator.eq(t.denominator)?new R(this.numerator.add(t.numerator),this.denominator):new R(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(n){let t=n instanceof R?n:new R(re(n));return this.denominator.eq(t.denominator)?new R(this.numerator.sub(t.numerator),this.denominator):new R(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(n){let t=n instanceof R?n:new R(re(n));return new R(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof R?n:new R(re(n));return new R(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},r=1){Number.isInteger(n)||Ye.logWithError(`${n} is not an integer.`),n<=0&&Ye.logWithError(`${n} is not positive.`),Ke.set({precision:n+1,rounding:jr[r]});let i=new Ke(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return i.toFormat(i.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},r=1){return Number.isInteger(n)||Ye.logWithError(`${n} is not an integer.`),n<0&&Ye.logWithError(`${n} is negative.`),bt.DP=n,bt.RM=zr[r]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};var Io=U("Raydium_price");var yt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:r="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=r}equals(n){return this===n}},Xe=yt;Xe.SOL=new yt(pt);import Yr from"bn.js";var an=new R(new Yr(100)),ye=class extends R{toSignificant(n=5,t,r){return this.mul(an).toSignificant(n,t,r)}toFixed(n=2,t,r){return this.mul(an).toFixed(n,t,r)}};import{PublicKey as Uo}from"@solana/web3.js";import Ho from"bn.js";var wt=new Y(0),us=new Y(1),cs=new Y(2),ls=new Y(3),ms=new Y(5),ln=new Y(10),fs=new Y(100),ps=new Y(1e3),ds=new Y(1e4),cn=9007199254740991;function re(e){let n=U("Raydium_parseBigNumberish");if(e instanceof Y)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Y(e);n.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&n.logWithError(`BigNumberish number underflow: ${e}`),(e>=cn||e<=-cn)&&n.logWithError(`BigNumberish number overflow: ${e}`),new Y(String(e))):typeof e=="bigint"?new Y(e.toString()):(n.error(`invalid BigNumberish value: ${e}`),new Y(0))}var Xr=U("Raydium_amount"),mn=Ne(Jr);function Qr(e,n){let t="0",r="0";if(e.includes(".")){let i=e.split(".");i.length===2?([t,r]=i,r=r.padEnd(n,"0")):Xr.logWithError(`invalid number string, num: ${e}`)}else t=e;return[t,r.slice(0,n)||r]}var Q=class extends R{constructor(t,r,i=!0,o){let s=new Qe(0),a=ln.pow(new Qe(t.decimals));if(i)s=re(r);else{let c=new Qe(0),u=new Qe(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,m]=Qr(r.toString(),t.decimals);c=re(l),u=re(m)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=U(o||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new Q(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new Q(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,r,i=0){return super.toSignificant(t,r,i)}toFixed(t=this.token.decimals,r,i=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,r,i)}toExact(t={groupSeparator:""}){return mn.DP=this.token.decimals,new mn(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as si}from"@solana/web3.js";import hn,{isBN as bn}from"bn.js";import{bits as _s,BitStructure as Os,blob as $r,Blob as vs,cstr as Ws,f32 as Fs,f32be as Vs,f64 as qs,f64be as Us,greedy as Gs,Layout as ei,ns64 as Hs,ns64be as js,nu64 as zs,nu64be as Zs,offset as Ys,s16 as Js,s16be as Xs,s24 as Qs,s24be as $s,s32 as ea,s32be as ta,s40 as na,s40be as ra,s48 as ia,s48be as oa,s8 as sa,seq as ti,struct as aa,Structure as ni,u16 as ri,u16be as ua,u24 as ca,u24be as la,u32 as ma,u32be as fa,u40 as pa,u40be as da,u48 as ga,u48be as ha,u8 as ii,UInt as oi,union as ba,Union as ya,unionLayoutDiscriminator as wa,utf8 as Pa}from"@solana/buffer-layout";var Pt=ei,fn=ni;var Tt=oi;var pn=ii,dn=ri;var gn=ti;var ke=$r;var xt=class extends Pt{constructor(t,r,i){super(t,i);this.blob=ke(t),this.signed=r}decode(t,r=0){let i=new hn(this.blob.decode(t,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,r,i=0){return typeof t=="number"&&(t=new hn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),r,i)}};function ue(e){return new Tt(1,e)}function kt(e){return new Tt(4,e)}function M(e){return new xt(8,!1,e)}var $e=class extends Pt{constructor(t,r,i,o){super(t.span,o);this.layout=t,this.decoder=r,this.encoder=i}decode(t,r){return this.decoder(this.layout.decode(t,r))}encode(t,r,i){return this.layout.encode(this.encoder(t),r,i)}getSpan(t,r){return this.layout.getSpan(t,r)}};function j(e){return new $e(ke(32),n=>new si(n),n=>n.toBuffer(),e)}function yn(e){return new $e(pn(),ai,ui,e)}function ai(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function ui(e){return e?1:0}var At=class extends fn{decode(n,t){return super.decode(n,t)}};function ie(e,n,t){return new At(e,n,t)}function Bt(e,n,t){let r,i=typeof n=="number"?n:bn(n)?n.toNumber():new Proxy(n,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=bn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return gn(e,i,t)}var Ea=ie([kt("mintAuthorityOption"),j("mintAuthority"),M("supply"),ue("decimals"),ue("isInitialized"),kt("freezeAuthorityOption"),j("freezeAuthority")]);import{PublicKey as va}from"@solana/web3.js";import{MintLayout as Fa,TOKEN_PROGRAM_ID as qa}from"@solana/spl-token";var wn=e=>new be({mint:e.address,decimals:e.decimals,symbol:e.symbol,name:e.name});import{PublicKey as di}from"@solana/web3.js";import{PublicKey as ci,ComputeBudgetProgram as Pn,Transaction as xn,TransactionMessage as li,Keypair as An,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";var le={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Tn=U("Raydium_txUtil"),Bn=1644;function et(e){let n=[],t=[];return e.microLamports&&(n.push(Pn.setComputeUnitPrice({microLamports:e.microLamports})),t.push(le.SetComputeUnitPrice)),e.units&&(n.push(Pn.setComputeUnitLimit({units:e.units})),t.push(le.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Be(e){var n,t;try{return((t=await((n=e.getLatestBlockhash)==null?void 0:n.call(e)))==null?void 0:t.blockhash)||(await e.getRecentBlockhash()).blockhash}catch{return(await e.getRecentBlockhash()).blockhash}}function fi(e,n){e.length<1&&Tn.logWithError(`no instructions provided: ${e.toString()}`),n.length<1&&Tn.logWithError(`no signers provided:, ${n.toString()}`);let t=new xn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...e);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function me(e,n){let[t,r]=ci.findProgramAddressSync(e,n);return{publicKey:t,nonce:r}}function Me({instructions:e,payer:n,signers:t}){return fi(e,[n,...t])}function De({instructions:e,payer:n,lookupTableAddressAccount:t,recentBlockhash:r=An.generate().publicKey.toString()}){let o=new li({payerKey:n,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new kn(o).serialize()).toString("base64").length<Bn}catch{return!1}}var pi=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e);function Pe(e){let n=[];return e.forEach(t=>{t instanceof xn&&(t.recentBlockhash||(t.recentBlockhash=mi.toBase58()),t.feePayer||(t.feePayer=An.generate().publicKey));let r=t.serialize({requireAllSignatures:!1,verifySignatures:!1});t instanceof kn&&(r=pi(r));let i=r.toString("base64");n.push(i)}),console.log("simulate tx string:",n),n}import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";function Sn(e,n,t){return me([e.toBuffer(),(t!=null?t:gi).toBuffer(),n.toBuffer()],new di("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as Ee,sendAndConfirmTransaction as Lt,Transaction as Re,TransactionMessage as _e,VersionedTransaction as Oe}from"@solana/web3.js";import bi from"axios";import{PublicKey as In,AddressLookupTableAccount as tt}from"@solana/web3.js";import{PublicKey as hi}from"@solana/web3.js";import{getTransferFeeConfig as ac,unpackMint as uc}from"@solana/spl-token";function St(e,n=1,t=[]){let r=[...e];if(n<=0)return t;for(;r.length;)t.push(r.splice(0,n));return t}import{PublicKey as F}from"@solana/web3.js";var gu=new F("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),hu=new F("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bu=new F("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),yu=new F("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wu=new F("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Pu=new F("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Tu=new F("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xu=new F("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Au=new F("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ku=new F("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bu=new F("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Su=new F("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Cu=new F("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Iu=new F("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Lu=new F("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Nu=new F("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ku=new F("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Mu=new F("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Du=new F("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Eu=new F("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");import Ou from"bn.js";var Ct=U("Raydium_accountInfo_util");async function Cn(e,n,t){let{batchRequest:r,commitment:i="confirmed"}=v({batchRequest:!1},t),o=St(n,100),s=new Array(o.length).fill([]);if(r){let a=o.map(l=>{let m=e._buildArgs([l.map(f=>f.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:m}}),c=St(a,10);s=(await(await Promise.all(c.map(async l=>await e._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(m=>{if(m){let{data:f,executable:d,lamports:h,owner:p,rentEpoch:y}=m;return f.length!==2&&f[1]!=="base64"&&Ct.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:d,lamports:h,owner:new hi(p),rentEpoch:y}}return null})))}else try{s=await Promise.all(o.map(a=>e.getMultipleAccountsInfo(a,i)))}catch(a){a instanceof Error&&Ct.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return s.flat()}async function It({connection:e,address:n}){let t=await Cn(e,[...new Set(n.map(i=>i.toString()))].map(i=>new In(i))),r={};for(let i=0;i<n.length;i++){let o=t[i],s=n[i];if(!o)continue;let a=new tt({key:s,state:tt.deserialize(o.data)});r[s.toString()]=a,nt[s.toString()]=a}return r}var nt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new tt({key:new In("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:tt.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var rt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let n=(await bi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(r=n==null?void 0:n[15])!=null?r:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:t,instructionTypes:r}=et(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:n,defaultIns:t}){try{let r=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ee.default.toString())),this}async versionBuild({txVersion:n,extInfo:t}){return n===0?await this.buildV0(v({},t||{})):this.build(t)}build(n){let t=new Re;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var i;let r=await Be(this.connection);if(t.recentBlockhash=r,this.signers.length&&t.sign(...this.signers),Pe([t]),(i=this.owner)!=null&&i.isKeyPair)return{txId:await Lt(this.connection,t,this.signers.find(o=>o.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer]),signedTx:t};if(this.signAllTransactions){let o=await this.signAllTransactions([t]);return{txId:await this.connection.sendRawTransaction(o[0].serialize(),{skipPreflight:!0}),signedTx:o[0]}}throw new Error("please connect wallet first")},extInfo:n||{}}}buildMultiTx(n){let{extraPreBuildData:t=[],extInfo:r}=n,{transaction:i}=this.build(r),o=t.filter(u=>u.transaction.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async u=>{var d;let{sequentially:l,onTxUpdate:m}=u||{},f=await Be(this.connection);if((d=this.owner)!=null&&d.isKeyPair)return{txIds:await await Promise.all(s.map(async(h,p)=>(h.recentBlockhash=f,await Lt(this.connection,h,a[p].find(y=>y.publicKey.equals(this.owner.publicKey))?a[p]:[...a[p],this.owner.signer])))),signedTxs:s};if(this.signAllTransactions){let h=s.map((y,b)=>(y.recentBlockhash=f,a[b].length&&y.sign(...a[b]),y));Pe(h);let p=await this.signAllTransactions(h);if(l){let y=0,b=[],P=async()=>{if(!p[y])return;let w=await this.connection.sendRawTransaction(p[y].serialize(),{skipPreflight:!0});b.push({txId:w,status:"sent",signedTx:p[y]}),m==null||m([...b]),y++,this.connection.onSignature(w,B=>{let k=b.findIndex(S=>S.txId===w);k>-1&&(b[k].status=B.err?"error":"success"),m==null||m([...b]),B.err||P()},"processed"),this.connection.getSignatureStatus(w)};return await P(),{txIds:b.map(w=>w.txId),signedTxs:p}}else{let y=[];for(let b=0;b<p.length;b+=1){let P=await this.connection.sendRawTransaction(p[b].serialize(),{skipPreflight:!0});y.push(P)}return{txIds:y,signedTxs:p}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:r}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:r})}async buildV0(n){let f=n||{},{lookupTableCache:t={},lookupTableAddress:r=[],forerunCreate:i}=f,o=se(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=v(v({},nt),t),a=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let d of a)s[d]===void 0&&c.push(new Ee(d));let u=await It({connection:this.connection,address:c});for(let[d,h]of Object.entries(u))s[d]=h;let l=new _e({payerKey:this.feePayer,recentBlockhash:i?Ee.default.toBase58():await Be(this.connection),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s)),m=new Oe(l);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async()=>{var d;if(Pe([m]),(d=this.owner)!=null&&d.isKeyPair){this.signers.find(b=>b.publicKey.equals(this.owner.publicKey))||m.sign([this.owner.signer]);let h=await this.connection.sendTransaction(m,{skipPreflight:!0}),{lastValidBlockHeight:p,blockhash:y}=await this.connection.getLatestBlockhash();return await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:p,signature:h},"confirmed"),{txId:h,signedTx:m}}if(this.signAllTransactions){let h=await this.signAllTransactions([m]);return{txId:await this.connection.sendTransaction(h[0],{skipPreflight:!0}),signedTx:h[0]}}throw new Error("please connect wallet first")},extInfo:o||{}}}async buildV0MultiTx(n){let{extraPreBuildData:t=[],buildProps:r}=n,{transaction:i}=await this.buildV0(r),o=t.filter(u=>u.builder.instructions.length>0),s=[i,...o.map(u=>u.transaction)],a=[this.signers,...o.map(u=>u.signers)],c=[...this.instructionTypes,...o.map(u=>u.instructionTypes).flat()];return s.forEach(async(u,l)=>{u.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:r,execute:async u=>{var f;Pe(s);let{sequentially:l,onTxUpdate:m}=u||{};if((f=this.owner)!=null&&f.isKeyPair){let{lastValidBlockHeight:d,blockhash:h}=await this.connection.getLatestBlockhash();return s.forEach((p,y)=>{a[y].find(b=>b.publicKey.equals(this.owner.publicKey))||p.sign([this.owner.signer])}),{txIds:await Promise.all(s.map(async p=>{let y=await this.connection.sendTransaction(p);return await this.connection.confirmTransaction({blockhash:h,lastValidBlockHeight:d,signature:y},"confirmed"),y})),signedTxs:s}}if(this.signAllTransactions){let d=await this.signAllTransactions(s);if(l){let h=0,p=[],y=async()=>{if(!d[h])return;let b=await this.connection.sendTransaction(d[h],{skipPreflight:!0});p.push({txId:b,status:"sent",signedTx:d[h]}),m==null||m([...p]),h++,this.connection.onSignature(b,P=>{let w=p.findIndex(B=>B.txId===b);w>-1&&(p[w].status=P.err?"error":"success"),m==null||m([...p]),P.err||y()},"processed"),this.connection.getSignatureStatus(b)};return y(),{txIds:[],signedTxs:d}}else{let h=[];for(let p=0;p<d.length;p+=1){let y=await this.connection.sendTransaction(d[p],{skipPreflight:!0});h.push(y)}return{txIds:h,signedTxs:d}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuild(n){let u=n||{},{computeBudgetConfig:t}=u,r=se(u,["computeBudgetConfig"]),i=t?et(t):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,m)=>X(v({},l),{[m.publicKey.toBase58()]:m}),{}),s=[],a=[],c=[];if(this.allInstructions.forEach(l=>{let m=[...c,l],f=t?[...i.instructions,...m]:m,h=[...new Set(m.map(p=>p.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(p=>new Ee(p));if(c.length<12&&Me({instructions:f,payer:this.feePayer,signers:h})||Me({instructions:m,payer:this.feePayer,signers:h}))c.push(l);else{if(c.length===0)throw Error("item ins too big");Me({instructions:t?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:h})?s.push(new Re().add(...i.instructions,...c)):s.push(new Re().add(...c)),a.push(Array.from(new Set(c.map(p=>p.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat())).map(p=>o[p]).filter(p=>p!==void 0)),c=[l]}}),c.length>0){let m=[...new Set(c.map(f=>f.keys.filter(d=>d.isSigner).map(d=>d.pubkey.toString())).flat()).values()].map(f=>o[f]).filter(f=>f!==void 0);Me({instructions:t?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:m.map(f=>f.publicKey)})?s.push(new Re().add(...i.instructions,...c)):s.push(new Re().add(...c)),a.push(m)}return s.forEach(l=>l.feePayer=this.feePayer),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var h;let{sequentially:m,onTxUpdate:f}=l||{},d=await Be(this.connection);if(s.forEach(async(p,y)=>{p.recentBlockhash=d,a[y].length&&p.sign(...a[y])}),Pe(s),(h=this.owner)!=null&&h.isKeyPair)return{txIds:await Promise.all(s.map(async(p,y)=>await Lt(this.connection,p,a[y].find(b=>b.publicKey.equals(this.owner.publicKey))?a[y]:[...a[y],this.owner.signer]))),signedTxs:s};if(this.signAllTransactions){let p=await this.signAllTransactions(s);if(m){let y=0,b=[],P=async()=>{if(!p[y])return;let w=await this.connection.sendRawTransaction(p[y].serialize(),{skipPreflight:!0});b.push({txId:w,status:"sent",signedTx:p[y]}),f==null||f([...b]),y++,this.connection.onSignature(w,B=>{let k=b.findIndex(S=>S.txId===w);k>-1&&(b[k].status=B.err?"error":"success"),f==null||f([...b]),B.err||P()},"processed"),this.connection.getSignatureStatus(w)};return await P(),{txIds:b.map(w=>w.txId),signedTxs:p}}else{let y=[];for(let b=0;b<p.length;b+=1){let P=await this.connection.sendRawTransaction(p[b].serialize(),{skipPreflight:!0});y.push(P)}return{txIds:y,signedTxs:p}}}throw new Error("please connect wallet first")},extInfo:r||{}}}async sizeCheckBuildV0(n){let y=n||{},{computeBudgetConfig:t,lookupTableCache:r={},lookupTableAddress:i=[]}=y,o=se(y,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=v(v({},nt),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),c=[];for(let b of a)s[b]===void 0&&c.push(new Ee(b));let u=await It({connection:this.connection,address:c});for(let[b,P]of Object.entries(u))s[b]=P;let l=t?et(t):{instructions:[],instructionTypes:[]},m=await Be(this.connection),f=this.signers.reduce((b,P)=>X(v({},b),{[P.publicKey.toBase58()]:P}),{}),d=[],h=[],p=[];if(this.allInstructions.forEach(b=>{let P=[...p,b],w=t?[...l.instructions,...P]:P;if(p.length<12&&De({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||De({instructions:P,payer:this.feePayer,lookupTableAddressAccount:s}))p.push(b);else{if(p.length===0)throw Error("item ins too big");let B={};for(let k of[...new Set(a)])s[k]!==void 0&&(B[k]=s[k]);if(t&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let k=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));d.push(new Oe(k))}else{let k=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p]}).compileToV0Message(Object.values(s));d.push(new Oe(k))}h.push(Array.from(new Set(p.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat())).map(k=>f[k]).filter(k=>k!==void 0)),p=[b]}}),p.length>0){let P=[...new Set(p.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(t&&De({instructions:[...l.instructions,...p],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:m})){let w=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...l.instructions,...p]}).compileToV0Message(Object.values(s));d.push(new Oe(w))}else{let w=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p]}).compileToV0Message(Object.values(s));d.push(new Oe(w))}h.push(P)}return{builder:this,transactions:d,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async b=>{var B;let{sequentially:P,onTxUpdate:w}=b||{};if(d.map(async(k,S)=>{h[S].length&&k.sign(h[S])}),Pe(d),(B=this.owner)!=null&&B.isKeyPair){let{lastValidBlockHeight:k,blockhash:S}=await this.connection.getLatestBlockhash();return d.forEach((N,D)=>{h[D].find(W=>W.publicKey.equals(this.owner.publicKey))||N.sign([this.owner.signer])}),{txIds:await Promise.all(d.map(async N=>{let D=await this.connection.sendTransaction(N);return await this.connection.confirmTransaction({blockhash:S,lastValidBlockHeight:k,signature:D},"confirmed"),D})),signedTxs:d}}if(this.signAllTransactions){let k=await this.signAllTransactions(d);if(P){let S=0,N=[],D=async()=>{if(!k[S])return;let W=await this.connection.sendTransaction(k[S],{skipPreflight:!0});N.push({txId:W,status:"sent",signedTx:k[S]}),w==null||w([...N]),S++,this.connection.onSignature(W,J=>{let K=N.findIndex(z=>z.txId===W);K>-1&&(N[K].status=J.err?"error":"success"),w==null||w([...N]),J.err||D()},"processed"),this.connection.getSignatureStatus(W)};return D(),{txIds:[],signedTxs:k}}else{let S=[];for(let N=0;N<k.length;N+=1){let D=await this.connection.sendTransaction(k[N],{skipPreflight:!0});S.push(D)}return{txIds:S,signedTxs:k}}}throw new Error("please connect wallet first")},extInfo:o||{}}}};var Nt=(...e)=>e.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),ve=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=U(t)}createTxBuilder(n){return this.scope.checkOwner(),new rt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,owner:this.scope.owner,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(Nt(n))}logInfo(...n){this.logger.info(Nt(n))}logAndCreateError(...n){let t=Nt(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var yi=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),wi=Buffer.from("amm_config","utf8"),Pi=Buffer.from("pool","utf8"),Ti=Buffer.from("pool_lp_mint","utf8"),xi=Buffer.from("pool_vault","utf8"),Ai=Buffer.from("observation","utf8");function ki(e){return me([yi],e)}function Bi(e,n){return me([wi,Ii(n)],e)}function Si(e,n,t,r){return me([Pi,n.toBuffer(),t.toBuffer(),r.toBuffer()],e)}function Ci(e,n){return me([Ti,n.toBuffer()],e)}function Ln(e,n,t){return me([xi,n.toBuffer(),t.toBuffer()],e)}function it(e,n){return me([Ai,n.toBuffer()],e)}function Ii(e){let n=new ArrayBuffer(2);return new DataView(n).setUint16(0,e,!1),new Uint8Array(n)}function Nn({programId:e,mintA:n,mintB:t}){let r=Bi(e,0).publicKey,i=ki(e).publicKey,o=Si(e,r,n,t).publicKey,s=Ci(e,o).publicKey,a=Ln(e,o,n).publicKey,c=Ln(e,o,t).publicKey,u=it(e,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:c,observationId:u}}import{TransactionInstruction as We}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kt,TOKEN_2022_PROGRAM_ID as Mn,ASSOCIATED_TOKEN_PROGRAM_ID as Li}from"@solana/spl-token";var Kn=U("Raydium_Cpmm_ins"),Fe={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173]};function Dn(e,n,t,r,i,o,s,a,c,u,l,m,f,d,h,p,y,b,P,w){let B=ie([M("amountMaxA"),M("amountMaxB"),M("openTime")]),k=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:Li,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:en,isSigner:!1,isWritable:!1}],S=Buffer.alloc(B.span);return B.encode({amountMaxA:b,amountMaxB:P,openTime:w},S),new We({keys:k,programId:e,data:Buffer.from([...Fe.initialize,...S])})}function En(e,n,t,r,i,o,s,a,c,u,l,m,f,d,h){Kn.info(123123,{mintA:u.toBase58(),mintB:l.toBase58(),lpAmount:f.toString(),amountMaxA:d.toString(),amountMaxB:h.toString()});let p=ie([M("lpAmount"),M("amountMaxA"),M("amountMaxB")]),y=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:Mn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],b=Buffer.alloc(p.span);return Kn.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:d.toString(),amountMaxB:h.toString()}),p.encode({lpAmount:f,amountMaxA:d,amountMaxB:h},b),new We({keys:y,programId:e,data:Buffer.from([...Fe.deposit,...b])})}function Rn(e,n,t,r,i,o,s,a,c,u,l,m,f,d,h){let p=ie([M("lpAmount"),M("amountMinA"),M("amountMinB")]),y=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:Mn,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:$t,isSigner:!1,isWritable:!1}],b=Buffer.alloc(p.span);return p.encode({lpAmount:f,amountMinA:d,amountMinB:h},b),new We({keys:y,programId:e,data:Buffer.from([...Fe.withdraw,...b])})}function _n(e,n,t,r,i,o,s,a,c,u,l,m,f,d,h,p){let y=ie([M("amountIn"),M("amounOutMin")]),b=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0}],P=Buffer.alloc(y.span);return y.encode({amountIn:h,amounOutMin:p},P),new We({keys:b,programId:e,data:Buffer.from([...Fe.swapBaseInput,...P])})}function On(e,n,t,r,i,o,s,a,c,u,l,m,f,d,h,p){let y=ie([M("amountInMax"),M("amountOut")]),b=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0}],P=Buffer.alloc(y.span);return y.encode({amountInMax:h,amountOut:p},P),new We({keys:b,programId:e,data:Buffer.from([...Fe.swapBaseOutput,...P])})}import $ from"bn.js";var Vc=ie([ke(8),ue("bump"),yn("disableCreatePool"),dn("index"),M("tradeFeeRate"),M("protocolFeeRate"),M("fundFeeRate"),M("createPoolFee"),j("protocolOwner"),j("fundOwner"),Bt(M(),16)]),vn=ie([ke(8),j("configId"),j("poolCreator"),j("vaultA"),j("vaultB"),j("mintLp"),j("mintA"),j("mintB"),j("mintProgramA"),j("mintProgramB"),j("observationId"),ue("bump"),ue("status"),ue("lpDecimals"),ue("mintDecimalA"),ue("mintDecimalB"),M("lpAmount"),M("protocolFeesMintA"),M("protocolFeesMintB"),M("fundFeesMintA"),M("fundFeesMintB"),M("openTime"),Bt(M(),32)]);var Mt=class extends ve{constructor(n){super(n)}async load(){this.checkDisabled()}async getCpmmPoolKeys(n){return(await this.scope.api.fetchPoolKeysById({idList:[n]}))[0]}async getRpcPoolInfo(n){let t=await this.scope.connection.getAccountInfo(new x(n));if(!t)throw new Error(`pool not found: ${n}`);let r=vn.decode(t.data),[i,o]=await this.scope.connection.getMultipleAccountsInfo([r.vaultA,r.vaultB]);if(!i)throw new Error(`pool vaultA info not found: ${r.vaultA.toBase58()}`);if(!o)throw new Error(`pool vaultB info not found: ${r.vaultB.toBase58()}`);return X(v({},r),{baseReserve:new $(Wn.decode(i.data).amount.toString()).sub(r.protocolFeesMintA).sub(r.fundFeesMintA),quoteReserve:new $(Wn.decode(o.data).amount.toString()).sub(r.protocolFeesMintB).sub(r.fundFeesMintB)})}async createPool(l){var m=l,{programId:n,poolFeeAccount:t,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:c}=m,u=se(m,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var z,oe,Te;let f=i.feePayer||((z=this.scope.owner)==null?void 0:z.publicKey),d=new $(new x(u.mintA.address).toBuffer()).lte(new $(new x(u.mintB.address).toBuffer())),[h,p]=d?[u.mintA,u.mintB]:[u.mintB,u.mintA],[y,b]=d?[u.mintAAmount,u.mintBAmount]:[u.mintBAmount,u.mintAAmount],P=i.useSOLBalance&&h.address===ot.toBase58(),w=i.useSOLBalance&&p.address===ot.toBase58(),[B,k]=[new x(h.address),new x(p.address)],S=this.createTxBuilder(),{account:N,instructionParams:D}=await this.scope.account.getOrCreateTokenAccount({mint:B,tokenProgram:h.programId,owner:this.scope.ownerPubKey,createInfo:P?{payer:f,amount:y}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:o,checkCreateATAOwner:s});S.addInstruction(D||{});let{account:W,instructionParams:J}=await this.scope.account.getOrCreateTokenAccount({mint:new x(p.address),tokenProgram:p.programId,owner:this.scope.ownerPubKey,createInfo:w?{payer:f,amount:b}:void 0,notUseTokenAccount:w,skipCloseAccount:!w,associatedOnly:w?!1:o,checkCreateATAOwner:s});if(S.addInstruction(J||{}),N===void 0||W===void 0)throw Error("you don't has some token account");let K=Nn({programId:n,mintA:B,mintB:k});return S.addInstruction({instructions:[Dn(n,this.scope.ownerPubKey,K.configId,K.authority,K.poolId,B,k,K.lpMint,N,W,Sn(this.scope.ownerPubKey,K.lpMint).publicKey,K.vaultA,K.vaultB,t,new x((oe=h.programId)!=null?oe:we),new x((Te=p.programId)!=null?Te:we),K.observationId,y,b,r)],instructionTypes:[le.CpmmCreatePool]}),S.addCustomComputeBudget(c),S.versionBuild({txVersion:a,extInfo:{address:X(v({},K),{mintA:h,mintB:p,programId:n,poolFeeAccount:t})}})}async addLiquidity(n){let{poolInfo:t,inputAmount:r,baseIn:i,slippage:o,computeBudgetConfig:s,config:a,txVersion:c}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),r.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:r.toString()});let{account:u}=this.scope,{bypassAssociatedCheck:l,checkCreateATAOwner:m}=v({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},a),f=await this.getRpcPoolInfo(t.id),{liquidity:d,anotherAmount:h}=this.computePairAmount({poolInfo:X(v({},t),{mintAmountA:new ne(f.baseReserve.toString()).div(10**t.mintA.decimals).toNumber(),mintAmountB:new ne(f.quoteReserve.toString()).div(10**t.mintB.decimals).toNumber(),lpAmount:new ne(f.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),slippage:o,baseIn:i,amount:new ne(r.toString()).div(10**(i?t.mintA.decimals:t.mintB.decimals))}),p=h.raw,y=t.mintA.address===ot.toString(),b=t.mintB.address===ot.toString(),P=this.createTxBuilder(),[w,B]=[new x(t.mintA.address),new x(t.mintB.address)],{account:k,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new x(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:y||(i?r:p).isZero()?{payer:this.scope.ownerPubKey,amount:i?r:p}:void 0,skipCloseAccount:!y,notUseTokenAccount:y,associatedOnly:!1,checkCreateATAOwner:m});P.addInstruction(S||{});let{account:N,instructionParams:D}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new x(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:b||(i?p:r).isZero()?{payer:this.scope.ownerPubKey,amount:i?p:r}:void 0,skipCloseAccount:!b,notUseTokenAccount:b,associatedOnly:!1,checkCreateATAOwner:m});P.addInstruction(D||{}),!k&&!N&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",u.tokenAccounts);let W=await u.getCreatedTokenAccount({mint:new x(t.lpMint.address)}),oe=await u.handleTokenAccount({side:"out",amount:0,mint:new x(t.lpMint.address),tokenAccount:W,bypassAssociatedCheck:l,checkCreateATAOwner:m}),{tokenAccount:J}=oe,K=se(oe,["tokenAccount"]);P.addInstruction(K);let z=await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[En(new x(t.programId),this.scope.ownerPubKey,new x(z.authority),new x(t.id),J,k,N,new x(z.vault.A),new x(z.vault.B),w,B,new x(t.lpMint.address),d,i?r:p,i?p:r)],instructionTypes:[le.CpmmAddLiquidity],lookupTableAddress:z.lookupTableAccount?[z.lookupTableAccount]:[]}),P.addCustomComputeBudget(s),P.versionBuild({txVersion:c})}async withdrawLiquidity(n){let{poolInfo:t,lpAmount:r,slippage:i,computeBudgetConfig:o,txVersion:s}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let a=new ye(new $(1)).sub(i),c=await this.getRpcPoolInfo(t.id),[u,l]=[a.mul(r.mul(c.baseReserve).div(c.lpAmount)).quotient,a.mul(r.mul(c.quoteReserve).div(c.lpAmount)).quotient],{account:m}=this.scope,f=this.createTxBuilder(),[d,h]=[new x(t.mintA.address),new x(t.mintB.address)],p=d.equals(Ie),y=h.equals(Ie),b,P,{account:w,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new x(t.mintA.address),notUseTokenAccount:p,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!p,associatedOnly:!p,checkCreateATAOwner:!1});b=w,B&&f.addInstruction(B);let{account:k,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new x(t.mintB.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!y,associatedOnly:!y,checkCreateATAOwner:!1});P=k,S&&f.addInstruction(S),(!b||!P)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",m.tokenAccounts);let N=await m.getCreatedTokenAccount({mint:new x(t.lpMint.address)});N||this.logAndCreateError("cannot found lp token account","tokenAccounts",m.tokenAccounts);let D=await this.getCpmmPoolKeys(t.id);return f.addInstruction({instructions:[Rn(new x(t.programId),this.scope.ownerPubKey,new x(D.authority),new x(t.id),N,b,P,new x(D.vault.A),new x(D.vault.B),d,h,new x(t.lpMint.address),r,u,l)],instructionTypes:[le.CpmmWithdrawLiquidity],lookupTableAddress:D.lookupTableAccount?[D.lookupTableAccount]:[]}),f.addCustomComputeBudget(o),f.versionBuild({txVersion:s})}async swap(n){var B,k,D,W,J,K;let{poolInfo:t,baseIn:r,swapResult:i,config:o,computeBudgetConfig:s,txVersion:a}=n,{bypassAssociatedCheck:c,checkCreateATAOwner:u}=v({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},o),l=this.createTxBuilder(),[m,f]=[new x(t.mintA.address),new x(t.mintB.address)],d=await this.scope.account.getCreatedTokenAccount({programId:new x((B=t.mintA.programId)!=null?B:we),mint:m,associatedOnly:!1}),h=await this.scope.account.getCreatedTokenAccount({programId:new x((k=t.mintB.programId)!=null?k:we),mint:f,associatedOnly:!1}),S=await this.scope.account.handleTokenAccount({side:r?"in":"out",amount:r?i.sourceAmountSwapped:i.destinationAmountSwapped,mint:m,tokenAccount:d,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:p}=S,y=se(S,["tokenAccount"]);l.addInstruction(y);let N=await this.scope.account.handleTokenAccount({side:r?"out":"in",amount:r?i.destinationAmountSwapped:i.sourceAmountSwapped,mint:f,tokenAccount:h,bypassAssociatedCheck:c,checkCreateATAOwner:u}),{tokenAccount:b}=N,P=se(N,["tokenAccount"]);l.addInstruction(P),!p&&!b&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",this.scope.account.tokenAccounts);let w=await this.getCpmmPoolKeys(t.id);return l.addInstruction({instructions:[r?_n(new x(t.programId),this.scope.ownerPubKey,new x(w.authority),new x(w.id),new x(t.id),p,b,new x(w.vault.A),new x(w.vault.B),new x((D=t.mintA.programId)!=null?D:we),new x((W=t.mintB.programId)!=null?W:we),m,f,it(new x(t.programId),new x(t.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped):On(new x(t.programId),this.scope.ownerPubKey,new x(w.authority),new x(w.id),new x(t.id),b,p,new x(w.vault.B),new x(w.vault.A),new x((J=t.mintB.programId)!=null?J:we),new x((K=t.mintA.programId)!=null?K:we),f,m,it(new x(t.programId),new x(t.id)).publicKey,i.sourceAmountSwapped,i.destinationAmountSwapped)],instructionTypes:[r?le.CpmmSwapBaseIn:le.CpmmSwapBaseOut]}),l.addCustomComputeBudget(s),l.versionBuild({txVersion:a})}computePairAmount({poolInfo:n,amount:t,slippage:r,baseIn:i}){let o=new $(new ne(t).mul(10**n[i?"mintA":"mintB"].decimals).toFixed(0)),s=wn(n[i?"mintB":"mintA"]),[a,c]=[new $(new ne(n.mintAmountA).mul(10**n.mintA.decimals).toString()),new $(new ne(n.mintAmountB).mul(10**n.mintB.decimals).toString())],u=new $(new ne(n.lpAmount).mul(10**n.lpMint.decimals).toFixed(0,ne.ROUND_DOWN));this.logDebug("baseReserve:",a.toString(),"quoteReserve:",c.toString()),this.logDebug("tokenIn:",i?n.mintA.symbol:n.mintB.symbol,"amountIn:",o.toString(),"anotherToken:",i?n.mintB.symbol:n.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let l=i?"base":"quote";this.logDebug("input side:",l);let m=o.mul(u).div(l==="base"?a:c),f=wt;o.isZero()||(f=Ni(m,a,c,u)[i?"amountB":"amountA"]);let h=new ye(new $(1)).add(r).mul(f).quotient,p=new Q(s,f),y=new Q(s,h);return this.logDebug("anotherAmount:",p.toFixed(),"maxAnotherAmount:",y.toFixed()),{anotherAmount:p,maxAnotherAmount:y,liquidity:m}}};function Ni(e,n,t,r){let i=e.mul(n).div(r);!i.isZero()&&!e.mul(n).mod(r).isZero()&&(i=i.add(new $(1)));let o=e.mul(t).div(r);return!o.isZero()&&!e.mul(t).mod(r).isZero()&&(o=o.add(new $(1))),{amountA:i,amountB:o}}export{Mt as default};
|
|
2
2
|
//# sourceMappingURL=cpmm.mjs.map
|