@raydium-io/raydium-sdk-v2 0.0.31-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 +1 -1
- 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 +3 -3
- 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/layout.d.ts +1 -1
- package/lib/raydium/cpmm/type.d.ts +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-af1993ca.d.ts → raydium-03e9d402.d.ts} +3 -3
- package/lib/{type-502bbda1.d.ts → type-5c2ec3f0.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/cpmm/cpmm.ts +1 -1
- package/lib/{type-3b373344.d.ts → type-322fdce2.d.ts} +5 -5
|
@@ -1,2 +1,2 @@
|
|
|
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.amount)!=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};
|
|
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
|