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