@raydium-io/raydium-sdk-v2 0.2.26-alpha → 0.2.27-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/{api-633d94c4.d.ts → api-c27cc5ec.d.ts} +8 -8
- package/lib/common/accountInfo.d.ts +1 -1
- package/lib/common/bignumber.d.ts +1 -1
- package/lib/common/constant.d.ts +1 -1
- package/lib/common/fractionUtil.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/transfer.d.ts +1 -1
- package/lib/common/txTool/txTool.d.ts +1 -1
- package/lib/common/txTool/txUtils.d.ts +1 -1
- package/lib/common/utility.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/module/amount.d.ts +1 -1
- package/lib/module/fraction.d.ts +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/percent.d.ts +1 -1
- package/lib/module/price.d.ts +1 -1
- package/lib/raydium/account/account.d.ts +3 -3
- package/lib/raydium/account/index.d.ts +1 -1
- package/lib/raydium/account/instruction.d.ts +1 -1
- package/lib/raydium/account/types.d.ts +1 -1
- package/lib/raydium/account/util.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +3 -3
- package/lib/raydium/clmm/index.d.ts +3 -3
- package/lib/raydium/clmm/instrument.d.ts +2 -2
- package/lib/raydium/clmm/layout.d.ts +6 -6
- package/lib/raydium/clmm/type.d.ts +2 -2
- package/lib/raydium/clmm/utils/math.d.ts +2 -2
- package/lib/raydium/clmm/utils/pool.d.ts +2 -2
- package/lib/raydium/clmm/utils/position.d.ts +2 -2
- package/lib/raydium/clmm/utils/tick.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
- package/lib/raydium/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/instruction.d.ts +1 -1
- package/lib/raydium/cpmm/layout.d.ts +2 -2
- 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/launchpad/curve/curve.d.ts +1 -1
- package/lib/raydium/launchpad/index.d.ts +3 -3
- package/lib/raydium/launchpad/instrument.d.ts +1 -1
- package/lib/raydium/launchpad/launchpad.d.ts +3 -3
- package/lib/raydium/launchpad/layout.d.ts +3 -3
- package/lib/raydium/launchpad/pda.d.ts +1 -1
- package/lib/raydium/launchpad/type.d.ts +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 +6 -6
- 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-be056a1c.d.ts → raydium-d01bd283.d.ts} +5 -4
- package/lib/{type-367f8461.d.ts → type-a4faa080.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/cpmm/cpmm.ts +3 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var ar=Object.defineProperty,ur=Object.defineProperties;var cr=Object.getOwnPropertyDescriptors;var Kt=Object.getOwnPropertySymbols;var jn=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable;var Yn=(n,e,t)=>e in n?ar(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,G=(n,e)=>{for(var t in e||(e={}))jn.call(e,t)&&Yn(n,t,e[t]);if(Kt)for(var t of Kt(e))Qn.call(e,t)&&Yn(n,t,e[t]);return n},Z=(n,e)=>ur(n,cr(e));var Ae=(n,e)=>{var t={};for(var i in n)jn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&Kt)for(var i of Kt(n))e.indexOf(i)<0&&Qn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as g}from"@solana/web3.js";import{AccountLayout as Bs,NATIVE_MINT as it,TOKEN_PROGRAM_ID as ae,createAssociatedTokenAccountIdempotentInstruction as rt}from"@solana/spl-token";import Be from"bn.js";var Xe=9e15,Fe=1e9,nn="0123456789abcdef",Lt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Rt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",rn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},ti,xe,V=!0,Ot="[DecimalError] ",Oe=Ot+"Invalid argument: ",ni=Ot+"Precision limit exceeded",ii=Ot+"crypto unavailable",ri="[object Decimal]",se=Math.floor,ee=Math.pow,lr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,mr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,dr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,oi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ge=1e7,D=7,pr=9007199254740991,fr=Lt.length-1,on=Rt.length-1,k={toStringTag:ri};k.absoluteValue=k.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),F(n)};k.ceil=function(){return F(new this.constructor(this),this.e+1,2)};k.clampedTo=k.clamp=function(n,e){var t,i=this,o=i.constructor;if(n=new o(n),e=new o(e),!n.s||!e.s)return new o(NaN);if(n.gt(e))throw Error(Oe+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new o(i)};k.comparedTo=k.cmp=function(n){var e,t,i,o,r=this,a=r.d,s=(n=new r.constructor(n)).d,c=r.s,u=n.s;if(!a||!s)return!c||!u?NaN:c!==u?c:a===s?0:!a^c<0?1:-1;if(!a[0]||!s[0])return a[0]?c:s[0]?-u:0;if(c!==u)return c;if(r.e!==n.e)return r.e>n.e^c<0?1:-1;for(i=a.length,o=s.length,e=0,t=i<o?i:o;e<t;++e)if(a[e]!==s[e])return a[e]>s[e]^c<0?1:-1;return i===o?0:i>o^c<0?1:-1};k.cosine=k.cos=function(){var n,e,t=this,i=t.constructor;return t.d?t.d[0]?(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+D,i.rounding=1,t=br(i,li(i,t)),i.precision=n,i.rounding=e,F(xe==2||xe==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};k.cubeRoot=k.cbrt=function(){var n,e,t,i,o,r,a,s,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,r=l.s*ee(l.s*l,1/3),!r||Math.abs(r)==1/0?(t=re(l.d),n=l.e,(r=(n-t.length+1)%3)&&(t+=r==1||r==-2?"0":"00"),r=ee(t,1/3),n=se((n+1)/3)-(n%3==(n<0?-1:2)),r==1/0?t="5e"+n:(t=r.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(r.toString()),a=(n=m.precision)+3;;)if(s=i,c=s.times(s).times(s),u=c.plus(l),i=z(u.plus(l).times(s),u.plus(c),a+2,1),re(s.d).slice(0,a)===(t=re(i.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!o&&t=="4999"){if(!o&&(F(s,n+1,0),s.times(s).times(s).eq(l))){i=s;break}a+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(F(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,F(i,n,m.rounding,e)};k.decimalPlaces=k.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-se(this.e/D))*D,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};k.dividedBy=k.div=function(n){return z(this,new this.constructor(n))};k.dividedToIntegerBy=k.divToInt=function(n){var e=this,t=e.constructor;return F(z(e,new t(n),0,1,1),t.precision,t.rounding)};k.equals=k.eq=function(n){return this.cmp(n)===0};k.floor=function(){return F(new this.constructor(this),this.e+1,3)};k.greaterThan=k.gt=function(n){return this.cmp(n)>0};k.greaterThanOrEqualTo=k.gte=function(n){var e=this.cmp(n);return e==1||e===0};k.hyperbolicCosine=k.cosh=function(){var n,e,t,i,o,r=this,a=r.constructor,s=new a(1);if(!r.isFinite())return new a(r.s?1/0:NaN);if(r.isZero())return s;t=a.precision,i=a.rounding,a.precision=t+Math.max(r.e,r.sd())+4,a.rounding=1,o=r.d.length,o<32?(n=Math.ceil(o/3),e=(1/Et(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),r=He(a,1,r.times(e),new a(1),!0);for(var c,u=n,l=new a(8);u--;)c=r.times(r),r=s.minus(c.times(l.minus(c.times(l))));return F(r,a.precision=t,a.rounding=i,!0)};k.hyperbolicSine=k.sinh=function(){var n,e,t,i,o=this,r=o.constructor;if(!o.isFinite()||o.isZero())return new r(o);if(e=r.precision,t=r.rounding,r.precision=e+Math.max(o.e,o.sd())+4,r.rounding=1,i=o.d.length,i<3)o=He(r,2,o,o,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,o=o.times(1/Et(5,n)),o=He(r,2,o,o,!0);for(var a,s=new r(5),c=new r(16),u=new r(20);n--;)a=o.times(o),o=o.times(s.plus(a.times(c.times(a).plus(u))))}return r.precision=e,r.rounding=t,F(o,e,t,!0)};k.hyperbolicTangent=k.tanh=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+7,i.rounding=1,z(t.sinh(),t.cosh(),i.precision=n,i.rounding=e)):new i(t.s)};k.inverseCosine=k.acos=function(){var n,e=this,t=e.constructor,i=e.abs().cmp(1),o=t.precision,r=t.rounding;return i!==-1?i===0?e.isNeg()?ye(t,o,r):new t(0):new t(NaN):e.isZero()?ye(t,o+4,r).times(.5):(t.precision=o+6,t.rounding=1,e=e.asin(),n=ye(t,o+4,r).times(.5),t.precision=o,t.rounding=r,n.minus(e))};k.inverseHyperbolicCosine=k.acosh=function(){var n,e,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(n=i.precision,e=i.rounding,i.precision=n+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,V=!1,t=t.times(t).minus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln()):new i(t)};k.inverseHyperbolicSine=k.asinh=function(){var n,e,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,V=!1,t=t.times(t).plus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln())};k.inverseHyperbolicTangent=k.atanh=function(){var n,e,t,i,o=this,r=o.constructor;return o.isFinite()?o.e>=0?new r(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(n=r.precision,e=r.rounding,i=o.sd(),Math.max(i,n)<2*-o.e-1?F(new r(o),n,e,!0):(r.precision=t=i-o.e,o=z(o.plus(1),new r(1).minus(o),t+n,1),r.precision=n+4,r.rounding=1,o=o.ln(),r.precision=n,r.rounding=e,o.times(.5))):new r(NaN)};k.inverseSine=k.asin=function(){var n,e,t,i,o=this,r=o.constructor;return o.isZero()?new r(o):(e=o.abs().cmp(1),t=r.precision,i=r.rounding,e!==-1?e===0?(n=ye(r,t+4,i).times(.5),n.s=o.s,n):new r(NaN):(r.precision=t+6,r.rounding=1,o=o.div(new r(1).minus(o.times(o)).sqrt().plus(1)).atan(),r.precision=t,r.rounding=i,o.times(2)))};k.inverseTangent=k.atan=function(){var n,e,t,i,o,r,a,s,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=on)return a=ye(l,m+4,d).times(.25),a.s=u.s,a}else{if(!u.s)return new l(NaN);if(m+4<=on)return a=ye(l,m+4,d).times(.5),a.s=u.s,a}for(l.precision=s=m+10,l.rounding=1,t=Math.min(28,s/D+2|0),n=t;n;--n)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,e=Math.ceil(s/D),i=1,c=u.times(u),a=new l(u),o=u;n!==-1;)if(o=o.times(c),r=a.minus(o.div(i+=2)),o=o.times(c),a=r.plus(o.div(i+=2)),a.d[e]!==void 0)for(n=e;a.d[n]===r.d[n]&&n--;);return t&&(a=a.times(2<<t-1)),V=!0,F(a,l.precision=m,l.rounding=d,!0)};k.isFinite=function(){return!!this.d};k.isInteger=k.isInt=function(){return!!this.d&&se(this.e/D)>this.d.length-2};k.isNaN=function(){return!this.s};k.isNegative=k.isNeg=function(){return this.s<0};k.isPositive=k.isPos=function(){return this.s>0};k.isZero=function(){return!!this.d&&this.d[0]===0};k.lessThan=k.lt=function(n){return this.cmp(n)<0};k.lessThanOrEqualTo=k.lte=function(n){return this.cmp(n)<1};k.logarithm=k.log=function(n){var e,t,i,o,r,a,s,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,p=5;if(n==null)n=new l(10),e=!0;else{if(n=new l(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new l(NaN);e=n.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)r=!0;else{for(o=t[0];o%10===0;)o/=10;r=o!==1}if(V=!1,s=m+p,a=Me(u,s),i=e?Mt(l,s+10):Me(n,s),c=z(a,i,s,1),ot(c.d,o=m,d))do if(s+=10,a=Me(u,s),i=e?Mt(l,s+10):Me(n,s),c=z(a,i,s,1),!r){+re(c.d).slice(o+1,o+15)+1==1e14&&(c=F(c,m+1,0));break}while(ot(c.d,o+=10,d));return V=!0,F(c,m,d)};k.minus=k.sub=function(n){var e,t,i,o,r,a,s,c,u,l,m,d,p=this,f=p.constructor;if(n=new f(n),!p.d||!n.d)return!p.s||!n.s?n=new f(NaN):p.d?n.s=-n.s:n=new f(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(u=p.d,d=n.d,s=f.precision,c=f.rounding,!u[0]||!d[0]){if(d[0])n.s=-n.s;else if(u[0])n=new f(p);else return new f(c===3?-0:0);return V?F(n,s,c):n}if(t=se(n.e/D),l=se(p.e/D),u=u.slice(),r=l-t,r){for(m=r<0,m?(e=u,r=-r,a=d.length):(e=d,t=l,a=u.length),i=Math.max(Math.ceil(s/D),a)+2,r>i&&(r=i,e.length=1),e.reverse(),i=r;i--;)e.push(0);e.reverse()}else{for(i=u.length,a=d.length,m=i<a,m&&(a=i),i=0;i<a;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}r=0}for(m&&(e=u,u=d,d=e,n.s=-n.s),a=u.length,i=d.length-a;i>0;--i)u[a++]=0;for(i=d.length;i>r;){if(u[--i]<d[i]){for(o=i;o&&u[--o]===0;)u[o]=ge-1;--u[o],u[i]+=ge}u[i]-=d[i]}for(;u[--a]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(n.d=u,n.e=Ft(u,t),V?F(n,s,c):n):new f(c===3?-0:0)};k.modulo=k.mod=function(n){var e,t=this,i=t.constructor;return n=new i(n),!t.d||!n.s||n.d&&!n.d[0]?new i(NaN):!n.d||t.d&&!t.d[0]?F(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=z(t,n.abs(),0,3,1),e.s*=n.s):e=z(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};k.naturalExponential=k.exp=function(){return sn(this)};k.naturalLogarithm=k.ln=function(){return Me(this)};k.negated=k.neg=function(){var n=new this.constructor(this);return n.s=-n.s,F(n)};k.plus=k.add=function(n){var e,t,i,o,r,a,s,c,u,l,m=this,d=m.constructor;if(n=new d(n),!m.d||!n.d)return!m.s||!n.s?n=new d(NaN):m.d||(n=new d(n.d||m.s===n.s?m:NaN)),n;if(m.s!=n.s)return n.s=-n.s,m.minus(n);if(u=m.d,l=n.d,s=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(n=new d(m)),V?F(n,s,c):n;if(r=se(m.e/D),i=se(n.e/D),u=u.slice(),o=r-i,o){for(o<0?(t=u,o=-o,a=l.length):(t=l,i=r,a=u.length),r=Math.ceil(s/D),a=r>a?r+1:a+1,o>a&&(o=a,t.length=1),t.reverse();o--;)t.push(0);t.reverse()}for(a=u.length,o=l.length,a-o<0&&(o=a,t=l,l=u,u=t),e=0;o;)e=(u[--o]=u[o]+l[o]+e)/ge|0,u[o]%=ge;for(e&&(u.unshift(e),++i),a=u.length;u[--a]==0;)u.pop();return n.d=u,n.e=Ft(u,i),V?F(n,s,c):n};k.precision=k.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(Oe+n);return t.d?(e=si(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};k.round=function(){var n=this,e=n.constructor;return F(new e(n),n.e+1,e.rounding)};k.sine=k.sin=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+D,i.rounding=1,t=gr(i,li(i,t)),i.precision=n,i.rounding=e,F(xe>2?t.neg():t,n,e,!0)):new i(NaN)};k.squareRoot=k.sqrt=function(){var n,e,t,i,o,r,a=this,s=a.d,c=a.e,u=a.s,l=a.constructor;if(u!==1||!s||!s[0])return new l(!u||u<0&&(!s||s[0])?NaN:s?a:1/0);for(V=!1,u=Math.sqrt(+a),u==0||u==1/0?(e=re(s),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=se((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),t=(c=l.precision)+3;;)if(r=i,i=r.plus(z(a,r,t+2,1)).times(.5),re(r.d).slice(0,t)===(e=re(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!o&&e=="4999"){if(!o&&(F(r,c+1,0),r.times(r).eq(a))){i=r;break}t+=4,o=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(F(i,c+1,1),n=!i.times(i).eq(a));break}return V=!0,F(i,c,l.rounding,n)};k.tangent=k.tan=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+10,i.rounding=1,t=t.sin(),t.s=1,t=z(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,F(xe==2||xe==4?t.neg():t,n,e,!0)):new i(NaN)};k.times=k.mul=function(n){var e,t,i,o,r,a,s,c,u,l=this,m=l.constructor,d=l.d,p=(n=new m(n)).d;if(n.s*=l.s,!d||!d[0]||!p||!p[0])return new m(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=se(l.e/D)+se(n.e/D),c=d.length,u=p.length,c<u&&(r=d,d=p,p=r,a=c,c=u,u=a),r=[],a=c+u,i=a;i--;)r.push(0);for(i=u;--i>=0;){for(e=0,o=c+i;o>i;)s=r[o]+p[i]*d[o-i-1]+e,r[o--]=s%ge|0,e=s/ge|0;r[o]=(r[o]+e)%ge|0}for(;!r[--a];)r.pop();return e?++t:r.shift(),n.d=r,n.e=Ft(r,t),V?F(n,m.precision,m.rounding):n};k.toBinary=function(n,e){return un(this,2,n,e)};k.toDecimalPlaces=k.toDP=function(n,e){var t=this,i=t.constructor;return t=new i(t),n===void 0?t:(ce(n,0,Fe),e===void 0?e=i.rounding:ce(e,0,8),F(t,n+t.e+1,e))};k.toExponential=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=ke(i,!0):(ce(n,0,Fe),e===void 0?e=o.rounding:ce(e,0,8),i=F(new o(i),n+1,e),t=ke(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};k.toFixed=function(n,e){var t,i,o=this,r=o.constructor;return n===void 0?t=ke(o):(ce(n,0,Fe),e===void 0?e=r.rounding:ce(e,0,8),i=F(new r(o),n+o.e+1,e),t=ke(i,!1,n+i.e+1)),o.isNeg()&&!o.isZero()?"-"+t:t};k.toFraction=function(n){var e,t,i,o,r,a,s,c,u,l,m,d,p=this,f=p.d,b=p.constructor;if(!f)return new b(p);if(u=t=new b(1),i=c=new b(0),e=new b(i),r=e.e=si(f)-p.e-1,a=r%D,e.d[0]=ee(10,a<0?D+a:a),n==null)n=r>0?e:u;else{if(s=new b(n),!s.isInt()||s.lt(u))throw Error(Oe+s);n=s.gt(e)?r>0?e:u:s}for(V=!1,s=new b(re(f)),l=b.precision,b.precision=r=f.length*D*2;m=z(s,e,0,1,1),o=t.plus(m.times(i)),o.cmp(n)!=1;)t=i,i=o,o=u,u=c.plus(m.times(o)),c=o,o=e,e=s.minus(m.times(o)),s=o;return o=z(n.minus(t),i,0,1,1),c=c.plus(o.times(u)),t=t.plus(o.times(i)),c.s=u.s=p.s,d=z(u,i,r,1).minus(p).abs().cmp(z(c,t,r,1).minus(p).abs())<1?[u,i]:[c,t],b.precision=l,V=!0,d};k.toHexadecimal=k.toHex=function(n,e){return un(this,16,n,e)};k.toNearest=function(n,e){var t=this,i=t.constructor;if(t=new i(t),n==null){if(!t.d)return t;n=new i(1),e=i.rounding}else{if(n=new i(n),e===void 0?e=i.rounding:ce(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(V=!1,t=z(t,n,0,e,1).times(n),V=!0,F(t)):(n.s=t.s,t=n),t};k.toNumber=function(){return+this};k.toOctal=function(n,e){return un(this,8,n,e)};k.toPower=k.pow=function(n){var e,t,i,o,r,a,s=this,c=s.constructor,u=+(n=new c(n));if(!s.d||!n.d||!s.d[0]||!n.d[0])return new c(ee(+s,u));if(s=new c(s),s.eq(1))return s;if(i=c.precision,r=c.rounding,n.eq(1))return F(s,i,r);if(e=se(n.e/D),e>=n.d.length-1&&(t=u<0?-u:u)<=pr)return o=ai(c,s,t,i),n.s<0?new c(1).div(o):F(o,i,r);if(a=s.s,a<0){if(e<n.d.length-1)return new c(NaN);if((n.d[e]&1)==0&&(a=1),s.e==0&&s.d[0]==1&&s.d.length==1)return s.s=a,s}return t=ee(+s,u),e=t==0||!isFinite(t)?se(u*(Math.log("0."+re(s.d))/Math.LN10+s.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?a/0:0):(V=!1,c.rounding=s.s=1,t=Math.min(12,(e+"").length),o=sn(n.times(Me(s,i+t)),i),o.d&&(o=F(o,i+5,1),ot(o.d,i,r)&&(e=i+10,o=F(sn(n.times(Me(s,e+t)),e),e+5,1),+re(o.d).slice(i+1,i+15)+1==1e14&&(o=F(o,i+1,0)))),o.s=a,V=!0,c.rounding=r,F(o,i,r))};k.toPrecision=function(n,e){var t,i=this,o=i.constructor;return n===void 0?t=ke(i,i.e<=o.toExpNeg||i.e>=o.toExpPos):(ce(n,1,Fe),e===void 0?e=o.rounding:ce(e,0,8),i=F(new o(i),n,e),t=ke(i,n<=i.e||i.e<=o.toExpNeg,n)),i.isNeg()&&!i.isZero()?"-"+t:t};k.toSignificantDigits=k.toSD=function(n,e){var t=this,i=t.constructor;return n===void 0?(n=i.precision,e=i.rounding):(ce(n,1,Fe),e===void 0?e=i.rounding:ce(e,0,8)),F(new i(t),n,e)};k.toString=function(){var n=this,e=n.constructor,t=ke(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};k.truncated=k.trunc=function(){return F(new this.constructor(this),this.e+1,1)};k.valueOf=k.toJSON=function(){var n=this,e=n.constructor,t=ke(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function re(n){var e,t,i,o=n.length-1,r="",a=n[0];if(o>0){for(r+=a,e=1;e<o;e++)i=n[e]+"",t=D-i.length,t&&(r+=Re(t)),r+=i;a=n[e],i=a+"",t=D-i.length,t&&(r+=Re(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return r+a}function ce(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Oe+n)}function ot(n,e,t,i){var o,r,a,s;for(r=n[0];r>=10;r/=10)--e;return--e<0?(e+=D,o=0):(o=Math.ceil((e+1)/D),e%=D),r=ee(10,D-e),s=n[o]%r|0,i==null?e<3?(e==0?s=s/100|0:e==1&&(s=s/10|0),a=t<4&&s==99999||t>3&&s==49999||s==5e4||s==0):a=(t<4&&s+1==r||t>3&&s+1==r/2)&&(n[o+1]/r/100|0)==ee(10,e-2)-1||(s==r/2||s==0)&&(n[o+1]/r/100|0)==0:e<4?(e==0?s=s/1e3|0:e==1?s=s/100|0:e==2&&(s=s/10|0),a=(i||t<4)&&s==9999||!i&&t>3&&s==4999):a=((i||t<4)&&s+1==r||!i&&t>3&&s+1==r/2)&&(n[o+1]/r/1e3|0)==ee(10,e-3)-1,a}function Nt(n,e,t){for(var i,o=[0],r,a=0,s=n.length;a<s;){for(r=o.length;r--;)o[r]*=e;for(o[0]+=nn.indexOf(n.charAt(a++)),i=0;i<o.length;i++)o[i]>t-1&&(o[i+1]===void 0&&(o[i+1]=0),o[i+1]+=o[i]/t|0,o[i]%=t)}return o.reverse()}function br(n,e){var t,i,o;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),o=(1/Et(4,t)).toString()):(t=16,o="2.3283064365386962890625e-10"),n.precision+=t,e=He(n,1,e.times(o),new n(1));for(var r=t;r--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return n.precision-=t,e}var z=function(){function n(i,o,r){var a,s=0,c=i.length;for(i=i.slice();c--;)a=i[c]*o+s,i[c]=a%r|0,s=a/r|0;return s&&i.unshift(s),i}function e(i,o,r,a){var s,c;if(r!=a)c=r>a?1:-1;else for(s=c=0;s<r;s++)if(i[s]!=o[s]){c=i[s]>o[s]?1:-1;break}return c}function t(i,o,r,a){for(var s=0;r--;)i[r]-=s,s=i[r]<o[r]?1:0,i[r]=s*a+i[r]-o[r];for(;!i[0]&&i.length>1;)i.shift()}return function(i,o,r,a,s,c){var u,l,m,d,p,f,b,y,P,w,T,A,B,h,I,x,N,L,S,R,W=i.constructor,q=i.s==o.s?1:-1,v=i.d,K=o.d;if(!v||!v[0]||!K||!K[0])return new W(!i.s||!o.s||(v?K&&v[0]==K[0]:!K)?NaN:v&&v[0]==0||!K?q*0:q/0);for(c?(p=1,l=i.e-o.e):(c=ge,p=D,l=se(i.e/p)-se(o.e/p)),S=K.length,N=v.length,P=new W(q),w=P.d=[],m=0;K[m]==(v[m]||0);m++);if(K[m]>(v[m]||0)&&l--,r==null?(h=r=W.precision,a=W.rounding):s?h=r+(i.e-o.e)+1:h=r,h<0)w.push(1),f=!0;else{if(h=h/p+2|0,m=0,S==1){for(d=0,K=K[0],h++;(m<N||d)&&h--;m++)I=d*c+(v[m]||0),w[m]=I/K|0,d=I%K|0;f=d||m<N}else{for(d=c/(K[0]+1)|0,d>1&&(K=n(K,d,c),v=n(v,d,c),S=K.length,N=v.length),x=S,T=v.slice(0,S),A=T.length;A<S;)T[A++]=0;R=K.slice(),R.unshift(0),L=K[0],K[1]>=c/2&&++L;do d=0,u=e(K,T,S,A),u<0?(B=T[0],S!=A&&(B=B*c+(T[1]||0)),d=B/L|0,d>1?(d>=c&&(d=c-1),b=n(K,d,c),y=b.length,A=T.length,u=e(b,T,y,A),u==1&&(d--,t(b,S<y?R:K,y,c))):(d==0&&(u=d=1),b=K.slice()),y=b.length,y<A&&b.unshift(0),t(T,b,A,c),u==-1&&(A=T.length,u=e(K,T,S,A),u<1&&(d++,t(T,S<A?R:K,A,c))),A=T.length):u===0&&(d++,T=[0]),w[m++]=d,u&&T[0]?T[A++]=v[x]||0:(T=[v[x]],A=1);while((x++<N||T[0]!==void 0)&&h--);f=T[0]!==void 0}w[0]||w.shift()}if(p==1)P.e=l,ti=f;else{for(m=1,d=w[0];d>=10;d/=10)m++;P.e=m+l*p-1,F(P,s?r+P.e+1:r,a,f)}return P}}();function F(n,e,t,i){var o,r,a,s,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(o=1,s=m[0];s>=10;s/=10)o++;if(r=e-o,r<0)r+=D,a=e,l=m[d=0],c=l/ee(10,o-a-1)%10|0;else if(d=Math.ceil((r+1)/D),s=m.length,d>=s)if(i){for(;s++<=d;)m.push(0);l=c=0,o=1,r%=D,a=r-D+1}else break e;else{for(l=s=m[d],o=1;s>=10;s/=10)o++;r%=D,a=r-D+o,c=a<0?0:l/ee(10,o-a-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(a<0?l:l%ee(10,o-a-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(r>0?a>0?l/ee(10,o-a):0:m[d-1])%10&1||t==(n.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=n.e+1,m[0]=ee(10,(D-e%D)%D),n.e=-e||0):m[0]=n.e=0,n;if(r==0?(m.length=d,s=1,d--):(m.length=d+1,s=ee(10,D-r),m[d]=a>0?(l/ee(10,o-a)%ee(10,a)|0)*s:0),u)for(;;)if(d==0){for(r=1,a=m[0];a>=10;a/=10)r++;for(a=m[0]+=s,s=1;a>=10;a/=10)s++;r!=s&&(n.e++,m[0]==ge&&(m[0]=1));break}else{if(m[d]+=s,m[d]!=ge)break;m[d--]=0,s=1}for(r=m.length;m[--r]===0;)m.pop()}return V&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function ke(n,e,t){if(!n.isFinite())return ci(n);var i,o=n.e,r=re(n.d),a=r.length;return e?(t&&(i=t-a)>0?r=r.charAt(0)+"."+r.slice(1)+Re(i):a>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(n.e<0?"e":"e+")+n.e):o<0?(r="0."+Re(-o-1)+r,t&&(i=t-a)>0&&(r+=Re(i))):o>=a?(r+=Re(o+1-a),t&&(i=t-o-1)>0&&(r=r+"."+Re(i))):((i=o+1)<a&&(r=r.slice(0,i)+"."+r.slice(i)),t&&(i=t-a)>0&&(o+1===a&&(r+="."),r+=Re(i))),r}function Ft(n,e){var t=n[0];for(e*=D;t>=10;t/=10)e++;return e}function Mt(n,e,t){if(e>fr)throw V=!0,t&&(n.precision=t),Error(ni);return F(new n(Lt),e,1,!0)}function ye(n,e,t){if(e>on)throw Error(ni);return F(new n(Rt),e,t,!0)}function si(n){var e=n.length-1,t=e*D+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Re(n){for(var e="";n--;)e+="0";return e}function ai(n,e,t,i){var o,r=new n(1),a=Math.ceil(i/D+4);for(V=!1;;){if(t%2&&(r=r.times(e),$n(r.d,a)&&(o=!0)),t=se(t/2),t===0){t=r.d.length-1,o&&r.d[t]===0&&++r.d[t];break}e=e.times(e),$n(e.d,a)}return V=!0,r}function Jn(n){return n.d[n.d.length-1]&1}function ui(n,e,t){for(var i,o=new n(e[0]),r=0;++r<e.length;)if(i=new n(e[r]),i.s)o[t](i)&&(o=i);else{o=i;break}return o}function sn(n,e){var t,i,o,r,a,s,c,u=0,l=0,m=0,d=n.constructor,p=d.rounding,f=d.precision;if(!n.d||!n.d[0]||n.e>17)return new d(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(e==null?(V=!1,c=f):c=e,s=new d(.03125);n.e>-2;)n=n.times(s),m+=5;for(i=Math.log(ee(2,m))/Math.LN10*2+5|0,c+=i,t=r=a=new d(1),d.precision=c;;){if(r=F(r.times(n),c,1),t=t.times(++l),s=a.plus(z(r,t,c,1)),re(s.d).slice(0,c)===re(a.d).slice(0,c)){for(o=m;o--;)a=F(a.times(a),c,1);if(e==null)if(u<3&&ot(a.d,c-i,p,u))d.precision=c+=10,t=r=s=new d(1),l=0,u++;else return F(a,d.precision=f,p,V=!0);else return d.precision=f,a}a=s}}function Me(n,e){var t,i,o,r,a,s,c,u,l,m,d,p=1,f=10,b=n,y=b.d,P=b.constructor,w=P.rounding,T=P.precision;if(b.s<0||!y||!y[0]||!b.e&&y[0]==1&&y.length==1)return new P(y&&!y[0]?-1/0:b.s!=1?NaN:y?0:b);if(e==null?(V=!1,l=T):l=e,P.precision=l+=f,t=re(y),i=t.charAt(0),Math.abs(r=b.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)b=b.times(n),t=re(b.d),i=t.charAt(0),p++;r=b.e,i>1?(b=new P("0."+t),r++):b=new P(i+"."+t.slice(1))}else return u=Mt(P,l+2,T).times(r+""),b=Me(new P(i+"."+t.slice(1)),l-f).plus(u),P.precision=T,e==null?F(b,T,w,V=!0):b;for(m=b,c=a=b=z(b.minus(1),b.plus(1),l,1),d=F(b.times(b),l,1),o=3;;){if(a=F(a.times(d),l,1),u=c.plus(z(a,new P(o),l,1)),re(u.d).slice(0,l)===re(c.d).slice(0,l))if(c=c.times(2),r!==0&&(c=c.plus(Mt(P,l+2,T).times(r+""))),c=z(c,new P(p),l,1),e==null)if(ot(c.d,l-f,w,s))P.precision=l+=f,u=a=b=z(m.minus(1),m.plus(1),l,1),d=F(b.times(b),l,1),o=s=1;else return F(c,P.precision=T,w,V=!0);else return P.precision=T,c;c=u,o+=2}}function ci(n){return String(n.s*n.s/0)}function an(n,e){var t,i,o;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(t<0&&(t=i),t+=+e.slice(i+1),e=e.substring(0,i)):t<0&&(t=e.length),i=0;e.charCodeAt(i)===48;i++);for(o=e.length;e.charCodeAt(o-1)===48;--o);if(e=e.slice(i,o),e){if(o-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%D,t<0&&(i+=D),i<o){for(i&&n.d.push(+e.slice(0,i)),o-=D;i<o;)n.d.push(+e.slice(i,i+=D));e=e.slice(i),i=D-e.length}else i-=o;for(;i--;)e+="0";n.d.push(+e),V&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function yr(n,e){var t,i,o,r,a,s,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),oi.test(e))return an(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(mr.test(e))t=16,e=e.toLowerCase();else if(lr.test(e))t=2;else if(dr.test(e))t=8;else throw Error(Oe+e);for(r=e.search(/p/i),r>0?(c=+e.slice(r+1),e=e.substring(2,r)):e=e.slice(2),r=e.indexOf("."),a=r>=0,i=n.constructor,a&&(e=e.replace(".",""),s=e.length,r=s-r,o=ai(i,new i(t),r,r*2)),u=Nt(e,t,ge),l=u.length-1,r=l;u[r]===0;--r)u.pop();return r<0?new i(n.s*0):(n.e=Ft(u,l),n.d=u,V=!1,a&&(n=z(n,o,s*4)),c&&(n=n.times(Math.abs(c)<54?ee(2,c):st.pow(2,c))),V=!0,n)}function gr(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:He(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Et(5,t)),e=He(n,2,e,e);for(var o,r=new n(5),a=new n(16),s=new n(20);t--;)o=e.times(e),e=e.times(r.plus(o.times(a.times(o).minus(s))));return e}function He(n,e,t,i,o){var r,a,s,c,u=1,l=n.precision,m=Math.ceil(l/D);for(V=!1,c=t.times(t),s=new n(i);;){if(a=z(s.times(c),new n(e++*e++),l,1),s=o?i.plus(a):i.minus(a),i=z(a.times(c),new n(e++*e++),l,1),a=s.plus(i),a.d[m]!==void 0){for(r=m;a.d[r]===s.d[r]&&r--;);if(r==-1)break}r=s,s=i,i=a,a=r,u++}return V=!0,a.d.length=m+1,a}function Et(n,e){for(var t=n;--e;)t*=n;return t}function li(n,e){var t,i=e.s<0,o=ye(n,n.precision,1),r=o.times(.5);if(e=e.abs(),e.lte(r))return xe=i?4:1,e;if(t=e.divToInt(o),t.isZero())xe=i?3:2;else{if(e=e.minus(t.times(o)),e.lte(r))return xe=Jn(t)?i?2:3:i?4:1,e;xe=Jn(t)?i?1:4:i?3:2}return e.minus(o).abs()}function un(n,e,t,i){var o,r,a,s,c,u,l,m,d,p=n.constructor,f=t!==void 0;if(f?(ce(t,1,Fe),i===void 0?i=p.rounding:ce(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ci(n);else{for(l=ke(n),a=l.indexOf("."),f?(o=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):o=e,a>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-a,d.d=Nt(ke(d),10,o),d.e=d.d.length),m=Nt(l,10,o),r=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=f?"0p+0":"0";else{if(a<0?r--:(n=new p(n),n.d=m,n.e=r,n=z(n,d,t,i,0,o),m=n.d,r=n.e,u=ti),a=m[t],s=o/2,u=u||m[t+1]!==void 0,u=i<4?(a!==void 0||u)&&(i===0||i===(n.s<0?3:2)):a>s||a===s&&(i===4||u||i===6&&m[t-1]&1||i===(n.s<0?8:7)),m.length=t,u)for(;++m[--t]>o-1;)m[t]=0,t||(++r,m.unshift(1));for(c=m.length;!m[c-1];--c);for(a=0,l="";a<c;a++)l+=nn.charAt(m[a]);if(f){if(c>1)if(e==16||e==8){for(a=e==16?4:3,--c;c%a;c++)l+="0";for(m=Nt(l,o,e),c=m.length;!m[c-1];--c);for(a=1,l="1.";a<c;a++)l+=nn.charAt(m[a])}else l=l.charAt(0)+"."+l.slice(1);l=l+(r<0?"p":"p+")+r}else if(r<0){for(;++r;)l="0"+l;l="0."+l}else if(++r>c)for(r-=c;r--;)l+="0";else r<c&&(l=l.slice(0,r)+"."+l.slice(r))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function $n(n,e){if(n.length>e)return n.length=e,!0}function Pr(n){return new this(n).abs()}function wr(n){return new this(n).acos()}function Ar(n){return new this(n).acosh()}function kr(n,e){return new this(n).plus(e)}function Tr(n){return new this(n).asin()}function hr(n){return new this(n).asinh()}function Br(n){return new this(n).atan()}function Ir(n){return new this(n).atanh()}function xr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,o=this.rounding,r=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=ye(this,r,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?ye(this,i,o):new this(0),t.s=n.s):!n.d||e.isZero()?(t=ye(this,r,1).times(.5),t.s=n.s):e.s<0?(this.precision=r,this.rounding=1,t=this.atan(z(n,e,r,1)),e=ye(this,r,1),this.precision=i,this.rounding=o,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(z(n,e,r,1)),t}function Cr(n){return new this(n).cbrt()}function Sr(n){return F(n=new this(n),n.e+1,2)}function Kr(n,e,t){return new this(n).clamp(e,t)}function Nr(n){if(!n||typeof n!="object")throw Error(Ot+"Object expected");var e,t,i,o=n.defaults===!0,r=["precision",1,Fe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(e=0;e<r.length;e+=3)if(t=r[e],o&&(this[t]=rn[t]),(i=n[t])!==void 0)if(se(i)===i&&i>=r[e+1]&&i<=r[e+2])this[t]=i;else throw Error(Oe+t+": "+i);if(t="crypto",o&&(this[t]=rn[t]),(i=n[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(ii);else this[t]=!1;else throw Error(Oe+t+": "+i);return this}function Lr(n){return new this(n).cos()}function Rr(n){return new this(n).cosh()}function mi(n){var e,t,i;function o(r){var a,s,c,u=this;if(!(u instanceof o))return new o(r);if(u.constructor=o,ei(r)){u.s=r.s,V?!r.d||r.e>o.maxE?(u.e=NaN,u.d=null):r.e<o.minE?(u.e=0,u.d=[0]):(u.e=r.e,u.d=r.d.slice()):(u.e=r.e,u.d=r.d?r.d.slice():r.d);return}if(c=typeof r,c==="number"){if(r===0){u.s=1/r<0?-1:1,u.e=0,u.d=[0];return}if(r<0?(r=-r,u.s=-1):u.s=1,r===~~r&&r<1e7){for(a=0,s=r;s>=10;s/=10)a++;V?a>o.maxE?(u.e=NaN,u.d=null):a<o.minE?(u.e=0,u.d=[0]):(u.e=a,u.d=[r]):(u.e=a,u.d=[r]);return}else if(r*0!==0){r||(u.s=NaN),u.e=NaN,u.d=null;return}return an(u,r.toString())}else if(c!=="string")throw Error(Oe+r);return(s=r.charCodeAt(0))===45?(r=r.slice(1),u.s=-1):(s===43&&(r=r.slice(1)),u.s=1),oi.test(r)?an(u,r):yr(u,r)}if(o.prototype=k,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=Nr,o.clone=mi,o.isDecimal=ei,o.abs=Pr,o.acos=wr,o.acosh=Ar,o.add=kr,o.asin=Tr,o.asinh=hr,o.atan=Br,o.atanh=Ir,o.atan2=xr,o.cbrt=Cr,o.ceil=Sr,o.clamp=Kr,o.cos=Lr,o.cosh=Rr,o.div=Mr,o.exp=Or,o.floor=Fr,o.hypot=Er,o.ln=vr,o.log=Dr,o.log10=Vr,o.log2=Wr,o.max=_r,o.min=qr,o.mod=Gr,o.mul=Ur,o.pow=Xr,o.random=Hr,o.round=zr,o.sign=Zr,o.sin=Yr,o.sinh=jr,o.sqrt=Qr,o.sub=Jr,o.sum=$r,o.tan=eo,o.tanh=to,o.trunc=no,n===void 0&&(n={}),n&&n.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)n.hasOwnProperty(t=i[e++])||(n[t]=this[t]);return o.config(n),o}function Mr(n,e){return new this(n).div(e)}function Or(n){return new this(n).exp()}function Fr(n){return F(n=new this(n),n.e+1,3)}function Er(){var n,e,t=new this(0);for(V=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return V=!0,new this(1/0);t=e}return V=!0,t.sqrt()}function ei(n){return n instanceof st||n&&n.toStringTag===ri||!1}function vr(n){return new this(n).ln()}function Dr(n,e){return new this(n).log(e)}function Wr(n){return new this(n).log(2)}function Vr(n){return new this(n).log(10)}function _r(){return ui(this,arguments,"lt")}function qr(){return ui(this,arguments,"gt")}function Gr(n,e){return new this(n).mod(e)}function Ur(n,e){return new this(n).mul(e)}function Xr(n,e){return new this(n).pow(e)}function Hr(n){var e,t,i,o,r=0,a=new this(1),s=[];if(n===void 0?n=this.precision:ce(n,1,Fe),i=Math.ceil(n/D),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));r<i;)o=e[r],o>=429e7?e[r]=crypto.getRandomValues(new Uint32Array(1))[0]:s[r++]=o%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);r<i;)o=e[r]+(e[r+1]<<8)+(e[r+2]<<16)+((e[r+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(e,r):(s.push(o%1e7),r+=4);r=i/4}else throw Error(ii);else for(;r<i;)s[r++]=Math.random()*1e7|0;for(i=s[--r],n%=D,i&&n&&(o=ee(10,D-n),s[r]=(i/o|0)*o);s[r]===0;r--)s.pop();if(r<0)t=0,s=[0];else{for(t=-1;s[0]===0;t-=D)s.shift();for(i=1,o=s[0];o>=10;o/=10)i++;i<D&&(t-=D-i)}return a.e=t,a.d=s,a}function zr(n){return F(n=new this(n),n.e+1,this.rounding)}function Zr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Yr(n){return new this(n).sin()}function jr(n){return new this(n).sinh()}function Qr(n){return new this(n).sqrt()}function Jr(n,e){return new this(n).sub(e)}function $r(){var n=0,e=arguments,t=new this(e[n]);for(V=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return V=!0,F(t,this.precision,this.rounding)}function eo(n){return new this(n).tan()}function to(n){return new this(n).tanh()}function no(n){return F(n=new this(n),n.e+1,1)}k[Symbol.for("nodejs.util.inspect.custom")]=k.toString;k[Symbol.toStringTag]="Decimal";var st=k.constructor=mi(rn);Lt=new st(Lt);Rt=new st(Rt);var te=st;import Eo from"big.js";import Oc from"bn.js";import{get as di,set as io}from"lodash";var cn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},pi={},ro={};function ne(n){let e=di(pi,n);if(!e){let t=di(ro,n);e=new cn({name:n,logLevel:t}),io(pi,n,e)}return e}import{PublicKey as fi}from"@solana/web3.js";import{MINT_SIZE as oo,TOKEN_PROGRAM_ID as so,getTransferFeeConfig as ao,unpackMint as uo}from"@solana/spl-token";var ln=ne("Raydium_accountInfo_util");async function at(n,e,t){let{batchRequest:i,commitment:o="confirmed",chunkCount:r=100}=G({batchRequest:!1},t),a=mn(e,r),s=new Array(a.length).fill([]);if(i){let c=a.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=mn(c,10);s=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(d=>{if(d){let{data:p,executable:f,lamports:b,owner:y,rentEpoch:P}=d;return p.length!==2&&p[1]!=="base64"&&ln.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:f,lamports:b,owner:new fi(y),rentEpoch:P}}return null})))}else try{s=await Promise.all(a.map(c=>n.getMultipleAccountsInfo(c,o)))}catch(c){c instanceof Error&&ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return s.flat()}async function Ve(n,e,t){let i=await at(n,e.map(o=>o.pubkey),t);return e.map((o,r)=>Z(G({},o),{accountInfo:i[r]}))}async function dn({connection:n,mints:e,config:t}){var r,a,s;if(e.length===0)return{};let i=await Ve(n,e.map(c=>({pubkey:ut(c)})),t),o={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<oo){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=uo(c.pubkey,c.accountInfo,(r=c.accountInfo)==null?void 0:r.owner);o[c.pubkey.toString()]=Z(G({},u),{programId:((a=c.accountInfo)==null?void 0:a.owner)||so,feeConfig:(s=ao(u))!=null?s:void 0})}return o[fi.default.toBase58()]=o[le.toBase58()],o}import ct from"bn.js";var bi=9007199254740991;function Te(n){let e=ne("Raydium_parseBigNumberish");if(n instanceof ct)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new ct(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=bi||n<=-bi)&&e.logWithError(`BigNumberish number overflow: ${n}`),new ct(String(n))):typeof n=="bigint"?new ct(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new ct(0))}import{PublicKey as co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yi}from"@solana/spl-token";var pn={chainId:101,address:co.default.toBase58(),programId:yi.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ee={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yi.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as yn}from"@solana/web3.js";import{PublicKey as j,SystemProgram as gi,SYSVAR_RENT_PUBKEY as lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mo}from"@solana/spl-token";function fn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Zs=[fn({pubkey:mo,isWritable:!1}),fn({pubkey:gi.programId,isWritable:!1}),fn({pubkey:lo,isWritable:!1})];function bn({publicKey:n,transformSol:e}){let t=Pi(n.toString());if(t instanceof j)return e&&t.equals(lt)?le:t;if(e&&t.toString()===lt.toBase58())return le;if(typeof t=="string"){if(t===j.default.toBase58())return j.default;try{return new j(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pi(n){try{return new j(n)}catch{return n}}var po=new j("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),vt=new j("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Dt=new j("SysvarRent111111111111111111111111111111111"),Ys=new j("SysvarC1ock11111111111111111111111111111111"),ze=new j("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),js=new j("Sysvar1nstructions1111111111111111111111111"),wi=gi.programId,Qs=new j("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Js=new j("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$s=new j("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ea=new j("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ta=new j("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),na=new j("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ia=new j("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ra=new j("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),oa=new j("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),sa=new j("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),aa=new j("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new j("So11111111111111111111111111111111111111112"),lt=j.default;function ut(n){return bn({publicKey:n,transformSol:!0})}var gn=class{constructor({mint:e,decimals:t,symbol:i,name:o,skipMint:r=!1,isToken2022:a=!1}){if(e===lt.toBase58()||e instanceof yn&<.equals(e)){this.decimals=Ee.decimals,this.symbol=Ee.symbol,this.name=Ee.name,this.mint=new yn(Ee.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=o||e.toString().substring(0,6),this.mint=r?yn.default:bn({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ve=gn;ve.WSOL=new gn(Z(G({},Ee),{mint:Ee.address}));var Pn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Wt=Pn;Wt.SOL=new Pn(pn);import fo from"toformat";var bo=fo,mt=bo;import _t from"big.js";import go from"bn.js";import Po from"decimal.js-light";var Vt=ne("module/fraction"),wn=mt(_t),dt=mt(Po),wo={[0]:dt.ROUND_DOWN,[1]:dt.ROUND_HALF_UP,[2]:dt.ROUND_UP},Ao={[0]:_t.roundDown,[1]:_t.roundHalfUp,[2]:_t.roundUp},Y=class{constructor(e,t=new go(1)){this.numerator=Te(e),this.denominator=Te(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let t=e instanceof Y?e:new Y(Te(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.add(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Y?e:new Y(Te(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.sub(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Y?e:new Y(Te(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(Te(e));return new Y(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Vt.logWithError(`${e} is not an integer.`),e<=0&&Vt.logWithError(`${e} is not positive.`),dt.set({precision:e+1,rounding:wo[i]});let o=new dt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return o.toFormat(o.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Vt.logWithError(`${e} is not an integer.`),e<0&&Vt.logWithError(`${e} is negative.`),wn.DP=e,wn.RM=Ao[i]||1,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import ko from"bn.js";var Ai=new Y(new ko(100)),pe=class extends Y{toSignificant(e=5,t,i){return this.mul(Ai).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Ai).toFixed(e,t,i)}};var Oa=ne("Raydium_price");function mn(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ko}from"@solana/spl-token";import{ComputeBudgetProgram as ki,Keypair as hi,PublicKey as To,Transaction as Bi,TransactionMessage as ho,VersionedTransaction as Ii}from"@solana/web3.js";var ie={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",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",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",FarmV4Withdraw:"FarmV4Withdraw",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",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";var Ti=ne("Raydium_txUtil"),xi=1644;function Gt(n){let e=[],t=[];return n.microLamports&&(e.push(ki.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ie.SetComputeUnitPrice)),n.units&&(e.push(ki.setComputeUnitLimit({units:n.units})),t.push(ie.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ze(n,e){var i,o;let t=e!=null?e:"confirmed";return(o=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:o.blockhash}async function Ut(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let o=setTimeout(i,6e4);n.onSignature(e,r=>{if(clearTimeout(o),!r.err){t("");return}i(Object.assign(r.err,{txId:e}))},"confirmed")})}function Io(n,e){n.length<1&&Ti.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&Ti.logWithError(`no signers provided:, ${e.toString()}`);let t=new Bi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<xi}catch{return!1}}function fe(n,e){let[t,i]=To.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function pt({instructions:n,payer:e,signers:t}){return Io(n,[e,...t])}function ft({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=hi.generate().publicKey.toString()}){let r=new ho({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ii(r).serialize()).toString("base64").length<xi}catch{return!1}}var xo=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Co=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Ii&&(e=xo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function _e(n){let e=[];return n.forEach(t=>{t instanceof Bi&&(t.recentBlockhash||(t.recentBlockhash=Bo.toBase58()),t.feePayer||(t.feePayer=hi.generate().publicKey)),e.push(Co(t))}),console.log("simulate tx string:",e),e}function de(n,e,t){return fe([n.toBuffer(),(t!=null?t:Ko).toBuffer(),e.toBuffer()],new So("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var fu=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),bu=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),yu=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),gu=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pu=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wu=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Au=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ku=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tu=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),hu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),No=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Lo=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ro=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Iu=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xu=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cu=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Su=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ku=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Nu=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),bt=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ci=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Lu=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Xt=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ht=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ru=new E("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Mu=new E("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ou=new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fu=new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Eu=new E("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vu=new E("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Du={OPEN_BOOK_PROGRAM:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new E("Ray1111111111111111111111111111111111111111"),AMM_V4:new E("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new E("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new E("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new E("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new E("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new E("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new E("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new E("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:E.default,Router:new E("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new E("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new E("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new E("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new E("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new E("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new E("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new E("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new E("Ray1111111111111111111111111111111111111111")};import Pe from"bn.js";var yt=1e4;function he(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let o=Z(G({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),r=t.epoch<o.newerTransferFee.epoch?o.olderTransferFee:o.newerTransferFee,a=new Pe(r.maximumFee.toString()),s=t.epoch<o.newerTransferFee.epoch?(Number(o.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(r.transferFeeBasisPoints===yt){let c=new Pe(r.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:s}}else{let c=Tn(n.mul(new Pe(yt)),new Pe(yt-r.transferFeeBasisPoints)),u=new Pe(r.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=Tn(l.mul(new Pe(r.transferFeeBasisPoints)),new Pe(yt)),d=m.gt(a)?a:m;return{amount:l,fee:d,expirationTime:s}}else{let c=Tn(n.mul(new Pe(r.transferFeeBasisPoints)),new Pe(yt)),u=c.gt(a)?a:c;return{amount:n,fee:u,expirationTime:s}}}function Tn(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new Pe(0))?t.add(new Pe(1)):t}import{PublicKey as hn,AddressLookupTableAccount as Qe}from"@solana/web3.js";async function Bn({connection:n,address:e,cluster:t="mainnet"}){let i=await at(n,[...new Set(e.map(r=>r.toString()))].map(r=>new hn(r))),o={};for(let r=0;r<e.length;r++){let a=i[r],s=e[r];if(!a)continue;let c=new Qe({key:s,state:Qe.deserialize(a.data)});o[s.toString()]=c,t==="devnet"?je[s.toString()]=c:Ye[s.toString()]=c}return o}var Ye={},In=async n=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ye[e])return Ye;let t=new hn(e),i=await n.getAccountInfo(t);return i&&(Ye[e]=new Qe({key:t,state:Qe.deserialize(i.data)})),Ye},je={},xn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(je[e])return je;let t=new hn(e),i=await n.getAccountInfo(t);return i&&(je[e]=new Qe({key:t,state:Qe.deserialize(i.data)})),je};import{PublicKey as Je,sendAndConfirmTransaction as Cn,SystemProgram as Mo,Transaction as gt,TransactionMessage as Pt,VersionedTransaction as wt}from"@solana/web3.js";import Oo from"axios";var zt=2e3,Zt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}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 i;let e=(await Oo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=Gt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Mo.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Je(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ie.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:o=[],endInstructionTypes:r=[],lookupTableAddress:a=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...o),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...a.filter(s=>s!==Je.default.toString())),this}async versionBuild({txVersion:e,extInfo:t}){return e===0?await this.buildV0(G({},t||{})):this.build(t)}build(e){var i;let t=new gt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var l;let{recentBlockHash:r,skipPreflight:a=!0,sendAndConfirm:s,notSendToRpc:c}=o||{},u=r!=null?r:await Ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),_e([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:s?await Cn(this.connection,t,this.signers.find(d=>d.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:a}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let d of m)try{d.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:a}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:o}=this.build(i),r=t.filter(l=>l.transaction.instructions.length>0),a=[o,...r.map(l=>l.transaction)],s=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&s.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:s,instructionTypes:c,execute:async l=>{var P;let{sequentially:m,onTxUpdate:d,skipTxCount:p=0,recentBlockHash:f,skipPreflight:b=!0}=l||{},y=f!=null?f:await Ze(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(m){let w=[],T=0;for(let A of a){if(++T,T<=p)continue;let B=await Cn(this.connection,A,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});w.push(B)}return{txIds:w,signedTxs:a}}return{txIds:await await Promise.all(a.map(async w=>(w.recentBlockhash=y,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:b})))),signedTxs:a}}if(this.signAllTransactions){let w=a.map((A,B)=>(A.recentBlockhash=y,s[B].length&&A.sign(...s[B]),A));_e(w);let T=await this.signAllTransactions(w);if(m){let A=0,B=[],h=async()=>{if(!T[A])return;let I=await this.connection.sendRawTransaction(T[A].serialize(),{skipPreflight:b});B.push({txId:I,status:"sent",signedTx:T[A]}),d==null||d([...B]),A++;let x=!1,N=null,L=null,S=R=>{N!==null&&clearInterval(N),L!==null&&this.connection.removeSignatureListener(L);let W=B.findIndex(q=>q.txId===I);if(W>-1){if(B[W].status==="error"||B[W].status==="success")return;B[W].status=R.err?"error":"success"}d==null||d([...B]),R.err||h()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var R;if(x){clearInterval(N);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(N),S({err:((R=W.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){x=!0,clearInterval(N),console.error("getTransaction timeout:",W,I)}},zt)),L=this.connection.onSignature(I,R=>{if(x){this.connection.removeSignatureListener(L);return}x=!0,S(R)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:B.map(I=>I.txId),signedTxs:T}}else{let A=[];for(let B=0;B<T.length;B+=1){let h=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:b});A.push(h)}return{txIds:A,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var b;let f=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:o,recentBlockhash:r}=f,a=Ae(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=G(G({},this.cluster==="devnet"?await xn(this.connection):await In(this.connection)),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)s[y]===void 0&&u.push(new Je(y));let l=await Bn({connection:this.connection,address:u});for(let[y,P]of Object.entries(l))s[y]=P;let m=o?Je.default.toBase58():r!=null?r:await Ze(this.connection,this.blockhashCommitment),d=new Pt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((b=this.owner)==null?void 0:b.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new wt(d);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var A;let{skipPreflight:P=!0,sendAndConfirm:w,notSendToRpc:T}=y||{};if(_e([p]),(A=this.owner)!=null&&A.isKeyPair){let B=await this.connection.sendTransaction(p,{skipPreflight:P});return w&&await Ut(this.connection,B),{txId:B,signedTx:p}}if(this.signAllTransactions){let B=await this.signAllTransactions([p]);if(this.signers.length)for(let h of B)try{h.sign(this.signers)}catch{}return{txId:T?"":await this.connection.sendTransaction(B[0],{skipPreflight:P}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:o}=await this.buildV0(i),r=t.filter(l=>l.builder.instructions.length>0),a=[o,...r.map(l=>l.transaction)],s=[this.signers,...r.map(l=>l.signers)],c=[...this.instructionTypes,...r.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&s.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(l,m)=>{l.sign(s[m])}),{builder:this,transactions:a,signers:s,instructionTypes:c,buildProps:i,execute:async l=>{var b;let{sequentially:m,onTxUpdate:d,recentBlockHash:p,skipPreflight:f=!0}=l||{};if(p&&a.forEach(y=>y.message.recentBlockhash=p),_e(a),(b=this.owner)!=null&&b.isKeyPair){if(m){let y=[];for(let P of a){let w=await this.connection.sendTransaction(P,{skipPreflight:f});await Ut(this.connection,w),y.push(w)}return{txIds:y,signedTxs:a}}return{txIds:await Promise.all(a.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:f}))),signedTxs:a}}if(this.signAllTransactions){let y=await this.signAllTransactions(a);if(m){let P=0,w=[],T=async()=>{if(!y[P])return;let A=await this.connection.sendTransaction(y[P],{skipPreflight:f});w.push({txId:A,status:"sent",signedTx:y[P]}),d==null||d([...w]),P++;let B=!1,h=null,I=null,x=N=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let L=w.findIndex(S=>S.txId===A);if(L>-1){if(w[L].status==="error"||w[L].status==="success")return;w[L].status=N.err?"error":"success"}d==null||d([...w]),N.err||T()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var N;if(B){clearInterval(h);return}try{let L=await this.connection.getTransaction(A,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(B=!0,clearInterval(h),x({err:((N=L.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",A))}catch(L){B=!0,clearInterval(h),console.error("getTransaction timeout:",L,A)}},zt)),I=this.connection.onSignature(A,N=>{if(B){this.connection.removeSignatureListener(I);return}B=!0,x(N)},"confirmed"),this.connection.getSignatureStatus(A)};return T(),{txIds:[],signedTxs:y}}else{let P=[];for(let w=0;w<y.length;w+=1){let T=await this.connection.sendTransaction(y[w],{skipPreflight:f});P.push(T)}return{txIds:P,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var d;let m=e||{},{splitIns:t=[],computeBudgetConfig:i}=m,o=Ae(m,["splitIns","computeBudgetConfig"]),r=i?Gt(i):{instructions:[],instructionTypes:[]},a=this.signers.reduce((p,f)=>Z(G({},p),{[f.publicKey.toBase58()]:f}),{}),s=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let f=[...u,p],b=i?[...r.instructions,...f]:f,P=[...new Set(f.map(w=>w.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(w=>new Je(w));if(p!==t[l]&&u.length<12&&(pt({instructions:b,payer:this.feePayer,signers:P})||pt({instructions:f,payer:this.feePayer,signers:P})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,pt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:P})?s.push(new gt().add(...r.instructions,...u)):s.push(new gt().add(...u)),c.push(Array.from(new Set(u.map(w=>w.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(w=>a[w]).filter(w=>w!==void 0)),u=[p]}}),u.length>0){let f=[...new Set(u.map(b=>b.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(b=>a[b]).filter(b=>b!==void 0);pt({instructions:i?[...r.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(b=>b.publicKey)})?s.push(new gt().add(...r.instructions,...u)):s.push(new gt().add(...u)),c.push(f)}return s.forEach(p=>p.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(p=>{p.some(f=>f.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var A;let{sequentially:f,onTxUpdate:b,skipTxCount:y=0,recentBlockHash:P,skipPreflight:w=!0}=p||{},T=P!=null?P:await Ze(this.connection,this.blockhashCommitment);if(s.forEach(async(B,h)=>{B.recentBlockhash=T,c[h].length&&B.sign(...c[h])}),_e(s),(A=this.owner)!=null&&A.isKeyPair){if(f){let B=0,h=[];for(let I of s){if(++B,B<=y){h.push("tx skipped");continue}let x=await Cn(this.connection,I,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});h.push(x)}return{txIds:h,signedTxs:s}}return{txIds:await Promise.all(s.map(async B=>await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:w}))),signedTxs:s}}if(this.signAllTransactions){let B=await this.signAllTransactions(s.slice(y,s.length)),h=[...s.slice(0,y),...B];if(f){let I=0,x=[],N=async()=>{if(!h[I])return;I<y&&(x.push({txId:"",status:"success",signedTx:h[I]}),b==null||b([...x]),I++,N());let L=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:w});x.push({txId:L,status:"sent",signedTx:h[I]}),b==null||b([...x]),I++;let S=!1,R=null,W=null,q=v=>{R!==null&&clearInterval(R),W!==null&&this.connection.removeSignatureListener(W);let K=x.findIndex($=>$.txId===L);if(K>-1){if(x[K].status==="error"||x[K].status==="success")return;x[K].status=v.err?"error":"success"}b==null||b([...x]),v.err||N()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var v;if(S){clearInterval(R);return}try{let K=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(S=!0,clearInterval(R),q({err:((v=K.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",L))}catch(K){S=!0,clearInterval(R),console.error("getTransaction timeout:",K,L)}},zt)),W=this.connection.onSignature(L,v=>{if(S){this.connection.removeSignatureListener(W);return}S=!0,q(v)},"confirmed"),this.connection.getSignatureStatus(L)};return await N(),{txIds:x.map(L=>L.txId),signedTxs:h}}else{let I=[];for(let x=0;x<h.length;x+=1){let N=await this.connection.sendRawTransaction(h[x].serialize(),{skipPreflight:w});I.push(N)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(e){var T;let w=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:o={},lookupTableAddress:r=[]}=w,a=Ae(w,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),s=G(G({},this.cluster==="devnet"?await xn(this.connection):await In(this.connection)),o),c=Array.from(new Set([...this.lookupTableAddress,...r])),u=[];for(let A of c)s[A]===void 0&&u.push(new Je(A));let l=await Bn({connection:this.connection,address:u});for(let[A,B]of Object.entries(l))s[A]=B;let m=t?Gt(t):{instructions:[],instructionTypes:[]},d=await Ze(this.connection,this.blockhashCommitment),p=this.signers.reduce((A,B)=>Z(G({},A),{[B.publicKey.toBase58()]:B}),{}),f=[],b=[],y=[],P=0;if(this.allInstructions.forEach(A=>{let B=[...y,A],h=t?[...m.instructions,...B]:B;if(A!==i[P]&&y.length<12&&(ft({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s})||ft({instructions:B,payer:this.feePayer,lookupTableAddressAccount:s})))y.push(A);else{if(y.length===0)throw Error("item ins too big");P+=A===i[P]?1:0;let I={};for(let x of[...new Set(c)])s[x]!==void 0&&(I[x]=s[x]);if(t&&ft({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let x=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(s));f.push(new wt(x))}else{let x=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(s));f.push(new wt(x))}b.push(Array.from(new Set(y.map(x=>x.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),y=[A]}}),y.length>0){let B=[...new Set(y.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>p[h]).filter(h=>h!==void 0);if(t&&ft({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:d})){let h=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(s));f.push(new wt(h))}else{let h=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(s));f.push(new wt(h))}b.push(B)}return(T=this.owner)!=null&&T.signer&&b.forEach(A=>{A.some(B=>B.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),f.forEach((A,B)=>{A.sign(b[B])}),{builder:this,transactions:f,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var L;let{sequentially:B,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:x,skipPreflight:N=!0}=A||{};if(f.map(async(S,R)=>{b[R].length&&S.sign(b[R]),x&&(S.message.recentBlockhash=x)}),_e(f),(L=this.owner)!=null&&L.isKeyPair){if(B){let S=0,R=[];for(let W of f){if(++S,S<=I){console.log("skip tx: ",S),R.push("tx skipped");continue}let q=await this.connection.sendTransaction(W,{skipPreflight:N});await Ut(this.connection,q),R.push(q)}return{txIds:R,signedTxs:f}}return{txIds:await Promise.all(f.map(async S=>await this.connection.sendTransaction(S,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let S=await this.signAllTransactions(f.slice(I,f.length)),R=[...f.slice(0,I),...S];if(B){let W=0,q=[],v=async()=>{if(!R[W])return;if(W<I){q.push({txId:"",status:"success",signedTx:R[W]}),h==null||h([...q]),W++,v();return}let K=await this.connection.sendTransaction(R[W],{skipPreflight:N});q.push({txId:K,status:"sent",signedTx:R[W]}),h==null||h([...q]),W++;let $=!1,ue=null,we=null,Zn=We=>{ue!==null&&clearInterval(ue),we!==null&&this.connection.removeSignatureListener(we);let Ie=q.findIndex(sr=>sr.txId===K);if(Ie>-1){if(q[Ie].status==="error"||q[Ie].status==="success")return;q[Ie].status=We.err?"error":"success"}h==null||h([...q]),We.err||v()};this.loopMultiTxStatus&&(ue=setInterval(async()=>{var We;if($){clearInterval(ue);return}try{let Ie=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ie&&($=!0,clearInterval(ue),Zn({err:((We=Ie.meta)==null?void 0:We.err)||null}),console.log("tx status from getTransaction:",K))}catch(Ie){$=!0,clearInterval(ue),console.error("getTransaction timeout:",Ie,K)}},zt)),we=this.connection.onSignature(K,We=>{if($){this.connection.removeSignatureListener(we);return}$=!0,Zn(We)},"confirmed"),this.connection.getSignatureStatus(K)};return v(),{txIds:[],signedTxs:R}}else{let W=[];for(let q=0;q<R.length;q+=1){let v=await this.connection.sendTransaction(R[q],{skipPreflight:N});W.push(v)}return{txIds:W,signedTxs:R}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};import{PublicKey as oc}from"@solana/web3.js";import ac from"bn.js";import Fo from"bn.js";var qe=new Fo(1e6);var Gc=ne("Raydium_amount"),Uc=mt(Eo);var kn=new Be(0),rl=new Be(1),ol=new Be(2),sl=new Be(3),al=new Be(5),vo=new Be(10),ul=new Be(100),cl=new Be(1e3),ll=new Be(1e4);function Sn(n,e,t){return n.mul(e).add(t).sub(new Be(1)).div(t)}function Yt(n,e,t){return n.mul(e).div(t)}import Ki from"bn.js";import jt from"bn.js";function Kn(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function Do(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);return Kn(n,e).gt(At)&&(t=t.add(new jt(1))),[t,e]}var At=new jt(0),kt=class{static swapBaseInputWithoutFees(e,t,i){let o=e.mul(i),r=t.add(e);return o.div(r)}static swapBaseOutputWithoutFees(e,t,i){let o=t.mul(e),r=i.sub(e),[a]=Do(o,r);return a}static lpTokensToTradingTokens(e,t,i,o,r){let a=e.mul(i).div(t),s=e.mul(o).div(t);if(r===0)return{tokenAmount0:a,tokenAmount1:s};if(r===1)return Kn(e.mul(i),t).gt(At)&&a.gt(At)&&(a=a.add(new jt(1))),Kn(e.mul(o),t).gt(At)&&s.gt(At)&&(s=s.add(new jt(1))),{tokenAmount0:a,tokenAmount1:s};throw Error("roundDirection value error")}};import Wo from"bn.js";var me=class{static tradingFee(e,t){return Sn(e,t,qe)}static protocolFee(e,t){return Yt(e,t,qe)}static fundFee(e,t){return Yt(e,t,qe)}static creatorFee(e,t){return Sn(e,t,qe)}static splitCreatorFee(e,t,i){return Yt(e,i,t.add(i))}static calculatePreFeeAmount(e,t){if(t.isZero())return e;let i=e.mul(qe),o=qe.sub(t);return i.add(o).sub(new Wo(1)).div(o)}};var Tt=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swapBaseInput(e,t,i,o,r,a,s,c){let u=new Ki(0),l=me.tradingFee(e,o),m;c?(u=me.creatorFee(e,r),m=e.sub(l).sub(u)):m=e.sub(l);let d=me.protocolFee(l,a),p=me.protocolFee(l,s),f=kt.swapBaseInputWithoutFees(m,t,i),b;return c?b=f:(u=me.creatorFee(f,r),b=f.sub(u)),{newInputVaultAmount:t.add(m),newOutputVaultAmount:i.sub(f),inputAmount:e,outputAmount:b,tradeFee:l,protocolFee:d,fundFee:p,creatorFee:u}}static swapBaseOutput(e,t,i,o,r,a,s,c){let u,l=new Ki(0),m;if(c)m=e;else{let y=me.calculatePreFeeAmount(e,r);l=y.sub(e),m=y}let d=kt.swapBaseOutputWithoutFees(m,t,i),p;if(c){let y=me.calculatePreFeeAmount(d,o.add(r)),P=y.sub(d);l=me.splitCreatorFee(P,o,r),u=P.sub(l),p=y}else{let y=me.calculatePreFeeAmount(d,o);u=y.sub(d),p=y}let f=me.protocolFee(u,a),b=me.fundFee(u,s);return{newInputVaultAmount:t.add(d),newOutputVaultAmount:e.sub(m),inputAmount:p,outputAmount:e,tradeFee:u,protocolFee:f,fundFee:b,creatorFee:l}}};import J from"bn.js";var Nn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),$e=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ne(t)}createTxBuilder(e){return this.scope.checkOwner(),new Zt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Nn(e))}logInfo(...e){this.logger.info(Nn(e))}logAndCreateError(...e){let t=Nn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Zo}from"@solana/web3.js";import Mi,{isBN as Oi}from"bn.js";import{bits as Nl,BitStructure as Ll,blob as Vo,Blob as Rl,cstr as Ml,f32 as Ol,f32be as Fl,f64 as El,f64be as vl,greedy as Dl,Layout as _o,ns64 as Wl,ns64be as Vl,nu64 as _l,nu64be as ql,offset as Gl,s16 as Ul,s16be as Xl,s24 as Hl,s24be as zl,s32 as qo,s32be as Zl,s40 as Yl,s40be as jl,s48 as Ql,s48be as Jl,s8 as $l,seq as Go,struct as em,Structure as Uo,u16 as Xo,u16be as tm,u24 as nm,u24be as im,u32 as rm,u32be as om,u40 as sm,u40be as am,u48 as um,u48be as cm,u8 as Ho,UInt as zo,union as lm,Union as mm,unionLayoutDiscriminator as dm,utf8 as pm}from"@solana/buffer-layout";var Ln=_o,Ni=Uo;var Rn=zo;var Li=Ho,Ge=Xo;var Ce=qo;var Ri=Go;var oe=Vo;var et=class extends Ln{constructor(t,i,o){super(t,o);this.blob=oe(t),this.signed=i}decode(t,i=0){let o=new Mi(this.blob.decode(t,i),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(t,i,o=0){return typeof t=="number"&&(t=new Mi(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,o)}};function X(n){return new Rn(1,n)}function Se(n){return new Rn(4,n)}function C(n){return new et(8,!1,n)}function Q(n){return new et(16,!1,n)}function Fi(n){return new et(8,!0,n)}function Ei(n){return new et(16,!0,n)}var Qt=class extends Ln{constructor(t,i,o,r){super(t.span,r);this.layout=t,this.decoder=i,this.encoder=o}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,o){return this.layout.encode(this.encoder(t),i,o)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new Qt(oe(32),e=>new Zo(e),e=>e.toBuffer(),n)}function De(n){return new Qt(Li(),Yo,jo,n)}function Yo(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function jo(n){return n?1:0}var Mn=class extends Ni{decode(e,t){return super.decode(e,t)}};function U(n,e,t){return new Mn(n,e,t)}function H(n,e,t){let i,o=typeof e=="number"?e:Oi(e)?e.toNumber():new Proxy(e,{get(r,a){if(!i){let s=Reflect.get(r,"count");i=Oi(s)?s.toNumber():s,Reflect.set(r,"count",i)}return Reflect.get(r,a)},set(r,a,s){return a==="count"&&(i=s),Reflect.set(r,a,s)}});return Ri(n,o,t)}var Cm=U([Se("mintAuthorityOption"),_("mintAuthority"),C("supply"),X("decimals"),X("isInitialized"),Se("freezeAuthorityOption"),_("freezeAuthority")]);import{PublicKey as Lm}from"@solana/web3.js";import{MintLayout as Mm,TOKEN_PROGRAM_ID as Fm}from"@solana/spl-token";var Ue=o=>{var r=o,{address:n,programId:e,decimals:t}=r,i=Ae(r,["address","programId","decimals"]);return G({chainId:101,address:ut(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},tt=n=>n?Z(G({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:Z(G({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:Z(G({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;import{PublicKey as St,TransactionInstruction as Ne,Keypair as ks,SystemProgram as Gn}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as tn,TOKEN_2022_PROGRAM_ID as Un,TOKEN_PROGRAM_ID as Ke}from"@solana/spl-token";var Qo=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),zm=Buffer.from("amm_config","utf8"),Jo=Buffer.from("pool","utf8"),$o=Buffer.from("pool_lp_mint","utf8"),es=Buffer.from("pool_vault","utf8"),ts=Buffer.from("observation","utf8"),ns=Buffer.from("permission","utf8");function Jt(n){return fe([Qo],n)}function On(n,e,t,i){return fe([Jo,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function is(n,e){return fe([$o,e.toBuffer()],n)}function vi(n,e,t){return fe([es,e.toBuffer(),t.toBuffer()],n)}function ht(n,e){return fe([ts,e.toBuffer()],n)}function Fn({poolId:n,programId:e,configId:t,mintA:i,mintB:o}){let r=Jt(e).publicKey,a=n||On(e,t,i,o).publicKey,s=is(e,a).publicKey,c=vi(e,a,i).publicKey,u=vi(e,a,o).publicKey,l=ht(e,a).publicKey;return{poolId:a,configId:t,authority:r,lpMint:s,vaultA:c,vaultB:u,observationId:l}}var rs=Buffer.from("locked_liquidity","utf8");function Bt(n,e){return fe([rs,e.toBuffer()],n)}function Di(n,e){return fe([ns,e.toBuffer()],n)}import{PublicKey as Kf}from"@solana/web3.js";import Lf from"bn.js";import{AccountLayout as Ff,createAssociatedTokenAccountIdempotentInstruction as Ef,TOKEN_2022_PROGRAM_ID as vf,TOKEN_PROGRAM_ID as Df}from"@solana/spl-token";import{Keypair as tf,PublicKey as nf,SystemProgram as of,TransactionInstruction as sf}from"@solana/web3.js";import uf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as mf,TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import Fp from"bn.js";import be from"bn.js";var En=new be(0),Wi=new be(1),Vi=new be(-1),$t=new be(1).shln(64),_i=new be(1).shln(128),os=$t.sub(Wi);var ss=_i.subn(1),nt=-443636,It=-nt,vn=new be("4295048016"),Dn=new be("79226673521066979257578248091"),jm=new be("4295048017"),Qm=new be("79226673521066979257578248090");var as=new be(10).pow(new be(6));var Jm=new be("18446744073700000000");import kp from"bn.js";var od=Buffer.from("amm_config","utf8"),sd=Buffer.from("pool","utf8"),ad=Buffer.from("pool_vault","utf8"),ud=Buffer.from("pool_reward_vault","utf8"),cd=Buffer.from("position","utf8"),ld=Buffer.from("tick_array","utf8"),md=Buffer.from("operation","utf8"),dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),pd=Buffer.from("observation","utf8");function Wn(n){return fe([Buffer.from("metadata","utf8"),ze.toBuffer(),n.toBuffer()],ze)}var fd=Buffer.from("locked_position","utf8");var bd=Buffer.from("support_mint","utf8");import{PublicKey as Zd}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as jd}from"@solana/spl-token";import Jd from"bn.js";import Pd from"bn.js";var qn=14;var en=60;var ms=U([oe(8),X("bump"),Ge("index"),_(""),Se("protocolFeeRate"),Se("tradeFeeRate"),Ge("tickSpacing"),H(C(),8,"")]),ds=U([Se("blockTimestamp"),Fi("tickCumulative"),H(C(),4)]),ji=U([oe(8),De("initialized"),C("recentEpoch"),Ge("observationIndex"),_("poolId"),H(ds,100,"observations"),H(C(),4)]),ps=U([X("rewardState"),C("openTime"),C("endTime"),C("lastUpdateTime"),Q("emissionsPerSecondX64"),C("rewardTotalEmissioned"),C("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),Q("rewardGrowthGlobalX64")]),zi=U([oe(8),X("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),X("mintDecimalsA"),X("mintDecimalsB"),Ge("tickSpacing"),Q("liquidity"),Q("sqrtPriceX64"),Ce("tickCurrent"),Se(),Q("feeGrowthGlobalX64A"),Q("feeGrowthGlobalX64B"),C("protocolFeesTokenA"),C("protocolFeesTokenB"),Q("swapInAmountTokenA"),Q("swapOutAmountTokenB"),Q("swapInAmountTokenB"),Q("swapOutAmountTokenA"),X("status"),H(X(),7,""),H(ps,3,"rewardInfos"),H(C(),16,"tickArrayBitmap"),C("totalFeesTokenA"),C("totalFeesClaimedTokenA"),C("totalFeesTokenB"),C("totalFeesClaimedTokenB"),C("fundFeesTokenA"),C("fundFeesTokenB"),C("startTime"),H(C(),15*4-3,"padding")]),fs=U([Q("growthInsideLastX64"),C("rewardAmountOwed")]),Zi=U([oe(8),X("bump"),_("nftMint"),_("poolId"),Ce("tickLower"),Ce("tickUpper"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(fs,3,"rewardInfos"),H(C(),8,"")]),Xp=U([oe(8),X("bump"),_("poolId"),Ce("tickLowerIndex"),Ce("tickUpperIndex"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(Q(),3,"rewardGrowthInside"),H(C(),8,"")]),bs=U([Ce("tick"),Ei("liquidityNet"),Q("liquidityGross"),Q("feeGrowthOutsideX64A"),Q("feeGrowthOutsideX64B"),H(Q(),3,"rewardGrowthsOutsideX64"),H(Se(),13,"")]),Ui=U([oe(8),_("poolId"),Ce("startTickIndex"),H(bs,en,"ticks"),X("initializedTickCount"),H(X(),115,"")]),ys=U([oe(329),H(_(),100,"whitelistMints")]),ls=U([oe(8),_("poolId"),H(H(C(),8),qn,"positiveTickArrayBitmap"),H(H(C(),8),qn,"negativeTickArrayBitmap")]),Hp=U([C(),X("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),H(C(),8)]),gs=U([oe(8),X("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),C("recentEpoch"),H(C(),8)]);ji.span;var Tf=ne("Raydium_Clmm");var Ts=ne("Raydium_cpmm"),Le={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],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132])};function Qi(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f,b,y,P,w,T){let A=U([C("amountMaxA"),C("amountMaxB"),C("openTime")]),B=On(n,t,r,a).publicKey,h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!o.equals(B),isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:wi,isSigner:!1,isWritable:!1},{pubkey:Dt,isSigner:!1,isWritable:!1}],I=Buffer.alloc(A.span);return A.encode({amountMaxA:P,amountMaxB:w,openTime:T},I),new Ne({keys:h,programId:n,data:Buffer.from([...Le.initialize,...I])})}function Ji(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f){let b=U([C("lpAmount"),C("amountMaxA"),C("amountMaxB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],P=Buffer.alloc(b.span);return Ts.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:f.toString()}),b.encode({lpAmount:d,amountMaxA:p,amountMaxB:f},P),new Ne({keys:y,programId:n,data:Buffer.from([...Le.deposit,...P])})}function $i(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f){let b=U([C("lpAmount"),C("amountMinA"),C("amountMinB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:vt,isSigner:!1,isWritable:!1}],P=Buffer.alloc(b.span);return b.encode({lpAmount:d,amountMinA:p,amountMinB:f},P),new Ne({keys:y,programId:n,data:Buffer.from([...Le.withdraw,...P])})}function er(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f,b){let y=U([C("amountIn"),C("amounOutMin")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],w=Buffer.alloc(y.span);return y.encode({amountIn:f,amounOutMin:b},w),new Ne({keys:P,programId:n,data:Buffer.from([...Le.swapBaseInput,...w])})}function tr(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f,b){let y=U([C("amountInMax"),C("amountOut")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],w=Buffer.alloc(y.span);return y.encode({amountInMax:f,amountOut:b},w),new Ne({keys:P,programId:n,data:Buffer.from([...Le.swapBaseOutput,...w])})}async function nr(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:o,getEphemeralSigners:r}=n,a=[],[s,c]=[new St(t.id),new St(t.lpMint.address)],u;if(r)u=new St((await r(1))[0]);else{let P=ks.generate();a.push(P),u=P.publicKey}let{publicKey:l}=de(o,u,Ke),{publicKey:m}=Wn(u),{publicKey:d}=Bt(n.lockProgram,u),{publicKey:p}=de(e.wallet,c,Ke),{publicKey:f}=de(n.lockAuthProgram,c,Ke),b=hs({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:o,nftMint:u,nftAccount:l,poolId:s,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:f,poolVaultA:new St(i.vault.A),poolVaultB:new St(i.vault.B),metadataAccount:m,lpAmount:n.lpAmount,withMetadata:(y=n.withMetadata)!=null?y:!0});return{address:{nftMint:u,nftAccount:l,metadataAccount:m,lockPda:d,userLpVault:p,lockLpVault:f},instructions:[b],signers:a,instructionTypes:[ie.CpmmLockLp],lookupTableAddress:[]}}function hs({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:o,nftMint:r,nftAccount:a,poolId:s,lockPda:c,mintLp:u,userLpVault:l,lockLpVault:m,poolVaultA:d,poolVaultB:p,metadataAccount:f,lpAmount:b,withMetadata:y}){let P=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:Dt,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:ze,isSigner:!1,isWritable:!1}],w=U([C("lpAmount"),De("withMetadata")]),T=Buffer.alloc(w.span);w.encode({lpAmount:b,withMetadata:y},T);let A=Buffer.from([...Le.lockCpLiquidity,...T]);return new Ne({keys:P,programId:n,data:A})}function Xn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:o,poolId:r,mintLp:a,userVaultA:s,userVaultB:c,poolVaultA:u,poolVaultB:l,mintA:m,mintB:d,lockLpVault:p,lpFeeAmount:f,cpmmProgram:b,cpmmAuthProgram:y}){let P=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:b!=null?b:bt,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Ci,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:vt,isSigner:!1,isWritable:!1}],w=U([C("lpFeeAmount")]),T=Buffer.alloc(w.span);w.encode({lpFeeAmount:f},T);let A=Buffer.from([...Le.collectCpFee,...T]);return new Ne({keys:P,programId:n,data:A})}function Hn(n,e,t,i,o,r,a,s,c,u,l,m,d){let p=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1}];return new Ne({keys:p,programId:n,data:Le.collectCreatorFee})}function ir(n,e,t,i,o,r,a,s,c,u,l,m,d,p,f,b,y,P,w,T,A,B,h){let I=U([C("amountA"),C("amountB"),C("openTime"),X("feeOn")]),x=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1}],N=Buffer.alloc(I.span);return I.encode({amountA:T,amountB:A,openTime:B,feeOn:h},N),new Ne({keys:x,programId:n,data:Buffer.from([...Le.initializeWithPermission,...N])})}var rr=U([oe(8),X("bump"),De("disableCreatePool"),Ge("index"),C("tradeFeeRate"),C("protocolFeeRate"),C("fundFeeRate"),C("createPoolFee"),_("protocolOwner"),_("fundOwner"),C("creatorFeeRate"),H(C(),15)]),or=U([oe(8),_("configId"),_("poolCreator"),_("vaultA"),_("vaultB"),_("mintLp"),_("mintA"),_("mintB"),_("mintProgramA"),_("mintProgramB"),_("observationId"),X("bump"),X("status"),X("lpDecimals"),X("mintDecimalA"),X("mintDecimalB"),C("lpAmount"),C("protocolFeesMintA"),C("protocolFeesMintB"),C("fundFeesMintA"),C("fundFeesMintB"),C("openTime"),C("epoch"),X("feeOn"),De("enableCreatorFee"),H(X(),6),C("creatorFeesMintA"),C("creatorFeesMintB"),H(C(),28)]),Lb=U([oe(8),_("configId"),H(C(),30)]);var zn=class extends $e{constructor(e){super(e)}async load(){this.checkDisabled()}async getCpmmPoolKeys(e){return(await this.scope.api.fetchPoolKeysById({idList:[e]}))[0]}async getRpcPoolInfo(e,t){return(await this.getRpcPoolInfos([e],t))[e]}async getRpcPoolInfos(e,t){let i=await Ve(this.scope.connection,e.map(m=>({pubkey:new g(m)}))),o={},r=new Set,a=[];for(let m=0;m<e.length;m++){let d=i[m];if(d.accountInfo===null)throw Error("fetch pool info error: "+String(e[m]));let p=or.decode(d.accountInfo.data);o[String(e[m])]=Z(G({},p),{programId:d.accountInfo.owner}),r.add(String(p.configId)),a.push(p.vaultA,p.vaultB)}let s={};if(t){let m=[...r],d=await Ve(this.scope.connection,m.map(p=>({pubkey:new g(p)})));for(let p=0;p<m.length;p++){let f=d[p].accountInfo;if(f===null)throw Error("fetch pool config error: "+m[p]);s[m[p]]=rr.decode(f.data)}}let c={},u=await Ve(this.scope.connection,a.map(m=>({pubkey:new g(m)})));for(let m=0;m<a.length;m++){let d=u[m].accountInfo;if(d===null)throw Error("fetch vault info error: "+a[m]);c[String(a[m])]=new J(Bs.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(o)){let p=c[d.vaultA.toString()].sub(d.protocolFeesMintA).sub(d.fundFeesMintA).sub(d.creatorFeesMintA),f=c[d.vaultB.toString()].sub(d.protocolFeesMintB).sub(d.fundFeesMintB).sub(d.creatorFeesMintB);l[m]=Z(G({},d),{baseReserve:p,quoteReserve:f,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:s[d.configId.toString()],poolPrice:new te(f.toString()).div(new te(10).pow(d.mintDecimalB)).div(new te(p.toString()).div(new te(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,o)=>{var c,u,l,m;let r=e[o],[a,s]=[r.mintA.toBase58(),r.mintB.toBase58()];return Z(G({},i),{[o]:Z(G({},r),{id:new g(o),configInfo:r.configInfo,version:7,authority:Jt(r.programId).publicKey,mintA:Ue({address:a,decimals:r.mintDecimalA,programId:r.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[a])!=null&&c.feeConfig?tt((u=t[a])==null?void 0:u.feeConfig):void 0}}),mintB:Ue({address:s,decimals:r.mintDecimalB,programId:r.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[s])!=null&&l.feeConfig?tt((m=t[s])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await dn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),o=Ue({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?tt(i[t.mintA.toBase58()].feeConfig):void 0}}),r=Ue({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?tt(i[t.mintB.toBase58()].feeConfig):void 0}}),a=Ue({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ae.toBase58()}),s={id:t.configId.toBase58(),index:t.configInfo.index,protocolFeeRate:t.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:t.configInfo.tradeFeeRate.toNumber(),fundFeeRate:t.configInfo.fundFeeRate.toNumber(),createPoolFee:t.configInfo.createPoolFee.toString()},c={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:t.programId.toBase58(),id:e,type:"Standard",lpMint:a,lpPrice:0,lpAmount:t.lpAmount.toNumber(),config:s,mintA:o,mintB:r,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new te(t.vaultAAmount.toString()).div(10**o.decimals).toNumber(),mintAmountB:new te(t.vaultBAmount.toString()).div(10**r.decimals).toNumber(),feeRate:t.configInfo.tradeFeeRate.toNumber(),openTime:t.openTime.toString(),tvl:0,burnPercent:0,day:c,week:c,month:c,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:t.programId.toBase58(),id:e,mintA:o,mintB:r,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:Jt(t.programId).publicKey.toBase58(),mintLp:a,config:s,observationId:ht(t.programId,new g(e)).publicKey.toBase58()},rpcData:t}}async createPool(f){var b=f,{poolId:e,programId:t,poolFeeAccount:i,startTime:o,ownerInfo:r,associatedOnly:a=!1,checkCreateATAOwner:s=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=b,p=Ae(b,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var K,$,ue;let y=r.feePayer||((K=this.scope.owner)==null?void 0:K.publicKey),P=new J(new g(p.mintA.address).toBuffer()).lte(new J(new g(p.mintB.address).toBuffer())),[w,T]=P?[p.mintA,p.mintB]:[p.mintB,p.mintA],[A,B]=P?[p.mintAAmount,p.mintBAmount]:[p.mintBAmount,p.mintAAmount],h=r.useSOLBalance&&w.address===it.toBase58(),I=r.useSOLBalance&&T.address===it.toBase58(),[x,N]=[new g(w.address),new g(T.address)],L=this.createTxBuilder(d),{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({mint:x,tokenProgram:w.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:y,amount:A}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:a,checkCreateATAOwner:s});L.addInstruction(R||{});let{account:W,instructionParams:q}=await this.scope.account.getOrCreateTokenAccount({mint:new g(T.address),tokenProgram:T.programId,owner:this.scope.ownerPubKey,createInfo:I?{payer:y,amount:B}:void 0,notUseTokenAccount:I,skipCloseAccount:!I,associatedOnly:I?!1:a,checkCreateATAOwner:s});if(L.addInstruction(q||{}),S===void 0||W===void 0)throw Error("you don't has some token account");let v=Fn({poolId:e,programId:t,configId:new g(u.id),mintA:x,mintB:N});return L.addInstruction({instructions:[Qi(t,this.scope.ownerPubKey,new g(u.id),v.authority,v.poolId,x,N,v.lpMint,S,W,de(this.scope.ownerPubKey,v.lpMint).publicKey,v.vaultA,v.vaultB,i,new g(($=w.programId)!=null?$:ae),new g((ue=T.programId)!=null?ue:ae),v.observationId,A,B,o)],instructionTypes:[ie.CpmmCreatePool]}),L.addCustomComputeBudget(l),L.addTipInstruction(m),L.versionBuild({txVersion:c,extInfo:{address:Z(G({},v),{mintA:w,mintB:T,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:o,baseIn:r,slippage:a,computeResult:s,computeBudgetConfig:c,txTipConfig:u,config:l,txVersion:m,feePayer:d}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),o.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:o.toString()});let{account:p}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:b}=G({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},l),y=s?void 0:await this.getRpcPoolInfo(t.id),{liquidity:P,inputAmountFee:w,anotherAmount:T}=s||this.computePairAmount({poolInfo:Z(G({},t),{lpAmount:new te(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new pe(0),baseIn:r,epochInfo:await this.scope.fetchEpochInfo(),amount:new te(o.toString()).div(10**(r?t.mintA.decimals:t.mintB.decimals))}),A=T.amount,B=t.mintA.address===it.toString(),h=t.mintB.address===it.toString(),I=this.createTxBuilder(d),[x,N]=[new g(t.mintA.address),new g(t.mintB.address)],{account:L,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:B||(r?o:A).isZero()?{payer:this.scope.ownerPubKey,amount:r?o:A}:void 0,skipCloseAccount:!B,notUseTokenAccount:B,associatedOnly:!1,checkCreateATAOwner:b});I.addInstruction(S||{});let{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(r?A:o).isZero()?{payer:this.scope.ownerPubKey,amount:r?A:o}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:b});I.addInstruction(W||{}),!L&&!R&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",p.tokenAccounts);let q=await p.getCreatedTokenAccount({mint:new g(t.lpMint.address)}),we=await p.handleTokenAccount({side:"out",amount:0,mint:new g(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:f,checkCreateATAOwner:b}),{tokenAccount:v}=we,K=Ae(we,["tokenAccount"]);I.addInstruction(K);let $=i!=null?i:await this.getCpmmPoolKeys(t.id),ue=new pe(new J(1)).sub(a);return I.addInstruction({instructions:[Ji(new g(t.programId),this.scope.ownerPubKey,new g($.authority),new g(t.id),v,L,R,new g($.vault.A),new g($.vault.B),x,N,new g(t.lpMint.address),s?s==null?void 0:s.liquidity:ue.mul(P).quotient,r?w.amount:A,r?A:w.amount)],instructionTypes:[ie.CpmmAddLiquidity],lookupTableAddress:$.lookupTableAccount?[$.lookupTableAccount]:[]}),I.addCustomComputeBudget(c),I.addTipInstruction(u),I.versionBuild({txVersion:m})}async withdrawLiquidity(e){var K,$;let{poolInfo:t,poolKeys:i,lpAmount:o,slippage:r,computeBudgetConfig:a,txTipConfig:s,txVersion:c,feePayer:u,closeWsol:l=!0}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let m=new pe(new J(1)).sub(r),d=await this.getRpcPoolInfo(t.id),[p,f]=[m.mul(o.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(o.mul(d.quoteReserve).div(d.lpAmount)).quotient],b=await this.scope.fetchEpochInfo(),[y,P]=[he(p,t.mintA.extensions.feeConfig,b,!1),he(f,t.mintB.extensions.feeConfig,b,!1)],{account:w}=this.scope,T=this.createTxBuilder(u),[A,B]=[new g(t.mintA.address),new g(t.mintB.address)],h=A.equals(le),I=B.equals(le),x,N,{account:L,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(h&&l),associatedOnly:!h,checkCreateATAOwner:!1});x=L,S&&T.addInstruction(S);let{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),notUseTokenAccount:I,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(I&&l),associatedOnly:!I,checkCreateATAOwner:!1});N=R,W&&T.addInstruction(W),(!x||!N)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",w.tokenAccounts);let q=await w.getCreatedTokenAccount({mint:new g(t.lpMint.address)});q||this.logAndCreateError("cannot found lp token account","tokenAccounts",w.tokenAccounts);let v=i!=null?i:await this.getCpmmPoolKeys(t.id);return T.addInstruction({instructions:[$i(new g(t.programId),this.scope.ownerPubKey,new g(v.authority),new g(t.id),q,x,N,new g(v.vault.A),new g(v.vault.B),A,B,new g(t.lpMint.address),o,p.sub((K=y.fee)!=null?K:new J(0)),f.sub(($=P.fee)!=null?$:new J(0)))],instructionTypes:[ie.CpmmWithdrawLiquidity],lookupTableAddress:v.lookupTableAccount?[v.lookupTableAccount]:[]}),T.addCustomComputeBudget(a),T.addTipInstruction(s),T.versionBuild({txVersion:c})}async swap(e){var S,R,W,q,v,K;let{poolInfo:t,poolKeys:i,baseIn:o,fixedOut:r,inputAmount:a,swapResult:s,slippage:c=0,config:u,computeBudgetConfig:l,txTipConfig:m,txVersion:d,feePayer:p}=e,{bypassAssociatedCheck:f,checkCreateATAOwner:b,associatedOnly:y}=G({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),P=this.createTxBuilder(p),[w,T]=[new g(t.mintA.address),new g(t.mintB.address)];r?s.inputAmount=s.inputAmount.mul(new J((1+c)*1e4)).div(new J(1e4)):s.outputAmount=s.outputAmount.mul(new J((1-c)*1e4)).div(new J(1e4));let A=t.mintA.address===le.toBase58(),B=t.mintB.address===le.toBase58(),{account:h,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:new g((S=t.mintA.programId)!=null?S:ae),owner:this.scope.ownerPubKey,createInfo:A||!o?{payer:this.scope.ownerPubKey,amount:o?s.inputAmount:0}:void 0,notUseTokenAccount:A,skipCloseAccount:!A,associatedOnly:A?!1:y,checkCreateATAOwner:b});I&&P.addInstruction(I);let{account:x,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:new g((R=t.mintB.programId)!=null?R:ae),owner:this.scope.ownerPubKey,createInfo:B||o?{payer:this.scope.ownerPubKey,amount:o?0:s.inputAmount}:void 0,notUseTokenAccount:B,skipCloseAccount:!B,associatedOnly:B?!1:y,checkCreateATAOwner:b});N&&P.addInstruction(N),(!h||!x)&&this.logAndCreateError("user do not have token account",{mintA:t.mintA.symbol||t.mintA.address,mintB:t.mintB.symbol||t.mintB.address,mintATokenAcc:h,mintBTokenAcc:x,mintAUseSOLBalance:A,mintBUseSOLBalance:B,associatedOnly:y});let L=i!=null?i:await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[r?tr(new g(t.programId),this.scope.ownerPubKey,new g(L.authority),new g(L.config.id),new g(t.id),o?h:x,o?x:h,new g(L.vault[o?"A":"B"]),new g(L.vault[o?"B":"A"]),new g((v=t[o?"mintA":"mintB"].programId)!=null?v:ae),new g((K=t[o?"mintB":"mintA"].programId)!=null?K:ae),o?w:T,o?T:w,ht(new g(t.programId),new g(t.id)).publicKey,s.inputAmount,s.outputAmount):er(new g(t.programId),this.scope.ownerPubKey,new g(L.authority),new g(L.config.id),new g(t.id),o?h:x,o?x:h,new g(L.vault[o?"A":"B"]),new g(L.vault[o?"B":"A"]),new g((W=t[o?"mintA":"mintB"].programId)!=null?W:ae),new g((q=t[o?"mintB":"mintA"].programId)!=null?q:ae),o?w:T,o?T:w,ht(new g(t.programId),new g(t.id)).publicKey,a,s.outputAmount)],instructionTypes:[r?ie.CpmmSwapBaseOut:ie.ClmmSwapBaseIn]}),P.addCustomComputeBudget(l),P.addTipInstruction(m),P.versionBuild({txVersion:d})}async lockLp(e){var d,p,f,b,y;let{poolInfo:t,lpAmount:i,computeBudgetConfig:o,txTipConfig:r,txVersion:a,feePayer:s,feeNftOwner:c}=e;i.isZero()&&this.logAndCreateError("lpAmount must greater than zero",{lpAmount:i.toString()});let u=this.createTxBuilder(s),l=(d=e.poolKeys)!=null?d:await this.getCpmmPoolKeys(t.id),m=await nr({poolInfo:t,poolKeys:l,ownerInfo:{wallet:this.scope.ownerPubKey,feePayer:(p=e.feePayer)!=null?p:this.scope.ownerPubKey},feeNftOwner:c!=null?c:this.scope.ownerPubKey,lockProgram:(f=e.programId)!=null?f:Xt,lockAuthProgram:(b=e.authProgram)!=null?b:Ht,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(o),u.addTipInstruction(r),u.versionBuild({txVersion:a,extInfo:m.address})}async harvestLockLp(e){var R;let{poolInfo:t,lpFeeAmount:i,nftMint:o,programId:r=Xt,authProgram:a=Ht,cpmmProgram:s,computeBudgetConfig:c,txTipConfig:u,txVersion:l,closeWsol:m=!0}=e;i.isZero()&&this.logAndCreateError("lpFeeAmount must greater than zero",{lpAmount:i.toString()});let d=e.feePayer||this.scope.ownerPubKey,p=this.createTxBuilder(d),[f,b]=[new g(t.mintA.address),new g(t.mintB.address)],y=f.equals(le),P=b.equals(le),w,T,{account:A,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(y&&m),associatedOnly:!y,checkCreateATAOwner:!1});w=A,B&&p.addInstruction(B);let{account:h,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(P&&m),associatedOnly:!P,checkCreateATAOwner:!1});T=h,I&&p.addInstruction(I),(!w||!T)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:w,tokenAccountB:T});let x=(R=e.poolKeys)!=null?R:await this.getCpmmPoolKeys(t.id),{publicKey:N}=de(d,o,ae),{publicKey:L}=Bt(r,o),{publicKey:S}=de(a,new g(t.lpMint.address),ae);return p.addInstruction({instructions:[Xn({programId:r,nftOwner:this.scope.ownerPubKey,auth:a,nftMint:o,nftAccount:N,lockPda:L,poolId:new g(t.id),mintLp:new g(x.mintLp.address),userVaultA:w,userVaultB:T,poolVaultA:new g(x.vault.A),poolVaultB:new g(x.vault.B),mintA:f,mintB:b,lockLpVault:S,lpFeeAmount:i,cpmmProgram:s==null?void 0:s.programId,cpmmAuthProgram:s==null?void 0:s.authProgram})],instructionTypes:[ie.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){var d;let{lockInfo:t,programId:i=Xt,authProgram:o=Ht,cpmmProgram:r,computeBudgetConfig:a,txVersion:s,closeWsol:c=!0}=e,u=e.feePayer||this.scope.ownerPubKey,l=this.createTxBuilder(u),m={};for(let p of t){let{poolInfo:f,lpFeeAmount:b,nftMint:y}=p;if(b.isZero())continue;let[P,w]=[new g(f.mintA.address),new g(f.mintB.address)],T=P.equals(le),A=w.equals(le),B=m[f.mintA.address],h=m[f.mintB.address];if(!B)if(T){let{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:f.mintA.programId,mint:new g(f.mintA.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});B=S,R&&l.addInstruction(R),m[f.mintA.address]=S}else{let S=new g(f.mintA.address);B=this.scope.account.getAssociatedTokenAccount(S,new g(f.mintA.programId)),l.addInstruction({instructions:[rt(this.scope.ownerPubKey,B,this.scope.ownerPubKey,S,new g(f.mintA.programId))]}),m[f.mintA.address]=B}if(!h)if(A){let{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:f.mintB.programId,mint:new g(f.mintB.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});h=S,R&&l.addInstruction(R),m[f.mintB.address]=S}else{let S=new g(f.mintB.address);h=this.scope.account.getAssociatedTokenAccount(S,new g(f.mintB.programId)),l.addInstruction({instructions:[rt(this.scope.ownerPubKey,h,this.scope.ownerPubKey,S,new g(f.mintB.programId))]}),m[f.mintB.address]=h}(!B||!h)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:B,tokenAccountB:h});let I=(d=p.poolKeys)!=null?d:await this.getCpmmPoolKeys(f.id),{publicKey:x}=de(u,y,ae),{publicKey:N}=Bt(i,y),{publicKey:L}=de(o,new g(f.lpMint.address),ae);l.addInstruction({instructions:[Xn({programId:i,nftOwner:this.scope.ownerPubKey,auth:o,nftMint:y,nftAccount:x,lockPda:N,poolId:new g(f.id),mintLp:new g(I.mintLp.address),userVaultA:B,userVaultB:h,poolVaultA:new g(I.vault.A),poolVaultB:new g(I.vault.B),mintA:P,mintB:w,lockLpVault:L,lpFeeAmount:b,cpmmProgram:r==null?void 0:r.programId,cpmmAuthProgram:r==null?void 0:r.authProgram})],instructionTypes:[ie.CpmmCollectLockFee]})}return s===0?l.sizeCheckBuildV0({computeBudgetConfig:a}):l.sizeCheckBuild({computeBudgetConfig:a})}async createPoolWithPermission(b){var y=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:o,ownerInfo:r,associatedOnly:a=!1,checkCreateATAOwner:s=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d,feeOn:p}=y,f=Ae(y,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer","feeOn"]);var $,ue,we;console.log("***this method only available for wallet with permissions***");let P=r.feePayer||(($=this.scope.owner)==null?void 0:$.publicKey),w=new J(new g(f.mintA.address).toBuffer()).lte(new J(new g(f.mintB.address).toBuffer())),[T,A]=w?[f.mintA,f.mintB]:[f.mintB,f.mintA],[B,h]=w?[f.mintAAmount,f.mintBAmount]:[f.mintBAmount,f.mintAAmount],I=r.useSOLBalance&&T.address===it.toBase58(),x=r.useSOLBalance&&A.address===it.toBase58(),[N,L]=[new g(T.address),new g(A.address)],S=this.createTxBuilder(d),{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({mint:N,tokenProgram:T.programId,owner:this.scope.ownerPubKey,createInfo:I?{payer:P,amount:B}:void 0,notUseTokenAccount:I,skipCloseAccount:!I,associatedOnly:I?!1:a,checkCreateATAOwner:s});S.addInstruction(W||{});let{account:q,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new g(A.address),tokenProgram:A.programId,owner:this.scope.ownerPubKey,createInfo:x?{payer:P,amount:h}:void 0,notUseTokenAccount:x,skipCloseAccount:!x,associatedOnly:x?!1:a,checkCreateATAOwner:s});if(S.addInstruction(v||{}),R===void 0||q===void 0)throw Error("you don't has some token account");let K=Fn({poolId:e,programId:t,configId:new g(u.id),mintA:N,mintB:L});return S.addInstruction({instructions:[ir(t,this.scope.ownerPubKey,this.scope.ownerPubKey,new g(u.id),K.authority,K.poolId,N,L,K.lpMint,R,q,de(this.scope.ownerPubKey,K.lpMint).publicKey,K.vaultA,K.vaultB,i,new g((ue=T.programId)!=null?ue:ae),new g((we=A.programId)!=null?we:ae),K.observationId,Di(t,this.scope.ownerPubKey).publicKey,B,h,o,p)],instructionTypes:[ie.CpmmCreatePool]}),S.addCustomComputeBudget(l),S.addTipInstruction(m),S.versionBuild({txVersion:c,extInfo:{address:Z(G({},K),{mintA:T,mintB:A,programId:t,poolFeeAccount:i,feeConfig:u})}})}async collectCreatorFees({poolInfo:e,poolKeys:t,programId:i=bt,txVersion:o,computeBudgetConfig:r,txTipConfig:a,feePayer:s}){let c=s||this.scope.ownerPubKey,u=this.createTxBuilder(c),l=t!=null?t:await this.getCpmmPoolKeys(e.id),[m,d,p,f]=[new g(e.mintA.address),new g(e.mintB.address),new g(e.mintA.programId),new g(e.mintB.programId)],b=this.scope.account.getAssociatedTokenAccount(m,p),y=this.scope.account.getAssociatedTokenAccount(d,f);return u.addInstruction({instructions:[rt(this.scope.ownerPubKey,b,this.scope.ownerPubKey,m,new g(e.mintA.programId)),rt(this.scope.ownerPubKey,y,this.scope.ownerPubKey,d,new g(e.mintB.programId))]}),u.addInstruction({instructions:[Hn(i,this.scope.ownerPubKey,new g(l.authority),new g(l.id),new g(l.config.id),new g(l.vault.A),new g(l.vault.B),m,d,b,y,p,f)],instructionTypes:[]}),u.addCustomComputeBudget(r),u.addTipInstruction(a),u.versionBuild({txVersion:o})}async collectMultiCreatorFees({poolInfoList:e,programId:t=bt,txVersion:i,computeBudgetConfig:o,feePayer:r}){let a=r||this.scope.ownerPubKey,s=this.createTxBuilder(a),c={},u=await this.scope.api.fetchPoolKeysById({idList:e.map(l=>l.id)});for(let l of e){let m=u.find(w=>w.id===l.id)||await this.getCpmmPoolKeys(l.id),[d,p,f,b]=[new g(l.mintA.address),new g(l.mintB.address),new g(l.mintA.programId),new g(l.mintB.programId)],y=c[l.mintA.address]||this.scope.account.getAssociatedTokenAccount(d,f),P=c[l.mintB.address]||this.scope.account.getAssociatedTokenAccount(p,b);c[l.mintA.address]||s.addInstruction({instructions:[rt(this.scope.ownerPubKey,y,this.scope.ownerPubKey,d,f)]}),c[l.mintB.address]||s.addInstruction({instructions:[rt(this.scope.ownerPubKey,P,this.scope.ownerPubKey,p,b)]}),c[l.mintA.address]=y,c[l.mintB.address]=P,s.addInstruction({instructions:[Hn(t,this.scope.ownerPubKey,new g(m.authority),new g(m.id),new g(m.config.id),new g(m.vault.A),new g(m.vault.B),d,p,y,P,f,b)],instructionTypes:[]})}return i===0?s.sizeCheckBuildV0({computeBudgetConfig:o}):s.sizeCheckBuild({computeBudgetConfig:o})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:o}){let r=i.toString()===e.mintB.address,a=e.feeOn===0||e.feeOn===2,s=r?Tt.swapBaseInput(t,r?e.baseReserve:e.quoteReserve,r?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate,e.configInfo.creatorFeeRate,e.configInfo.protocolFeeRate,e.configInfo.fundFeeRate,a):Tt.swapBaseOutput(t,r?e.baseReserve:e.quoteReserve,r?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate,e.configInfo.creatorFeeRate,e.configInfo.protocolFeeRate,e.configInfo.fundFeeRate,a),c=new te(s.outputAmount.toString()).div(s.inputAmount.toString()),u=s.outputAmount.mul(new J((1-o)*1e4)).div(new J(1e4));return{allTrade:s.inputAmount.eq(t),amountIn:t,amountOut:s.outputAmount,minAmountOut:u,executionPrice:c,fee:s.tradeFee,priceImpact:e.poolPrice.sub(c).div(e.poolPrice)}}computePairAmount({poolInfo:e,baseReserve:t,quoteReserve:i,amount:o,slippage:r,epochInfo:a,baseIn:s}){var A,B,h,I,x,N,L,S,R;let c=1-Number(r.toSignificant())/100,u=new J(new te(o).mul(10**e[s?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=he(u,e[s?"mintA":"mintB"].extensions.feeConfig,a,!1),m=u.sub((A=l.fee)!=null?A:new J(0)),d=new J(new te(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,te.ROUND_DOWN));this.logDebug("baseReserve:",t.toString(),"quoteReserve:",i.toString()),this.logDebug("tokenIn:",s?e.mintA.symbol:e.mintB.symbol,"amountIn:",u.toString(),"amountInFee:",(h=(B=l.fee)==null?void 0:B.toString())!=null?h:0,"anotherToken:",s?e.mintB.symbol:e.mintA.symbol,"slippage:",`${r.toSignificant()}%`);let p=s?"base":"quote";this.logDebug("input side:",p);let f=m.mul(d).div(p==="base"?t:i),b={amount:kn,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=Is(f,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),b=he(W[s?"amountB":"amountA"],e[s?"mintB":"mintA"].extensions.feeConfig,a,!0)}let y=new pe(new J(1)).add(r),P=new pe(new J(1)).sub(r),w=he(y.mul(b.amount.sub((I=b.fee)!=null?I:new J(0))).quotient,e[s?"mintB":"mintA"].extensions.feeConfig,a,!0),T=he(P.mul(b.amount.sub((x=b.fee)!=null?x:new J(0))).quotient,e[s?"mintB":"mintA"].extensions.feeConfig,a,!0);return this.logDebug("anotherAmount:",b.amount.toString(),"anotherAmountFee:",(L=(N=b.fee)==null?void 0:N.toString())!=null?L:0,"maxAnotherAmount:",w.amount.toString(),"maxAnotherAmountFee:",(R=(S=w.fee)==null?void 0:S.toString())!=null?R:0),{inputAmountFee:l,anotherAmount:b,maxAnotherAmount:w,minAnotherAmount:T,liquidity:f}}};function Is(n,e,t,i){let o=n.mul(e).div(i);!o.isZero()&&!n.mul(e).mod(i).isZero()&&(o=o.add(new J(1)));let r=n.mul(t).div(i);return!r.isZero()&&!n.mul(t).mod(i).isZero()&&(r=r.add(new J(1))),{amountA:o,amountB:r}}export{zn as default};
|
|
1
|
+
var ar=Object.defineProperty,ur=Object.defineProperties;var cr=Object.getOwnPropertyDescriptors;var Kt=Object.getOwnPropertySymbols;var jn=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable;var Yn=(n,e,t)=>e in n?ar(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,G=(n,e)=>{for(var t in e||(e={}))jn.call(e,t)&&Yn(n,t,e[t]);if(Kt)for(var t of Kt(e))Qn.call(e,t)&&Yn(n,t,e[t]);return n},Z=(n,e)=>ur(n,cr(e));var Ae=(n,e)=>{var t={};for(var i in n)jn.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&Kt)for(var i of Kt(n))e.indexOf(i)<0&&Qn.call(n,i)&&(t[i]=n[i]);return t};import{PublicKey as g}from"@solana/web3.js";import{AccountLayout as Bs,NATIVE_MINT as it,TOKEN_PROGRAM_ID as ae,createAssociatedTokenAccountIdempotentInstruction as rt}from"@solana/spl-token";import Be from"bn.js";var Xe=9e15,Fe=1e9,nn="0123456789abcdef",Lt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Rt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",rn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Xe,maxE:Xe,crypto:!1},ti,xe,V=!0,Ot="[DecimalError] ",Oe=Ot+"Invalid argument: ",ni=Ot+"Precision limit exceeded",ii=Ot+"crypto unavailable",ri="[object Decimal]",se=Math.floor,ee=Math.pow,lr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,mr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,dr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,oi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ge=1e7,D=7,pr=9007199254740991,fr=Lt.length-1,on=Rt.length-1,k={toStringTag:ri};k.absoluteValue=k.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),F(n)};k.ceil=function(){return F(new this.constructor(this),this.e+1,2)};k.clampedTo=k.clamp=function(n,e){var t,i=this,r=i.constructor;if(n=new r(n),e=new r(e),!n.s||!e.s)return new r(NaN);if(n.gt(e))throw Error(Oe+e);return t=i.cmp(n),t<0?n:i.cmp(e)>0?e:new r(i)};k.comparedTo=k.cmp=function(n){var e,t,i,r,o=this,s=o.d,a=(n=new o.constructor(n)).d,c=o.s,u=n.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!==n.e)return o.e>n.e^c<0?1:-1;for(i=s.length,r=a.length,e=0,t=i<r?i:r;e<t;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};k.cosine=k.cos=function(){var n,e,t=this,i=t.constructor;return t.d?t.d[0]?(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+D,i.rounding=1,t=br(i,li(i,t)),i.precision=n,i.rounding=e,F(xe==2||xe==3?t.neg():t,n,e,!0)):new i(1):new i(NaN)};k.cubeRoot=k.cbrt=function(){var n,e,t,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(V=!1,o=l.s*ee(l.s*l,1/3),!o||Math.abs(o)==1/0?(t=re(l.d),n=l.e,(o=(n-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=ee(t,1/3),n=se((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?t="5e"+n:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+n),i=new m(t),i.s=l.s):i=new m(o.toString()),s=(n=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=z(u.plus(l).times(a),u.plus(c),s+2,1),re(a.d).slice(0,s)===(t=re(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(F(a,n+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(F(i,n+1,1),e=!i.times(i).times(i).eq(l));break}return V=!0,F(i,n,m.rounding,e)};k.decimalPlaces=k.dp=function(){var n,e=this.d,t=NaN;if(e){if(n=e.length-1,t=(n-se(this.e/D))*D,n=e[n],n)for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t};k.dividedBy=k.div=function(n){return z(this,new this.constructor(n))};k.dividedToIntegerBy=k.divToInt=function(n){var e=this,t=e.constructor;return F(z(e,new t(n),0,1,1),t.precision,t.rounding)};k.equals=k.eq=function(n){return this.cmp(n)===0};k.floor=function(){return F(new this.constructor(this),this.e+1,3)};k.greaterThan=k.gt=function(n){return this.cmp(n)>0};k.greaterThanOrEqualTo=k.gte=function(n){var e=this.cmp(n);return e==1||e===0};k.hyperbolicCosine=k.cosh=function(){var n,e,t,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(n=Math.ceil(r/3),e=(1/Et(4,n)).toString()):(n=16,e="2.3283064365386962890625e-10"),o=He(s,1,o.times(e),new s(1),!0);for(var c,u=n,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return F(o,s.precision=t,s.rounding=i,!0)};k.hyperbolicSine=k.sinh=function(){var n,e,t,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=He(o,2,r,r,!0);else{n=1.4*Math.sqrt(i),n=n>16?16:n|0,r=r.times(1/Et(5,n)),r=He(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);n--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=t,F(r,e,t,!0)};k.hyperbolicTangent=k.tanh=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+7,i.rounding=1,z(t.sinh(),t.cosh(),i.precision=n,i.rounding=e)):new i(t.s)};k.inverseCosine=k.acos=function(){var n,e=this,t=e.constructor,i=e.abs().cmp(1),r=t.precision,o=t.rounding;return i!==-1?i===0?e.isNeg()?ye(t,r,o):new t(0):new t(NaN):e.isZero()?ye(t,r+4,o).times(.5):(t.precision=r+6,t.rounding=1,e=e.asin(),n=ye(t,r+4,o).times(.5),t.precision=r,t.rounding=o,n.minus(e))};k.inverseHyperbolicCosine=k.acosh=function(){var n,e,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(n=i.precision,e=i.rounding,i.precision=n+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,V=!1,t=t.times(t).minus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln()):new i(t)};k.inverseHyperbolicSine=k.asinh=function(){var n,e,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,V=!1,t=t.times(t).plus(1).sqrt().plus(t),V=!0,i.precision=n,i.rounding=e,t.ln())};k.inverseHyperbolicTangent=k.atanh=function(){var n,e,t,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=o.precision,e=o.rounding,i=r.sd(),Math.max(i,n)<2*-r.e-1?F(new o(r),n,e,!0):(o.precision=t=i-r.e,r=z(r.plus(1),new o(1).minus(r),t+n,1),o.precision=n+4,o.rounding=1,r=r.ln(),o.precision=n,o.rounding=e,r.times(.5))):new o(NaN)};k.inverseSine=k.asin=function(){var n,e,t,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),t=o.precision,i=o.rounding,e!==-1?e===0?(n=ye(o,t+4,i).times(.5),n.s=r.s,n):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=i,r.times(2)))};k.inverseTangent=k.atan=function(){var n,e,t,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=on)return s=ye(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=on)return s=ye(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,t=Math.min(28,a/D+2|0),n=t;n;--n)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(V=!1,e=Math.ceil(a/D),i=1,c=u.times(u),s=new l(u),r=u;n!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(n=e;s.d[n]===o.d[n]&&n--;);return t&&(s=s.times(2<<t-1)),V=!0,F(s,l.precision=m,l.rounding=d,!0)};k.isFinite=function(){return!!this.d};k.isInteger=k.isInt=function(){return!!this.d&&se(this.e/D)>this.d.length-2};k.isNaN=function(){return!this.s};k.isNegative=k.isNeg=function(){return this.s<0};k.isPositive=k.isPos=function(){return this.s>0};k.isZero=function(){return!!this.d&&this.d[0]===0};k.lessThan=k.lt=function(n){return this.cmp(n)<0};k.lessThanOrEqualTo=k.lte=function(n){return this.cmp(n)<1};k.logarithm=k.log=function(n){var e,t,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,p=5;if(n==null)n=new l(10),e=!0;else{if(n=new l(n),t=n.d,n.s<0||!t||!t[0]||n.eq(1))return new l(NaN);e=n.eq(10)}if(t=u.d,u.s<0||!t||!t[0]||u.eq(1))return new l(t&&!t[0]?-1/0:u.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(V=!1,a=m+p,s=Me(u,a),i=e?Mt(l,a+10):Me(n,a),c=z(s,i,a,1),ot(c.d,r=m,d))do if(a+=10,s=Me(u,a),i=e?Mt(l,a+10):Me(n,a),c=z(s,i,a,1),!o){+re(c.d).slice(r+1,r+15)+1==1e14&&(c=F(c,m+1,0));break}while(ot(c.d,r+=10,d));return V=!0,F(c,m,d)};k.minus=k.sub=function(n){var e,t,i,r,o,s,a,c,u,l,m,d,p=this,f=p.constructor;if(n=new f(n),!p.d||!n.d)return!p.s||!n.s?n=new f(NaN):p.d?n.s=-n.s:n=new f(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(u=p.d,d=n.d,a=f.precision,c=f.rounding,!u[0]||!d[0]){if(d[0])n.s=-n.s;else if(u[0])n=new f(p);else return new f(c===3?-0:0);return V?F(n,a,c):n}if(t=se(n.e/D),l=se(p.e/D),u=u.slice(),o=l-t,o){for(m=o<0,m?(e=u,o=-o,s=d.length):(e=d,t=l,s=u.length),i=Math.max(Math.ceil(a/D),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;i--;)e.push(0);e.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}o=0}for(m&&(e=u,u=d,d=e,n.s=-n.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=ge-1;--u[r],u[i]+=ge}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--t;return u[0]?(n.d=u,n.e=Ft(u,t),V?F(n,a,c):n):new f(c===3?-0:0)};k.modulo=k.mod=function(n){var e,t=this,i=t.constructor;return n=new i(n),!t.d||!n.s||n.d&&!n.d[0]?new i(NaN):!n.d||t.d&&!t.d[0]?F(new i(t),i.precision,i.rounding):(V=!1,i.modulo==9?(e=z(t,n.abs(),0,3,1),e.s*=n.s):e=z(t,n,0,i.modulo,1),e=e.times(n),V=!0,t.minus(e))};k.naturalExponential=k.exp=function(){return sn(this)};k.naturalLogarithm=k.ln=function(){return Me(this)};k.negated=k.neg=function(){var n=new this.constructor(this);return n.s=-n.s,F(n)};k.plus=k.add=function(n){var e,t,i,r,o,s,a,c,u,l,m=this,d=m.constructor;if(n=new d(n),!m.d||!n.d)return!m.s||!n.s?n=new d(NaN):m.d||(n=new d(n.d||m.s===n.s?m:NaN)),n;if(m.s!=n.s)return n.s=-n.s,m.minus(n);if(u=m.d,l=n.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(n=new d(m)),V?F(n,a,c):n;if(o=se(m.e/D),i=se(n.e/D),u=u.slice(),r=o-i,r){for(r<0?(t=u,r=-r,s=l.length):(t=l,i=o,s=u.length),o=Math.ceil(a/D),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,t=l,l=u,u=t),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/ge|0,u[r]%=ge;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return n.d=u,n.e=Ft(u,i),V?F(n,a,c):n};k.precision=k.sd=function(n){var e,t=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(Oe+n);return t.d?(e=si(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e};k.round=function(){var n=this,e=n.constructor;return F(new e(n),n.e+1,e.rounding)};k.sine=k.sin=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+Math.max(t.e,t.sd())+D,i.rounding=1,t=gr(i,li(i,t)),i.precision=n,i.rounding=e,F(xe>2?t.neg():t,n,e,!0)):new i(NaN)};k.squareRoot=k.sqrt=function(){var n,e,t,i,r,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(V=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=re(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=se((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),t=(c=l.precision)+3;;)if(o=i,i=o.plus(z(s,o,t+2,1)).times(.5),re(o.d).slice(0,t)===(e=re(i.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!r&&e=="4999"){if(!r&&(F(o,c+1,0),o.times(o).eq(s))){i=o;break}t+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(F(i,c+1,1),n=!i.times(i).eq(s));break}return V=!0,F(i,c,l.rounding,n)};k.tangent=k.tan=function(){var n,e,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(n=i.precision,e=i.rounding,i.precision=n+10,i.rounding=1,t=t.sin(),t.s=1,t=z(t,new i(1).minus(t.times(t)).sqrt(),n+10,0),i.precision=n,i.rounding=e,F(xe==2||xe==4?t.neg():t,n,e,!0)):new i(NaN)};k.times=k.mul=function(n){var e,t,i,r,o,s,a,c,u,l=this,m=l.constructor,d=l.d,p=(n=new m(n)).d;if(n.s*=l.s,!d||!d[0]||!p||!p[0])return new m(!n.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?n.s/0:n.s*0);for(t=se(l.e/D)+se(n.e/D),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(e=0,r=c+i;r>i;)a=o[r]+p[i]*d[r-i-1]+e,o[r--]=a%ge|0,e=a/ge|0;o[r]=(o[r]+e)%ge|0}for(;!o[--s];)o.pop();return e?++t:o.shift(),n.d=o,n.e=Ft(o,t),V?F(n,m.precision,m.rounding):n};k.toBinary=function(n,e){return un(this,2,n,e)};k.toDecimalPlaces=k.toDP=function(n,e){var t=this,i=t.constructor;return t=new i(t),n===void 0?t:(ce(n,0,Fe),e===void 0?e=i.rounding:ce(e,0,8),F(t,n+t.e+1,e))};k.toExponential=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=ke(i,!0):(ce(n,0,Fe),e===void 0?e=r.rounding:ce(e,0,8),i=F(new r(i),n+1,e),t=ke(i,!0,n+1)),i.isNeg()&&!i.isZero()?"-"+t:t};k.toFixed=function(n,e){var t,i,r=this,o=r.constructor;return n===void 0?t=ke(r):(ce(n,0,Fe),e===void 0?e=o.rounding:ce(e,0,8),i=F(new o(r),n+r.e+1,e),t=ke(i,!1,n+i.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};k.toFraction=function(n){var e,t,i,r,o,s,a,c,u,l,m,d,p=this,f=p.d,b=p.constructor;if(!f)return new b(p);if(u=t=new b(1),i=c=new b(0),e=new b(i),o=e.e=si(f)-p.e-1,s=o%D,e.d[0]=ee(10,s<0?D+s:s),n==null)n=o>0?e:u;else{if(a=new b(n),!a.isInt()||a.lt(u))throw Error(Oe+a);n=a.gt(e)?o>0?e:u:a}for(V=!1,a=new b(re(f)),l=b.precision,b.precision=o=f.length*D*2;m=z(a,e,0,1,1),r=t.plus(m.times(i)),r.cmp(n)!=1;)t=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=e,e=a.minus(m.times(r)),a=r;return r=z(n.minus(t),i,0,1,1),c=c.plus(r.times(u)),t=t.plus(r.times(i)),c.s=u.s=p.s,d=z(u,i,o,1).minus(p).abs().cmp(z(c,t,o,1).minus(p).abs())<1?[u,i]:[c,t],b.precision=l,V=!0,d};k.toHexadecimal=k.toHex=function(n,e){return un(this,16,n,e)};k.toNearest=function(n,e){var t=this,i=t.constructor;if(t=new i(t),n==null){if(!t.d)return t;n=new i(1),e=i.rounding}else{if(n=new i(n),e===void 0?e=i.rounding:ce(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(V=!1,t=z(t,n,0,e,1).times(n),V=!0,F(t)):(n.s=t.s,t=n),t};k.toNumber=function(){return+this};k.toOctal=function(n,e){return un(this,8,n,e)};k.toPower=k.pow=function(n){var e,t,i,r,o,s,a=this,c=a.constructor,u=+(n=new c(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new c(ee(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,n.eq(1))return F(a,i,o);if(e=se(n.e/D),e>=n.d.length-1&&(t=u<0?-u:u)<=pr)return r=ai(c,a,t,i),n.s<0?new c(1).div(r):F(r,i,o);if(s=a.s,s<0){if(e<n.d.length-1)return new c(NaN);if((n.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=ee(+a,u),e=t==0||!isFinite(t)?se(u*(Math.log("0."+re(a.d))/Math.LN10+a.e+1)):new c(t+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(V=!1,c.rounding=a.s=1,t=Math.min(12,(e+"").length),r=sn(n.times(Me(a,i+t)),i),r.d&&(r=F(r,i+5,1),ot(r.d,i,o)&&(e=i+10,r=F(sn(n.times(Me(a,e+t)),e),e+5,1),+re(r.d).slice(i+1,i+15)+1==1e14&&(r=F(r,i+1,0)))),r.s=s,V=!0,c.rounding=o,F(r,i,o))};k.toPrecision=function(n,e){var t,i=this,r=i.constructor;return n===void 0?t=ke(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(ce(n,1,Fe),e===void 0?e=r.rounding:ce(e,0,8),i=F(new r(i),n,e),t=ke(i,n<=i.e||i.e<=r.toExpNeg,n)),i.isNeg()&&!i.isZero()?"-"+t:t};k.toSignificantDigits=k.toSD=function(n,e){var t=this,i=t.constructor;return n===void 0?(n=i.precision,e=i.rounding):(ce(n,1,Fe),e===void 0?e=i.rounding:ce(e,0,8)),F(new i(t),n,e)};k.toString=function(){var n=this,e=n.constructor,t=ke(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t};k.truncated=k.trunc=function(){return F(new this.constructor(this),this.e+1,1)};k.valueOf=k.toJSON=function(){var n=this,e=n.constructor,t=ke(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};function re(n){var e,t,i,r=n.length-1,o="",s=n[0];if(r>0){for(o+=s,e=1;e<r;e++)i=n[e]+"",t=D-i.length,t&&(o+=Re(t)),o+=i;s=n[e],i=s+"",t=D-i.length,t&&(o+=Re(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function ce(n,e,t){if(n!==~~n||n<e||n>t)throw Error(Oe+n)}function ot(n,e,t,i){var r,o,s,a;for(o=n[0];o>=10;o/=10)--e;return--e<0?(e+=D,r=0):(r=Math.ceil((e+1)/D),e%=D),o=ee(10,D-e),a=n[r]%o|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(n[r+1]/o/100|0)==ee(10,e-2)-1||(a==o/2||a==0)&&(n[r+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(i||t<4)&&a==9999||!i&&t>3&&a==4999):s=((i||t<4)&&a+1==o||!i&&t>3&&a+1==o/2)&&(n[r+1]/o/1e3|0)==ee(10,e-3)-1,s}function Nt(n,e,t){for(var i,r=[0],o,s=0,a=n.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=nn.indexOf(n.charAt(s++)),i=0;i<r.length;i++)r[i]>t-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/t|0,r[i]%=t)}return r.reverse()}function br(n,e){var t,i,r;if(e.isZero())return e;i=e.d.length,i<32?(t=Math.ceil(i/3),r=(1/Et(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),n.precision+=t,e=He(n,1,e.times(r),new n(1));for(var o=t;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return n.precision-=t,e}var z=function(){function n(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function t(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,c){var u,l,m,d,p,f,b,y,P,w,T,A,B,h,I,x,N,L,S,R,W=i.constructor,q=i.s==r.s?1:-1,v=i.d,K=r.d;if(!v||!v[0]||!K||!K[0])return new W(!i.s||!r.s||(v?K&&v[0]==K[0]:!K)?NaN:v&&v[0]==0||!K?q*0:q/0);for(c?(p=1,l=i.e-r.e):(c=ge,p=D,l=se(i.e/p)-se(r.e/p)),S=K.length,N=v.length,P=new W(q),w=P.d=[],m=0;K[m]==(v[m]||0);m++);if(K[m]>(v[m]||0)&&l--,o==null?(h=o=W.precision,s=W.rounding):a?h=o+(i.e-r.e)+1:h=o,h<0)w.push(1),f=!0;else{if(h=h/p+2|0,m=0,S==1){for(d=0,K=K[0],h++;(m<N||d)&&h--;m++)I=d*c+(v[m]||0),w[m]=I/K|0,d=I%K|0;f=d||m<N}else{for(d=c/(K[0]+1)|0,d>1&&(K=n(K,d,c),v=n(v,d,c),S=K.length,N=v.length),x=S,T=v.slice(0,S),A=T.length;A<S;)T[A++]=0;R=K.slice(),R.unshift(0),L=K[0],K[1]>=c/2&&++L;do d=0,u=e(K,T,S,A),u<0?(B=T[0],S!=A&&(B=B*c+(T[1]||0)),d=B/L|0,d>1?(d>=c&&(d=c-1),b=n(K,d,c),y=b.length,A=T.length,u=e(b,T,y,A),u==1&&(d--,t(b,S<y?R:K,y,c))):(d==0&&(u=d=1),b=K.slice()),y=b.length,y<A&&b.unshift(0),t(T,b,A,c),u==-1&&(A=T.length,u=e(K,T,S,A),u<1&&(d++,t(T,S<A?R:K,A,c))),A=T.length):u===0&&(d++,T=[0]),w[m++]=d,u&&T[0]?T[A++]=v[x]||0:(T=[v[x]],A=1);while((x++<N||T[0]!==void 0)&&h--);f=T[0]!==void 0}w[0]||w.shift()}if(p==1)P.e=l,ti=f;else{for(m=1,d=w[0];d>=10;d/=10)m++;P.e=m+l*p-1,F(P,a?o+P.e+1:o,s,f)}return P}}();function F(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor;e:if(e!=null){if(m=n.d,!m)return n;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=D,s=e,l=m[d=0],c=l/ee(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/D),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=D,s=o-D+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=D,s=o-D+r,c=s<0?0:l/ee(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%ee(10,r-s-1)),u=t<4?(c||i)&&(t==0||t==(n.s<0?3:2)):c>5||c==5&&(t==4||i||t==6&&(o>0?s>0?l/ee(10,r-s):0:m[d-1])%10&1||t==(n.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=n.e+1,m[0]=ee(10,(D-e%D)%D),n.e=-e||0):m[0]=n.e=0,n;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=ee(10,D-o),m[d]=s>0?(l/ee(10,r-s)%ee(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(n.e++,m[0]==ge&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=ge)break;m[d--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return V&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function ke(n,e,t){if(!n.isFinite())return ci(n);var i,r=n.e,o=re(n.d),s=o.length;return e?(t&&(i=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+Re(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):r<0?(o="0."+Re(-r-1)+o,t&&(i=t-s)>0&&(o+=Re(i))):r>=s?(o+=Re(r+1-s),t&&(i=t-r-1)>0&&(o=o+"."+Re(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),t&&(i=t-s)>0&&(r+1===s&&(o+="."),o+=Re(i))),o}function Ft(n,e){var t=n[0];for(e*=D;t>=10;t/=10)e++;return e}function Mt(n,e,t){if(e>fr)throw V=!0,t&&(n.precision=t),Error(ni);return F(new n(Lt),e,1,!0)}function ye(n,e,t){if(e>on)throw Error(ni);return F(new n(Rt),e,t,!0)}function si(n){var e=n.length-1,t=e*D+1;if(e=n[e],e){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Re(n){for(var e="";n--;)e+="0";return e}function ai(n,e,t,i){var r,o=new n(1),s=Math.ceil(i/D+4);for(V=!1;;){if(t%2&&(o=o.times(e),$n(o.d,s)&&(r=!0)),t=se(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}e=e.times(e),$n(e.d,s)}return V=!0,o}function Jn(n){return n.d[n.d.length-1]&1}function ui(n,e,t){for(var i,r=new n(e[0]),o=0;++o<e.length;)if(i=new n(e[o]),i.s)r[t](i)&&(r=i);else{r=i;break}return r}function sn(n,e){var t,i,r,o,s,a,c,u=0,l=0,m=0,d=n.constructor,p=d.rounding,f=d.precision;if(!n.d||!n.d[0]||n.e>17)return new d(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(e==null?(V=!1,c=f):c=e,a=new d(.03125);n.e>-2;)n=n.times(a),m+=5;for(i=Math.log(ee(2,m))/Math.LN10*2+5|0,c+=i,t=o=s=new d(1),d.precision=c;;){if(o=F(o.times(n),c,1),t=t.times(++l),a=s.plus(z(o,t,c,1)),re(a.d).slice(0,c)===re(s.d).slice(0,c)){for(r=m;r--;)s=F(s.times(s),c,1);if(e==null)if(u<3&&ot(s.d,c-i,p,u))d.precision=c+=10,t=o=a=new d(1),l=0,u++;else return F(s,d.precision=f,p,V=!0);else return d.precision=f,s}s=a}}function Me(n,e){var t,i,r,o,s,a,c,u,l,m,d,p=1,f=10,b=n,y=b.d,P=b.constructor,w=P.rounding,T=P.precision;if(b.s<0||!y||!y[0]||!b.e&&y[0]==1&&y.length==1)return new P(y&&!y[0]?-1/0:b.s!=1?NaN:y?0:b);if(e==null?(V=!1,l=T):l=e,P.precision=l+=f,t=re(y),i=t.charAt(0),Math.abs(o=b.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)b=b.times(n),t=re(b.d),i=t.charAt(0),p++;o=b.e,i>1?(b=new P("0."+t),o++):b=new P(i+"."+t.slice(1))}else return u=Mt(P,l+2,T).times(o+""),b=Me(new P(i+"."+t.slice(1)),l-f).plus(u),P.precision=T,e==null?F(b,T,w,V=!0):b;for(m=b,c=s=b=z(b.minus(1),b.plus(1),l,1),d=F(b.times(b),l,1),r=3;;){if(s=F(s.times(d),l,1),u=c.plus(z(s,new P(r),l,1)),re(u.d).slice(0,l)===re(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Mt(P,l+2,T).times(o+""))),c=z(c,new P(p),l,1),e==null)if(ot(c.d,l-f,w,a))P.precision=l+=f,u=s=b=z(m.minus(1),m.plus(1),l,1),d=F(b.times(b),l,1),r=a=1;else return F(c,P.precision=T,w,V=!0);else return P.precision=T,c;c=u,r+=2}}function ci(n){return String(n.s*n.s/0)}function an(n,e){var t,i,r;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(t<0&&(t=i),t+=+e.slice(i+1),e=e.substring(0,i)):t<0&&(t=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,n.e=t=t-i-1,n.d=[],i=(t+1)%D,t<0&&(i+=D),i<r){for(i&&n.d.push(+e.slice(0,i)),r-=D;i<r;)n.d.push(+e.slice(i,i+=D));e=e.slice(i),i=D-e.length}else i-=r;for(;i--;)e+="0";n.d.push(+e),V&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function yr(n,e){var t,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),oi.test(e))return an(n,e)}else if(e==="Infinity"||e==="NaN")return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(mr.test(e))t=16,e=e.toLowerCase();else if(lr.test(e))t=2;else if(dr.test(e))t=8;else throw Error(Oe+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=n.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=ai(i,new i(t),o,o*2)),u=Nt(e,t,ge),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(n.s*0):(n.e=Ft(u,l),n.d=u,V=!1,s&&(n=z(n,r,a*4)),c&&(n=n.times(Math.abs(c)<54?ee(2,c):st.pow(2,c))),V=!0,n)}function gr(n,e){var t,i=e.d.length;if(i<3)return e.isZero()?e:He(n,2,e,e);t=1.4*Math.sqrt(i),t=t>16?16:t|0,e=e.times(1/Et(5,t)),e=He(n,2,e,e);for(var r,o=new n(5),s=new n(16),a=new n(20);t--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function He(n,e,t,i,r){var o,s,a,c,u=1,l=n.precision,m=Math.ceil(l/D);for(V=!1,c=t.times(t),a=new n(i);;){if(s=z(a.times(c),new n(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=z(s.times(c),new n(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return V=!0,s.d.length=m+1,s}function Et(n,e){for(var t=n;--e;)t*=n;return t}function li(n,e){var t,i=e.s<0,r=ye(n,n.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return xe=i?4:1,e;if(t=e.divToInt(r),t.isZero())xe=i?3:2;else{if(e=e.minus(t.times(r)),e.lte(o))return xe=Jn(t)?i?2:3:i?4:1,e;xe=Jn(t)?i?1:4:i?3:2}return e.minus(r).abs()}function un(n,e,t,i){var r,o,s,a,c,u,l,m,d,p=n.constructor,f=t!==void 0;if(f?(ce(t,1,Fe),i===void 0?i=p.rounding:ce(i,0,8)):(t=p.precision,i=p.rounding),!n.isFinite())l=ci(n);else{for(l=ke(n),s=l.indexOf("."),f?(r=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new p(1),d.e=l.length-s,d.d=Nt(ke(d),10,r),d.e=d.d.length),m=Nt(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=f?"0p+0":"0";else{if(s<0?o--:(n=new p(n),n.d=m,n.e=o,n=z(n,d,t,i,0,r),m=n.d,o=n.e,u=ti),s=m[t],a=r/2,u=u||m[t+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(n.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[t-1]&1||i===(n.s<0?8:7)),m.length=t,u)for(;++m[--t]>r-1;)m[t]=0,t||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=nn.charAt(m[s]);if(f){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=Nt(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=nn.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return n.s<0?"-"+l:l}function $n(n,e){if(n.length>e)return n.length=e,!0}function Pr(n){return new this(n).abs()}function wr(n){return new this(n).acos()}function Ar(n){return new this(n).acosh()}function kr(n,e){return new this(n).plus(e)}function Tr(n){return new this(n).asin()}function hr(n){return new this(n).asinh()}function Br(n){return new this(n).atan()}function Ir(n){return new this(n).atanh()}function xr(n,e){n=new this(n),e=new this(e);var t,i=this.precision,r=this.rounding,o=i+4;return!n.s||!e.s?t=new this(NaN):!n.d&&!e.d?(t=ye(this,o,1).times(e.s>0?.25:.75),t.s=n.s):!e.d||n.isZero()?(t=e.s<0?ye(this,i,r):new this(0),t.s=n.s):!n.d||e.isZero()?(t=ye(this,o,1).times(.5),t.s=n.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(z(n,e,o,1)),e=ye(this,o,1),this.precision=i,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(z(n,e,o,1)),t}function Cr(n){return new this(n).cbrt()}function Sr(n){return F(n=new this(n),n.e+1,2)}function Kr(n,e,t){return new this(n).clamp(e,t)}function Nr(n){if(!n||typeof n!="object")throw Error(Ot+"Object expected");var e,t,i,r=n.defaults===!0,o=["precision",1,Fe,"rounding",0,8,"toExpNeg",-Xe,0,"toExpPos",0,Xe,"maxE",0,Xe,"minE",-Xe,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],r&&(this[t]=rn[t]),(i=n[t])!==void 0)if(se(i)===i&&i>=o[e+1]&&i<=o[e+2])this[t]=i;else throw Error(Oe+t+": "+i);if(t="crypto",r&&(this[t]=rn[t]),(i=n[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(ii);else this[t]=!1;else throw Error(Oe+t+": "+i);return this}function Lr(n){return new this(n).cos()}function Rr(n){return new this(n).cosh()}function mi(n){var e,t,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,ei(o)){u.s=o.s,V?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.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++;V?s>r.maxE?(u.e=NaN,u.d=null):s<r.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 an(u,o.toString())}else if(c!=="string")throw Error(Oe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),oi.test(o)?an(u,o):yr(u,o)}if(r.prototype=k,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Nr,r.clone=mi,r.isDecimal=ei,r.abs=Pr,r.acos=wr,r.acosh=Ar,r.add=kr,r.asin=Tr,r.asinh=hr,r.atan=Br,r.atanh=Ir,r.atan2=xr,r.cbrt=Cr,r.ceil=Sr,r.clamp=Kr,r.cos=Lr,r.cosh=Rr,r.div=Mr,r.exp=Or,r.floor=Fr,r.hypot=Er,r.ln=vr,r.log=Dr,r.log10=Vr,r.log2=Wr,r.max=_r,r.min=qr,r.mod=Gr,r.mul=Ur,r.pow=Xr,r.random=Hr,r.round=zr,r.sign=Zr,r.sin=Yr,r.sinh=jr,r.sqrt=Qr,r.sub=Jr,r.sum=$r,r.tan=eo,r.tanh=to,r.trunc=no,n===void 0&&(n={}),n&&n.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)n.hasOwnProperty(t=i[e++])||(n[t]=this[t]);return r.config(n),r}function Mr(n,e){return new this(n).div(e)}function Or(n){return new this(n).exp()}function Fr(n){return F(n=new this(n),n.e+1,3)}function Er(){var n,e,t=new this(0);for(V=!1,n=0;n<arguments.length;)if(e=new this(arguments[n++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return V=!0,new this(1/0);t=e}return V=!0,t.sqrt()}function ei(n){return n instanceof st||n&&n.toStringTag===ri||!1}function vr(n){return new this(n).ln()}function Dr(n,e){return new this(n).log(e)}function Wr(n){return new this(n).log(2)}function Vr(n){return new this(n).log(10)}function _r(){return ui(this,arguments,"lt")}function qr(){return ui(this,arguments,"gt")}function Gr(n,e){return new this(n).mod(e)}function Ur(n,e){return new this(n).mul(e)}function Xr(n,e){return new this(n).pow(e)}function Hr(n){var e,t,i,r,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:ce(n,1,Fe),i=Math.ceil(n/D),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(ii);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],n%=D,i&&n&&(r=ee(10,D-n),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=D)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<D&&(t-=D-i)}return s.e=t,s.d=a,s}function zr(n){return F(n=new this(n),n.e+1,this.rounding)}function Zr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Yr(n){return new this(n).sin()}function jr(n){return new this(n).sinh()}function Qr(n){return new this(n).sqrt()}function Jr(n,e){return new this(n).sub(e)}function $r(){var n=0,e=arguments,t=new this(e[n]);for(V=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return V=!0,F(t,this.precision,this.rounding)}function eo(n){return new this(n).tan()}function to(n){return new this(n).tanh()}function no(n){return F(n=new this(n),n.e+1,1)}k[Symbol.for("nodejs.util.inspect.custom")]=k.toString;k[Symbol.toStringTag]="Decimal";var st=k.constructor=mi(rn);Lt=new st(Lt);Rt=new st(Rt);var te=st;import Eo from"big.js";import Oc from"bn.js";import{get as di,set as io}from"lodash";var cn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},pi={},ro={};function ne(n){let e=di(pi,n);if(!e){let t=di(ro,n);e=new cn({name:n,logLevel:t}),io(pi,n,e)}return e}import{PublicKey as fi}from"@solana/web3.js";import{MINT_SIZE as oo,TOKEN_PROGRAM_ID as so,getTransferFeeConfig as ao,unpackMint as uo}from"@solana/spl-token";var ln=ne("Raydium_accountInfo_util");async function at(n,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:o=100}=G({batchRequest:!1},t),s=mn(e,o),a=new Array(s.length).fill([]);if(i){let c=s.map(m=>{let d=n._buildArgs([m.map(p=>p.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=mn(c,10);a=(await(await Promise.all(u.map(async m=>await n._rpcBatchRequest(m)))).flat()).map(m=>(m.error&&ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${m.error.message}`),m.result.value.map(d=>{if(d){let{data:p,executable:f,lamports:b,owner:y,rentEpoch:P}=d;return p.length!==2&&p[1]!=="base64"&&ln.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:f,lamports:b,owner:new fi(y),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(c=>n.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}async function Ve(n,e,t){let i=await at(n,e.map(r=>r.pubkey),t);return e.map((r,o)=>Z(G({},r),{accountInfo:i[o]}))}async function dn({connection:n,mints:e,config:t}){var o,s,a;if(e.length===0)return{};let i=await Ve(n,e.map(c=>({pubkey:ut(c)})),t),r={};for(let c of i){if(!c.accountInfo||c.accountInfo.data.length<oo){console.log("invalid mint account",c.pubkey.toBase58());continue}let u=uo(c.pubkey,c.accountInfo,(o=c.accountInfo)==null?void 0:o.owner);r[c.pubkey.toString()]=Z(G({},u),{programId:((s=c.accountInfo)==null?void 0:s.owner)||so,feeConfig:(a=ao(u))!=null?a:void 0})}return r[fi.default.toBase58()]=r[le.toBase58()],r}import ct from"bn.js";var bi=9007199254740991;function Te(n){let e=ne("Raydium_parseBigNumberish");if(n instanceof ct)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new ct(n);e.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&e.logWithError(`BigNumberish number underflow: ${n}`),(n>=bi||n<=-bi)&&e.logWithError(`BigNumberish number overflow: ${n}`),new ct(String(n))):typeof n=="bigint"?new ct(n.toString()):(e.error(`invalid BigNumberish value: ${n}`),new ct(0))}import{PublicKey as co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yi}from"@solana/spl-token";var pn={chainId:101,address:co.default.toBase58(),programId:yi.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ee={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yi.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as yn}from"@solana/web3.js";import{PublicKey as j,SystemProgram as gi,SYSVAR_RENT_PUBKEY as lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mo}from"@solana/spl-token";function fn({pubkey:n,isSigner:e=!1,isWritable:t=!0}){return{pubkey:n,isWritable:t,isSigner:e}}var Zs=[fn({pubkey:mo,isWritable:!1}),fn({pubkey:gi.programId,isWritable:!1}),fn({pubkey:lo,isWritable:!1})];function bn({publicKey:n,transformSol:e}){let t=Pi(n.toString());if(t instanceof j)return e&&t.equals(lt)?le:t;if(e&&t.toString()===lt.toBase58())return le;if(typeof t=="string"){if(t===j.default.toBase58())return j.default;try{return new j(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pi(n){try{return new j(n)}catch{return n}}var po=new j("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),vt=new j("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Dt=new j("SysvarRent111111111111111111111111111111111"),Ys=new j("SysvarC1ock11111111111111111111111111111111"),ze=new j("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),js=new j("Sysvar1nstructions1111111111111111111111111"),wi=gi.programId,Qs=new j("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Js=new j("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$s=new j("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ea=new j("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ta=new j("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),na=new j("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ia=new j("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ra=new j("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),oa=new j("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),sa=new j("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),aa=new j("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new j("So11111111111111111111111111111111111111112"),lt=j.default;function ut(n){return bn({publicKey:n,transformSol:!0})}var gn=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===lt.toBase58()||e instanceof yn&<.equals(e)){this.decimals=Ee.decimals,this.symbol=Ee.symbol,this.name=Ee.name,this.mint=new yn(Ee.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?yn.default:bn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ve=gn;ve.WSOL=new gn(Z(G({},Ee),{mint:Ee.address}));var Pn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Wt=Pn;Wt.SOL=new Pn(pn);import fo from"toformat";var bo=fo,mt=bo;import _t from"big.js";import go from"bn.js";import Po from"decimal.js-light";var Vt=ne("module/fraction"),wn=mt(_t),dt=mt(Po),wo={[0]:dt.ROUND_DOWN,[1]:dt.ROUND_HALF_UP,[2]:dt.ROUND_UP},Ao={[0]:_t.roundDown,[1]:_t.roundHalfUp,[2]:_t.roundUp},Y=class{constructor(e,t=new go(1)){this.numerator=Te(e),this.denominator=Te(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let t=e instanceof Y?e:new Y(Te(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.add(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Y?e:new Y(Te(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.sub(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Y?e:new Y(Te(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(Te(e));return new Y(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||Vt.logWithError(`${e} is not an integer.`),e<=0&&Vt.logWithError(`${e} is not positive.`),dt.set({precision:e+1,rounding:wo[i]});let r=new dt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||Vt.logWithError(`${e} is not an integer.`),e<0&&Vt.logWithError(`${e} is negative.`),wn.DP=e,wn.RM=Ao[i]||1,new wn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import ko from"bn.js";var Ai=new Y(new ko(100)),pe=class extends Y{toSignificant(e=5,t,i){return this.mul(Ai).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Ai).toFixed(e,t,i)}};var Oa=ne("Raydium_price");function mn(n,e=1,t=[]){let i=[...n];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ko}from"@solana/spl-token";import{ComputeBudgetProgram as ki,Keypair as hi,PublicKey as To,Transaction as Bi,TransactionMessage as ho,VersionedTransaction as Ii}from"@solana/web3.js";var ie={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",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",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",FarmV4Withdraw:"FarmV4Withdraw",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",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";var Ti=ne("Raydium_txUtil"),xi=1644;function Gt(n){let e=[],t=[];return n.microLamports&&(e.push(ki.setComputeUnitPrice({microLamports:n.microLamports})),t.push(ie.SetComputeUnitPrice)),n.units&&(e.push(ki.setComputeUnitLimit({units:n.units})),t.push(ie.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ze(n,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=n.getLatestBlockhash)==null?void 0:i.call(n,{commitment:t})))==null?void 0:r.blockhash}async function Ut(n,e){return n.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);n.onSignature(e,o=>{if(clearTimeout(r),!o.err){t("");return}i(Object.assign(o.err,{txId:e}))},"confirmed")})}function Io(n,e){n.length<1&&Ti.logWithError(`no instructions provided: ${n.toString()}`),e.length<1&&Ti.logWithError(`no signers provided:, ${e.toString()}`);let t=new Bi;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...n);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<xi}catch{return!1}}function fe(n,e){let[t,i]=To.findProgramAddressSync(n,e);return{publicKey:t,nonce:i}}function pt({instructions:n,payer:e,signers:t}){return Io(n,[e,...t])}function ft({instructions:n,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=hi.generate().publicKey.toString()}){let o=new ho({payerKey:e,recentBlockhash:i,instructions:n}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ii(o).serialize()).toString("base64").length<xi}catch{return!1}}var xo=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n),Co=n=>{let e=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Ii&&(e=xo(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function _e(n){let e=[];return n.forEach(t=>{t instanceof Bi&&(t.recentBlockhash||(t.recentBlockhash=Bo.toBase58()),t.feePayer||(t.feePayer=hi.generate().publicKey)),e.push(Co(t))}),console.log("simulate tx string:",e),e}function de(n,e,t){return fe([n.toBuffer(),(t!=null?t:Ko).toBuffer(),e.toBuffer()],new So("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as E}from"@solana/web3.js";var fu=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),bu=new E("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),yu=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),gu=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Pu=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wu=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Au=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ku=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tu=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),hu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),No=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Lo=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ro=new E("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Bu=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Iu=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),xu=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Cu=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Su=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ku=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Nu=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),bt=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ci=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Lu=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Xt=new E("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ht=new E("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ru=new E("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Mu=new E("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ou=new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fu=new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Eu=new E("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vu=new E("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Du={OPEN_BOOK_PROGRAM:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new E("Ray1111111111111111111111111111111111111111"),AMM_V4:new E("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new E("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new E("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new E("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new E("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new E("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new E("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new E("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new E("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:E.default,Router:new E("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new E("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new E("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new E("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new E("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new E("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new E("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new E("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new E("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new E("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new E("Ray1111111111111111111111111111111111111111")};import Pe from"bn.js";var yt=1e4;function he(n,e,t,i){if(e===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let r=Z(G({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),o=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,s=new Pe(o.maximumFee.toString()),a=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(i)if(o.transferFeeBasisPoints===yt){let c=new Pe(o.maximumFee.toString());return{amount:n.add(c),fee:c,expirationTime:a}}else{let c=Tn(n.mul(new Pe(yt)),new Pe(yt-o.transferFeeBasisPoints)),u=new Pe(o.maximumFee.toString()),l=c.sub(n).gt(u)?n.add(u):c,m=Tn(l.mul(new Pe(o.transferFeeBasisPoints)),new Pe(yt)),d=m.gt(s)?s:m;return{amount:l,fee:d,expirationTime:a}}else{let c=Tn(n.mul(new Pe(o.transferFeeBasisPoints)),new Pe(yt)),u=c.gt(s)?s:c;return{amount:n,fee:u,expirationTime:a}}}function Tn(n,e){let{div:t,mod:i}=n.divmod(e);return i.gt(new Pe(0))?t.add(new Pe(1)):t}import{PublicKey as hn,AddressLookupTableAccount as Qe}from"@solana/web3.js";async function Bn({connection:n,address:e,cluster:t="mainnet"}){let i=await at(n,[...new Set(e.map(o=>o.toString()))].map(o=>new hn(o))),r={};for(let o=0;o<e.length;o++){let s=i[o],a=e[o];if(!s)continue;let c=new Qe({key:a,state:Qe.deserialize(s.data)});r[a.toString()]=c,t==="devnet"?je[a.toString()]=c:Ye[a.toString()]=c}return r}var Ye={},In=async n=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ye[e])return Ye;let t=new hn(e),i=await n.getAccountInfo(t);return i&&(Ye[e]=new Qe({key:t,state:Qe.deserialize(i.data)})),Ye},je={},xn=async n=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(je[e])return je;let t=new hn(e),i=await n.getAccountInfo(t);return i&&(je[e]=new Qe({key:t,state:Qe.deserialize(i.data)})),je};import{PublicKey as Je,sendAndConfirmTransaction as Cn,SystemProgram as Mo,Transaction as gt,TransactionMessage as Pt,VersionedTransaction as wt}from"@solana/web3.js";import Oo from"axios";var zt=2e3,Zt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}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 i;let e=(await Oo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=Gt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Mo.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Je(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(ie.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Je.default.toString())),this}async versionBuild({txVersion:e,extInfo:t}){return e===0?await this.buildV0(G({},t||{})):this.build(t)}build(e){var i;let t=new gt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=r||{},u=o!=null?o:await Ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=u,this.signers.length&&t.sign(...this.signers),_e([t]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await Cn(this.connection,t,this.signers.find(d=>d.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let m=await this.signAllTransactions([t]);if(this.signers.length)for(let d of m)try{d.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(m[0].serialize(),{skipPreflight:s}),signedTx:m[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var u;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),o=t.filter(l=>l.transaction.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:c,execute:async l=>{var P;let{sequentially:m,onTxUpdate:d,skipTxCount:p=0,recentBlockHash:f,skipPreflight:b=!0}=l||{},y=f!=null?f:await Ze(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(m){let w=[],T=0;for(let A of s){if(++T,T<=p)continue;let B=await Cn(this.connection,A,this.signers.find(h=>h.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});w.push(B)}return{txIds:w,signedTxs:s}}return{txIds:await await Promise.all(s.map(async w=>(w.recentBlockhash=y,await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:b})))),signedTxs:s}}if(this.signAllTransactions){let w=s.map((A,B)=>(A.recentBlockhash=y,a[B].length&&A.sign(...a[B]),A));_e(w);let T=await this.signAllTransactions(w);if(m){let A=0,B=[],h=async()=>{if(!T[A])return;let I=await this.connection.sendRawTransaction(T[A].serialize(),{skipPreflight:b});B.push({txId:I,status:"sent",signedTx:T[A]}),d==null||d([...B]),A++;let x=!1,N=null,L=null,S=R=>{N!==null&&clearInterval(N),L!==null&&this.connection.removeSignatureListener(L);let W=B.findIndex(q=>q.txId===I);if(W>-1){if(B[W].status==="error"||B[W].status==="success")return;B[W].status=R.err?"error":"success"}d==null||d([...B]),R.err||h()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var R;if(x){clearInterval(N);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(N),S({err:((R=W.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){x=!0,clearInterval(N),console.error("getTransaction timeout:",W,I)}},zt)),L=this.connection.onSignature(I,R=>{if(x){this.connection.removeSignatureListener(L);return}x=!0,S(R)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:B.map(I=>I.txId),signedTxs:T}}else{let A=[];for(let B=0;B<T.length;B+=1){let h=await this.connection.sendRawTransaction(T[B].serialize(),{skipPreflight:b});A.push(h)}return{txIds:A,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var b;let f=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:o}=f,s=Ae(f,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=G(G({},this.cluster==="devnet"?await xn(this.connection):await In(this.connection)),t),c=Array.from(new Set([...i,...this.lookupTableAddress])),u=[];for(let y of c)a[y]===void 0&&u.push(new Je(y));let l=await Bn({connection:this.connection,address:u});for(let[y,P]of Object.entries(l))a[y]=P;let m=r?Je.default.toBase58():o!=null?o:await Ze(this.connection,this.blockhashCommitment),d=new Pt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((b=this.owner)==null?void 0:b.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new wt(d);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var A;let{skipPreflight:P=!0,sendAndConfirm:w,notSendToRpc:T}=y||{};if(_e([p]),(A=this.owner)!=null&&A.isKeyPair){let B=await this.connection.sendTransaction(p,{skipPreflight:P});return w&&await Ut(this.connection,B),{txId:B,signedTx:p}}if(this.signAllTransactions){let B=await this.signAllTransactions([p]);if(this.signers.length)for(let h of B)try{h.sign(this.signers)}catch{}return{txId:T?"":await this.connection.sendTransaction(B[0],{skipPreflight:P}),signedTx:B[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var u;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),o=t.filter(l=>l.builder.instructions.length>0),s=[r,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.signer&&a.forEach(l=>{l.some(m=>m.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,m)=>{l.sign(a[m])}),{builder:this,transactions:s,signers:a,instructionTypes:c,buildProps:i,execute:async l=>{var b;let{sequentially:m,onTxUpdate:d,recentBlockHash:p,skipPreflight:f=!0}=l||{};if(p&&s.forEach(y=>y.message.recentBlockhash=p),_e(s),(b=this.owner)!=null&&b.isKeyPair){if(m){let y=[];for(let P of s){let w=await this.connection.sendTransaction(P,{skipPreflight:f});await Ut(this.connection,w),y.push(w)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:f}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(m){let P=0,w=[],T=async()=>{if(!y[P])return;let A=await this.connection.sendTransaction(y[P],{skipPreflight:f});w.push({txId:A,status:"sent",signedTx:y[P]}),d==null||d([...w]),P++;let B=!1,h=null,I=null,x=N=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let L=w.findIndex(S=>S.txId===A);if(L>-1){if(w[L].status==="error"||w[L].status==="success")return;w[L].status=N.err?"error":"success"}d==null||d([...w]),N.err||T()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var N;if(B){clearInterval(h);return}try{let L=await this.connection.getTransaction(A,{commitment:"confirmed",maxSupportedTransactionVersion:0});L&&(B=!0,clearInterval(h),x({err:((N=L.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",A))}catch(L){B=!0,clearInterval(h),console.error("getTransaction timeout:",L,A)}},zt)),I=this.connection.onSignature(A,N=>{if(B){this.connection.removeSignatureListener(I);return}B=!0,x(N)},"confirmed"),this.connection.getSignatureStatus(A)};return T(),{txIds:[],signedTxs:y}}else{let P=[];for(let w=0;w<y.length;w+=1){let T=await this.connection.sendTransaction(y[w],{skipPreflight:f});P.push(T)}return{txIds:P,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var d;let m=e||{},{splitIns:t=[],computeBudgetConfig:i}=m,r=Ae(m,["splitIns","computeBudgetConfig"]),o=i?Gt(i):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,f)=>Z(G({},p),{[f.publicKey.toBase58()]:f}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let f=[...u,p],b=i?[...o.instructions,...f]:f,P=[...new Set(f.map(w=>w.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(w=>new Je(w));if(p!==t[l]&&u.length<12&&(pt({instructions:b,payer:this.feePayer,signers:P})||pt({instructions:f,payer:this.feePayer,signers:P})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===t[l]?1:0,pt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:P})?a.push(new gt().add(...o.instructions,...u)):a.push(new gt().add(...u)),c.push(Array.from(new Set(u.map(w=>w.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(w=>s[w]).filter(w=>w!==void 0)),u=[p]}}),u.length>0){let f=[...new Set(u.map(b=>b.keys.filter(y=>y.isSigner).map(y=>y.pubkey.toString())).flat()).values()].map(b=>s[b]).filter(b=>b!==void 0);pt({instructions:i?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(b=>b.publicKey)})?a.push(new gt().add(...o.instructions,...u)):a.push(new gt().add(...u)),c.push(f)}return a.forEach(p=>p.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(p=>{p.some(f=>f.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var A;let{sequentially:f,onTxUpdate:b,skipTxCount:y=0,recentBlockHash:P,skipPreflight:w=!0}=p||{},T=P!=null?P:await Ze(this.connection,this.blockhashCommitment);if(a.forEach(async(B,h)=>{B.recentBlockhash=T,c[h].length&&B.sign(...c[h])}),_e(a),(A=this.owner)!=null&&A.isKeyPair){if(f){let B=0,h=[];for(let I of a){if(++B,B<=y){h.push("tx skipped");continue}let x=await Cn(this.connection,I,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:w});h.push(x)}return{txIds:h,signedTxs:a}}return{txIds:await Promise.all(a.map(async B=>await this.connection.sendRawTransaction(B.serialize(),{skipPreflight:w}))),signedTxs:a}}if(this.signAllTransactions){let B=await this.signAllTransactions(a.slice(y,a.length)),h=[...a.slice(0,y),...B];if(f){let I=0,x=[],N=async()=>{if(!h[I])return;I<y&&(x.push({txId:"",status:"success",signedTx:h[I]}),b==null||b([...x]),I++,N());let L=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:w});x.push({txId:L,status:"sent",signedTx:h[I]}),b==null||b([...x]),I++;let S=!1,R=null,W=null,q=v=>{R!==null&&clearInterval(R),W!==null&&this.connection.removeSignatureListener(W);let K=x.findIndex($=>$.txId===L);if(K>-1){if(x[K].status==="error"||x[K].status==="success")return;x[K].status=v.err?"error":"success"}b==null||b([...x]),v.err||N()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var v;if(S){clearInterval(R);return}try{let K=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});K&&(S=!0,clearInterval(R),q({err:((v=K.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",L))}catch(K){S=!0,clearInterval(R),console.error("getTransaction timeout:",K,L)}},zt)),W=this.connection.onSignature(L,v=>{if(S){this.connection.removeSignatureListener(W);return}S=!0,q(v)},"confirmed"),this.connection.getSignatureStatus(L)};return await N(),{txIds:x.map(L=>L.txId),signedTxs:h}}else{let I=[];for(let x=0;x<h.length;x+=1){let N=await this.connection.sendRawTransaction(h[x].serialize(),{skipPreflight:w});I.push(N)}return{txIds:I,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var T;let w=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:o=[]}=w,s=Ae(w,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=G(G({},this.cluster==="devnet"?await xn(this.connection):await In(this.connection)),r),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let A of c)a[A]===void 0&&u.push(new Je(A));let l=await Bn({connection:this.connection,address:u});for(let[A,B]of Object.entries(l))a[A]=B;let m=t?Gt(t):{instructions:[],instructionTypes:[]},d=await Ze(this.connection,this.blockhashCommitment),p=this.signers.reduce((A,B)=>Z(G({},A),{[B.publicKey.toBase58()]:B}),{}),f=[],b=[],y=[],P=0;if(this.allInstructions.forEach(A=>{let B=[...y,A],h=t?[...m.instructions,...B]:B;if(A!==i[P]&&y.length<12&&(ft({instructions:h,payer:this.feePayer,lookupTableAddressAccount:a})||ft({instructions:B,payer:this.feePayer,lookupTableAddressAccount:a})))y.push(A);else{if(y.length===0)throw Error("item ins too big");P+=A===i[P]?1:0;let I={};for(let x of[...new Set(c)])a[x]!==void 0&&(I[x]=a[x]);if(t&&ft({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let x=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));f.push(new wt(x))}else{let x=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));f.push(new wt(x))}b.push(Array.from(new Set(y.map(x=>x.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),y=[A]}}),y.length>0){let B=[...new Set(y.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>p[h]).filter(h=>h!==void 0);if(t&&ft({instructions:[...m.instructions,...y],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:d})){let h=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...m.instructions,...y]}).compileToV0Message(Object.values(a));f.push(new wt(h))}else{let h=new Pt({payerKey:this.feePayer,recentBlockhash:d,instructions:[...y]}).compileToV0Message(Object.values(a));f.push(new wt(h))}b.push(B)}return(T=this.owner)!=null&&T.signer&&b.forEach(A=>{A.some(B=>B.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),f.forEach((A,B)=>{A.sign(b[B])}),{builder:this,transactions:f,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async A=>{var L;let{sequentially:B,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:x,skipPreflight:N=!0}=A||{};if(f.map(async(S,R)=>{b[R].length&&S.sign(b[R]),x&&(S.message.recentBlockhash=x)}),_e(f),(L=this.owner)!=null&&L.isKeyPair){if(B){let S=0,R=[];for(let W of f){if(++S,S<=I){console.log("skip tx: ",S),R.push("tx skipped");continue}let q=await this.connection.sendTransaction(W,{skipPreflight:N});await Ut(this.connection,q),R.push(q)}return{txIds:R,signedTxs:f}}return{txIds:await Promise.all(f.map(async S=>await this.connection.sendTransaction(S,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let S=await this.signAllTransactions(f.slice(I,f.length)),R=[...f.slice(0,I),...S];if(B){let W=0,q=[],v=async()=>{if(!R[W])return;if(W<I){q.push({txId:"",status:"success",signedTx:R[W]}),h==null||h([...q]),W++,v();return}let K=await this.connection.sendTransaction(R[W],{skipPreflight:N});q.push({txId:K,status:"sent",signedTx:R[W]}),h==null||h([...q]),W++;let $=!1,ue=null,we=null,Zn=We=>{ue!==null&&clearInterval(ue),we!==null&&this.connection.removeSignatureListener(we);let Ie=q.findIndex(sr=>sr.txId===K);if(Ie>-1){if(q[Ie].status==="error"||q[Ie].status==="success")return;q[Ie].status=We.err?"error":"success"}h==null||h([...q]),We.err||v()};this.loopMultiTxStatus&&(ue=setInterval(async()=>{var We;if($){clearInterval(ue);return}try{let Ie=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ie&&($=!0,clearInterval(ue),Zn({err:((We=Ie.meta)==null?void 0:We.err)||null}),console.log("tx status from getTransaction:",K))}catch(Ie){$=!0,clearInterval(ue),console.error("getTransaction timeout:",Ie,K)}},zt)),we=this.connection.onSignature(K,We=>{if($){this.connection.removeSignatureListener(we);return}$=!0,Zn(We)},"confirmed"),this.connection.getSignatureStatus(K)};return v(),{txIds:[],signedTxs:R}}else{let W=[];for(let q=0;q<R.length;q+=1){let v=await this.connection.sendTransaction(R[q],{skipPreflight:N});W.push(v)}return{txIds:W,signedTxs:R}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as oc}from"@solana/web3.js";import ac from"bn.js";import Fo from"bn.js";var qe=new Fo(1e6);var Gc=ne("Raydium_amount"),Uc=mt(Eo);var kn=new Be(0),rl=new Be(1),ol=new Be(2),sl=new Be(3),al=new Be(5),vo=new Be(10),ul=new Be(100),cl=new Be(1e3),ll=new Be(1e4);function Sn(n,e,t){return n.mul(e).add(t).sub(new Be(1)).div(t)}function Yt(n,e,t){return n.mul(e).div(t)}import Ki from"bn.js";import jt from"bn.js";function Kn(n,e){if(e.isZero())throw Error("divisor is zero");return n.mod(e)}function Do(n,e){if(e.isZero())throw Error("rhs is zero");let t=n.div(e);return Kn(n,e).gt(At)&&(t=t.add(new jt(1))),[t,e]}var At=new jt(0),kt=class{static swapBaseInputWithoutFees(e,t,i){let r=e.mul(i),o=t.add(e);return r.div(o)}static swapBaseOutputWithoutFees(e,t,i){let r=t.mul(e),o=i.sub(e),[s]=Do(r,o);return s}static lpTokensToTradingTokens(e,t,i,r,o){let s=e.mul(i).div(t),a=e.mul(r).div(t);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return Kn(e.mul(i),t).gt(At)&&s.gt(At)&&(s=s.add(new jt(1))),Kn(e.mul(r),t).gt(At)&&a.gt(At)&&(a=a.add(new jt(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};import Wo from"bn.js";var me=class{static tradingFee(e,t){return Sn(e,t,qe)}static protocolFee(e,t){return Yt(e,t,qe)}static fundFee(e,t){return Yt(e,t,qe)}static creatorFee(e,t){return Sn(e,t,qe)}static splitCreatorFee(e,t,i){return Yt(e,i,t.add(i))}static calculatePreFeeAmount(e,t){if(t.isZero())return e;let i=e.mul(qe),r=qe.sub(t);return i.add(r).sub(new Wo(1)).div(r)}};var Tt=class{static validate_supply(e,t){if(e.isZero())throw Error("tokenAmount0 is zero");if(t.isZero())throw Error("tokenAmount1 is zero")}static swapBaseInput(e,t,i,r,o,s,a,c){let u=new Ki(0),l=me.tradingFee(e,r),m;c?(u=me.creatorFee(e,o),m=e.sub(l).sub(u)):m=e.sub(l);let d=me.protocolFee(l,s),p=me.protocolFee(l,a),f=kt.swapBaseInputWithoutFees(m,t,i),b;return c?b=f:(u=me.creatorFee(f,o),b=f.sub(u)),{newInputVaultAmount:t.add(m),newOutputVaultAmount:i.sub(f),inputAmount:e,outputAmount:b,tradeFee:l,protocolFee:d,fundFee:p,creatorFee:u}}static swapBaseOutput(e,t,i,r,o,s,a,c){let u,l=new Ki(0),m;if(c)m=e;else{let y=me.calculatePreFeeAmount(e,o);l=y.sub(e),m=y}let d=kt.swapBaseOutputWithoutFees(m,t,i),p;if(c){let y=me.calculatePreFeeAmount(d,r.add(o)),P=y.sub(d);l=me.splitCreatorFee(P,r,o),u=P.sub(l),p=y}else{let y=me.calculatePreFeeAmount(d,r);u=y.sub(d),p=y}let f=me.protocolFee(u,s),b=me.fundFee(u,a);return{newInputVaultAmount:t.add(d),newOutputVaultAmount:e.sub(m),inputAmount:p,outputAmount:e,tradeFee:u,protocolFee:f,fundFee:b,creatorFee:l}}};import J from"bn.js";var Nn=(...n)=>n.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),$e=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=ne(t)}createTxBuilder(e){return this.scope.checkOwner(),new Zt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Nn(e))}logInfo(...e){this.logger.info(Nn(e))}logAndCreateError(...e){let t=Nn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Zo}from"@solana/web3.js";import Mi,{isBN as Oi}from"bn.js";import{bits as Nl,BitStructure as Ll,blob as Vo,Blob as Rl,cstr as Ml,f32 as Ol,f32be as Fl,f64 as El,f64be as vl,greedy as Dl,Layout as _o,ns64 as Wl,ns64be as Vl,nu64 as _l,nu64be as ql,offset as Gl,s16 as Ul,s16be as Xl,s24 as Hl,s24be as zl,s32 as qo,s32be as Zl,s40 as Yl,s40be as jl,s48 as Ql,s48be as Jl,s8 as $l,seq as Go,struct as em,Structure as Uo,u16 as Xo,u16be as tm,u24 as nm,u24be as im,u32 as rm,u32be as om,u40 as sm,u40be as am,u48 as um,u48be as cm,u8 as Ho,UInt as zo,union as lm,Union as mm,unionLayoutDiscriminator as dm,utf8 as pm}from"@solana/buffer-layout";var Ln=_o,Ni=Uo;var Rn=zo;var Li=Ho,Ge=Xo;var Ce=qo;var Ri=Go;var oe=Vo;var et=class extends Ln{constructor(t,i,r){super(t,r);this.blob=oe(t),this.signed=i}decode(t,i=0){let r=new Mi(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new Mi(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}};function X(n){return new Rn(1,n)}function Se(n){return new Rn(4,n)}function C(n){return new et(8,!1,n)}function Q(n){return new et(16,!1,n)}function Fi(n){return new et(8,!0,n)}function Ei(n){return new et(16,!0,n)}var Qt=class extends Ln{constructor(t,i,r,o){super(t.span,o);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function _(n){return new Qt(oe(32),e=>new Zo(e),e=>e.toBuffer(),n)}function De(n){return new Qt(Li(),Yo,jo,n)}function Yo(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function jo(n){return n?1:0}var Mn=class extends Ni{decode(e,t){return super.decode(e,t)}};function U(n,e,t){return new Mn(n,e,t)}function H(n,e,t){let i,r=typeof e=="number"?e:Oi(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=Oi(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Ri(n,r,t)}var Cm=U([Se("mintAuthorityOption"),_("mintAuthority"),C("supply"),X("decimals"),X("isInitialized"),Se("freezeAuthorityOption"),_("freezeAuthority")]);import{PublicKey as Lm}from"@solana/web3.js";import{MintLayout as Mm,TOKEN_PROGRAM_ID as Fm}from"@solana/spl-token";var Ue=r=>{var o=r,{address:n,programId:e,decimals:t}=o,i=Ae(o,["address","programId","decimals"]);return G({chainId:101,address:ut(n).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)},tt=n=>n?Z(G({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:Z(G({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:Z(G({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;import{PublicKey as St,TransactionInstruction as Ne,Keypair as ks,SystemProgram as Gn}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as tn,TOKEN_2022_PROGRAM_ID as Un,TOKEN_PROGRAM_ID as Ke}from"@solana/spl-token";var Qo=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),zm=Buffer.from("amm_config","utf8"),Jo=Buffer.from("pool","utf8"),$o=Buffer.from("pool_lp_mint","utf8"),es=Buffer.from("pool_vault","utf8"),ts=Buffer.from("observation","utf8"),ns=Buffer.from("permission","utf8");function Jt(n){return fe([Qo],n)}function On(n,e,t,i){return fe([Jo,e.toBuffer(),t.toBuffer(),i.toBuffer()],n)}function is(n,e){return fe([$o,e.toBuffer()],n)}function vi(n,e,t){return fe([es,e.toBuffer(),t.toBuffer()],n)}function ht(n,e){return fe([ts,e.toBuffer()],n)}function Fn({poolId:n,programId:e,configId:t,mintA:i,mintB:r}){let o=Jt(e).publicKey,s=n||On(e,t,i,r).publicKey,a=is(e,s).publicKey,c=vi(e,s,i).publicKey,u=vi(e,s,r).publicKey,l=ht(e,s).publicKey;return{poolId:s,configId:t,authority:o,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var rs=Buffer.from("locked_liquidity","utf8");function Bt(n,e){return fe([rs,e.toBuffer()],n)}function Di(n,e){return fe([ns,e.toBuffer()],n)}import{PublicKey as Kf}from"@solana/web3.js";import Lf from"bn.js";import{AccountLayout as Ff,createAssociatedTokenAccountIdempotentInstruction as Ef,TOKEN_2022_PROGRAM_ID as vf,TOKEN_PROGRAM_ID as Df}from"@solana/spl-token";import{Keypair as tf,PublicKey as nf,SystemProgram as of,TransactionInstruction as sf}from"@solana/web3.js";import uf from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as mf,TOKEN_2022_PROGRAM_ID as df,TOKEN_PROGRAM_ID as pf}from"@solana/spl-token";import Fp from"bn.js";import be from"bn.js";var En=new be(0),Wi=new be(1),Vi=new be(-1),$t=new be(1).shln(64),_i=new be(1).shln(128),os=$t.sub(Wi);var ss=_i.subn(1),nt=-443636,It=-nt,vn=new be("4295048016"),Dn=new be("79226673521066979257578248091"),jm=new be("4295048017"),Qm=new be("79226673521066979257578248090");var as=new be(10).pow(new be(6));var Jm=new be("18446744073700000000");import kp from"bn.js";var od=Buffer.from("amm_config","utf8"),sd=Buffer.from("pool","utf8"),ad=Buffer.from("pool_vault","utf8"),ud=Buffer.from("pool_reward_vault","utf8"),cd=Buffer.from("position","utf8"),ld=Buffer.from("tick_array","utf8"),md=Buffer.from("operation","utf8"),dd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),pd=Buffer.from("observation","utf8");function Wn(n){return fe([Buffer.from("metadata","utf8"),ze.toBuffer(),n.toBuffer()],ze)}var fd=Buffer.from("locked_position","utf8");var bd=Buffer.from("support_mint","utf8");import{PublicKey as Zd}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as jd}from"@solana/spl-token";import Jd from"bn.js";import Pd from"bn.js";var qn=14;var en=60;var ms=U([oe(8),X("bump"),Ge("index"),_(""),Se("protocolFeeRate"),Se("tradeFeeRate"),Ge("tickSpacing"),H(C(),8,"")]),ds=U([Se("blockTimestamp"),Fi("tickCumulative"),H(C(),4)]),ji=U([oe(8),De("initialized"),C("recentEpoch"),Ge("observationIndex"),_("poolId"),H(ds,100,"observations"),H(C(),4)]),ps=U([X("rewardState"),C("openTime"),C("endTime"),C("lastUpdateTime"),Q("emissionsPerSecondX64"),C("rewardTotalEmissioned"),C("rewardClaimed"),_("tokenMint"),_("tokenVault"),_("creator"),Q("rewardGrowthGlobalX64")]),zi=U([oe(8),X("bump"),_("ammConfig"),_("creator"),_("mintA"),_("mintB"),_("vaultA"),_("vaultB"),_("observationId"),X("mintDecimalsA"),X("mintDecimalsB"),Ge("tickSpacing"),Q("liquidity"),Q("sqrtPriceX64"),Ce("tickCurrent"),Se(),Q("feeGrowthGlobalX64A"),Q("feeGrowthGlobalX64B"),C("protocolFeesTokenA"),C("protocolFeesTokenB"),Q("swapInAmountTokenA"),Q("swapOutAmountTokenB"),Q("swapInAmountTokenB"),Q("swapOutAmountTokenA"),X("status"),H(X(),7,""),H(ps,3,"rewardInfos"),H(C(),16,"tickArrayBitmap"),C("totalFeesTokenA"),C("totalFeesClaimedTokenA"),C("totalFeesTokenB"),C("totalFeesClaimedTokenB"),C("fundFeesTokenA"),C("fundFeesTokenB"),C("startTime"),H(C(),15*4-3,"padding")]),fs=U([Q("growthInsideLastX64"),C("rewardAmountOwed")]),Zi=U([oe(8),X("bump"),_("nftMint"),_("poolId"),Ce("tickLower"),Ce("tickUpper"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(fs,3,"rewardInfos"),H(C(),8,"")]),Xp=U([oe(8),X("bump"),_("poolId"),Ce("tickLowerIndex"),Ce("tickUpperIndex"),Q("liquidity"),Q("feeGrowthInsideLastX64A"),Q("feeGrowthInsideLastX64B"),C("tokenFeesOwedA"),C("tokenFeesOwedB"),H(Q(),3,"rewardGrowthInside"),H(C(),8,"")]),bs=U([Ce("tick"),Ei("liquidityNet"),Q("liquidityGross"),Q("feeGrowthOutsideX64A"),Q("feeGrowthOutsideX64B"),H(Q(),3,"rewardGrowthsOutsideX64"),H(Se(),13,"")]),Ui=U([oe(8),_("poolId"),Ce("startTickIndex"),H(bs,en,"ticks"),X("initializedTickCount"),H(X(),115,"")]),ys=U([oe(329),H(_(),100,"whitelistMints")]),ls=U([oe(8),_("poolId"),H(H(C(),8),qn,"positiveTickArrayBitmap"),H(H(C(),8),qn,"negativeTickArrayBitmap")]),Hp=U([C(),X("bump"),_("owner"),_("poolId"),_("positionId"),_("nftAccount"),H(C(),8)]),gs=U([oe(8),X("bump"),_("lockOwner"),_("poolId"),_("positionId"),_("nftAccount"),_("lockNftMint"),C("recentEpoch"),H(C(),8)]);ji.span;var Tf=ne("Raydium_Clmm");var Ts=ne("Raydium_cpmm"),Le={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],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132])};function Qi(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f,b,y,P,w,T){let A=U([C("amountMaxA"),C("amountMaxB"),C("openTime")]),B=On(n,t,o,s).publicKey,h=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!r.equals(B),isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:wi,isSigner:!1,isWritable:!1},{pubkey:Dt,isSigner:!1,isWritable:!1}],I=Buffer.alloc(A.span);return A.encode({amountMaxA:P,amountMaxB:w,openTime:T},I),new Ne({keys:h,programId:n,data:Buffer.from([...Le.initialize,...I])})}function Ji(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f){let b=U([C("lpAmount"),C("amountMaxA"),C("amountMaxB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,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:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],P=Buffer.alloc(b.span);return Ts.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:p.toString(),amountMaxB:f.toString()}),b.encode({lpAmount:d,amountMaxA:p,amountMaxB:f},P),new Ne({keys:y,programId:n,data:Buffer.from([...Le.deposit,...P])})}function $i(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f){let b=U([C("lpAmount"),C("amountMinA"),C("amountMinB")]),y=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,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:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:vt,isSigner:!1,isWritable:!1}],P=Buffer.alloc(b.span);return b.encode({lpAmount:d,amountMinA:p,amountMinB:f},P),new Ne({keys:y,programId:n,data:Buffer.from([...Le.withdraw,...P])})}function er(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f,b){let y=U([C("amountIn"),C("amounOutMin")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],w=Buffer.alloc(y.span);return y.encode({amountIn:f,amounOutMin:b},w),new Ne({keys:P,programId:n,data:Buffer.from([...Le.swapBaseInput,...w])})}function tr(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f,b){let y=U([C("amountInMax"),C("amountOut")]),P=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],w=Buffer.alloc(y.span);return y.encode({amountInMax:f,amountOut:b},w),new Ne({keys:P,programId:n,data:Buffer.from([...Le.swapBaseOutput,...w])})}async function nr(n){var y;let{ownerInfo:e,poolInfo:t,poolKeys:i,feeNftOwner:r,getEphemeralSigners:o}=n,s=[],[a,c]=[new St(t.id),new St(t.lpMint.address)],u;if(o)u=new St((await o(1))[0]);else{let P=ks.generate();s.push(P),u=P.publicKey}let{publicKey:l}=de(r,u,Ke),{publicKey:m}=Wn(u),{publicKey:d}=Bt(n.lockProgram,u),{publicKey:p}=de(e.wallet,c,Ke),{publicKey:f}=de(n.lockAuthProgram,c,Ke),b=hs({programId:n.lockProgram,auth:n.lockAuthProgram,payer:e.feePayer,liquidityOwner:e.wallet,nftOwner:r,nftMint:u,nftAccount:l,poolId:a,lockPda:d,mintLp:c,userLpVault:p,lockLpVault:f,poolVaultA:new St(i.vault.A),poolVaultB:new St(i.vault.B),metadataAccount:m,lpAmount:n.lpAmount,withMetadata:(y=n.withMetadata)!=null?y:!0});return{address:{nftMint:u,nftAccount:l,metadataAccount:m,lockPda:d,userLpVault:p,lockLpVault:f},instructions:[b],signers:s,instructionTypes:[ie.CpmmLockLp],lookupTableAddress:[]}}function hs({programId:n,auth:e,payer:t,liquidityOwner:i,nftOwner:r,nftMint:o,nftAccount:s,poolId:a,lockPda:c,mintLp:u,userLpVault:l,lockLpVault:m,poolVaultA:d,poolVaultB:p,metadataAccount:f,lpAmount:b,withMetadata:y}){let P=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:Dt,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:ze,isSigner:!1,isWritable:!1}],w=U([C("lpAmount"),De("withMetadata")]),T=Buffer.alloc(w.span);w.encode({lpAmount:b,withMetadata:y},T);let A=Buffer.from([...Le.lockCpLiquidity,...T]);return new Ne({keys:P,programId:n,data:A})}function Xn({programId:n,nftOwner:e,auth:t,nftAccount:i,lockPda:r,poolId:o,mintLp:s,userVaultA:a,userVaultB:c,poolVaultA:u,poolVaultB:l,mintA:m,mintB:d,lockLpVault:p,lpFeeAmount:f,cpmmProgram:b,cpmmAuthProgram:y}){let P=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:b!=null?b:bt,isSigner:!1,isWritable:!1},{pubkey:y!=null?y:Ci,isSigner:!1,isWritable:!1},{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:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:Un,isSigner:!1,isWritable:!1},{pubkey:vt,isSigner:!1,isWritable:!1}],w=U([C("lpFeeAmount")]),T=Buffer.alloc(w.span);w.encode({lpFeeAmount:f},T);let A=Buffer.from([...Le.collectCpFee,...T]);return new Ne({keys:P,programId:n,data:A})}function Hn(n,e,t,i,r,o,s,a,c,u,l,m,d){let p=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1}];return new Ne({keys:p,programId:n,data:Le.collectCreatorFee})}function ir(n,e,t,i,r,o,s,a,c,u,l,m,d,p,f,b,y,P,w,T,A,B,h){let I=U([C("amountA"),C("amountB"),C("openTime"),X("feeOn")]),x=[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:P,isSigner:!1,isWritable:!0},{pubkey:w,isSigner:!1,isWritable:!0},{pubkey:Ke,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:tn,isSigner:!1,isWritable:!1},{pubkey:Gn.programId,isSigner:!1,isWritable:!1}],N=Buffer.alloc(I.span);return I.encode({amountA:T,amountB:A,openTime:B,feeOn:h},N),new Ne({keys:x,programId:n,data:Buffer.from([...Le.initializeWithPermission,...N])})}var rr=U([oe(8),X("bump"),De("disableCreatePool"),Ge("index"),C("tradeFeeRate"),C("protocolFeeRate"),C("fundFeeRate"),C("createPoolFee"),_("protocolOwner"),_("fundOwner"),C("creatorFeeRate"),H(C(),15)]),or=U([oe(8),_("configId"),_("poolCreator"),_("vaultA"),_("vaultB"),_("mintLp"),_("mintA"),_("mintB"),_("mintProgramA"),_("mintProgramB"),_("observationId"),X("bump"),X("status"),X("lpDecimals"),X("mintDecimalA"),X("mintDecimalB"),C("lpAmount"),C("protocolFeesMintA"),C("protocolFeesMintB"),C("fundFeesMintA"),C("fundFeesMintB"),C("openTime"),C("epoch"),X("feeOn"),De("enableCreatorFee"),H(X(),6),C("creatorFeesMintA"),C("creatorFeesMintB"),H(C(),28)]),Lb=U([oe(8),_("configId"),H(C(),30)]);var zn=class extends $e{constructor(e){super(e)}async load(){this.checkDisabled()}async getCpmmPoolKeys(e){return(await this.scope.api.fetchPoolKeysById({idList:[e]}))[0]}async getRpcPoolInfo(e,t){return(await this.getRpcPoolInfos([e],t))[e]}async getRpcPoolInfos(e,t){let i=await Ve(this.scope.connection,e.map(m=>({pubkey:new g(m)}))),r={},o=new Set,s=[];for(let m=0;m<e.length;m++){let d=i[m];if(d.accountInfo===null)throw Error("fetch pool info error: "+String(e[m]));let p=or.decode(d.accountInfo.data);r[String(e[m])]=Z(G({},p),{programId:d.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(t){let m=[...o],d=await Ve(this.scope.connection,m.map(p=>({pubkey:new g(p)})));for(let p=0;p<m.length;p++){let f=d[p].accountInfo;if(f===null)throw Error("fetch pool config error: "+m[p]);a[m[p]]=rr.decode(f.data)}}let c={},u=await Ve(this.scope.connection,s.map(m=>({pubkey:new g(m)})));for(let m=0;m<s.length;m++){let d=u[m].accountInfo;if(d===null)throw Error("fetch vault info error: "+s[m]);c[String(s[m])]=new J(Bs.decode(d.data).amount.toString())}let l={};for(let[m,d]of Object.entries(r)){let p=c[d.vaultA.toString()].sub(d.protocolFeesMintA).sub(d.fundFeesMintA).sub(d.creatorFeesMintA),f=c[d.vaultB.toString()].sub(d.protocolFeesMintB).sub(d.fundFeesMintB).sub(d.creatorFeesMintB);l[m]=Z(G({},d),{baseReserve:p,quoteReserve:f,vaultAAmount:c[d.vaultA.toString()],vaultBAmount:c[d.vaultB.toString()],configInfo:a[d.configId.toString()],poolPrice:new te(f.toString()).div(new te(10).pow(d.mintDecimalB)).div(new te(p.toString()).div(new te(10).pow(d.mintDecimalA)))})}return l}toComputePoolInfos({pools:e,mintInfos:t}){return Object.keys(e).reduce((i,r)=>{var c,u,l,m;let o=e[r],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return Z(G({},i),{[r]:Z(G({},o),{id:new g(r),configInfo:o.configInfo,version:7,authority:Jt(o.programId).publicKey,mintA:Ue({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(c=t[s])!=null&&c.feeConfig?tt((u=t[s])==null?void 0:u.feeConfig):void 0}}),mintB:Ue({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(l=t[a])!=null&&l.feeConfig?tt((m=t[a])==null?void 0:m.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(e){let t=await this.getRpcPoolInfo(e,!0),i=await dn({connection:this.scope.connection,mints:[t.mintA,t.mintB]}),r=Ue({address:t.mintA.toBase58(),decimals:t.mintDecimalA,programId:t.mintProgramA.toBase58(),extensions:{feeConfig:i[t.mintA.toBase58()].feeConfig?tt(i[t.mintA.toBase58()].feeConfig):void 0}}),o=Ue({address:t.mintB.toBase58(),decimals:t.mintDecimalB,programId:t.mintProgramB.toBase58(),extensions:{feeConfig:i[t.mintB.toBase58()].feeConfig?tt(i[t.mintB.toBase58()].feeConfig):void 0}}),s=Ue({address:t.mintLp.toBase58(),decimals:t.lpDecimals,programId:ae.toBase58()}),a={id:t.configId.toBase58(),index:t.configInfo.index,protocolFeeRate:t.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:t.configInfo.tradeFeeRate.toNumber(),fundFeeRate:t.configInfo.fundFeeRate.toNumber(),createPoolFee:t.configInfo.createPoolFee.toString()},c={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:t.programId.toBase58(),id:e,type:"Standard",lpMint:s,lpPrice:0,lpAmount:t.lpAmount.toNumber(),config:a,mintA:r,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:t.poolPrice.toNumber(),mintAmountA:new te(t.vaultAAmount.toString()).div(10**r.decimals).toNumber(),mintAmountB:new te(t.vaultBAmount.toString()).div(10**o.decimals).toNumber(),feeRate:t.configInfo.tradeFeeRate.toNumber(),openTime:t.openTime.toString(),tvl:0,burnPercent:0,day:c,week:c,month:c,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:t.programId.toBase58(),id:e,mintA:r,mintB:o,openTime:t.openTime.toString(),vault:{A:t.vaultA.toBase58(),B:t.vaultB.toBase58()},authority:Jt(t.programId).publicKey.toBase58(),mintLp:s,config:a,observationId:ht(t.programId,new g(e)).publicKey.toBase58()},rpcData:t}}async createPool(f){var b=f,{poolId:e,programId:t,poolFeeAccount:i,startTime:r,ownerInfo:o,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d}=b,p=Ae(b,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer"]);var K,$,ue;let y=o.feePayer||((K=this.scope.owner)==null?void 0:K.publicKey),P=new J(new g(p.mintA.address).toBuffer()).lte(new J(new g(p.mintB.address).toBuffer())),[w,T]=P?[p.mintA,p.mintB]:[p.mintB,p.mintA],[A,B]=P?[p.mintAAmount,p.mintBAmount]:[p.mintBAmount,p.mintAAmount],h=o.useSOLBalance&&w.address===it.toBase58(),I=o.useSOLBalance&&T.address===it.toBase58(),[x,N]=[new g(w.address),new g(T.address)],L=this.createTxBuilder(d),{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({mint:x,tokenProgram:w.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:y,amount:A}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:s,checkCreateATAOwner:a});L.addInstruction(R||{});let{account:W,instructionParams:q}=await this.scope.account.getOrCreateTokenAccount({mint:new g(T.address),tokenProgram:T.programId,owner:this.scope.ownerPubKey,createInfo:I?{payer:y,amount:B}:void 0,notUseTokenAccount:I,skipCloseAccount:!I,associatedOnly:I?!1:s,checkCreateATAOwner:a});if(L.addInstruction(q||{}),S===void 0||W===void 0)throw Error("you don't has some token account");let v=Fn({poolId:e,programId:t,configId:new g(u.id),mintA:x,mintB:N});return L.addInstruction({instructions:[Qi(t,this.scope.ownerPubKey,new g(u.id),v.authority,v.poolId,x,N,v.lpMint,S,W,de(this.scope.ownerPubKey,v.lpMint).publicKey,v.vaultA,v.vaultB,i,new g(($=w.programId)!=null?$:ae),new g((ue=T.programId)!=null?ue:ae),v.observationId,A,B,r)],instructionTypes:[ie.CpmmCreatePool]}),L.addCustomComputeBudget(l),L.addTipInstruction(m),L.versionBuild({txVersion:c,extInfo:{address:Z(G({},v),{mintA:w,mintB:T,programId:t,poolFeeAccount:i,feeConfig:u})}})}async addLiquidity(e){let{poolInfo:t,poolKeys:i,inputAmount:r,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:c,txTipConfig:u,config:l,txVersion:m,feePayer:d}=e;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:p}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:b}=G({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},l),y=a?void 0:await this.getRpcPoolInfo(t.id),{liquidity:P,inputAmountFee:w,anotherAmount:T}=a||this.computePairAmount({poolInfo:Z(G({},t),{lpAmount:new te(y.lpAmount.toString()).div(10**t.lpMint.decimals).toNumber()}),baseReserve:y.baseReserve,quoteReserve:y.quoteReserve,slippage:new pe(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new te(r.toString()).div(10**(o?t.mintA.decimals:t.mintB.decimals))}),A=T.amount,B=t.mintA.address===it.toString(),h=t.mintB.address===it.toString(),I=this.createTxBuilder(d),[x,N]=[new g(t.mintA.address),new g(t.mintB.address)],{account:L,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),owner:this.scope.ownerPubKey,createInfo:B||(o?r:A).isZero()?{payer:this.scope.ownerPubKey,amount:o?r:A}:void 0,skipCloseAccount:!B,notUseTokenAccount:B,associatedOnly:!1,checkCreateATAOwner:b});I.addInstruction(S||{});let{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),owner:this.scope.ownerPubKey,createInfo:h||(o?A:r).isZero()?{payer:this.scope.ownerPubKey,amount:o?A:r}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:b});I.addInstruction(W||{}),!L&&!R&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",p.tokenAccounts);let q=await p.getCreatedTokenAccount({mint:new g(t.lpMint.address)}),we=await p.handleTokenAccount({side:"out",amount:0,mint:new g(t.lpMint.address),tokenAccount:q,bypassAssociatedCheck:f,checkCreateATAOwner:b}),{tokenAccount:v}=we,K=Ae(we,["tokenAccount"]);I.addInstruction(K);let $=i!=null?i:await this.getCpmmPoolKeys(t.id),ue=new pe(new J(1)).sub(s);return I.addInstruction({instructions:[Ji(new g(t.programId),this.scope.ownerPubKey,new g($.authority),new g(t.id),v,L,R,new g($.vault.A),new g($.vault.B),x,N,new g(t.lpMint.address),a?a==null?void 0:a.liquidity:ue.mul(P).quotient,o?w.amount:A,o?A:w.amount)],instructionTypes:[ie.CpmmAddLiquidity],lookupTableAddress:$.lookupTableAccount?[$.lookupTableAccount]:[]}),I.addCustomComputeBudget(c),I.addTipInstruction(u),I.versionBuild({txVersion:m})}async withdrawLiquidity(e){var K,$;let{poolInfo:t,poolKeys:i,lpAmount:r,slippage:o,computeBudgetConfig:s,txTipConfig:a,txVersion:c,feePayer:u,closeWsol:l=!0}=e;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let m=new pe(new J(1)).sub(o),d=await this.getRpcPoolInfo(t.id),[p,f]=[m.mul(r.mul(d.baseReserve).div(d.lpAmount)).quotient,m.mul(r.mul(d.quoteReserve).div(d.lpAmount)).quotient],b=await this.scope.fetchEpochInfo(),[y,P]=[he(p,t.mintA.extensions.feeConfig,b,!1),he(f,t.mintB.extensions.feeConfig,b,!1)],{account:w}=this.scope,T=this.createTxBuilder(u),[A,B]=[new g(t.mintA.address),new g(t.mintB.address)],h=A.equals(le),I=B.equals(le),x,N,{account:L,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(h&&l),associatedOnly:!h,checkCreateATAOwner:!1});x=L,S&&T.addInstruction(S);let{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),notUseTokenAccount:I,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(I&&l),associatedOnly:!I,checkCreateATAOwner:!1});N=R,W&&T.addInstruction(W),(!x||!N)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",w.tokenAccounts);let q=await w.getCreatedTokenAccount({mint:new g(t.lpMint.address)});q||this.logAndCreateError("cannot found lp token account","tokenAccounts",w.tokenAccounts);let v=i!=null?i:await this.getCpmmPoolKeys(t.id);return T.addInstruction({instructions:[$i(new g(t.programId),this.scope.ownerPubKey,new g(v.authority),new g(t.id),q,x,N,new g(v.vault.A),new g(v.vault.B),A,B,new g(t.lpMint.address),r,p.sub((K=y.fee)!=null?K:new J(0)),f.sub(($=P.fee)!=null?$:new J(0)))],instructionTypes:[ie.CpmmWithdrawLiquidity],lookupTableAddress:v.lookupTableAccount?[v.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.addTipInstruction(a),T.versionBuild({txVersion:c})}async swap(e){var S,R,W,q,v,K;let{poolInfo:t,poolKeys:i,baseIn:r,fixedOut:o,inputAmount:s,swapResult:a,slippage:c=0,config:u,computeBudgetConfig:l,txTipConfig:m,txVersion:d,feePayer:p}=e,{bypassAssociatedCheck:f,checkCreateATAOwner:b,associatedOnly:y}=G({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),P=this.createTxBuilder(p),[w,T]=[new g(t.mintA.address),new g(t.mintB.address)];o?a.inputAmount=a.inputAmount.mul(new J((1+c)*1e4)).div(new J(1e4)):a.outputAmount=a.outputAmount.mul(new J((1-c)*1e4)).div(new J(1e4));let A=t.mintA.address===le.toBase58(),B=t.mintB.address===le.toBase58(),{account:h,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:new g((S=t.mintA.programId)!=null?S:ae),owner:this.scope.ownerPubKey,createInfo:A||!r?{payer:this.scope.ownerPubKey,amount:r?a.inputAmount:0}:void 0,notUseTokenAccount:A,skipCloseAccount:!A,associatedOnly:A?!1:y,checkCreateATAOwner:b});I&&P.addInstruction(I);let{account:x,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:new g((R=t.mintB.programId)!=null?R:ae),owner:this.scope.ownerPubKey,createInfo:B||r?{payer:this.scope.ownerPubKey,amount:r?0:a.inputAmount}:void 0,notUseTokenAccount:B,skipCloseAccount:!B,associatedOnly:B?!1:y,checkCreateATAOwner:b});N&&P.addInstruction(N),(!h||!x)&&this.logAndCreateError("user do not have token account",{mintA:t.mintA.symbol||t.mintA.address,mintB:t.mintB.symbol||t.mintB.address,mintATokenAcc:h,mintBTokenAcc:x,mintAUseSOLBalance:A,mintBUseSOLBalance:B,associatedOnly:y});let L=i!=null?i:await this.getCpmmPoolKeys(t.id);return P.addInstruction({instructions:[o?tr(new g(t.programId),this.scope.ownerPubKey,new g(L.authority),new g(L.config.id),new g(t.id),r?h:x,r?x:h,new g(L.vault[r?"A":"B"]),new g(L.vault[r?"B":"A"]),new g((v=t[r?"mintA":"mintB"].programId)!=null?v:ae),new g((K=t[r?"mintB":"mintA"].programId)!=null?K:ae),r?w:T,r?T:w,ht(new g(t.programId),new g(t.id)).publicKey,a.inputAmount,a.outputAmount):er(new g(t.programId),this.scope.ownerPubKey,new g(L.authority),new g(L.config.id),new g(t.id),r?h:x,r?x:h,new g(L.vault[r?"A":"B"]),new g(L.vault[r?"B":"A"]),new g((W=t[r?"mintA":"mintB"].programId)!=null?W:ae),new g((q=t[r?"mintB":"mintA"].programId)!=null?q:ae),r?w:T,r?T:w,ht(new g(t.programId),new g(t.id)).publicKey,s,a.outputAmount)],instructionTypes:[o?ie.CpmmSwapBaseOut:ie.ClmmSwapBaseIn]}),P.addCustomComputeBudget(l),P.addTipInstruction(m),P.versionBuild({txVersion:d})}async lockLp(e){var d,p,f,b,y;let{poolInfo:t,lpAmount:i,computeBudgetConfig:r,txTipConfig:o,txVersion:s,feePayer:a,feeNftOwner:c}=e;i.isZero()&&this.logAndCreateError("lpAmount must greater than zero",{lpAmount:i.toString()});let u=this.createTxBuilder(a),l=(d=e.poolKeys)!=null?d:await this.getCpmmPoolKeys(t.id),m=await nr({poolInfo:t,poolKeys:l,ownerInfo:{wallet:this.scope.ownerPubKey,feePayer:(p=e.feePayer)!=null?p:this.scope.ownerPubKey},feeNftOwner:c!=null?c:this.scope.ownerPubKey,lockProgram:(f=e.programId)!=null?f:Xt,lockAuthProgram:(b=e.authProgram)!=null?b:Ht,lpAmount:i,withMetadata:(y=e.withMetadata)!=null?y:!0,getEphemeralSigners:e.getEphemeralSigners});return u.addInstruction(m),u.addCustomComputeBudget(r),u.addTipInstruction(o),u.versionBuild({txVersion:s,extInfo:m.address})}async harvestLockLp(e){var R;let{poolInfo:t,lpFeeAmount:i,nftMint:r,programId:o=Xt,authProgram:s=Ht,cpmmProgram:a,computeBudgetConfig:c,txTipConfig:u,txVersion:l,closeWsol:m=!0}=e;i.isZero()&&this.logAndCreateError("lpFeeAmount must greater than zero",{lpAmount:i.toString()});let d=e.feePayer||this.scope.ownerPubKey,p=this.createTxBuilder(d),[f,b]=[new g(t.mintA.address),new g(t.mintB.address)],y=f.equals(le),P=b.equals(le),w,T,{account:A,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintA.programId,mint:new g(t.mintA.address),notUseTokenAccount:y,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(y&&m),associatedOnly:!y,checkCreateATAOwner:!1});w=A,B&&p.addInstruction(B);let{account:h,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:t.mintB.programId,mint:new g(t.mintB.address),notUseTokenAccount:P,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!(P&&m),associatedOnly:!P,checkCreateATAOwner:!1});T=h,I&&p.addInstruction(I),(!w||!T)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:w,tokenAccountB:T});let x=(R=e.poolKeys)!=null?R:await this.getCpmmPoolKeys(t.id),{publicKey:N}=de(d,r,ae),{publicKey:L}=Bt(o,r),{publicKey:S}=de(s,new g(t.lpMint.address),ae);return p.addInstruction({instructions:[Xn({programId:o,nftOwner:this.scope.ownerPubKey,auth:s,nftMint:r,nftAccount:N,lockPda:L,poolId:new g(t.id),mintLp:new g(x.mintLp.address),userVaultA:w,userVaultB:T,poolVaultA:new g(x.vault.A),poolVaultB:new g(x.vault.B),mintA:f,mintB:b,lockLpVault:S,lpFeeAmount:i,cpmmProgram:a==null?void 0:a.programId,cpmmAuthProgram:a==null?void 0:a.authProgram})],instructionTypes:[ie.CpmmCollectLockFee]}),p.addCustomComputeBudget(c),p.addTipInstruction(u),p.versionBuild({txVersion:l})}async harvestMultiLockLp(e){var d;let{lockInfo:t,programId:i=Xt,authProgram:r=Ht,cpmmProgram:o,computeBudgetConfig:s,txVersion:a,closeWsol:c=!0}=e,u=e.feePayer||this.scope.ownerPubKey,l=this.createTxBuilder(u),m={};for(let p of t){let{poolInfo:f,lpFeeAmount:b,nftMint:y}=p;if(b.isZero())continue;let[P,w]=[new g(f.mintA.address),new g(f.mintB.address)],T=P.equals(le),A=w.equals(le),B=m[f.mintA.address],h=m[f.mintB.address];if(!B)if(T){let{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:f.mintA.programId,mint:new g(f.mintA.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});B=S,R&&l.addInstruction(R),m[f.mintA.address]=S}else{let S=new g(f.mintA.address);B=this.scope.account.getAssociatedTokenAccount(S,new g(f.mintA.programId)),l.addInstruction({instructions:[rt(this.scope.ownerPubKey,B,this.scope.ownerPubKey,S,new g(f.mintA.programId))]}),m[f.mintA.address]=B}if(!h)if(A){let{account:S,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:f.mintB.programId,mint:new g(f.mintB.address),notUseTokenAccount:!0,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!c,associatedOnly:!1,checkCreateATAOwner:!1});h=S,R&&l.addInstruction(R),m[f.mintB.address]=S}else{let S=new g(f.mintB.address);h=this.scope.account.getAssociatedTokenAccount(S,new g(f.mintB.programId)),l.addInstruction({instructions:[rt(this.scope.ownerPubKey,h,this.scope.ownerPubKey,S,new g(f.mintB.programId))]}),m[f.mintB.address]=h}(!B||!h)&&this.logAndCreateError("cannot found target token accounts",{tokenAccountA:B,tokenAccountB:h});let I=(d=p.poolKeys)!=null?d:await this.getCpmmPoolKeys(f.id),{publicKey:x}=de(u,y,ae),{publicKey:N}=Bt(i,y),{publicKey:L}=de(r,new g(f.lpMint.address),ae);l.addInstruction({instructions:[Xn({programId:i,nftOwner:this.scope.ownerPubKey,auth:r,nftMint:y,nftAccount:x,lockPda:N,poolId:new g(f.id),mintLp:new g(I.mintLp.address),userVaultA:B,userVaultB:h,poolVaultA:new g(I.vault.A),poolVaultB:new g(I.vault.B),mintA:P,mintB:w,lockLpVault:L,lpFeeAmount:b,cpmmProgram:o==null?void 0:o.programId,cpmmAuthProgram:o==null?void 0:o.authProgram})],instructionTypes:[ie.CpmmCollectLockFee]})}return a===0?l.sizeCheckBuildV0({computeBudgetConfig:s}):l.sizeCheckBuild({computeBudgetConfig:s})}async createPoolWithPermission(b){var y=b,{poolId:e,programId:t,poolFeeAccount:i,startTime:r,ownerInfo:o,associatedOnly:s=!1,checkCreateATAOwner:a=!1,txVersion:c,feeConfig:u,computeBudgetConfig:l,txTipConfig:m,feePayer:d,feeOn:p}=y,f=Ae(y,["poolId","programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","feeConfig","computeBudgetConfig","txTipConfig","feePayer","feeOn"]);var $,ue,we;console.log("***this method only available for wallet with permissions***");let P=o.feePayer||(($=this.scope.owner)==null?void 0:$.publicKey),w=new J(new g(f.mintA.address).toBuffer()).lte(new J(new g(f.mintB.address).toBuffer())),[T,A]=w?[f.mintA,f.mintB]:[f.mintB,f.mintA],[B,h]=w?[f.mintAAmount,f.mintBAmount]:[f.mintBAmount,f.mintAAmount],I=o.useSOLBalance&&T.address===it.toBase58(),x=o.useSOLBalance&&A.address===it.toBase58(),[N,L]=[new g(T.address),new g(A.address)],S=this.createTxBuilder(d),{account:R,instructionParams:W}=await this.scope.account.getOrCreateTokenAccount({mint:N,tokenProgram:T.programId,owner:this.scope.ownerPubKey,createInfo:I?{payer:P,amount:B}:void 0,notUseTokenAccount:I,skipCloseAccount:!I,associatedOnly:I?!1:s,checkCreateATAOwner:a});S.addInstruction(W||{});let{account:q,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new g(A.address),tokenProgram:A.programId,owner:this.scope.ownerPubKey,createInfo:x?{payer:P,amount:h}:void 0,notUseTokenAccount:x,skipCloseAccount:!x,associatedOnly:x?!1:s,checkCreateATAOwner:a});if(S.addInstruction(v||{}),R===void 0||q===void 0)throw Error("you don't has some token account");let K=Fn({poolId:e,programId:t,configId:new g(u.id),mintA:N,mintB:L});return S.addInstruction({instructions:[ir(t,this.scope.ownerPubKey,this.scope.ownerPubKey,new g(u.id),K.authority,K.poolId,N,L,K.lpMint,R,q,de(this.scope.ownerPubKey,K.lpMint).publicKey,K.vaultA,K.vaultB,i,new g((ue=T.programId)!=null?ue:ae),new g((we=A.programId)!=null?we:ae),K.observationId,Di(t,this.scope.ownerPubKey).publicKey,B,h,r,p)],instructionTypes:[ie.CpmmCreatePool]}),S.addCustomComputeBudget(l),S.addTipInstruction(m),S.versionBuild({txVersion:c,extInfo:{address:Z(G({},K),{mintA:T,mintB:A,programId:t,poolFeeAccount:i,feeConfig:u})}})}async collectCreatorFees({poolInfo:e,poolKeys:t,programId:i=bt,txVersion:r,computeBudgetConfig:o,txTipConfig:s,feePayer:a}){let c=a||this.scope.ownerPubKey,u=this.createTxBuilder(c),l=t!=null?t:await this.getCpmmPoolKeys(e.id),[m,d,p,f]=[new g(e.mintA.address),new g(e.mintB.address),new g(e.mintA.programId),new g(e.mintB.programId)],b=this.scope.account.getAssociatedTokenAccount(m,p),y=this.scope.account.getAssociatedTokenAccount(d,f);return u.addInstruction({instructions:[rt(this.scope.ownerPubKey,b,this.scope.ownerPubKey,m,new g(e.mintA.programId)),rt(this.scope.ownerPubKey,y,this.scope.ownerPubKey,d,new g(e.mintB.programId))]}),u.addInstruction({instructions:[Hn(i,this.scope.ownerPubKey,new g(l.authority),new g(l.id),new g(l.config.id),new g(l.vault.A),new g(l.vault.B),m,d,b,y,p,f)],instructionTypes:[]}),u.addCustomComputeBudget(o),u.addTipInstruction(s),u.versionBuild({txVersion:r})}async collectMultiCreatorFees({poolInfoList:e,programId:t=bt,txVersion:i,computeBudgetConfig:r,feePayer:o}){let s=o||this.scope.ownerPubKey,a=this.createTxBuilder(s),c={},u=await this.scope.api.fetchPoolKeysById({idList:e.map(l=>l.id)});for(let l of e){let m=u.find(w=>w.id===l.id)||await this.getCpmmPoolKeys(l.id),[d,p,f,b]=[new g(l.mintA.address),new g(l.mintB.address),new g(l.mintA.programId),new g(l.mintB.programId)],y=c[l.mintA.address]||this.scope.account.getAssociatedTokenAccount(d,f),P=c[l.mintB.address]||this.scope.account.getAssociatedTokenAccount(p,b);c[l.mintA.address]||a.addInstruction({instructions:[rt(this.scope.ownerPubKey,y,this.scope.ownerPubKey,d,f)]}),c[l.mintB.address]||a.addInstruction({instructions:[rt(this.scope.ownerPubKey,P,this.scope.ownerPubKey,p,b)]}),c[l.mintA.address]=y,c[l.mintB.address]=P,a.addInstruction({instructions:[Hn(t,this.scope.ownerPubKey,new g(m.authority),new g(m.id),new g(m.config.id),new g(m.vault.A),new g(m.vault.B),d,p,y,P,f,b)],instructionTypes:[]})}return i===0?a.sizeCheckBuildV0({computeBudgetConfig:r}):a.sizeCheckBuild({computeBudgetConfig:r})}computeSwapAmount({pool:e,amountIn:t,outputMint:i,slippage:r,swapBaseIn:o=!0}){let s=i.toString()===e.mintB.address,a=e.feeOn===0||e.feeOn===2,c=o?Tt.swapBaseInput(t,s?e.baseReserve:e.quoteReserve,s?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate,e.configInfo.creatorFeeRate,e.configInfo.protocolFeeRate,e.configInfo.fundFeeRate,a):Tt.swapBaseOutput(t,s?e.baseReserve:e.quoteReserve,s?e.quoteReserve:e.baseReserve,e.configInfo.tradeFeeRate,e.configInfo.creatorFeeRate,e.configInfo.protocolFeeRate,e.configInfo.fundFeeRate,a),u=new te(c.outputAmount.toString()).div(c.inputAmount.toString()),l=c.outputAmount.mul(new J((1-r)*1e4)).div(new J(1e4));return{allTrade:c.inputAmount.eq(t),amountIn:t,amountOut:c.outputAmount,minAmountOut:l,executionPrice:u,fee:c.tradeFee,priceImpact:e.poolPrice.sub(u).div(e.poolPrice)}}computePairAmount({poolInfo:e,baseReserve:t,quoteReserve:i,amount:r,slippage:o,epochInfo:s,baseIn:a}){var A,B,h,I,x,N,L,S,R;let c=1-Number(o.toSignificant())/100,u=new J(new te(r).mul(10**e[a?"mintA":"mintB"].decimals).mul(c).toFixed(0)),l=he(u,e[a?"mintA":"mintB"].extensions.feeConfig,s,!1),m=u.sub((A=l.fee)!=null?A:new J(0)),d=new J(new te(e.lpAmount).mul(10**e.lpMint.decimals).toFixed(0,te.ROUND_DOWN));this.logDebug("baseReserve:",t.toString(),"quoteReserve:",i.toString()),this.logDebug("tokenIn:",a?e.mintA.symbol:e.mintB.symbol,"amountIn:",u.toString(),"amountInFee:",(h=(B=l.fee)==null?void 0:B.toString())!=null?h:0,"anotherToken:",a?e.mintB.symbol:e.mintA.symbol,"slippage:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let f=m.mul(d).div(p==="base"?t:i),b={amount:kn,fee:void 0,expirationTime:void 0};if(!m.isZero()){let W=Is(f,t,i,d);this.logDebug("lpAmountData:",{amountA:W.amountA.toString(),amountB:W.amountB.toString()}),b=he(W[a?"amountB":"amountA"],e[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let y=new pe(new J(1)).add(o),P=new pe(new J(1)).sub(o),w=he(y.mul(b.amount.sub((I=b.fee)!=null?I:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0),T=he(P.mul(b.amount.sub((x=b.fee)!=null?x:new J(0))).quotient,e[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",b.amount.toString(),"anotherAmountFee:",(L=(N=b.fee)==null?void 0:N.toString())!=null?L:0,"maxAnotherAmount:",w.amount.toString(),"maxAnotherAmountFee:",(R=(S=w.fee)==null?void 0:S.toString())!=null?R:0),{inputAmountFee:l,anotherAmount:b,maxAnotherAmount:w,minAnotherAmount:T,liquidity:f}}};function Is(n,e,t,i){let r=n.mul(e).div(i);!r.isZero()&&!n.mul(e).mod(i).isZero()&&(r=r.add(new J(1)));let o=n.mul(t).div(i);return!o.isZero()&&!n.mul(t).mod(i).isZero()&&(o=o.add(new J(1))),{amountA:r,amountB:o}}export{zn as default};
|
|
2
2
|
//# sourceMappingURL=cpmm.mjs.map
|