@raydium-io/raydium-sdk-v2 0.1.44-alpha → 0.1.45-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api.d.ts +1 -1
- package/lib/api/index.d.ts +1 -1
- package/lib/api/type.d.ts +1 -1
- package/lib/common/accountInfo.d.ts +1 -1
- package/lib/common/bignumber.d.ts +1 -1
- package/lib/common/fractionUtil.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/transfer.d.ts +1 -1
- package/lib/common/txTool/txTool.d.ts +1 -1
- package/lib/common/txTool/txUtils.d.ts +1 -1
- package/lib/common/utility.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/module/amount.d.ts +1 -1
- package/lib/module/fraction.d.ts +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/percent.d.ts +1 -1
- package/lib/module/price.d.ts +1 -1
- package/lib/raydium/account/account.d.ts +3 -3
- package/lib/raydium/account/index.d.ts +1 -1
- package/lib/raydium/account/instruction.d.ts +1 -1
- package/lib/raydium/account/types.d.ts +1 -1
- package/lib/raydium/account/util.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +3 -3
- package/lib/raydium/clmm/index.d.ts +3 -3
- package/lib/raydium/clmm/instrument.d.ts +2 -2
- package/lib/raydium/clmm/layout.d.ts +1 -1
- package/lib/raydium/clmm/type.d.ts +2 -2
- package/lib/raydium/clmm/utils/math.d.ts +2 -2
- package/lib/raydium/clmm/utils/pool.d.ts +2 -2
- package/lib/raydium/clmm/utils/position.d.ts +2 -2
- package/lib/raydium/clmm/utils/tick.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
- package/lib/raydium/cpmm/cpmm.d.ts +3 -3
- package/lib/raydium/cpmm/cpmm.js +1 -1
- package/lib/raydium/cpmm/cpmm.js.map +1 -1
- package/lib/raydium/cpmm/cpmm.mjs +1 -1
- package/lib/raydium/cpmm/cpmm.mjs.map +1 -1
- package/lib/raydium/cpmm/index.d.ts +1 -1
- package/lib/raydium/cpmm/layout.d.ts +1 -1
- package/lib/raydium/cpmm/type.d.ts +2 -1
- package/lib/raydium/cpmm/type.js.map +1 -1
- package/lib/raydium/farm/config.d.ts +1 -1
- package/lib/raydium/farm/farm.d.ts +3 -3
- package/lib/raydium/farm/index.d.ts +1 -1
- package/lib/raydium/farm/instruction.d.ts +1 -1
- package/lib/raydium/farm/layout.d.ts +1 -1
- package/lib/raydium/farm/type.d.ts +1 -1
- package/lib/raydium/farm/util.d.ts +1 -1
- package/lib/raydium/ido/ido.d.ts +3 -3
- package/lib/raydium/ido/index.d.ts +3 -3
- package/lib/raydium/ido/instruction.d.ts +1 -1
- package/lib/raydium/ido/type.d.ts +1 -1
- package/lib/raydium/index.d.ts +3 -3
- package/lib/raydium/index.js +1 -1
- package/lib/raydium/index.js.map +1 -1
- package/lib/raydium/index.mjs +1 -1
- package/lib/raydium/index.mjs.map +1 -1
- package/lib/raydium/liquidity/index.d.ts +1 -1
- package/lib/raydium/liquidity/instruction.d.ts +1 -1
- package/lib/raydium/liquidity/layout.d.ts +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/createMarket.js.map +1 -1
- package/lib/raydium/marketV2/createMarket.mjs.map +1 -1
- package/lib/raydium/marketV2/index.d.ts +3 -3
- package/lib/raydium/marketV2/index.js.map +1 -1
- package/lib/raydium/marketV2/index.mjs.map +1 -1
- 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/index.js.map +1 -1
- package/lib/raydium/tradeV2/index.mjs.map +1 -1
- package/lib/raydium/tradeV2/instrument.d.ts +2 -2
- package/lib/raydium/tradeV2/trade.d.ts +3 -3
- package/lib/raydium/tradeV2/trade.js +1 -1
- package/lib/raydium/tradeV2/trade.js.map +1 -1
- package/lib/raydium/tradeV2/trade.mjs +1 -1
- package/lib/raydium/tradeV2/trade.mjs.map +1 -1
- 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-026a0a95.d.ts → raydium-15ed5dcf.d.ts} +3 -3
- package/lib/{type-c1771287.d.ts → type-b868e5e7.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/cpmm/cpmm.ts +2 -1
- package/src/raydium/cpmm/type.ts +1 -0
- package/src/raydium/marketV2/createMarket.ts +2 -2
- package/src/raydium/tradeV2/trade.ts +4 -4
- package/lib/{api-51b11f0d.d.ts → api-00b0713a.d.ts} +5 -5
package/lib/raydium/cpmm/cpmm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var or=Object.create;var Oe=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptor,ur=Object.getOwnPropertyDescriptors,cr=Object.getOwnPropertyNames,$e=Object.getOwnPropertySymbols,lr=Object.getPrototypeOf,At=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var nn=(t,n,e)=>n in t?Oe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,D=(t,n)=>{for(var e in n||(n={}))At.call(n,e)&&nn(t,e,n[e]);if($e)for(var e of $e(n))rn.call(n,e)&&nn(t,e,n[e]);return t},H=(t,n)=>sr(t,ur(n));var pe=(t,n)=>{var e={};for(var r in t)At.call(t,r)&&n.indexOf(r)<0&&(e[r]=t[r]);if(t!=null&&$e)for(var r of $e(t))n.indexOf(r)<0&&rn.call(t,r)&&(e[r]=t[r]);return e};var mr=(t,n)=>{for(var e in n)Oe(t,e,{get:n[e],enumerable:!0})},on=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of cr(n))!At.call(t,i)&&i!==e&&Oe(t,i,{get:()=>n[i],enumerable:!(r=ar(n,i))||r.enumerable});return t};var ee=(t,n,e)=>(e=t!=null?or(lr(t)):{},on(n||!t||!t.__esModule?Oe(e,"default",{value:t,enumerable:!0}):e,t)),fr=t=>on(Oe({},"__esModule",{value:!0}),t);var Fi={};mr(Fi,{default:()=>Tt});module.exports=fr(Fi);var C=require("@solana/web3.js"),ne=require("@solana/spl-token");var Dn=ee(require("big.js")),di=ee(require("bn.js"));var te=ee(require("bn.js"));var Ne=9e15,Ae=1e9,xt="0123456789abcdef",tt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",nt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Bt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ne,maxE:Ne,crypto:!1},cn,de,I=!0,it="[DecimalError] ",Te=it+"Invalid argument: ",ln=it+"Precision limit exceeded",mn=it+"crypto unavailable",fn="[object Decimal]",Y=Math.floor,z=Math.pow,pr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,dr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,gr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,pn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ue=1e7,S=7,hr=9007199254740991,br=tt.length-1,kt=nt.length-1,g={toStringTag:fn};g.absoluteValue=g.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),x(t)};g.ceil=function(){return x(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(t,n){var e,r=this,i=r.constructor;if(t=new i(t),n=new i(n),!t.s||!n.s)return new i(NaN);if(t.gt(n))throw Error(Te+n);return e=r.cmp(t),e<0?t:r.cmp(n)>0?n:new i(r)};g.comparedTo=g.cmp=function(t){var n,e,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,u=o.s,c=t.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==t.e)return o.e>t.e^u<0?1:-1;for(r=s.length,i=a.length,n=0,e=r<i?r:i;n<e;++n)if(s[n]!==a[n])return s[n]>a[n]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};g.cosine=g.cos=function(){var t,n,e=this,r=e.constructor;return e.d?e.d[0]?(t=r.precision,n=r.rounding,r.precision=t+Math.max(e.e,e.sd())+S,r.rounding=1,e=yr(r,yn(r,e)),r.precision=t,r.rounding=n,x(de==2||de==3?e.neg():e,t,n,!0)):new r(1):new r(NaN)};g.cubeRoot=g.cbrt=function(){var t,n,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(I=!1,o=m.s*z(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=Z(m.d),t=m.e,(o=(t-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=z(e,1/3),t=Y((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?e="5e"+t:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=W(c.plus(m).times(a),c.plus(u),s+2,1),Z(a.d).slice(0,s)===(e=Z(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(x(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(x(r,t+1,1),n=!r.times(r).times(r).eq(m));break}return I=!0,x(r,t,l.rounding,n)};g.decimalPlaces=g.dp=function(){var t,n=this.d,e=NaN;if(n){if(t=n.length-1,e=(t-Y(this.e/S))*S,t=n[t],t)for(;t%10==0;t/=10)e--;e<0&&(e=0)}return e};g.dividedBy=g.div=function(t){return W(this,new this.constructor(t))};g.dividedToIntegerBy=g.divToInt=function(t){var n=this,e=n.constructor;return x(W(n,new e(t),0,1,1),e.precision,e.rounding)};g.equals=g.eq=function(t){return this.cmp(t)===0};g.floor=function(){return x(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(t){return this.cmp(t)>0};g.greaterThanOrEqualTo=g.gte=function(t){var n=this.cmp(t);return n==1||n===0};g.hyperbolicCosine=g.cosh=function(){var t,n,e,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;e=s.precision,r=s.rounding,s.precision=e+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),n=(1/st(4,t)).toString()):(t=16,n="2.3283064365386962890625e-10"),o=Le(s,1,o.times(n),new s(1),!0);for(var u,c=t,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return x(o,s.precision=e,s.rounding=r,!0)};g.hyperbolicSine=g.sinh=function(){var t,n,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(n=o.precision,e=o.rounding,o.precision=n+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Le(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/st(5,t)),i=Le(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=n,o.rounding=e,x(i,n,e,!0)};g.hyperbolicTangent=g.tanh=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+7,r.rounding=1,W(e.sinh(),e.cosh(),r.precision=t,r.rounding=n)):new r(e.s)};g.inverseCosine=g.acos=function(){var t,n=this,e=n.constructor,r=n.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?n.isNeg()?ae(e,i,o):new e(0):new e(NaN):n.isZero()?ae(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,n=n.asin(),t=ae(e,i+4,o).times(.5),e.precision=i,e.rounding=o,t.minus(n))};g.inverseHyperbolicCosine=g.acosh=function(){var t,n,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(t=r.precision,n=r.rounding,r.precision=t+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,I=!1,e=e.times(e).minus(1).sqrt().plus(e),I=!0,r.precision=t,r.rounding=n,e.ln()):new r(e)};g.inverseHyperbolicSine=g.asinh=function(){var t,n,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,I=!1,e=e.times(e).plus(1).sqrt().plus(e),I=!0,r.precision=t,r.rounding=n,e.ln())};g.inverseHyperbolicTangent=g.atanh=function(){var t,n,e,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,n=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?x(new o(i),t,n,!0):(o.precision=e=r-i.e,i=W(i.plus(1),new o(1).minus(i),e+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=n,i.times(.5))):new o(NaN)};g.inverseSine=g.asin=function(){var t,n,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(n=i.abs().cmp(1),e=o.precision,r=o.rounding,n!==-1?n===0?(t=ae(o,e+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=e+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=e,o.rounding=r,i.times(2)))};g.inverseTangent=g.atan=function(){var t,n,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding;if(c.isFinite()){if(c.isZero())return new m(c);if(c.abs().eq(1)&&l+4<=kt)return s=ae(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=kt)return s=ae(m,l+4,f).times(.5),s.s=c.s,s}for(m.precision=a=l+10,m.rounding=1,e=Math.min(28,a/S+2|0),t=e;t;--t)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(I=!1,n=Math.ceil(a/S),r=1,u=c.times(c),s=new m(c),i=c;t!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),s=o.plus(i.div(r+=2)),s.d[n]!==void 0)for(t=n;s.d[t]===o.d[t]&&t--;);return e&&(s=s.times(2<<e-1)),I=!0,x(s,m.precision=l,m.rounding=f,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&Y(this.e/S)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(t){return this.cmp(t)<0};g.lessThanOrEqualTo=g.lte=function(t){return this.cmp(t)<1};g.logarithm=g.log=function(t){var n,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(t==null)t=new m(10),n=!0;else{if(t=new m(t),e=t.d,t.s<0||!e||!e[0]||t.eq(1))return new m(NaN);n=t.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new m(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(n)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(I=!1,a=l+p,s=Pe(c,a),r=n?rt(m,a+10):Pe(t,a),u=W(s,r,a,1),_e(u.d,i=l,f))do if(a+=10,s=Pe(c,a),r=n?rt(m,a+10):Pe(t,a),u=W(s,r,a,1),!o){+Z(u.d).slice(i+1,i+15)+1==1e14&&(u=x(u,l+1,0));break}while(_e(u.d,i+=10,f));return I=!0,x(u,l,f)};g.minus=g.sub=function(t){var n,e,r,i,o,s,a,u,c,m,l,f,p=this,h=p.constructor;if(t=new h(t),!p.d||!t.d)return!p.s||!t.s?t=new h(NaN):p.d?t.s=-t.s:t=new h(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(c=p.d,f=t.d,a=h.precision,u=h.rounding,!c[0]||!f[0]){if(f[0])t.s=-t.s;else if(c[0])t=new h(p);else return new h(u===3?-0:0);return I?x(t,a,u):t}if(e=Y(t.e/S),m=Y(p.e/S),c=c.slice(),o=m-e,o){for(l=o<0,l?(n=c,o=-o,s=f.length):(n=f,e=m,s=c.length),r=Math.max(Math.ceil(a/S),s)+2,o>r&&(o=r,n.length=1),n.reverse(),r=o;r--;)n.push(0);n.reverse()}else{for(r=c.length,s=f.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=f[r]){l=c[r]<f[r];break}o=0}for(l&&(n=c,c=f,f=n,t.s=-t.s),s=c.length,r=f.length-s;r>0;--r)c[s++]=0;for(r=f.length;r>o;){if(c[--r]<f[r]){for(i=r;i&&c[--i]===0;)c[i]=ue-1;--c[i],c[r]+=ue}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(t.d=c,t.e=ot(c,e),I?x(t,a,u):t):new h(u===3?-0:0)};g.modulo=g.mod=function(t){var n,e=this,r=e.constructor;return t=new r(t),!e.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||e.d&&!e.d[0]?x(new r(e),r.precision,r.rounding):(I=!1,r.modulo==9?(n=W(e,t.abs(),0,3,1),n.s*=t.s):n=W(e,t,0,r.modulo,1),n=n.times(t),I=!0,e.minus(n))};g.naturalExponential=g.exp=function(){return St(this)};g.naturalLogarithm=g.ln=function(){return Pe(this)};g.negated=g.neg=function(){var t=new this.constructor(this);return t.s=-t.s,x(t)};g.plus=g.add=function(t){var n,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(t=new f(t),!l.d||!t.d)return!l.s||!t.s?t=new f(NaN):l.d||(t=new f(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(c=l.d,m=t.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(t=new f(l)),I?x(t,a,u):t;if(o=Y(l.e/S),r=Y(t.e/S),c=c.slice(),i=o-r,i){for(i<0?(e=c,i=-i,s=m.length):(e=m,r=o,s=c.length),o=Math.ceil(a/S),s=o>s?o+1:s+1,i>s&&(i=s,e.length=1),e.reverse();i--;)e.push(0);e.reverse()}for(s=c.length,i=m.length,s-i<0&&(i=s,e=m,m=c,c=e),n=0;i;)n=(c[--i]=c[i]+m[i]+n)/ue|0,c[i]%=ue;for(n&&(c.unshift(n),++r),s=c.length;c[--s]==0;)c.pop();return t.d=c,t.e=ot(c,r),I?x(t,a,u):t};g.precision=g.sd=function(t){var n,e=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Te+t);return e.d?(n=dn(e.d),t&&e.e+1>n&&(n=e.e+1)):n=NaN,n};g.round=function(){var t=this,n=t.constructor;return x(new n(t),t.e+1,n.rounding)};g.sine=g.sin=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+Math.max(e.e,e.sd())+S,r.rounding=1,e=Pr(r,yn(r,e)),r.precision=t,r.rounding=n,x(de>2?e.neg():e,t,n,!0)):new r(NaN)};g.squareRoot=g.sqrt=function(){var t,n,e,r,i,o,s=this,a=s.d,u=s.e,c=s.s,m=s.constructor;if(c!==1||!a||!a[0])return new m(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(I=!1,c=Math.sqrt(+s),c==0||c==1/0?(n=Z(a),(n.length+u)%2==0&&(n+="0"),c=Math.sqrt(n),u=Y((u+1)/2)-(u<0||u%2),c==1/0?n="5e"+u:(n=c.toExponential(),n=n.slice(0,n.indexOf("e")+1)+u),r=new m(n)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(W(s,o,e+2,1)).times(.5),Z(o.d).slice(0,e)===(n=Z(r.d)).slice(0,e))if(n=n.slice(e-3,e+1),n=="9999"||!i&&n=="4999"){if(!i&&(x(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(x(r,u+1,1),t=!r.times(r).eq(s));break}return I=!0,x(r,u,m.rounding,t)};g.tangent=g.tan=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+10,r.rounding=1,e=e.sin(),e.s=1,e=W(e,new r(1).minus(e.times(e)).sqrt(),t+10,0),r.precision=t,r.rounding=n,x(de==2||de==4?e.neg():e,t,n,!0)):new r(NaN)};g.times=g.mul=function(t){var n,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!t.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?t.s/0:t.s*0);for(e=Y(m.e/S)+Y(t.e/S),u=f.length,c=p.length,u<c&&(o=f,f=p,p=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(n=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+n,o[i--]=a%ue|0,n=a/ue|0;o[i]=(o[i]+n)%ue|0}for(;!o[--s];)o.pop();return n?++e:o.shift(),t.d=o,t.e=ot(o,e),I?x(t,l.precision,l.rounding):t};g.toBinary=function(t,n){return It(this,2,t,n)};g.toDecimalPlaces=g.toDP=function(t,n){var e=this,r=e.constructor;return e=new r(e),t===void 0?e:(ie(t,0,Ae),n===void 0?n=r.rounding:ie(n,0,8),x(e,t+e.e+1,n))};g.toExponential=function(t,n){var e,r=this,i=r.constructor;return t===void 0?e=ce(r,!0):(ie(t,0,Ae),n===void 0?n=i.rounding:ie(n,0,8),r=x(new i(r),t+1,n),e=ce(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+e:e};g.toFixed=function(t,n){var e,r,i=this,o=i.constructor;return t===void 0?e=ce(i):(ie(t,0,Ae),n===void 0?n=o.rounding:ie(n,0,8),r=x(new o(i),t+i.e+1,n),e=ce(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};g.toFraction=function(t){var n,e,r,i,o,s,a,u,c,m,l,f,p=this,h=p.d,d=p.constructor;if(!h)return new d(p);if(c=e=new d(1),r=u=new d(0),n=new d(r),o=n.e=dn(h)-p.e-1,s=o%S,n.d[0]=z(10,s<0?S+s:s),t==null)t=o>0?n:c;else{if(a=new d(t),!a.isInt()||a.lt(c))throw Error(Te+a);t=a.gt(n)?o>0?n:c:a}for(I=!1,a=new d(Z(h)),m=d.precision,d.precision=o=h.length*S*2;l=W(a,n,0,1,1),i=e.plus(l.times(r)),i.cmp(t)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=n,n=a.minus(l.times(i)),a=i;return i=W(t.minus(e),r,0,1,1),u=u.plus(i.times(c)),e=e.plus(i.times(r)),u.s=c.s=p.s,f=W(c,r,o,1).minus(p).abs().cmp(W(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,I=!0,f};g.toHexadecimal=g.toHex=function(t,n){return It(this,16,t,n)};g.toNearest=function(t,n){var e=this,r=e.constructor;if(e=new r(e),t==null){if(!e.d)return e;t=new r(1),n=r.rounding}else{if(t=new r(t),n===void 0?n=r.rounding:ie(n,0,8),!e.d)return t.s?e:t;if(!t.d)return t.s&&(t.s=e.s),t}return t.d[0]?(I=!1,e=W(e,t,0,n,1).times(t),I=!0,x(e)):(t.s=e.s,e=t),e};g.toNumber=function(){return+this};g.toOctal=function(t,n){return It(this,8,t,n)};g.toPower=g.pow=function(t){var n,e,r,i,o,s,a=this,u=a.constructor,c=+(t=new u(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new u(z(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,t.eq(1))return x(a,r,o);if(n=Y(t.e/S),n>=t.d.length-1&&(e=c<0?-c:c)<=hr)return i=gn(u,a,e,r),t.s<0?new u(1).div(i):x(i,r,o);if(s=a.s,s<0){if(n<t.d.length-1)return new u(NaN);if((t.d[n]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=z(+a,c),n=e==0||!isFinite(e)?Y(c*(Math.log("0."+Z(a.d))/Math.LN10+a.e+1)):new u(e+"").e,n>u.maxE+1||n<u.minE-1?new u(n>0?s/0:0):(I=!1,u.rounding=a.s=1,e=Math.min(12,(n+"").length),i=St(t.times(Pe(a,r+e)),r),i.d&&(i=x(i,r+5,1),_e(i.d,r,o)&&(n=r+10,i=x(St(t.times(Pe(a,n+e)),n),n+5,1),+Z(i.d).slice(r+1,r+15)+1==1e14&&(i=x(i,r+1,0)))),i.s=s,I=!0,u.rounding=o,x(i,r,o))};g.toPrecision=function(t,n){var e,r=this,i=r.constructor;return t===void 0?e=ce(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(ie(t,1,Ae),n===void 0?n=i.rounding:ie(n,0,8),r=x(new i(r),t,n),e=ce(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+e:e};g.toSignificantDigits=g.toSD=function(t,n){var e=this,r=e.constructor;return t===void 0?(t=r.precision,n=r.rounding):(ie(t,1,Ae),n===void 0?n=r.rounding:ie(n,0,8)),x(new r(e),t,n)};g.toString=function(){var t=this,n=t.constructor,e=ce(t,t.e<=n.toExpNeg||t.e>=n.toExpPos);return t.isNeg()&&!t.isZero()?"-"+e:e};g.truncated=g.trunc=function(){return x(new this.constructor(this),this.e+1,1)};g.valueOf=g.toJSON=function(){var t=this,n=t.constructor,e=ce(t,t.e<=n.toExpNeg||t.e>=n.toExpPos);return t.isNeg()?"-"+e:e};function Z(t){var n,e,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,n=1;n<i;n++)r=t[n]+"",e=S-r.length,e&&(o+=we(e)),o+=r;s=t[n],r=s+"",e=S-r.length,e&&(o+=we(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function ie(t,n,e){if(t!==~~t||t<n||t>e)throw Error(Te+t)}function _e(t,n,e,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--n;return--n<0?(n+=S,i=0):(i=Math.ceil((n+1)/S),n%=S),o=z(10,S-n),a=t[i]%o|0,r==null?n<3?(n==0?a=a/100|0:n==1&&(a=a/10|0),s=e<4&&a==99999||e>3&&a==49999||a==5e4||a==0):s=(e<4&&a+1==o||e>3&&a+1==o/2)&&(t[i+1]/o/100|0)==z(10,n-2)-1||(a==o/2||a==0)&&(t[i+1]/o/100|0)==0:n<4?(n==0?a=a/1e3|0:n==1?a=a/100|0:n==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==z(10,n-3)-1,s}function et(t,n,e){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=n;for(i[0]+=xt.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>e-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/e|0,i[r]%=e)}return i.reverse()}function yr(t,n){var e,r,i;if(n.isZero())return n;r=n.d.length,r<32?(e=Math.ceil(r/3),i=(1/st(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),t.precision+=e,n=Le(t,1,n.times(i),new t(1));for(var o=e;o--;){var s=n.times(n);n=s.times(s).minus(s).times(8).plus(1)}return t.precision-=e,n}var W=function(){function t(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function n(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}function e(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,u){var c,m,l,f,p,h,d,T,P,y,b,w,k,A,K,N,M,v,E,G,$=r.constructor,re=r.s==i.s?1:-1,U=r.d,O=i.d;if(!U||!U[0]||!O||!O[0])return new $(!r.s||!i.s||(U?O&&U[0]==O[0]:!O)?NaN:U&&U[0]==0||!O?re*0:re/0);for(u?(p=1,m=r.e-i.e):(u=ue,p=S,m=Y(r.e/p)-Y(i.e/p)),E=O.length,M=U.length,P=new $(re),y=P.d=[],l=0;O[l]==(U[l]||0);l++);if(O[l]>(U[l]||0)&&m--,o==null?(A=o=$.precision,s=$.rounding):a?A=o+(r.e-i.e)+1:A=o,A<0)y.push(1),h=!0;else{if(A=A/p+2|0,l=0,E==1){for(f=0,O=O[0],A++;(l<M||f)&&A--;l++)K=f*u+(U[l]||0),y[l]=K/O|0,f=K%O|0;h=f||l<M}else{for(f=u/(O[0]+1)|0,f>1&&(O=t(O,f,u),U=t(U,f,u),E=O.length,M=U.length),N=E,b=U.slice(0,E),w=b.length;w<E;)b[w++]=0;G=O.slice(),G.unshift(0),v=O[0],O[1]>=u/2&&++v;do f=0,c=n(O,b,E,w),c<0?(k=b[0],E!=w&&(k=k*u+(b[1]||0)),f=k/v|0,f>1?(f>=u&&(f=u-1),d=t(O,f,u),T=d.length,w=b.length,c=n(d,b,T,w),c==1&&(f--,e(d,E<T?G:O,T,u))):(f==0&&(c=f=1),d=O.slice()),T=d.length,T<w&&d.unshift(0),e(b,d,w,u),c==-1&&(w=b.length,c=n(O,b,E,w),c<1&&(f++,e(b,E<w?G:O,w,u))),w=b.length):c===0&&(f++,b=[0]),y[l++]=f,c&&b[0]?b[w++]=U[N]||0:(b=[U[N]],w=1);while((N++<M||b[0]!==void 0)&&A--);h=b[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,cn=h;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,x(P,a?o+P.e+1:o,s,h)}return P}}();function x(t,n,e,r){var i,o,s,a,u,c,m,l,f,p=t.constructor;e:if(n!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=n-i,o<0)o+=S,s=n,m=l[f=0],u=m/z(10,i-s-1)%10|0;else if(f=Math.ceil((o+1)/S),a=l.length,f>=a)if(r){for(;a++<=f;)l.push(0);m=u=0,i=1,o%=S,s=o-S+1}else break e;else{for(m=a=l[f],i=1;a>=10;a/=10)i++;o%=S,s=o-S+i,u=s<0?0:m/z(10,i-s-1)%10|0}if(r=r||n<0||l[f+1]!==void 0||(s<0?m:m%z(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(t.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/z(10,i-s):0:l[f-1])%10&1||e==(t.s<0?8:7)),n<1||!l[0])return l.length=0,c?(n-=t.e+1,l[0]=z(10,(S-n%S)%S),t.e=-n||0):l[0]=t.e=0,t;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=z(10,S-o),l[f]=s>0?(m/z(10,i-s)%z(10,s)|0)*a:0),c)for(;;)if(f==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==ue&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=ue)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return I&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function ce(t,n,e){if(!t.isFinite())return bn(t);var r,i=t.e,o=Z(t.d),s=o.length;return n?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+we(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+we(-i-1)+o,e&&(r=e-s)>0&&(o+=we(r))):i>=s?(o+=we(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+we(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=we(r))),o}function ot(t,n){var e=t[0];for(n*=S;e>=10;e/=10)n++;return n}function rt(t,n,e){if(n>br)throw I=!0,e&&(t.precision=e),Error(ln);return x(new t(tt),n,1,!0)}function ae(t,n,e){if(n>kt)throw Error(ln);return x(new t(nt),n,e,!0)}function dn(t){var n=t.length-1,e=n*S+1;if(n=t[n],n){for(;n%10==0;n/=10)e--;for(n=t[0];n>=10;n/=10)e++}return e}function we(t){for(var n="";t--;)n+="0";return n}function gn(t,n,e,r){var i,o=new t(1),s=Math.ceil(r/S+4);for(I=!1;;){if(e%2&&(o=o.times(n),an(o.d,s)&&(i=!0)),e=Y(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}n=n.times(n),an(n.d,s)}return I=!0,o}function sn(t){return t.d[t.d.length-1]&1}function hn(t,n,e){for(var r,i=new t(n[0]),o=0;++o<n.length;)if(r=new t(n[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function St(t,n){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=t.constructor,p=f.rounding,h=f.precision;if(!t.d||!t.d[0]||t.e>17)return new f(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(n==null?(I=!1,u=h):u=n,a=new f(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(z(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=x(o.times(t),u,1),e=e.times(++m),a=s.plus(W(o,e,u,1)),Z(a.d).slice(0,u)===Z(s.d).slice(0,u)){for(i=l;i--;)s=x(s.times(s),u,1);if(n==null)if(c<3&&_e(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return x(s,f.precision=h,p,I=!0);else return f.precision=h,s}s=a}}function Pe(t,n){var e,r,i,o,s,a,u,c,m,l,f,p=1,h=10,d=t,T=d.d,P=d.constructor,y=P.rounding,b=P.precision;if(d.s<0||!T||!T[0]||!d.e&&T[0]==1&&T.length==1)return new P(T&&!T[0]?-1/0:d.s!=1?NaN:T?0:d);if(n==null?(I=!1,m=b):m=n,P.precision=m+=h,e=Z(T),r=e.charAt(0),Math.abs(o=d.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)d=d.times(t),e=Z(d.d),r=e.charAt(0),p++;o=d.e,r>1?(d=new P("0."+e),o++):d=new P(r+"."+e.slice(1))}else return c=rt(P,m+2,b).times(o+""),d=Pe(new P(r+"."+e.slice(1)),m-h).plus(c),P.precision=b,n==null?x(d,b,y,I=!0):d;for(l=d,u=s=d=W(d.minus(1),d.plus(1),m,1),f=x(d.times(d),m,1),i=3;;){if(s=x(s.times(f),m,1),c=u.plus(W(s,new P(i),m,1)),Z(c.d).slice(0,m)===Z(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(rt(P,m+2,b).times(o+""))),u=W(u,new P(p),m,1),n==null)if(_e(u.d,m-h,y,a))P.precision=m+=h,c=s=d=W(l.minus(1),l.plus(1),m,1),f=x(d.times(d),m,1),i=a=1;else return x(u,P.precision=b,y,I=!0);else return P.precision=b,u;u=c,i+=2}}function bn(t){return String(t.s*t.s/0)}function Ct(t,n){var e,r,i;for((e=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(e<0&&(e=r),e+=+n.slice(r+1),n=n.substring(0,r)):e<0&&(e=n.length),r=0;n.charCodeAt(r)===48;r++);for(i=n.length;n.charCodeAt(i-1)===48;--i);if(n=n.slice(r,i),n){if(i-=r,t.e=e=e-r-1,t.d=[],r=(e+1)%S,e<0&&(r+=S),r<i){for(r&&t.d.push(+n.slice(0,r)),i-=S;r<i;)t.d.push(+n.slice(r,r+=S));n=n.slice(r),r=S-n.length}else r-=i;for(;r--;)n+="0";t.d.push(+n),I&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function wr(t,n){var e,r,i,o,s,a,u,c,m;if(n.indexOf("_")>-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),pn.test(n))return Ct(t,n)}else if(n==="Infinity"||n==="NaN")return+n||(t.s=NaN),t.e=NaN,t.d=null,t;if(dr.test(n))e=16,n=n.toLowerCase();else if(pr.test(n))e=2;else if(gr.test(n))e=8;else throw Error(Te+n);for(o=n.search(/p/i),o>0?(u=+n.slice(o+1),n=n.substring(2,o)):n=n.slice(2),o=n.indexOf("."),s=o>=0,r=t.constructor,s&&(n=n.replace(".",""),a=n.length,o=a-o,i=gn(r,new r(e),o,o*2)),c=et(n,e,ue),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(t.s*0):(t.e=ot(c,m),t.d=c,I=!1,s&&(t=W(t,i,a*4)),u&&(t=t.times(Math.abs(u)<54?z(2,u):We.pow(2,u))),I=!0,t)}function Pr(t,n){var e,r=n.d.length;if(r<3)return n.isZero()?n:Le(t,2,n,n);e=1.4*Math.sqrt(r),e=e>16?16:e|0,n=n.times(1/st(5,e)),n=Le(t,2,n,n);for(var i,o=new t(5),s=new t(16),a=new t(20);e--;)i=n.times(n),n=n.times(o.plus(i.times(s.times(i).minus(a))));return n}function Le(t,n,e,r,i){var o,s,a,u,c=1,m=t.precision,l=Math.ceil(m/S);for(I=!1,u=e.times(e),a=new t(r);;){if(s=W(a.times(u),new t(n++*n++),m,1),a=i?r.plus(s):r.minus(s),r=W(s.times(u),new t(n++*n++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,c++}return I=!0,s.d.length=l+1,s}function st(t,n){for(var e=t;--n;)e*=t;return e}function yn(t,n){var e,r=n.s<0,i=ae(t,t.precision,1),o=i.times(.5);if(n=n.abs(),n.lte(o))return de=r?4:1,n;if(e=n.divToInt(i),e.isZero())de=r?3:2;else{if(n=n.minus(e.times(i)),n.lte(o))return de=sn(e)?r?2:3:r?4:1,n;de=sn(e)?r?1:4:r?3:2}return n.minus(i).abs()}function It(t,n,e,r){var i,o,s,a,u,c,m,l,f,p=t.constructor,h=e!==void 0;if(h?(ie(e,1,Ae),r===void 0?r=p.rounding:ie(r,0,8)):(e=p.precision,r=p.rounding),!t.isFinite())m=bn(t);else{for(m=ce(t),s=m.indexOf("."),h?(i=2,n==16?e=e*4-3:n==8&&(e=e*3-2)):i=n,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=et(ce(f),10,i),f.e=f.d.length),l=et(m,10,i),o=u=l.length;l[--u]==0;)l.pop();if(!l[0])m=h?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=W(t,f,e,r,0,i),l=t.d,o=t.e,c=cn),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(t.s<0?8:7)),l.length=e,c)for(;++l[--e]>i-1;)l[e]=0,e||(++o,l.unshift(1));for(u=l.length;!l[u-1];--u);for(s=0,m="";s<u;s++)m+=xt.charAt(l[s]);if(h){if(u>1)if(n==16||n==8){for(s=n==16?4:3,--u;u%s;u++)m+="0";for(l=et(m,i,n),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=xt.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>u)for(o-=u;o--;)m+="0";else o<u&&(m=m.slice(0,o)+"."+m.slice(o))}m=(n==16?"0x":n==2?"0b":n==8?"0o":"")+m}return t.s<0?"-"+m:m}function an(t,n){if(t.length>n)return t.length=n,!0}function Tr(t){return new this(t).abs()}function Ar(t){return new this(t).acos()}function xr(t){return new this(t).acosh()}function Br(t,n){return new this(t).plus(n)}function kr(t){return new this(t).asin()}function Sr(t){return new this(t).asinh()}function Cr(t){return new this(t).atan()}function Ir(t){return new this(t).atanh()}function Nr(t,n){t=new this(t),n=new this(n);var e,r=this.precision,i=this.rounding,o=r+4;return!t.s||!n.s?e=new this(NaN):!t.d&&!n.d?(e=ae(this,o,1).times(n.s>0?.25:.75),e.s=t.s):!n.d||t.isZero()?(e=n.s<0?ae(this,r,i):new this(0),e.s=t.s):!t.d||n.isZero()?(e=ae(this,o,1).times(.5),e.s=t.s):n.s<0?(this.precision=o,this.rounding=1,e=this.atan(W(t,n,o,1)),n=ae(this,o,1),this.precision=r,this.rounding=i,e=t.s<0?e.minus(n):e.plus(n)):e=this.atan(W(t,n,o,1)),e}function Lr(t){return new this(t).cbrt()}function Mr(t){return x(t=new this(t),t.e+1,2)}function Rr(t,n,e){return new this(t).clamp(n,e)}function Er(t){if(!t||typeof t!="object")throw Error(it+"Object expected");var n,e,r,i=t.defaults===!0,o=["precision",1,Ae,"rounding",0,8,"toExpNeg",-Ne,0,"toExpPos",0,Ne,"maxE",0,Ne,"minE",-Ne,0,"modulo",0,9];for(n=0;n<o.length;n+=3)if(e=o[n],i&&(this[e]=Bt[e]),(r=t[e])!==void 0)if(Y(r)===r&&r>=o[n+1]&&r<=o[n+2])this[e]=r;else throw Error(Te+e+": "+r);if(e="crypto",i&&(this[e]=Bt[e]),(r=t[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(mn);else this[e]=!1;else throw Error(Te+e+": "+r);return this}function Dr(t){return new this(t).cos()}function Kr(t){return new this(t).cosh()}function wn(t){var n,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,un(o)){c.s=o.s,I?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;I?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return Ct(c,o.toString())}else if(u!=="string")throw Error(Te+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),pn.test(o)?Ct(c,o):wr(c,o)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Er,i.clone=wn,i.isDecimal=un,i.abs=Tr,i.acos=Ar,i.acosh=xr,i.add=Br,i.asin=kr,i.asinh=Sr,i.atan=Cr,i.atanh=Ir,i.atan2=Nr,i.cbrt=Lr,i.ceil=Mr,i.clamp=Rr,i.cos=Dr,i.cosh=Kr,i.div=vr,i.exp=Fr,i.floor=Or,i.hypot=_r,i.ln=Wr,i.log=Vr,i.log10=Ur,i.log2=qr,i.max=Gr,i.min=Hr,i.mod=zr,i.mul=jr,i.pow=Zr,i.random=Yr,i.round=Jr,i.sign=Xr,i.sin=Qr,i.sinh=$r,i.sqrt=ei,i.sub=ti,i.sum=ni,i.tan=ri,i.tanh=ii,i.trunc=oi,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<r.length;)t.hasOwnProperty(e=r[n++])||(t[e]=this[e]);return i.config(t),i}function vr(t,n){return new this(t).div(n)}function Fr(t){return new this(t).exp()}function Or(t){return x(t=new this(t),t.e+1,3)}function _r(){var t,n,e=new this(0);for(I=!1,t=0;t<arguments.length;)if(n=new this(arguments[t++]),n.d)e.d&&(e=e.plus(n.times(n)));else{if(n.s)return I=!0,new this(1/0);e=n}return I=!0,e.sqrt()}function un(t){return t instanceof We||t&&t.toStringTag===fn||!1}function Wr(t){return new this(t).ln()}function Vr(t,n){return new this(t).log(n)}function qr(t){return new this(t).log(2)}function Ur(t){return new this(t).log(10)}function Gr(){return hn(this,arguments,"lt")}function Hr(){return hn(this,arguments,"gt")}function zr(t,n){return new this(t).mod(n)}function jr(t,n){return new this(t).mul(n)}function Zr(t,n){return new this(t).pow(n)}function Yr(t){var n,e,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:ie(t,1,Ae),r=Math.ceil(t/S),this.crypto)if(crypto.getRandomValues)for(n=crypto.getRandomValues(new Uint32Array(r));o<r;)i=n[o],i>=429e7?n[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(r*=4);o<r;)i=n[o]+(n[o+1]<<8)+(n[o+2]<<16)+((n[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(n,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(mn);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=S,r&&t&&(i=z(10,S-t),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)e=0,a=[0];else{for(e=-1;a[0]===0;e-=S)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<S&&(e-=S-r)}return s.e=e,s.d=a,s}function Jr(t){return x(t=new this(t),t.e+1,this.rounding)}function Xr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Qr(t){return new this(t).sin()}function $r(t){return new this(t).sinh()}function ei(t){return new this(t).sqrt()}function ti(t,n){return new this(t).sub(n)}function ni(){var t=0,n=arguments,e=new this(n[t]);for(I=!1;e.s&&++t<n.length;)e=e.plus(n[t]);return I=!0,x(e,this.precision,this.rounding)}function ri(t){return new this(t).tan()}function ii(t){return new this(t).tanh()}function oi(t){return x(t=new this(t),t.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var We=g.constructor=wn(Bt);tt=new We(tt);nt=new We(nt);var oe=We;var ut=require("@solana/web3.js");var Pn=require("@solana/spl-token"),F=require("@solana/web3.js");function Nt({pubkey:t,isSigner:n=!1,isWritable:e=!0}){return{pubkey:t,isWritable:e,isSigner:n}}var Vi=[Nt({pubkey:Pn.TOKEN_PROGRAM_ID,isWritable:!1}),Nt({pubkey:F.SystemProgram.programId,isWritable:!1}),Nt({pubkey:F.SYSVAR_RENT_PUBKEY,isWritable:!1})];function Lt({publicKey:t,transformSol:n}){let e=Tn(t.toString());if(e instanceof F.PublicKey)return n&&e.equals(Ve)?ge:e;if(n&&e.toString()===Ve.toBase58())return ge;if(typeof e=="string"){if(e===F.PublicKey.default.toBase58())return F.PublicKey.default;try{return new F.PublicKey(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Tn(t){try{return new F.PublicKey(t)}catch{return t}}var qi=new F.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),An=new F.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),xn=new F.PublicKey("SysvarRent111111111111111111111111111111111"),Ui=new F.PublicKey("SysvarC1ock11111111111111111111111111111111"),Gi=new F.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new F.PublicKey("Sysvar1nstructions1111111111111111111111111"),Bn=F.SystemProgram.programId,zi=new F.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ji=new F.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Zi=new F.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Yi=new F.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ji=new F.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xi=new F.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qi=new F.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$i=new F.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),eo=new F.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),to=new F.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),no=new F.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new F.PublicKey("So11111111111111111111111111111111111111112"),Ve=F.PublicKey.default;function at(t){return Lt({publicKey:t,transformSol:!0})}var kn=require("@solana/web3.js"),Mt=require("@solana/spl-token"),Rt={chainId:101,address:kn.PublicKey.default.toBase58(),programId:Mt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},xe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Mt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Et=class{constructor({mint:n,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(n===Ve.toBase58()||n instanceof ut.PublicKey&&Ve.equals(n)){this.decimals=xe.decimals,this.symbol=xe.symbol,this.name=xe.name,this.mint=new ut.PublicKey(xe.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||n.toString().substring(0,6),this.name=i||n.toString().substring(0,6),this.mint=o?ut.PublicKey.default:Lt({publicKey:n}),this.isToken2022=s}equals(n){return this===n?!0:this.mint.equals(n.mint)}},Ce=Et;Ce.WSOL=new Et(H(D({},xe),{mint:xe.address}));var qe=require("lodash");var Dt=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let e=n.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},Sn={},si={};function J(t){let n=(0,qe.get)(Sn,t);if(!n){let e=(0,qe.get)(si,t);n=new Dt({name:t,logLevel:e}),(0,qe.set)(Sn,t,n)}return n}var Ge=ee(require("big.js")),In=ee(require("bn.js")),Nn=ee(require("decimal.js-light"));var Cn=ee(require("toformat")),ai=Cn.default,Ue=ai;var ct=J("module/fraction"),Kt=Ue(Ge.default),He=Ue(Nn.default),ui={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},ci={[0]:Ge.default.roundDown,[1]:Ge.default.roundHalfUp,[2]:Ge.default.roundUp},q=class{constructor(n,e=new In.default(1)){this.numerator=Be(n),this.denominator=Be(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(n){let e=n instanceof q?n:new q(Be(n));return this.denominator.eq(e.denominator)?new q(this.numerator.add(e.numerator),this.denominator):new q(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(n){let e=n instanceof q?n:new q(Be(n));return this.denominator.eq(e.denominator)?new q(this.numerator.sub(e.numerator),this.denominator):new q(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(n){let e=n instanceof q?n:new q(Be(n));return new q(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(n){let e=n instanceof q?n:new q(Be(n));return new q(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(n,e={groupSeparator:""},r=1){Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<=0&&ct.logWithError(`${n} is not positive.`),He.set({precision:n+1,rounding:ui[r]});let i=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return i.toFormat(i.decimalPlaces(),e)}toFixed(n,e={groupSeparator:""},r=1){return Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<0&&ct.logWithError(`${n} is negative.`),Kt.DP=n,Kt.RM=ci[r]||1,new Kt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,e)}isZero(){return this.numerator.isZero()}};var xo=J("Raydium_price");var vt=class{constructor({decimals:n,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=n,this.symbol=e,this.name=r}equals(n){return this===n}},lt=vt;lt.SOL=new vt(Rt);var Mn=ee(require("bn.js"));var Ln=new q(new Mn.default(100)),le=class extends q{toSignificant(n=5,e,r){return this.mul(Ln).toSignificant(n,e,r)}toFixed(n=2,e,r){return this.mul(Ln).toFixed(n,e,r)}};var mi=require("@solana/web3.js"),fi=ee(require("bn.js"));var Ft=new te.default(0),Xo=new te.default(1),Qo=new te.default(2),$o=new te.default(3),es=new te.default(5),pi=new te.default(10),ts=new te.default(100),ns=new te.default(1e3),rs=new te.default(1e4),En=9007199254740991;function Be(t){let n=J("Raydium_parseBigNumberish");if(t instanceof te.default)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new te.default(t);n.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&n.logWithError(`BigNumberish number underflow: ${t}`),(t>=En||t<=-En)&&n.logWithError(`BigNumberish number overflow: ${t}`),new te.default(String(t))):typeof t=="bigint"?new te.default(t.toString()):(n.error(`invalid BigNumberish value: ${t}`),new te.default(0))}var ps=J("Raydium_amount"),ds=Ue(Dn.default);var On=require("@solana/web3.js");var X=require("@solana/web3.js"),vn=require("@solana/spl-token");var he={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Kn=J("Raydium_txUtil"),Fn=1644;function mt(t){let n=[],e=[];return t.microLamports&&(n.push(X.ComputeBudgetProgram.setComputeUnitPrice({microLamports:t.microLamports})),e.push(he.SetComputeUnitPrice)),t.units&&(n.push(X.ComputeBudgetProgram.setComputeUnitLimit({units:t.units})),e.push(he.SetComputeUnitLimit)),{instructions:n,instructionTypes:e}}async function Me(t,n){var r,i;let e=n!=null?n:"confirmed";try{return((i=await((r=t.getLatestBlockhash)==null?void 0:r.call(t,{commitment:e})))==null?void 0:i.blockhash)||(await t.getRecentBlockhash(e)).blockhash}catch{return(await t.getRecentBlockhash(e)).blockhash}}function gi(t,n){t.length<1&&Kn.logWithError(`no instructions provided: ${t.toString()}`),n.length<1&&Kn.logWithError(`no signers provided:, ${n.toString()}`);let e=new X.Transaction;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=n[0],e.add(...t);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Fn}catch{return!1}}function be(t,n){let[e,r]=X.PublicKey.findProgramAddressSync(t,n);return{publicKey:e,nonce:r}}function ze({instructions:t,payer:n,signers:e}){return gi(t,[n,...e])}function je({instructions:t,payer:n,lookupTableAddressAccount:e,recentBlockhash:r=X.Keypair.generate().publicKey.toString()}){let o=new X.TransactionMessage({payerKey:n,recentBlockhash:r,instructions:t}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new X.VersionedTransaction(o).serialize()).toString("base64").length<Fn}catch{return!1}}var hi=t=>Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength):Buffer.from(t);function Ie(t){let n=[];return t.forEach(e=>{e instanceof X.Transaction&&(e.recentBlockhash||(e.recentBlockhash=vn.TOKEN_PROGRAM_ID.toBase58()),e.feePayer||(e.feePayer=X.Keypair.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof X.VersionedTransaction&&(r=hi(r));let i=r.toString("base64");n.push(i)}),console.log("simulate tx string:",n),n}var _n=require("@solana/spl-token");function Wn(t,n,e){return be([t.toBuffer(),(e!=null?e:_n.TOKEN_PROGRAM_ID).toBuffer(),n.toBuffer()],new On.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var Wt=ee(require("bn.js")),_t=new Wt.default(1e6);function bi(t,n,e){return t.mul(n).add(e).sub(new Wt.default(1)).div(e)}function Vn(t,n,e){return t.mul(n).div(e)}var ft=class{static tradingFee(n,e){return bi(n,e,_t)}static protocolFee(n,e){return Vn(n,e,_t)}static fundFee(n,e){return Vn(n,e,_t)}};var Ee=ee(require("bn.js"));function pt(t,n){if(n.isZero())throw Error("divisor is zero");return t.mod(n)}function yi(t,n){if(n.isZero())throw Error("rhs is zero");let e=t.div(n);if(e.isZero())throw Error("quotient is zero");let r=pt(t,n);if(r.gt(Re)){e=e.add(new Ee.default(1));let i=t.div(e);r=pt(t,e),r.gt(Re)&&(i=i.add(new Ee.default(1)))}return[e,n]}var Re=new Ee.default(0),dt=class{static swapWithoutFees(n,e,r){let i=e.mul(r),o=e.add(n),[s,a]=yi(i,o),u=a.sub(e),c=r.sub(s);if(c.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:u,destinationAmountSwapped:c}}static lpTokensToTradingTokens(n,e,r,i,o){let s=n.mul(r).div(e),a=n.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return pt(n.mul(r),e).gt(Re)&&s.gt(Re)&&(s=s.add(new Ee.default(1))),pt(n.mul(i),e).gt(Re)&&a.gt(Re)&&(a=a.add(new Ee.default(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var gt=class{static validate_supply(n,e){if(n.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(n,e,r,i){let o=ft.tradingFee(n,i),s=n.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=dt.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};var _=require("@solana/web3.js"),Un=ee(require("axios"));var Se=require("@solana/web3.js");var Gt=require("@solana/web3.js"),ke=require("@solana/spl-token");function Vt(t,n=1,e=[]){let r=[...t];if(n<=0)return e;for(;r.length;)e.push(r.splice(0,n));return e}var R=require("@solana/web3.js"),js=new R.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Zs=new R.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ys=new R.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Js=new R.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Xs=new R.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qs=new R.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),$s=new R.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ea=new R.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ta=new R.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),na=new R.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ra=new R.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ia=new R.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),oa=new R.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),sa=new R.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),aa=new R.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ua=new R.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ca=new R.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),la=new R.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ma=new R.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),wi=new R.PublicKey("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Pi=new R.PublicKey("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ti=new R.PublicKey("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var fa={SERUM_MARKET:R.PublicKey.default,OPENBOOK_MARKET:new R.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:R.PublicKey.default,FarmV3:new R.PublicKey("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new R.PublicKey("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new R.PublicKey("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new R.PublicKey("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new R.PublicKey("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new R.PublicKey("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new R.PublicKey("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:wi,CREATE_CPMM_POOL_AUTH:Pi,CREATE_CPMM_POOL_FEE_ACC:Ti,FEE_DESTINATION_ID:new R.PublicKey("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};var se=ee(require("bn.js")),Ze=1e4;function De(t,n,e,r){if(n===void 0)return{amount:t,fee:void 0,expirationTime:void 0};let i=H(D({},n),{olderTransferFee:{epoch:BigInt(n.olderTransferFee.epoch),maximumFee:BigInt(n.olderTransferFee.maximumFee),transferFeeBasisPoints:n.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(n.newerTransferFee.epoch),maximumFee:BigInt(n.newerTransferFee.maximumFee),transferFeeBasisPoints:n.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new se.default(o.maximumFee.toString()),a=e.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*e.slotsInEpoch-e.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Ze){let u=new se.default(o.maximumFee.toString());return{amount:t.add(u),fee:u,expirationTime:a}}else{let u=qt(t.mul(new se.default(Ze)),new se.default(Ze-o.transferFeeBasisPoints)),c=new se.default(o.maximumFee.toString()),m=u.sub(t).gt(c)?t.add(c):u,l=qt(m.mul(new se.default(o.transferFeeBasisPoints)),new se.default(Ze)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=qt(t.mul(new se.default(o.transferFeeBasisPoints)),new se.default(Ze)),c=u.gt(s)?s:u;return{amount:t,fee:c,expirationTime:a}}}function qt(t,n){let{div:e,mod:r}=t.divmod(n);return r.gt(new se.default(0))?e.add(new se.default(1)):e}var Ut=J("Raydium_accountInfo_util");async function Ht(t,n,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=D({batchRequest:!1},e),s=Vt(n,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=t._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Vt(u,10);a=(await(await Promise.all(c.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&Ut.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:p,executable:h,lamports:d,owner:T,rentEpoch:P}=f;return p.length!==2&&p[1]!=="base64"&&Ut.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:h,lamports:d,owner:new Gt.PublicKey(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>t.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&Ut.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function Ye(t,n,e){let r=await Ht(t,n.map(i=>i.pubkey),e);return n.map((i,o)=>H(D({},i),{accountInfo:r[o]}))}async function qn({connection:t,mints:n,config:e}){var o,s,a;if(n.length===0)return{};let r=await Ye(t,n.map(u=>({pubkey:at(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<ke.MINT_SIZE){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=(0,ke.unpackMint)(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=H(D({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||ke.TOKEN_PROGRAM_ID,feeConfig:(a=(0,ke.getTransferFeeConfig)(c))!=null?a:void 0})}return i[Gt.PublicKey.default.toBase58()]=i[ge.toBase58()],i}async function zt({connection:t,address:n}){let e=await Ht(t,[...new Set(n.map(i=>i.toString()))].map(i=>new Se.PublicKey(i))),r={};for(let i=0;i<n.length;i++){let o=e[i],s=n[i];if(!o)continue;let a=new Se.AddressLookupTableAccount({key:s,state:Se.AddressLookupTableAccount.deserialize(o.data)});r[s.toString()]=a,ht[s.toString()]=a}return r}var ht={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Se.AddressLookupTableAccount({key:new Se.PublicKey("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Se.AddressLookupTableAccount.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var bt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner,this.cluster=n.cluster,this.blockhashCommitment=n.blockhashCommitment,this.api=n.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let n=(await Un.default.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=n==null?void 0:n[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:e,instructionTypes:r}=mt(n);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:n,defaultIns:e}){try{let r=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addInstruction({instructions:n=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...n),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==_.PublicKey.default.toString())),this}async versionBuild({txVersion:n,extInfo:e}){return n===0?await this.buildV0(D({},e||{})):this.build(e)}build(n){var r;let e=new _.Transaction;return this.allInstructions.length&&e.add(...this.allInstructions),e.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:e,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await Me(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Ie([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await(0,_.sendAndConfirmTransaction)(this.connection,e,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(e.serialize(),{skipPreflight:s}),signedTx:e};if(this.signAllTransactions){let m=await this.signAllTransactions([e]);return{txId: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:n||{}}}buildMultiTx(n){var c;let{extraPreBuildData:e=[],extInfo:r}=n,{transaction:i}=this.build(r),o=e.filter(m=>m.transaction.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async m=>{var T;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:h=!0}=m||{},d=p!=null?p:await Me(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let b=await(0,_.sendAndConfirmTransaction)(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});P.push(b)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=d,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:h})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((b,w)=>(b.recentBlockhash=d,a[w].length&&b.sign(...a[w]),b));Ie(P);let y=await this.signAllTransactions(P);if(l){let b=0,w=[],k=async()=>{if(!y[b])return;let A=await this.connection.sendRawTransaction(y[b].serialize(),{skipPreflight:h});w.push({txId:A,status:"sent",signedTx:y[b]}),f==null||f([...w]),b++,this.connection.onSignature(A,K=>{let N=w.findIndex(M=>M.txId===A);N>-1&&(w[N].status=K.err?"error":"success"),f==null||f([...w]),K.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let b=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:h});b.push(k)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:r})}async buildV0(n){var p;let f=n||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=pe(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=D(D({},this.cluster==="devnet"?{}:ht),e),a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let h of a)s[h]===void 0&&u.push(new _.PublicKey(h));let c=await zt({connection:this.connection,address:u});for(let[h,d]of Object.entries(c))s[h]=d;let m=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:i?_.PublicKey.default.toBase58():await Me(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((p=this.owner)==null?void 0:p.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new _.VersionedTransaction(m);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var y;let{recentBlockHash:d,skipPreflight:T=!0,sendAndConfirm:P}=h||{};if(d&&(l.message.recentBlockhash=d),Ie([l]),(y=this.owner)!=null&&y.isKeyPair){let b=await this.connection.sendTransaction(l,{skipPreflight:T});if(P){let{lastValidBlockHeight:w,blockhash:k}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:k,lastValidBlockHeight:w,signature:b},"confirmed")}return{txId:b,signedTx:l}}if(this.signAllTransactions){let b=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:T}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(n){var c;let{extraPreBuildData:e=[],buildProps:r}=n,{transaction:i}=await this.buildV0(r),o=e.filter(m=>m.builder.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,l)=>{m.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async m=>{var d;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:h=!0}=m||{};if(p&&s.forEach(T=>T.message.recentBlockhash=p),Ie(s),(d=this.owner)!=null&&d.isKeyPair){if(l){let T=[];for(let P of s){let y=await this.connection.sendTransaction(P,{skipPreflight:h}),{lastValidBlockHeight:b,blockhash:w}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:w,lastValidBlockHeight:b,signature:y},"confirmed"),T.push(y)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(l){let P=0,y=[],b=async()=>{if(!T[P])return;let w=await this.connection.sendTransaction(T[P],{skipPreflight:h});y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,k=>{let A=y.findIndex(K=>K.txId===w);A>-1&&(y[A].status=k.err?"error":"success"),f==null||f([...y]),k.err||b()},"processed"),this.connection.getSignatureStatus(w)};return b(),{txIds:[],signedTxs:T}}else{let P=[];for(let y=0;y<T.length;y+=1){let b=await this.connection.sendTransaction(T[y],{skipPreflight:h});P.push(b)}return{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(n){var m;let c=n||{},{computeBudgetConfig:e}=c,r=pe(c,["computeBudgetConfig"]),i=e?mt(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>H(D({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],u=[];if(this.allInstructions.forEach(l=>{let f=[...u,l],p=e?[...i.instructions,...f]:f,d=[...new Set(f.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(T=>new _.PublicKey(T));if(u.length<12&&ze({instructions:p,payer:this.feePayer,signers:d})||ze({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");ze({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new _.Transaction().add(...i.instructions,...u)):s.push(new _.Transaction().add(...u)),a.push(Array.from(new Set(u.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(T=>o[T]).filter(T=>T!==void 0)),u=[l]}}),u.length>0){let f=[...new Set(u.map(p=>p.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(p=>o[p]).filter(p=>p!==void 0);ze({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new _.Transaction().add(...i.instructions,...u)):s.push(new _.Transaction().add(...u)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:p,recentBlockHash:h,skipPreflight:d=!0}=l||{},T=h!=null?h:await Me(this.connection,this.blockhashCommitment);if(s.forEach(async(y,b)=>{y.recentBlockhash=T,a[b].length&&y.sign(...a[b])}),Ie(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let b of s){let w=await(0,_.sendAndConfirmTransaction)(this.connection,b,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d});y.push(w)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:d}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let b=0,w=[],k=async()=>{if(!y[b])return;let A=await this.connection.sendRawTransaction(y[b].serialize(),{skipPreflight:d});w.push({txId:A,status:"sent",signedTx:y[b]}),p==null||p([...w]),b++,this.connection.onSignature(A,K=>{let N=w.findIndex(M=>M.txId===A);N>-1&&(w[N].status=K.err?"error":"success"),p==null||p([...w]),K.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let b=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});b.push(k)}return{txIds:b,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(n){var P;let T=n||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=pe(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=D(D({},this.cluster==="devnet"?{}:ht),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new _.PublicKey(y));let c=await zt({connection:this.connection,address:u});for(let[y,b]of Object.entries(c))s[y]=b;let m=e?mt(e):{instructions:[],instructionTypes:[]},l=await Me(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,b)=>H(D({},y),{[b.publicKey.toBase58()]:b}),{}),p=[],h=[],d=[];if(this.allInstructions.forEach(y=>{let b=[...d,y],w=e?[...m.instructions,...b]:b;if(d.length<12&&je({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||je({instructions:b,payer:this.feePayer,lookupTableAddressAccount:s}))d.push(y);else{if(d.length===0)throw Error("item ins too big");let k={};for(let A of[...new Set(a)])s[A]!==void 0&&(k[A]=s[A]);if(e&&je({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(A))}else{let A=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(A))}h.push(Array.from(new Set(d.map(A=>A.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat())).map(A=>f[A]).filter(A=>A!==void 0)),d=[y]}}),d.length>0){let b=[...new Set(d.map(w=>w.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&je({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(w))}else{let w=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(w))}h.push(b)}return(P=this.owner)!=null&&P.signer&&h.forEach(y=>{y.some(b=>b.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:n,signers:h,instructionTypes:this.instructionTypes,execute:async y=>{var K;let{sequentially:b,onTxUpdate:w,recentBlockHash:k,skipPreflight:A=!0}=y||{};if(p.map(async(N,M)=>{h[M].length&&N.sign(h[M]),k&&(N.message.recentBlockhash=k)}),Ie(p),(K=this.owner)!=null&&K.isKeyPair){if(b){let N=[];for(let M of p){let v=await this.connection.sendTransaction(M,{skipPreflight:A}),{lastValidBlockHeight:E,blockhash:G}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:G,lastValidBlockHeight:E,signature:v},"confirmed"),N.push(v)}return{txIds:N,signedTxs:p}}return{txIds:await Promise.all(p.map(async N=>await this.connection.sendTransaction(N,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let N=await this.signAllTransactions(p);if(b){let M=0,v=[],E=async()=>{if(!N[M])return;let G=await this.connection.sendTransaction(N[M],{skipPreflight:A});v.push({txId:G,status:"sent",signedTx:N[M]}),w==null||w([...v]),M++,this.connection.onSignature(G,$=>{let re=v.findIndex(U=>U.txId===G);re>-1&&(v[re].status=$.err?"error":"success"),w==null||w([...v]),$.err||E()},"processed"),this.connection.getSignatureStatus(G)};return E(),{txIds:[],signedTxs:N}}else{let M=[];for(let v=0;v<N.length;v+=1){let E=await this.connection.sendTransaction(N[v],{skipPreflight:A});M.push(E)}return{txIds:M,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var jt=(...t)=>t.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),Je=class{constructor({scope:n,moduleName:e}){this.disabled=!1;this.scope=n,this.logger=J(e)}createTxBuilder(n){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(jt(n))}logInfo(...n){this.logger.info(jt(n))}logAndCreateError(...n){let e=jt(n);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ai=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),xi=Buffer.from("amm_config","utf8"),Bi=Buffer.from("pool","utf8"),ki=Buffer.from("pool_lp_mint","utf8"),Si=Buffer.from("pool_vault","utf8"),Ci=Buffer.from("observation","utf8");function yt(t){return be([Ai],t)}function Ii(t,n){return be([xi,Mi(n)],t)}function Ni(t,n,e,r){return be([Bi,n.toBuffer(),e.toBuffer(),r.toBuffer()],t)}function Li(t,n){return be([ki,n.toBuffer()],t)}function Gn(t,n,e){return be([Si,n.toBuffer(),e.toBuffer()],t)}function Zt(t,n){return be([Ci,n.toBuffer()],t)}function Mi(t){let n=new ArrayBuffer(2);return new DataView(n).setUint16(0,t,!1),new Uint8Array(n)}function Hn({programId:t,mintA:n,mintB:e}){let r=Ii(t,0).publicKey,i=yt(t).publicKey,o=Ni(t,r,n,e).publicKey,s=Li(t,o).publicKey,a=Gn(t,o,n).publicKey,u=Gn(t,o,e).publicKey,c=Zt(t,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}var Xe=require("@solana/web3.js"),ye=require("@solana/spl-token");var Jn=require("@solana/web3.js"),ve=ee(require("bn.js"));var B=require("@solana/buffer-layout"),Yt=B.Layout,zn=B.Structure;var Jt=B.UInt;var jn=B.u8,Zn=B.u16;var Yn=B.seq;var Ke=B.blob;var Xt=class extends Yt{constructor(e,r,i){super(e,i);this.blob=Ke(e),this.signed=r}decode(e,r=0){let i=new ve.default(this.blob.decode(e,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(e,r,i=0){return typeof e=="number"&&(e=new ve.default(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function me(t){return new Jt(1,t)}function $t(t){return new Jt(4,t)}function V(t){return new Xt(8,!1,t)}var wt=class extends Yt{constructor(e,r,i,o){super(e.span,o);this.layout=e,this.decoder=r,this.encoder=i}decode(e,r){return this.decoder(this.layout.decode(e,r))}encode(e,r,i){return this.layout.encode(this.encoder(e),r,i)}getSpan(e,r){return this.layout.getSpan(e,r)}};function Q(t){return new wt(Ke(32),n=>new Jn.PublicKey(n),n=>n.toBuffer(),t)}function Xn(t){return new wt(jn(),Ri,Ei,t)}function Ri(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function Ei(t){return t?1:0}var Qt=class extends zn{decode(n,e){return super.decode(n,e)}};function fe(t,n,e){return new Qt(t,n,e)}function en(t,n,e){let r,i=typeof n=="number"?n:(0,ve.isBN)(n)?n.toNumber():new Proxy(n,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=(0,ve.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return Yn(t,i,e)}var Di=J("Raydium_cpmm"),Pt={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173]};function Qn(t,n,e,r,i,o,s,a,u,c,m,l,f,p,h,d,T,P,y,b){let w=fe([V("amountMaxA"),V("amountMaxB"),V("openTime")]),k=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:h,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:ye.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Bn,isSigner:!1,isWritable:!1},{pubkey:xn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:b},A),new Xe.TransactionInstruction({keys:k,programId:t,data:Buffer.from([...Pt.initialize,...A])})}function $n(t,n,e,r,i,o,s,a,u,c,m,l,f,p,h){let d=fe([V("lpAmount"),V("amountMaxA"),V("amountMaxB")]),T=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:ye.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0}],P=Buffer.alloc(d.span);return Di.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:h.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:h},P),new Xe.TransactionInstruction({keys:T,programId:t,data:Buffer.from([...Pt.deposit,...P])})}function er(t,n,e,r,i,o,s,a,u,c,m,l,f,p,h){let d=fe([V("lpAmount"),V("amountMinA"),V("amountMinB")]),T=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:ye.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:An,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:h},P),new Xe.TransactionInstruction({keys:T,programId:t,data:Buffer.from([...Pt.withdraw,...P])})}function tr(t,n,e,r,i,o,s,a,u,c,m,l,f,p,h,d){let T=fe([V("amountIn"),V("amounOutMin")]),P=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],y=Buffer.alloc(T.span);return T.encode({amountIn:h,amounOutMin:d},y),new Xe.TransactionInstruction({keys:P,programId:t,data:Buffer.from([...Pt.swapBaseInput,...y])})}var j=ee(require("bn.js"));var nr=fe([Ke(8),me("bump"),Xn("disableCreatePool"),Zn("index"),V("tradeFeeRate"),V("protocolFeeRate"),V("fundFeeRate"),V("createPoolFee"),Q("protocolOwner"),Q("fundOwner"),en(V(),16)]),rr=fe([Ke(8),Q("configId"),Q("poolCreator"),Q("vaultA"),Q("vaultB"),Q("mintLp"),Q("mintA"),Q("mintB"),Q("mintProgramA"),Q("mintProgramB"),Q("observationId"),me("bump"),me("status"),me("lpDecimals"),me("mintDecimalA"),me("mintDecimalB"),V("lpAmount"),V("protocolFeesMintA"),V("protocolFeesMintB"),V("fundFeesMintA"),V("fundFeesMintB"),V("openTime"),en(V(),32)]);var Tu=fe([$t("mintAuthorityOption"),Q("mintAuthority"),V("supply"),me("decimals"),me("isInitialized"),$t("freezeAuthorityOption"),Q("freezeAuthority")]);var Ki=require("@solana/web3.js"),ir=require("@solana/spl-token");var Fe=i=>{var o=i,{address:t,programId:n,decimals:e}=o,r=pe(o,["address","programId","decimals"]);return D({chainId:101,address:at(t).toBase58(),programId:n,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},Qe=t=>t?H(D({},t),{transferFeeConfigAuthority:t.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:t.withdrawWithheldAuthority.toBase58(),withheldAmount:t.withheldAmount.toString(),olderTransferFee:H(D({},t.olderTransferFee),{epoch:t.olderTransferFee.epoch.toString(),maximumFee:t.olderTransferFee.maximumFee.toString()}),newerTransferFee:H(D({},t.newerTransferFee),{epoch:t.newerTransferFee.epoch.toString(),maximumFee:t.newerTransferFee.maximumFee.toString()})}):void 0;var Tt=class extends Je{constructor(n){super(n)}async load(){this.checkDisabled()}async getCpmmPoolKeys(n){return(await this.scope.api.fetchPoolKeysById({idList:[n]}))[0]}async getRpcPoolInfo(n,e){return(await this.getRpcPoolInfos([n],e))[n]}async getRpcPoolInfos(n,e){let r=await Ye(this.scope.connection,n.map(l=>({pubkey:new C.PublicKey(l)}))),i={},o=new Set,s=[];for(let l=0;l<n.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(n[l]));let p=rr.decode(f.accountInfo.data);i[String(n[l])]=H(D({},p),{programId:f.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(e){let l=[...o],f=await Ye(this.scope.connection,l.map(p=>({pubkey:new C.PublicKey(p)})));for(let p=0;p<l.length;p++){let h=f[p].accountInfo;if(h===null)throw Error("fetch pool config error: "+l[p]);a[l[p]]=nr.decode(h.data)}}let u={},c=await Ye(this.scope.connection,s.map(l=>({pubkey:new C.PublicKey(l)})));for(let l=0;l<s.length;l++){let f=c[l].accountInfo;if(f===null)throw Error("fetch vault info error: "+s[l]);u[String(s[l])]=new j.default(ne.AccountLayout.decode(f.data).amount.toString())}let m={};for(let[l,f]of Object.entries(i)){let p=u[f.vaultA.toString()].sub(f.protocolFeesMintA).sub(f.fundFeesMintA),h=u[f.vaultB.toString()].sub(f.protocolFeesMintB).sub(f.fundFeesMintB);m[l]=H(D({},f),{baseReserve:p,quoteReserve:h,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new oe(h.toString()).div(new oe(10).pow(f.mintDecimalB)).div(new oe(p.toString()).div(new oe(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:n,mintInfos:e}){return Object.keys(n).reduce((r,i)=>{var u,c,m,l;let o=n[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return H(D({},r),{[i]:H(D({},o),{id:new C.PublicKey(i),configInfo:o.configInfo,version:7,authority:yt(o.programId).publicKey,mintA:Fe({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?Qe((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Fe({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?Qe((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(n){let e=await this.getRpcPoolInfo(n,!0),r=await qn({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Fe({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?Qe(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Fe({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?Qe(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Fe({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:ne.TOKEN_PROGRAM_ID.toBase58()}),a={id:e.configId.toBase58(),index:e.configInfo.index,protocolFeeRate:e.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:e.configInfo.tradeFeeRate.toNumber(),fundFeeRate:e.configInfo.fundFeeRate.toNumber(),createPoolFee:e.configInfo.createPoolFee.toString()},u={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:e.programId.toBase58(),id:n,type:"Standard",lpMint:s,lpPrice:0,lpAmount:e.lpAmount.toNumber(),config:a,mintA:i,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:e.poolPrice.toNumber(),mintAmountA:new oe(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new oe(e.vaultBAmount.toString()).div(10**o.decimals).toNumber(),feeRate:e.configInfo.tradeFeeRate.toNumber(),openTime:e.openTime.toString(),tvl:0,day:u,week:u,month:u,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:e.programId.toBase58(),id:n,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:yt(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:n,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=pe(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var G,$,re;let f=i.feePayer||((G=this.scope.owner)==null?void 0:G.publicKey),p=new j.default(new C.PublicKey(c.mintA.address).toBuffer()).lte(new j.default(new C.PublicKey(c.mintB.address).toBuffer())),[h,d]=p?[c.mintA,c.mintB]:[c.mintB,c.mintA],[T,P]=p?[c.mintAAmount,c.mintBAmount]:[c.mintBAmount,c.mintAAmount],y=i.useSOLBalance&&h.address===ne.NATIVE_MINT.toBase58(),b=i.useSOLBalance&&d.address===ne.NATIVE_MINT.toBase58(),[w,k]=[new C.PublicKey(h.address),new C.PublicKey(d.address)],A=this.createTxBuilder(),{account:K,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:h.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:f,amount:T}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});A.addInstruction(N||{});let{account:M,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new C.PublicKey(d.address),tokenProgram:d.programId,owner:this.scope.ownerPubKey,createInfo:b?{payer:f,amount:P}:void 0,notUseTokenAccount:b,skipCloseAccount:!b,associatedOnly:b?!1:o,checkCreateATAOwner:s});if(A.addInstruction(v||{}),K===void 0||M===void 0)throw Error("you don't has some token account");let E=Hn({programId:n,mintA:w,mintB:k});return A.addInstruction({instructions:[Qn(n,this.scope.ownerPubKey,E.configId,E.authority,E.poolId,w,k,E.lpMint,K,M,Wn(this.scope.ownerPubKey,E.lpMint).publicKey,E.vaultA,E.vaultB,e,new C.PublicKey(($=h.programId)!=null?$:ne.TOKEN_PROGRAM_ID),new C.PublicKey((re=d.programId)!=null?re:ne.TOKEN_PROGRAM_ID),E.observationId,T,P,r)],instructionTypes:[he.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:H(D({},E),{mintA:h,mintB:d,programId:n,poolFeeAccount:e})}})}async addLiquidity(n){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),i.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:i.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:p}=D({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),h=a?void 0:await this.getRpcPoolInfo(e.id),{liquidity:d,inputAmountFee:T,anotherAmount:P}=a||this.computePairAmount({poolInfo:H(D({},e),{lpAmount:new oe(h.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:h.baseReserve,quoteReserve:h.quoteReserve,slippage:new le(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new oe(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,b=e.mintA.address===ne.NATIVE_MINT.toString(),w=e.mintB.address===ne.NATIVE_MINT.toString(),k=this.createTxBuilder(),[A,K]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)],{account:N,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new C.PublicKey(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:b||(o?i:y).isZero()?{payer:this.scope.ownerPubKey,amount:o?i:y}:void 0,skipCloseAccount:!b,notUseTokenAccount:b,associatedOnly:!1,checkCreateATAOwner:p});k.addInstruction(M||{});let{account:v,instructionParams:E}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new C.PublicKey(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||(o?y:i).isZero()?{payer:this.scope.ownerPubKey,amount:o?y:i}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:!1,checkCreateATAOwner:p});k.addInstruction(E||{}),!N&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let G=await l.getCreatedTokenAccount({mint:new C.PublicKey(e.lpMint.address)}),tn=await l.handleTokenAccount({side:"out",amount:0,mint:new C.PublicKey(e.lpMint.address),tokenAccount:G,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:$}=tn,re=pe(tn,["tokenAccount"]);k.addInstruction(re);let U=r!=null?r:await this.getCpmmPoolKeys(e.id),O=new le(new j.default(1)).sub(s);return k.addInstruction({instructions:[$n(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(U.authority),new C.PublicKey(e.id),$,N,v,new C.PublicKey(U.vault.A),new C.PublicKey(U.vault.B),A,K,new C.PublicKey(e.lpMint.address),a?a==null?void 0:a.liquidity:O.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[he.CpmmAddLiquidity],lookupTableAddress:U.lookupTableAccount?[U.lookupTableAccount]:[]}),k.addCustomComputeBudget(u),k.versionBuild({txVersion:m})}async withdrawLiquidity(n){var $,re;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new le(new j.default(1)).sub(o),c=await this.getRpcPoolInfo(e.id),[m,l]=[u.mul(i.mul(c.baseReserve).div(c.lpAmount)).quotient,u.mul(i.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[p,h]=[De(m,e.mintA.extensions.feeConfig,f,!1),De(l,e.mintB.extensions.feeConfig,f,!1)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)],b=P.equals(ge),w=y.equals(ge),k,A,{account:K,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new C.PublicKey(e.mintA.address),notUseTokenAccount:b,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!b,associatedOnly:!b,checkCreateATAOwner:!1});k=K,N&&T.addInstruction(N);let{account:M,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new C.PublicKey(e.mintB.address),notUseTokenAccount:w,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!w,associatedOnly:!w,checkCreateATAOwner:!1});A=M,v&&T.addInstruction(v),(!k||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let E=await d.getCreatedTokenAccount({mint:new C.PublicKey(e.lpMint.address)});E||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let G=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[er(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(G.authority),new C.PublicKey(e.id),E,k,A,new C.PublicKey(G.vault.A),new C.PublicKey(G.vault.B),P,y,new C.PublicKey(e.lpMint.address),i,m.sub(($=p.fee)!=null?$:new j.default(0)),l.sub((re=h.fee)!=null?re:new j.default(0)))],instructionTypes:[he.CpmmWithdrawLiquidity],lookupTableAddress:G.lookupTableAccount?[G.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(n){var K,N,M,v;let{poolInfo:e,poolKeys:r,baseIn:i,swapResult:o,slippage:s=0,config:a,computeBudgetConfig:u,txVersion:c}=n,{bypassAssociatedCheck:m,checkCreateATAOwner:l,associatedOnly:f}=D({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},a),p=this.createTxBuilder(),[h,d]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)];o.destinationAmountSwapped=o.destinationAmountSwapped.mul(new j.default((1-s)*1e4)).div(new j.default(1e4));let T=e.mintA.address===ge.toBase58(),P=e.mintB.address===ge.toBase58(),{account:y,instructionParams:b}=await this.scope.account.getOrCreateTokenAccount({mint:h,tokenProgram:new C.PublicKey((K=e.mintA.programId)!=null?K:ne.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:T||!i?{payer:this.scope.ownerPubKey,amount:i?o.sourceAmountSwapped:0}:void 0,notUseTokenAccount:T,skipCloseAccount:!T,associatedOnly:T?!1:f,checkCreateATAOwner:l});b&&p.addInstruction(b);let{account:w,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new C.PublicKey((N=e.mintB.programId)!=null?N:ne.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:P||i?{payer:this.scope.ownerPubKey,amount:i?0:o.sourceAmountSwapped}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:f,checkCreateATAOwner:l});k&&p.addInstruction(k),(!y||!w)&&this.logAndCreateError("user do not have token account",{mintA:e.mintA.symbol||e.mintA.address,mintB:e.mintB.symbol||e.mintB.address,mintATokenAcc:y,mintBTokenAcc:w,mintAUseSOLBalance:T,mintBUseSOLBalance:P,associatedOnly:f});let A=r!=null?r:await this.getCpmmPoolKeys(e.id);return p.addInstruction({instructions:[tr(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(A.authority),new C.PublicKey(A.config.id),new C.PublicKey(e.id),i?y:w,i?w:y,new C.PublicKey(A.vault[i?"A":"B"]),new C.PublicKey(A.vault[i?"B":"A"]),new C.PublicKey((M=e[i?"mintA":"mintB"].programId)!=null?M:ne.TOKEN_PROGRAM_ID),new C.PublicKey((v=e[i?"mintB":"mintA"].programId)!=null?v:ne.TOKEN_PROGRAM_ID),i?h:d,i?d:h,Zt(new C.PublicKey(e.programId),new C.PublicKey(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped)],instructionTypes:[i?he.CpmmSwapBaseIn:he.CpmmSwapBaseOut]}),p.addCustomComputeBudget(u),p.versionBuild({txVersion:c})}computeSwapAmount({pool:n,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===n.mintB.address,s=gt.swap(e,o?n.baseReserve:n.quoteReserve,o?n.quoteReserve:n.baseReserve,n.configInfo.tradeFeeRate),a=new oe(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new j.default((1-i)*1e4)).div(new j.default(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:n.poolPrice.sub(a).div(n.poolPrice)}}computePairAmount({poolInfo:n,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,b,w,k,A,K,N,M;let u=1-Number(o.toSignificant())/100,c=new j.default(new oe(i).mul(10**n[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=De(c,n[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new j.default(0)),f=new j.default(new oe(n.lpAmount).mul(10**n.lpMint.decimals).toFixed(0,oe.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?n.mintA.symbol:n.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(b=m.fee)==null?void 0:b.toString())!=null?w:0,"anotherToken:",a?n.mintB.symbol:n.mintA.symbol,"slippage:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let h=l.mul(f).div(p==="base"?e:r),d={amount:Ft,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=vi(h,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=De(v[a?"amountB":"amountA"],n[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new le(new j.default(1)).add(o),P=De(T.mul(d.amount.sub((k=d.fee)!=null?k:new j.default(0))).quotient,n[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",d.amount.toString(),"anotherAmountFee:",(K=(A=d.fee)==null?void 0:A.toString())!=null?K:0,"maxAnotherAmount:",P.amount.toString(),"maxAnotherAmountFee:",(M=(N=P.fee)==null?void 0:N.toString())!=null?M:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:h}}};function vi(t,n,e,r){let i=t.mul(n).div(r);!i.isZero()&&!t.mul(n).mod(r).isZero()&&(i=i.add(new j.default(1)));let o=t.mul(e).div(r);return!o.isZero()&&!t.mul(e).mod(r).isZero()&&(o=o.add(new j.default(1))),{amountA:i,amountB:o}}0&&(module.exports={});
|
|
1
|
+
var or=Object.create;var Oe=Object.defineProperty,sr=Object.defineProperties,ar=Object.getOwnPropertyDescriptor,ur=Object.getOwnPropertyDescriptors,cr=Object.getOwnPropertyNames,$e=Object.getOwnPropertySymbols,lr=Object.getPrototypeOf,At=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var nn=(t,n,e)=>n in t?Oe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,K=(t,n)=>{for(var e in n||(n={}))At.call(n,e)&&nn(t,e,n[e]);if($e)for(var e of $e(n))rn.call(n,e)&&nn(t,e,n[e]);return t},H=(t,n)=>sr(t,ur(n));var pe=(t,n)=>{var e={};for(var r in t)At.call(t,r)&&n.indexOf(r)<0&&(e[r]=t[r]);if(t!=null&&$e)for(var r of $e(t))n.indexOf(r)<0&&rn.call(t,r)&&(e[r]=t[r]);return e};var mr=(t,n)=>{for(var e in n)Oe(t,e,{get:n[e],enumerable:!0})},on=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of cr(n))!At.call(t,i)&&i!==e&&Oe(t,i,{get:()=>n[i],enumerable:!(r=ar(n,i))||r.enumerable});return t};var ee=(t,n,e)=>(e=t!=null?or(lr(t)):{},on(n||!t||!t.__esModule?Oe(e,"default",{value:t,enumerable:!0}):e,t)),fr=t=>on(Oe({},"__esModule",{value:!0}),t);var Fi={};mr(Fi,{default:()=>Tt});module.exports=fr(Fi);var C=require("@solana/web3.js"),ne=require("@solana/spl-token");var Dn=ee(require("big.js")),di=ee(require("bn.js"));var te=ee(require("bn.js"));var Ne=9e15,Ae=1e9,xt="0123456789abcdef",tt="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",nt="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Bt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ne,maxE:Ne,crypto:!1},cn,de,I=!0,it="[DecimalError] ",Te=it+"Invalid argument: ",ln=it+"Precision limit exceeded",mn=it+"crypto unavailable",fn="[object Decimal]",Y=Math.floor,z=Math.pow,pr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,dr=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,gr=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,pn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ue=1e7,S=7,hr=9007199254740991,br=tt.length-1,kt=nt.length-1,b={toStringTag:fn};b.absoluteValue=b.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),x(t)};b.ceil=function(){return x(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(t,n){var e,r=this,i=r.constructor;if(t=new i(t),n=new i(n),!t.s||!n.s)return new i(NaN);if(t.gt(n))throw Error(Te+n);return e=r.cmp(t),e<0?t:r.cmp(n)>0?n:new i(r)};b.comparedTo=b.cmp=function(t){var n,e,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,u=o.s,c=t.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==t.e)return o.e>t.e^u<0?1:-1;for(r=s.length,i=a.length,n=0,e=r<i?r:i;n<e;++n)if(s[n]!==a[n])return s[n]>a[n]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};b.cosine=b.cos=function(){var t,n,e=this,r=e.constructor;return e.d?e.d[0]?(t=r.precision,n=r.rounding,r.precision=t+Math.max(e.e,e.sd())+S,r.rounding=1,e=yr(r,yn(r,e)),r.precision=t,r.rounding=n,x(de==2||de==3?e.neg():e,t,n,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var t,n,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(I=!1,o=m.s*z(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=Z(m.d),t=m.e,(o=(t-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=z(e,1/3),t=Y((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?e="5e"+t:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=W(c.plus(m).times(a),c.plus(u),s+2,1),Z(a.d).slice(0,s)===(e=Z(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(x(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(x(r,t+1,1),n=!r.times(r).times(r).eq(m));break}return I=!0,x(r,t,l.rounding,n)};b.decimalPlaces=b.dp=function(){var t,n=this.d,e=NaN;if(n){if(t=n.length-1,e=(t-Y(this.e/S))*S,t=n[t],t)for(;t%10==0;t/=10)e--;e<0&&(e=0)}return e};b.dividedBy=b.div=function(t){return W(this,new this.constructor(t))};b.dividedToIntegerBy=b.divToInt=function(t){var n=this,e=n.constructor;return x(W(n,new e(t),0,1,1),e.precision,e.rounding)};b.equals=b.eq=function(t){return this.cmp(t)===0};b.floor=function(){return x(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(t){return this.cmp(t)>0};b.greaterThanOrEqualTo=b.gte=function(t){var n=this.cmp(t);return n==1||n===0};b.hyperbolicCosine=b.cosh=function(){var t,n,e,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;e=s.precision,r=s.rounding,s.precision=e+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),n=(1/st(4,t)).toString()):(t=16,n="2.3283064365386962890625e-10"),o=Le(s,1,o.times(n),new s(1),!0);for(var u,c=t,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return x(o,s.precision=e,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var t,n,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(n=o.precision,e=o.rounding,o.precision=n+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Le(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/st(5,t)),i=Le(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=n,o.rounding=e,x(i,n,e,!0)};b.hyperbolicTangent=b.tanh=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+7,r.rounding=1,W(e.sinh(),e.cosh(),r.precision=t,r.rounding=n)):new r(e.s)};b.inverseCosine=b.acos=function(){var t,n=this,e=n.constructor,r=n.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?n.isNeg()?ae(e,i,o):new e(0):new e(NaN):n.isZero()?ae(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,n=n.asin(),t=ae(e,i+4,o).times(.5),e.precision=i,e.rounding=o,t.minus(n))};b.inverseHyperbolicCosine=b.acosh=function(){var t,n,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(t=r.precision,n=r.rounding,r.precision=t+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,I=!1,e=e.times(e).minus(1).sqrt().plus(e),I=!0,r.precision=t,r.rounding=n,e.ln()):new r(e)};b.inverseHyperbolicSine=b.asinh=function(){var t,n,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,I=!1,e=e.times(e).plus(1).sqrt().plus(e),I=!0,r.precision=t,r.rounding=n,e.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var t,n,e,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,n=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?x(new o(i),t,n,!0):(o.precision=e=r-i.e,i=W(i.plus(1),new o(1).minus(i),e+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=n,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var t,n,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(n=i.abs().cmp(1),e=o.precision,r=o.rounding,n!==-1?n===0?(t=ae(o,e+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=e+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=e,o.rounding=r,i.times(2)))};b.inverseTangent=b.atan=function(){var t,n,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding;if(c.isFinite()){if(c.isZero())return new m(c);if(c.abs().eq(1)&&l+4<=kt)return s=ae(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=kt)return s=ae(m,l+4,f).times(.5),s.s=c.s,s}for(m.precision=a=l+10,m.rounding=1,e=Math.min(28,a/S+2|0),t=e;t;--t)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(I=!1,n=Math.ceil(a/S),r=1,u=c.times(c),s=new m(c),i=c;t!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),s=o.plus(i.div(r+=2)),s.d[n]!==void 0)for(t=n;s.d[t]===o.d[t]&&t--;);return e&&(s=s.times(2<<e-1)),I=!0,x(s,m.precision=l,m.rounding=f,!0)};b.isFinite=function(){return!!this.d};b.isInteger=b.isInt=function(){return!!this.d&&Y(this.e/S)>this.d.length-2};b.isNaN=function(){return!this.s};b.isNegative=b.isNeg=function(){return this.s<0};b.isPositive=b.isPos=function(){return this.s>0};b.isZero=function(){return!!this.d&&this.d[0]===0};b.lessThan=b.lt=function(t){return this.cmp(t)<0};b.lessThanOrEqualTo=b.lte=function(t){return this.cmp(t)<1};b.logarithm=b.log=function(t){var n,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(t==null)t=new m(10),n=!0;else{if(t=new m(t),e=t.d,t.s<0||!e||!e[0]||t.eq(1))return new m(NaN);n=t.eq(10)}if(e=c.d,c.s<0||!e||!e[0]||c.eq(1))return new m(e&&!e[0]?-1/0:c.s!=1?NaN:e?0:1/0);if(n)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(I=!1,a=l+p,s=Pe(c,a),r=n?rt(m,a+10):Pe(t,a),u=W(s,r,a,1),_e(u.d,i=l,f))do if(a+=10,s=Pe(c,a),r=n?rt(m,a+10):Pe(t,a),u=W(s,r,a,1),!o){+Z(u.d).slice(i+1,i+15)+1==1e14&&(u=x(u,l+1,0));break}while(_e(u.d,i+=10,f));return I=!0,x(u,l,f)};b.minus=b.sub=function(t){var n,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.constructor;if(t=new g(t),!p.d||!t.d)return!p.s||!t.s?t=new g(NaN):p.d?t.s=-t.s:t=new g(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(c=p.d,f=t.d,a=g.precision,u=g.rounding,!c[0]||!f[0]){if(f[0])t.s=-t.s;else if(c[0])t=new g(p);else return new g(u===3?-0:0);return I?x(t,a,u):t}if(e=Y(t.e/S),m=Y(p.e/S),c=c.slice(),o=m-e,o){for(l=o<0,l?(n=c,o=-o,s=f.length):(n=f,e=m,s=c.length),r=Math.max(Math.ceil(a/S),s)+2,o>r&&(o=r,n.length=1),n.reverse(),r=o;r--;)n.push(0);n.reverse()}else{for(r=c.length,s=f.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=f[r]){l=c[r]<f[r];break}o=0}for(l&&(n=c,c=f,f=n,t.s=-t.s),s=c.length,r=f.length-s;r>0;--r)c[s++]=0;for(r=f.length;r>o;){if(c[--r]<f[r]){for(i=r;i&&c[--i]===0;)c[i]=ue-1;--c[i],c[r]+=ue}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(t.d=c,t.e=ot(c,e),I?x(t,a,u):t):new g(u===3?-0:0)};b.modulo=b.mod=function(t){var n,e=this,r=e.constructor;return t=new r(t),!e.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||e.d&&!e.d[0]?x(new r(e),r.precision,r.rounding):(I=!1,r.modulo==9?(n=W(e,t.abs(),0,3,1),n.s*=t.s):n=W(e,t,0,r.modulo,1),n=n.times(t),I=!0,e.minus(n))};b.naturalExponential=b.exp=function(){return St(this)};b.naturalLogarithm=b.ln=function(){return Pe(this)};b.negated=b.neg=function(){var t=new this.constructor(this);return t.s=-t.s,x(t)};b.plus=b.add=function(t){var n,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(t=new f(t),!l.d||!t.d)return!l.s||!t.s?t=new f(NaN):l.d||(t=new f(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(c=l.d,m=t.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(t=new f(l)),I?x(t,a,u):t;if(o=Y(l.e/S),r=Y(t.e/S),c=c.slice(),i=o-r,i){for(i<0?(e=c,i=-i,s=m.length):(e=m,r=o,s=c.length),o=Math.ceil(a/S),s=o>s?o+1:s+1,i>s&&(i=s,e.length=1),e.reverse();i--;)e.push(0);e.reverse()}for(s=c.length,i=m.length,s-i<0&&(i=s,e=m,m=c,c=e),n=0;i;)n=(c[--i]=c[i]+m[i]+n)/ue|0,c[i]%=ue;for(n&&(c.unshift(n),++r),s=c.length;c[--s]==0;)c.pop();return t.d=c,t.e=ot(c,r),I?x(t,a,u):t};b.precision=b.sd=function(t){var n,e=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Te+t);return e.d?(n=dn(e.d),t&&e.e+1>n&&(n=e.e+1)):n=NaN,n};b.round=function(){var t=this,n=t.constructor;return x(new n(t),t.e+1,n.rounding)};b.sine=b.sin=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+Math.max(e.e,e.sd())+S,r.rounding=1,e=Pr(r,yn(r,e)),r.precision=t,r.rounding=n,x(de>2?e.neg():e,t,n,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var t,n,e,r,i,o,s=this,a=s.d,u=s.e,c=s.s,m=s.constructor;if(c!==1||!a||!a[0])return new m(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(I=!1,c=Math.sqrt(+s),c==0||c==1/0?(n=Z(a),(n.length+u)%2==0&&(n+="0"),c=Math.sqrt(n),u=Y((u+1)/2)-(u<0||u%2),c==1/0?n="5e"+u:(n=c.toExponential(),n=n.slice(0,n.indexOf("e")+1)+u),r=new m(n)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(W(s,o,e+2,1)).times(.5),Z(o.d).slice(0,e)===(n=Z(r.d)).slice(0,e))if(n=n.slice(e-3,e+1),n=="9999"||!i&&n=="4999"){if(!i&&(x(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(x(r,u+1,1),t=!r.times(r).eq(s));break}return I=!0,x(r,u,m.rounding,t)};b.tangent=b.tan=function(){var t,n,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(t=r.precision,n=r.rounding,r.precision=t+10,r.rounding=1,e=e.sin(),e.s=1,e=W(e,new r(1).minus(e.times(e)).sqrt(),t+10,0),r.precision=t,r.rounding=n,x(de==2||de==4?e.neg():e,t,n,!0)):new r(NaN)};b.times=b.mul=function(t){var n,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!t.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?t.s/0:t.s*0);for(e=Y(m.e/S)+Y(t.e/S),u=f.length,c=p.length,u<c&&(o=f,f=p,p=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(n=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+n,o[i--]=a%ue|0,n=a/ue|0;o[i]=(o[i]+n)%ue|0}for(;!o[--s];)o.pop();return n?++e:o.shift(),t.d=o,t.e=ot(o,e),I?x(t,l.precision,l.rounding):t};b.toBinary=function(t,n){return It(this,2,t,n)};b.toDecimalPlaces=b.toDP=function(t,n){var e=this,r=e.constructor;return e=new r(e),t===void 0?e:(ie(t,0,Ae),n===void 0?n=r.rounding:ie(n,0,8),x(e,t+e.e+1,n))};b.toExponential=function(t,n){var e,r=this,i=r.constructor;return t===void 0?e=ce(r,!0):(ie(t,0,Ae),n===void 0?n=i.rounding:ie(n,0,8),r=x(new i(r),t+1,n),e=ce(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toFixed=function(t,n){var e,r,i=this,o=i.constructor;return t===void 0?e=ce(i):(ie(t,0,Ae),n===void 0?n=o.rounding:ie(n,0,8),r=x(new o(i),t+i.e+1,n),e=ce(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};b.toFraction=function(t){var n,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.d,d=p.constructor;if(!g)return new d(p);if(c=e=new d(1),r=u=new d(0),n=new d(r),o=n.e=dn(g)-p.e-1,s=o%S,n.d[0]=z(10,s<0?S+s:s),t==null)t=o>0?n:c;else{if(a=new d(t),!a.isInt()||a.lt(c))throw Error(Te+a);t=a.gt(n)?o>0?n:c:a}for(I=!1,a=new d(Z(g)),m=d.precision,d.precision=o=g.length*S*2;l=W(a,n,0,1,1),i=e.plus(l.times(r)),i.cmp(t)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=n,n=a.minus(l.times(i)),a=i;return i=W(t.minus(e),r,0,1,1),u=u.plus(i.times(c)),e=e.plus(i.times(r)),u.s=c.s=p.s,f=W(c,r,o,1).minus(p).abs().cmp(W(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,I=!0,f};b.toHexadecimal=b.toHex=function(t,n){return It(this,16,t,n)};b.toNearest=function(t,n){var e=this,r=e.constructor;if(e=new r(e),t==null){if(!e.d)return e;t=new r(1),n=r.rounding}else{if(t=new r(t),n===void 0?n=r.rounding:ie(n,0,8),!e.d)return t.s?e:t;if(!t.d)return t.s&&(t.s=e.s),t}return t.d[0]?(I=!1,e=W(e,t,0,n,1).times(t),I=!0,x(e)):(t.s=e.s,e=t),e};b.toNumber=function(){return+this};b.toOctal=function(t,n){return It(this,8,t,n)};b.toPower=b.pow=function(t){var n,e,r,i,o,s,a=this,u=a.constructor,c=+(t=new u(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new u(z(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,t.eq(1))return x(a,r,o);if(n=Y(t.e/S),n>=t.d.length-1&&(e=c<0?-c:c)<=hr)return i=gn(u,a,e,r),t.s<0?new u(1).div(i):x(i,r,o);if(s=a.s,s<0){if(n<t.d.length-1)return new u(NaN);if((t.d[n]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=z(+a,c),n=e==0||!isFinite(e)?Y(c*(Math.log("0."+Z(a.d))/Math.LN10+a.e+1)):new u(e+"").e,n>u.maxE+1||n<u.minE-1?new u(n>0?s/0:0):(I=!1,u.rounding=a.s=1,e=Math.min(12,(n+"").length),i=St(t.times(Pe(a,r+e)),r),i.d&&(i=x(i,r+5,1),_e(i.d,r,o)&&(n=r+10,i=x(St(t.times(Pe(a,n+e)),n),n+5,1),+Z(i.d).slice(r+1,r+15)+1==1e14&&(i=x(i,r+1,0)))),i.s=s,I=!0,u.rounding=o,x(i,r,o))};b.toPrecision=function(t,n){var e,r=this,i=r.constructor;return t===void 0?e=ce(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(ie(t,1,Ae),n===void 0?n=i.rounding:ie(n,0,8),r=x(new i(r),t,n),e=ce(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toSignificantDigits=b.toSD=function(t,n){var e=this,r=e.constructor;return t===void 0?(t=r.precision,n=r.rounding):(ie(t,1,Ae),n===void 0?n=r.rounding:ie(n,0,8)),x(new r(e),t,n)};b.toString=function(){var t=this,n=t.constructor,e=ce(t,t.e<=n.toExpNeg||t.e>=n.toExpPos);return t.isNeg()&&!t.isZero()?"-"+e:e};b.truncated=b.trunc=function(){return x(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var t=this,n=t.constructor,e=ce(t,t.e<=n.toExpNeg||t.e>=n.toExpPos);return t.isNeg()?"-"+e:e};function Z(t){var n,e,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,n=1;n<i;n++)r=t[n]+"",e=S-r.length,e&&(o+=we(e)),o+=r;s=t[n],r=s+"",e=S-r.length,e&&(o+=we(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function ie(t,n,e){if(t!==~~t||t<n||t>e)throw Error(Te+t)}function _e(t,n,e,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--n;return--n<0?(n+=S,i=0):(i=Math.ceil((n+1)/S),n%=S),o=z(10,S-n),a=t[i]%o|0,r==null?n<3?(n==0?a=a/100|0:n==1&&(a=a/10|0),s=e<4&&a==99999||e>3&&a==49999||a==5e4||a==0):s=(e<4&&a+1==o||e>3&&a+1==o/2)&&(t[i+1]/o/100|0)==z(10,n-2)-1||(a==o/2||a==0)&&(t[i+1]/o/100|0)==0:n<4?(n==0?a=a/1e3|0:n==1?a=a/100|0:n==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==z(10,n-3)-1,s}function et(t,n,e){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=n;for(i[0]+=xt.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>e-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/e|0,i[r]%=e)}return i.reverse()}function yr(t,n){var e,r,i;if(n.isZero())return n;r=n.d.length,r<32?(e=Math.ceil(r/3),i=(1/st(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),t.precision+=e,n=Le(t,1,n.times(i),new t(1));for(var o=e;o--;){var s=n.times(n);n=s.times(s).minus(s).times(8).plus(1)}return t.precision-=e,n}var W=function(){function t(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function n(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}function e(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,u){var c,m,l,f,p,g,d,T,P,y,h,w,B,A,D,N,R,v,M,G,$=r.constructor,re=r.s==i.s?1:-1,U=r.d,O=i.d;if(!U||!U[0]||!O||!O[0])return new $(!r.s||!i.s||(U?O&&U[0]==O[0]:!O)?NaN:U&&U[0]==0||!O?re*0:re/0);for(u?(p=1,m=r.e-i.e):(u=ue,p=S,m=Y(r.e/p)-Y(i.e/p)),M=O.length,R=U.length,P=new $(re),y=P.d=[],l=0;O[l]==(U[l]||0);l++);if(O[l]>(U[l]||0)&&m--,o==null?(A=o=$.precision,s=$.rounding):a?A=o+(r.e-i.e)+1:A=o,A<0)y.push(1),g=!0;else{if(A=A/p+2|0,l=0,M==1){for(f=0,O=O[0],A++;(l<R||f)&&A--;l++)D=f*u+(U[l]||0),y[l]=D/O|0,f=D%O|0;g=f||l<R}else{for(f=u/(O[0]+1)|0,f>1&&(O=t(O,f,u),U=t(U,f,u),M=O.length,R=U.length),N=M,h=U.slice(0,M),w=h.length;w<M;)h[w++]=0;G=O.slice(),G.unshift(0),v=O[0],O[1]>=u/2&&++v;do f=0,c=n(O,h,M,w),c<0?(B=h[0],M!=w&&(B=B*u+(h[1]||0)),f=B/v|0,f>1?(f>=u&&(f=u-1),d=t(O,f,u),T=d.length,w=h.length,c=n(d,h,T,w),c==1&&(f--,e(d,M<T?G:O,T,u))):(f==0&&(c=f=1),d=O.slice()),T=d.length,T<w&&d.unshift(0),e(h,d,w,u),c==-1&&(w=h.length,c=n(O,h,M,w),c<1&&(f++,e(h,M<w?G:O,w,u))),w=h.length):c===0&&(f++,h=[0]),y[l++]=f,c&&h[0]?h[w++]=U[N]||0:(h=[U[N]],w=1);while((N++<R||h[0]!==void 0)&&A--);g=h[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,cn=g;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,x(P,a?o+P.e+1:o,s,g)}return P}}();function x(t,n,e,r){var i,o,s,a,u,c,m,l,f,p=t.constructor;e:if(n!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=n-i,o<0)o+=S,s=n,m=l[f=0],u=m/z(10,i-s-1)%10|0;else if(f=Math.ceil((o+1)/S),a=l.length,f>=a)if(r){for(;a++<=f;)l.push(0);m=u=0,i=1,o%=S,s=o-S+1}else break e;else{for(m=a=l[f],i=1;a>=10;a/=10)i++;o%=S,s=o-S+i,u=s<0?0:m/z(10,i-s-1)%10|0}if(r=r||n<0||l[f+1]!==void 0||(s<0?m:m%z(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(t.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/z(10,i-s):0:l[f-1])%10&1||e==(t.s<0?8:7)),n<1||!l[0])return l.length=0,c?(n-=t.e+1,l[0]=z(10,(S-n%S)%S),t.e=-n||0):l[0]=t.e=0,t;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=z(10,S-o),l[f]=s>0?(m/z(10,i-s)%z(10,s)|0)*a:0),c)for(;;)if(f==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==ue&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=ue)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return I&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function ce(t,n,e){if(!t.isFinite())return bn(t);var r,i=t.e,o=Z(t.d),s=o.length;return n?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+we(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+we(-i-1)+o,e&&(r=e-s)>0&&(o+=we(r))):i>=s?(o+=we(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+we(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=we(r))),o}function ot(t,n){var e=t[0];for(n*=S;e>=10;e/=10)n++;return n}function rt(t,n,e){if(n>br)throw I=!0,e&&(t.precision=e),Error(ln);return x(new t(tt),n,1,!0)}function ae(t,n,e){if(n>kt)throw Error(ln);return x(new t(nt),n,e,!0)}function dn(t){var n=t.length-1,e=n*S+1;if(n=t[n],n){for(;n%10==0;n/=10)e--;for(n=t[0];n>=10;n/=10)e++}return e}function we(t){for(var n="";t--;)n+="0";return n}function gn(t,n,e,r){var i,o=new t(1),s=Math.ceil(r/S+4);for(I=!1;;){if(e%2&&(o=o.times(n),an(o.d,s)&&(i=!0)),e=Y(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}n=n.times(n),an(n.d,s)}return I=!0,o}function sn(t){return t.d[t.d.length-1]&1}function hn(t,n,e){for(var r,i=new t(n[0]),o=0;++o<n.length;)if(r=new t(n[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function St(t,n){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=t.constructor,p=f.rounding,g=f.precision;if(!t.d||!t.d[0]||t.e>17)return new f(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(n==null?(I=!1,u=g):u=n,a=new f(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(z(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=x(o.times(t),u,1),e=e.times(++m),a=s.plus(W(o,e,u,1)),Z(a.d).slice(0,u)===Z(s.d).slice(0,u)){for(i=l;i--;)s=x(s.times(s),u,1);if(n==null)if(c<3&&_e(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return x(s,f.precision=g,p,I=!0);else return f.precision=g,s}s=a}}function Pe(t,n){var e,r,i,o,s,a,u,c,m,l,f,p=1,g=10,d=t,T=d.d,P=d.constructor,y=P.rounding,h=P.precision;if(d.s<0||!T||!T[0]||!d.e&&T[0]==1&&T.length==1)return new P(T&&!T[0]?-1/0:d.s!=1?NaN:T?0:d);if(n==null?(I=!1,m=h):m=n,P.precision=m+=g,e=Z(T),r=e.charAt(0),Math.abs(o=d.e)<15e14){for(;r<7&&r!=1||r==1&&e.charAt(1)>3;)d=d.times(t),e=Z(d.d),r=e.charAt(0),p++;o=d.e,r>1?(d=new P("0."+e),o++):d=new P(r+"."+e.slice(1))}else return c=rt(P,m+2,h).times(o+""),d=Pe(new P(r+"."+e.slice(1)),m-g).plus(c),P.precision=h,n==null?x(d,h,y,I=!0):d;for(l=d,u=s=d=W(d.minus(1),d.plus(1),m,1),f=x(d.times(d),m,1),i=3;;){if(s=x(s.times(f),m,1),c=u.plus(W(s,new P(i),m,1)),Z(c.d).slice(0,m)===Z(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(rt(P,m+2,h).times(o+""))),u=W(u,new P(p),m,1),n==null)if(_e(u.d,m-g,y,a))P.precision=m+=g,c=s=d=W(l.minus(1),l.plus(1),m,1),f=x(d.times(d),m,1),i=a=1;else return x(u,P.precision=h,y,I=!0);else return P.precision=h,u;u=c,i+=2}}function bn(t){return String(t.s*t.s/0)}function Ct(t,n){var e,r,i;for((e=n.indexOf("."))>-1&&(n=n.replace(".","")),(r=n.search(/e/i))>0?(e<0&&(e=r),e+=+n.slice(r+1),n=n.substring(0,r)):e<0&&(e=n.length),r=0;n.charCodeAt(r)===48;r++);for(i=n.length;n.charCodeAt(i-1)===48;--i);if(n=n.slice(r,i),n){if(i-=r,t.e=e=e-r-1,t.d=[],r=(e+1)%S,e<0&&(r+=S),r<i){for(r&&t.d.push(+n.slice(0,r)),i-=S;r<i;)t.d.push(+n.slice(r,r+=S));n=n.slice(r),r=S-n.length}else r-=i;for(;r--;)n+="0";t.d.push(+n),I&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function wr(t,n){var e,r,i,o,s,a,u,c,m;if(n.indexOf("_")>-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),pn.test(n))return Ct(t,n)}else if(n==="Infinity"||n==="NaN")return+n||(t.s=NaN),t.e=NaN,t.d=null,t;if(dr.test(n))e=16,n=n.toLowerCase();else if(pr.test(n))e=2;else if(gr.test(n))e=8;else throw Error(Te+n);for(o=n.search(/p/i),o>0?(u=+n.slice(o+1),n=n.substring(2,o)):n=n.slice(2),o=n.indexOf("."),s=o>=0,r=t.constructor,s&&(n=n.replace(".",""),a=n.length,o=a-o,i=gn(r,new r(e),o,o*2)),c=et(n,e,ue),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(t.s*0):(t.e=ot(c,m),t.d=c,I=!1,s&&(t=W(t,i,a*4)),u&&(t=t.times(Math.abs(u)<54?z(2,u):We.pow(2,u))),I=!0,t)}function Pr(t,n){var e,r=n.d.length;if(r<3)return n.isZero()?n:Le(t,2,n,n);e=1.4*Math.sqrt(r),e=e>16?16:e|0,n=n.times(1/st(5,e)),n=Le(t,2,n,n);for(var i,o=new t(5),s=new t(16),a=new t(20);e--;)i=n.times(n),n=n.times(o.plus(i.times(s.times(i).minus(a))));return n}function Le(t,n,e,r,i){var o,s,a,u,c=1,m=t.precision,l=Math.ceil(m/S);for(I=!1,u=e.times(e),a=new t(r);;){if(s=W(a.times(u),new t(n++*n++),m,1),a=i?r.plus(s):r.minus(s),r=W(s.times(u),new t(n++*n++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,c++}return I=!0,s.d.length=l+1,s}function st(t,n){for(var e=t;--n;)e*=t;return e}function yn(t,n){var e,r=n.s<0,i=ae(t,t.precision,1),o=i.times(.5);if(n=n.abs(),n.lte(o))return de=r?4:1,n;if(e=n.divToInt(i),e.isZero())de=r?3:2;else{if(n=n.minus(e.times(i)),n.lte(o))return de=sn(e)?r?2:3:r?4:1,n;de=sn(e)?r?1:4:r?3:2}return n.minus(i).abs()}function It(t,n,e,r){var i,o,s,a,u,c,m,l,f,p=t.constructor,g=e!==void 0;if(g?(ie(e,1,Ae),r===void 0?r=p.rounding:ie(r,0,8)):(e=p.precision,r=p.rounding),!t.isFinite())m=bn(t);else{for(m=ce(t),s=m.indexOf("."),g?(i=2,n==16?e=e*4-3:n==8&&(e=e*3-2)):i=n,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=et(ce(f),10,i),f.e=f.d.length),l=et(m,10,i),o=u=l.length;l[--u]==0;)l.pop();if(!l[0])m=g?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=W(t,f,e,r,0,i),l=t.d,o=t.e,c=cn),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(t.s<0?8:7)),l.length=e,c)for(;++l[--e]>i-1;)l[e]=0,e||(++o,l.unshift(1));for(u=l.length;!l[u-1];--u);for(s=0,m="";s<u;s++)m+=xt.charAt(l[s]);if(g){if(u>1)if(n==16||n==8){for(s=n==16?4:3,--u;u%s;u++)m+="0";for(l=et(m,i,n),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=xt.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>u)for(o-=u;o--;)m+="0";else o<u&&(m=m.slice(0,o)+"."+m.slice(o))}m=(n==16?"0x":n==2?"0b":n==8?"0o":"")+m}return t.s<0?"-"+m:m}function an(t,n){if(t.length>n)return t.length=n,!0}function Tr(t){return new this(t).abs()}function Ar(t){return new this(t).acos()}function xr(t){return new this(t).acosh()}function Br(t,n){return new this(t).plus(n)}function kr(t){return new this(t).asin()}function Sr(t){return new this(t).asinh()}function Cr(t){return new this(t).atan()}function Ir(t){return new this(t).atanh()}function Nr(t,n){t=new this(t),n=new this(n);var e,r=this.precision,i=this.rounding,o=r+4;return!t.s||!n.s?e=new this(NaN):!t.d&&!n.d?(e=ae(this,o,1).times(n.s>0?.25:.75),e.s=t.s):!n.d||t.isZero()?(e=n.s<0?ae(this,r,i):new this(0),e.s=t.s):!t.d||n.isZero()?(e=ae(this,o,1).times(.5),e.s=t.s):n.s<0?(this.precision=o,this.rounding=1,e=this.atan(W(t,n,o,1)),n=ae(this,o,1),this.precision=r,this.rounding=i,e=t.s<0?e.minus(n):e.plus(n)):e=this.atan(W(t,n,o,1)),e}function Lr(t){return new this(t).cbrt()}function Mr(t){return x(t=new this(t),t.e+1,2)}function Rr(t,n,e){return new this(t).clamp(n,e)}function Er(t){if(!t||typeof t!="object")throw Error(it+"Object expected");var n,e,r,i=t.defaults===!0,o=["precision",1,Ae,"rounding",0,8,"toExpNeg",-Ne,0,"toExpPos",0,Ne,"maxE",0,Ne,"minE",-Ne,0,"modulo",0,9];for(n=0;n<o.length;n+=3)if(e=o[n],i&&(this[e]=Bt[e]),(r=t[e])!==void 0)if(Y(r)===r&&r>=o[n+1]&&r<=o[n+2])this[e]=r;else throw Error(Te+e+": "+r);if(e="crypto",i&&(this[e]=Bt[e]),(r=t[e])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[e]=!0;else throw Error(mn);else this[e]=!1;else throw Error(Te+e+": "+r);return this}function Dr(t){return new this(t).cos()}function Kr(t){return new this(t).cosh()}function wn(t){var n,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,un(o)){c.s=o.s,I?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;I?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return Ct(c,o.toString())}else if(u!=="string")throw Error(Te+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),pn.test(o)?Ct(c,o):wr(c,o)}if(i.prototype=b,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Er,i.clone=wn,i.isDecimal=un,i.abs=Tr,i.acos=Ar,i.acosh=xr,i.add=Br,i.asin=kr,i.asinh=Sr,i.atan=Cr,i.atanh=Ir,i.atan2=Nr,i.cbrt=Lr,i.ceil=Mr,i.clamp=Rr,i.cos=Dr,i.cosh=Kr,i.div=vr,i.exp=Fr,i.floor=Or,i.hypot=_r,i.ln=Wr,i.log=Vr,i.log10=Ur,i.log2=qr,i.max=Gr,i.min=Hr,i.mod=zr,i.mul=jr,i.pow=Zr,i.random=Yr,i.round=Jr,i.sign=Xr,i.sin=Qr,i.sinh=$r,i.sqrt=ei,i.sub=ti,i.sum=ni,i.tan=ri,i.tanh=ii,i.trunc=oi,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<r.length;)t.hasOwnProperty(e=r[n++])||(t[e]=this[e]);return i.config(t),i}function vr(t,n){return new this(t).div(n)}function Fr(t){return new this(t).exp()}function Or(t){return x(t=new this(t),t.e+1,3)}function _r(){var t,n,e=new this(0);for(I=!1,t=0;t<arguments.length;)if(n=new this(arguments[t++]),n.d)e.d&&(e=e.plus(n.times(n)));else{if(n.s)return I=!0,new this(1/0);e=n}return I=!0,e.sqrt()}function un(t){return t instanceof We||t&&t.toStringTag===fn||!1}function Wr(t){return new this(t).ln()}function Vr(t,n){return new this(t).log(n)}function qr(t){return new this(t).log(2)}function Ur(t){return new this(t).log(10)}function Gr(){return hn(this,arguments,"lt")}function Hr(){return hn(this,arguments,"gt")}function zr(t,n){return new this(t).mod(n)}function jr(t,n){return new this(t).mul(n)}function Zr(t,n){return new this(t).pow(n)}function Yr(t){var n,e,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:ie(t,1,Ae),r=Math.ceil(t/S),this.crypto)if(crypto.getRandomValues)for(n=crypto.getRandomValues(new Uint32Array(r));o<r;)i=n[o],i>=429e7?n[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(r*=4);o<r;)i=n[o]+(n[o+1]<<8)+(n[o+2]<<16)+((n[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(n,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(mn);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=S,r&&t&&(i=z(10,S-t),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)e=0,a=[0];else{for(e=-1;a[0]===0;e-=S)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<S&&(e-=S-r)}return s.e=e,s.d=a,s}function Jr(t){return x(t=new this(t),t.e+1,this.rounding)}function Xr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Qr(t){return new this(t).sin()}function $r(t){return new this(t).sinh()}function ei(t){return new this(t).sqrt()}function ti(t,n){return new this(t).sub(n)}function ni(){var t=0,n=arguments,e=new this(n[t]);for(I=!1;e.s&&++t<n.length;)e=e.plus(n[t]);return I=!0,x(e,this.precision,this.rounding)}function ri(t){return new this(t).tan()}function ii(t){return new this(t).tanh()}function oi(t){return x(t=new this(t),t.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var We=b.constructor=wn(Bt);tt=new We(tt);nt=new We(nt);var oe=We;var ut=require("@solana/web3.js");var Pn=require("@solana/spl-token"),F=require("@solana/web3.js");function Nt({pubkey:t,isSigner:n=!1,isWritable:e=!0}){return{pubkey:t,isWritable:e,isSigner:n}}var Vi=[Nt({pubkey:Pn.TOKEN_PROGRAM_ID,isWritable:!1}),Nt({pubkey:F.SystemProgram.programId,isWritable:!1}),Nt({pubkey:F.SYSVAR_RENT_PUBKEY,isWritable:!1})];function Lt({publicKey:t,transformSol:n}){let e=Tn(t.toString());if(e instanceof F.PublicKey)return n&&e.equals(Ve)?ge:e;if(n&&e.toString()===Ve.toBase58())return ge;if(typeof e=="string"){if(e===F.PublicKey.default.toBase58())return F.PublicKey.default;try{return new F.PublicKey(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Tn(t){try{return new F.PublicKey(t)}catch{return t}}var qi=new F.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),An=new F.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),xn=new F.PublicKey("SysvarRent111111111111111111111111111111111"),Ui=new F.PublicKey("SysvarC1ock11111111111111111111111111111111"),Gi=new F.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new F.PublicKey("Sysvar1nstructions1111111111111111111111111"),Bn=F.SystemProgram.programId,zi=new F.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ji=new F.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Zi=new F.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Yi=new F.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ji=new F.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xi=new F.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qi=new F.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$i=new F.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),eo=new F.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),to=new F.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),no=new F.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new F.PublicKey("So11111111111111111111111111111111111111112"),Ve=F.PublicKey.default;function at(t){return Lt({publicKey:t,transformSol:!0})}var kn=require("@solana/web3.js"),Mt=require("@solana/spl-token"),Rt={chainId:101,address:kn.PublicKey.default.toBase58(),programId:Mt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},xe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Mt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Et=class{constructor({mint:n,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(n===Ve.toBase58()||n instanceof ut.PublicKey&&Ve.equals(n)){this.decimals=xe.decimals,this.symbol=xe.symbol,this.name=xe.name,this.mint=new ut.PublicKey(xe.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||n.toString().substring(0,6),this.name=i||n.toString().substring(0,6),this.mint=o?ut.PublicKey.default:Lt({publicKey:n}),this.isToken2022=s}equals(n){return this===n?!0:this.mint.equals(n.mint)}},Ce=Et;Ce.WSOL=new Et(H(K({},xe),{mint:xe.address}));var qe=require("lodash");var Dt=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let e=n.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},Sn={},si={};function J(t){let n=(0,qe.get)(Sn,t);if(!n){let e=(0,qe.get)(si,t);n=new Dt({name:t,logLevel:e}),(0,qe.set)(Sn,t,n)}return n}var Ge=ee(require("big.js")),In=ee(require("bn.js")),Nn=ee(require("decimal.js-light"));var Cn=ee(require("toformat")),ai=Cn.default,Ue=ai;var ct=J("module/fraction"),Kt=Ue(Ge.default),He=Ue(Nn.default),ui={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},ci={[0]:Ge.default.roundDown,[1]:Ge.default.roundHalfUp,[2]:Ge.default.roundUp},q=class{constructor(n,e=new In.default(1)){this.numerator=Be(n),this.denominator=Be(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(n){let e=n instanceof q?n:new q(Be(n));return this.denominator.eq(e.denominator)?new q(this.numerator.add(e.numerator),this.denominator):new q(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(n){let e=n instanceof q?n:new q(Be(n));return this.denominator.eq(e.denominator)?new q(this.numerator.sub(e.numerator),this.denominator):new q(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(n){let e=n instanceof q?n:new q(Be(n));return new q(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(n){let e=n instanceof q?n:new q(Be(n));return new q(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(n,e={groupSeparator:""},r=1){Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<=0&&ct.logWithError(`${n} is not positive.`),He.set({precision:n+1,rounding:ui[r]});let i=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return i.toFormat(i.decimalPlaces(),e)}toFixed(n,e={groupSeparator:""},r=1){return Number.isInteger(n)||ct.logWithError(`${n} is not an integer.`),n<0&&ct.logWithError(`${n} is negative.`),Kt.DP=n,Kt.RM=ci[r]||1,new Kt(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,e)}isZero(){return this.numerator.isZero()}};var xo=J("Raydium_price");var vt=class{constructor({decimals:n,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=n,this.symbol=e,this.name=r}equals(n){return this===n}},lt=vt;lt.SOL=new vt(Rt);var Mn=ee(require("bn.js"));var Ln=new q(new Mn.default(100)),le=class extends q{toSignificant(n=5,e,r){return this.mul(Ln).toSignificant(n,e,r)}toFixed(n=2,e,r){return this.mul(Ln).toFixed(n,e,r)}};var mi=require("@solana/web3.js"),fi=ee(require("bn.js"));var Ft=new te.default(0),Xo=new te.default(1),Qo=new te.default(2),$o=new te.default(3),es=new te.default(5),pi=new te.default(10),ts=new te.default(100),ns=new te.default(1e3),rs=new te.default(1e4),En=9007199254740991;function Be(t){let n=J("Raydium_parseBigNumberish");if(t instanceof te.default)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new te.default(t);n.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&n.logWithError(`BigNumberish number underflow: ${t}`),(t>=En||t<=-En)&&n.logWithError(`BigNumberish number overflow: ${t}`),new te.default(String(t))):typeof t=="bigint"?new te.default(t.toString()):(n.error(`invalid BigNumberish value: ${t}`),new te.default(0))}var ps=J("Raydium_amount"),ds=Ue(Dn.default);var On=require("@solana/web3.js");var X=require("@solana/web3.js"),vn=require("@solana/spl-token");var he={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut"};var Kn=J("Raydium_txUtil"),Fn=1644;function mt(t){let n=[],e=[];return t.microLamports&&(n.push(X.ComputeBudgetProgram.setComputeUnitPrice({microLamports:t.microLamports})),e.push(he.SetComputeUnitPrice)),t.units&&(n.push(X.ComputeBudgetProgram.setComputeUnitLimit({units:t.units})),e.push(he.SetComputeUnitLimit)),{instructions:n,instructionTypes:e}}async function Me(t,n){var r,i;let e=n!=null?n:"confirmed";try{return((i=await((r=t.getLatestBlockhash)==null?void 0:r.call(t,{commitment:e})))==null?void 0:i.blockhash)||(await t.getRecentBlockhash(e)).blockhash}catch{return(await t.getRecentBlockhash(e)).blockhash}}function gi(t,n){t.length<1&&Kn.logWithError(`no instructions provided: ${t.toString()}`),n.length<1&&Kn.logWithError(`no signers provided:, ${n.toString()}`);let e=new X.Transaction;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=n[0],e.add(...t);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Fn}catch{return!1}}function be(t,n){let[e,r]=X.PublicKey.findProgramAddressSync(t,n);return{publicKey:e,nonce:r}}function ze({instructions:t,payer:n,signers:e}){return gi(t,[n,...e])}function je({instructions:t,payer:n,lookupTableAddressAccount:e,recentBlockhash:r=X.Keypair.generate().publicKey.toString()}){let o=new X.TransactionMessage({payerKey:n,recentBlockhash:r,instructions:t}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new X.VersionedTransaction(o).serialize()).toString("base64").length<Fn}catch{return!1}}var hi=t=>Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength):Buffer.from(t);function Ie(t){let n=[];return t.forEach(e=>{e instanceof X.Transaction&&(e.recentBlockhash||(e.recentBlockhash=vn.TOKEN_PROGRAM_ID.toBase58()),e.feePayer||(e.feePayer=X.Keypair.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof X.VersionedTransaction&&(r=hi(r));let i=r.toString("base64");n.push(i)}),console.log("simulate tx string:",n),n}var _n=require("@solana/spl-token");function Wn(t,n,e){return be([t.toBuffer(),(e!=null?e:_n.TOKEN_PROGRAM_ID).toBuffer(),n.toBuffer()],new On.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var Wt=ee(require("bn.js")),_t=new Wt.default(1e6);function bi(t,n,e){return t.mul(n).add(e).sub(new Wt.default(1)).div(e)}function Vn(t,n,e){return t.mul(n).div(e)}var ft=class{static tradingFee(n,e){return bi(n,e,_t)}static protocolFee(n,e){return Vn(n,e,_t)}static fundFee(n,e){return Vn(n,e,_t)}};var Ee=ee(require("bn.js"));function pt(t,n){if(n.isZero())throw Error("divisor is zero");return t.mod(n)}function yi(t,n){if(n.isZero())throw Error("rhs is zero");let e=t.div(n);if(e.isZero())throw Error("quotient is zero");let r=pt(t,n);if(r.gt(Re)){e=e.add(new Ee.default(1));let i=t.div(e);r=pt(t,e),r.gt(Re)&&(i=i.add(new Ee.default(1)))}return[e,n]}var Re=new Ee.default(0),dt=class{static swapWithoutFees(n,e,r){let i=e.mul(r),o=e.add(n),[s,a]=yi(i,o),u=a.sub(e),c=r.sub(s);if(c.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:u,destinationAmountSwapped:c}}static lpTokensToTradingTokens(n,e,r,i,o){let s=n.mul(r).div(e),a=n.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return pt(n.mul(r),e).gt(Re)&&s.gt(Re)&&(s=s.add(new Ee.default(1))),pt(n.mul(i),e).gt(Re)&&a.gt(Re)&&(a=a.add(new Ee.default(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var gt=class{static validate_supply(n,e){if(n.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(n,e,r,i){let o=ft.tradingFee(n,i),s=n.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=dt.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};var _=require("@solana/web3.js"),Un=ee(require("axios"));var Se=require("@solana/web3.js");var Gt=require("@solana/web3.js"),ke=require("@solana/spl-token");function Vt(t,n=1,e=[]){let r=[...t];if(n<=0)return e;for(;r.length;)e.push(r.splice(0,n));return e}var E=require("@solana/web3.js"),js=new E.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Zs=new E.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ys=new E.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Js=new E.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Xs=new E.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qs=new E.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),$s=new E.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ea=new E.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ta=new E.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),na=new E.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ra=new E.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ia=new E.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),oa=new E.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),sa=new E.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),aa=new E.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ua=new E.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ca=new E.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),la=new E.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ma=new E.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),wi=new E.PublicKey("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Pi=new E.PublicKey("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Ti=new E.PublicKey("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var fa={SERUM_MARKET:E.PublicKey.default,OPENBOOK_MARKET:new E.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.PublicKey.default,FarmV3:new E.PublicKey("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E.PublicKey("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E.PublicKey("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E.PublicKey("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E.PublicKey("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E.PublicKey("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new E.PublicKey("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:wi,CREATE_CPMM_POOL_AUTH:Pi,CREATE_CPMM_POOL_FEE_ACC:Ti,FEE_DESTINATION_ID:new E.PublicKey("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};var se=ee(require("bn.js")),Ze=1e4;function De(t,n,e,r){if(n===void 0)return{amount:t,fee:void 0,expirationTime:void 0};let i=H(K({},n),{olderTransferFee:{epoch:BigInt(n.olderTransferFee.epoch),maximumFee:BigInt(n.olderTransferFee.maximumFee),transferFeeBasisPoints:n.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(n.newerTransferFee.epoch),maximumFee:BigInt(n.newerTransferFee.maximumFee),transferFeeBasisPoints:n.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new se.default(o.maximumFee.toString()),a=e.epoch<i.newerTransferFee.epoch?(Number(i.newerTransferFee.epoch)*e.slotsInEpoch-e.absoluteSlot)*400/1e3:void 0;if(r)if(o.transferFeeBasisPoints===Ze){let u=new se.default(o.maximumFee.toString());return{amount:t.add(u),fee:u,expirationTime:a}}else{let u=qt(t.mul(new se.default(Ze)),new se.default(Ze-o.transferFeeBasisPoints)),c=new se.default(o.maximumFee.toString()),m=u.sub(t).gt(c)?t.add(c):u,l=qt(m.mul(new se.default(o.transferFeeBasisPoints)),new se.default(Ze)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=qt(t.mul(new se.default(o.transferFeeBasisPoints)),new se.default(Ze)),c=u.gt(s)?s:u;return{amount:t,fee:c,expirationTime:a}}}function qt(t,n){let{div:e,mod:r}=t.divmod(n);return r.gt(new se.default(0))?e.add(new se.default(1)):e}var Ut=J("Raydium_accountInfo_util");async function Ht(t,n,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=K({batchRequest:!1},e),s=Vt(n,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=t._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:f}}),c=Vt(u,10);a=(await(await Promise.all(c.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&Ut.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(f=>{if(f){let{data:p,executable:g,lamports:d,owner:T,rentEpoch:P}=f;return p.length!==2&&p[1]!=="base64"&&Ut.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:g,lamports:d,owner:new Gt.PublicKey(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>t.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&Ut.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function Ye(t,n,e){let r=await Ht(t,n.map(i=>i.pubkey),e);return n.map((i,o)=>H(K({},i),{accountInfo:r[o]}))}async function qn({connection:t,mints:n,config:e}){var o,s,a;if(n.length===0)return{};let r=await Ye(t,n.map(u=>({pubkey:at(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<ke.MINT_SIZE){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=(0,ke.unpackMint)(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=H(K({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||ke.TOKEN_PROGRAM_ID,feeConfig:(a=(0,ke.getTransferFeeConfig)(c))!=null?a:void 0})}return i[Gt.PublicKey.default.toBase58()]=i[ge.toBase58()],i}async function zt({connection:t,address:n}){let e=await Ht(t,[...new Set(n.map(i=>i.toString()))].map(i=>new Se.PublicKey(i))),r={};for(let i=0;i<n.length;i++){let o=e[i],s=n[i];if(!o)continue;let a=new Se.AddressLookupTableAccount({key:s,state:Se.AddressLookupTableAccount.deserialize(o.data)});r[s.toString()]=a,ht[s.toString()]=a}return r}var ht={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Se.AddressLookupTableAccount({key:new Se.PublicKey("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Se.AddressLookupTableAccount.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var bt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner,this.cluster=n.cluster,this.blockhashCommitment=n.blockhashCommitment,this.api=n.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let n=(await Un.default.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=n==null?void 0:n[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:e,instructionTypes:r}=mt(n);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:n,defaultIns:e}){try{let r=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addInstruction({instructions:n=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...n),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==_.PublicKey.default.toString())),this}async versionBuild({txVersion:n,extInfo:e}){return n===0?await this.buildV0(K({},e||{})):this.build(e)}build(n){var r;let e=new _.Transaction;return this.allInstructions.length&&e.add(...this.allInstructions),e.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:e,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await Me(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Ie([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await(0,_.sendAndConfirmTransaction)(this.connection,e,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(e.serialize(),{skipPreflight:s}),signedTx:e};if(this.signAllTransactions){let m=await this.signAllTransactions([e]);return{txId: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:n||{}}}buildMultiTx(n){var c;let{extraPreBuildData:e=[],extInfo:r}=n,{transaction:i}=this.build(r),o=e.filter(m=>m.transaction.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async m=>{var T;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:g=!0}=m||{},d=p!=null?p:await Me(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let h=await(0,_.sendAndConfirmTransaction)(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(h)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=d,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((h,w)=>(h.recentBlockhash=d,a[w].length&&h.sign(...a[w]),h));Ie(P);let y=await this.signAllTransactions(P);if(l){let h=0,w=[],B=async()=>{if(!y[h])return;let A=await this.connection.sendRawTransaction(y[h].serialize(),{skipPreflight:g});w.push({txId:A,status:"sent",signedTx:y[h]}),f==null||f([...w]),h++,this.connection.onSignature(A,D=>{let N=w.findIndex(R=>R.txId===A);N>-1&&(w[N].status=D.err?"error":"success"),f==null||f([...w]),D.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:g});h.push(B)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:r})}async buildV0(n){var p;let f=n||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=pe(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=K(K({},this.cluster==="devnet"?{}:ht),e),a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let g of a)s[g]===void 0&&u.push(new _.PublicKey(g));let c=await zt({connection:this.connection,address:u});for(let[g,d]of Object.entries(c))s[g]=d;let m=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:i?_.PublicKey.default.toBase58():await Me(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((p=this.owner)==null?void 0:p.signer)&&!this.signers.some(g=>g.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new _.VersionedTransaction(m);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async g=>{var y;let{recentBlockHash:d,skipPreflight:T=!0,sendAndConfirm:P}=g||{};if(d&&(l.message.recentBlockhash=d),Ie([l]),(y=this.owner)!=null&&y.isKeyPair){let h=await this.connection.sendTransaction(l,{skipPreflight:T});if(P){let{lastValidBlockHeight:w,blockhash:B}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:B,lastValidBlockHeight:w,signature:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(h[0],{skipPreflight:T}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(n){var c;let{extraPreBuildData:e=[],buildProps:r}=n,{transaction:i}=await this.buildV0(r),o=e.filter(m=>m.builder.instructions.length>0),s=[i,...o.map(m=>m.transaction)],a=[this.signers,...o.map(m=>m.signers)],u=[...this.instructionTypes,...o.map(m=>m.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(m=>{m.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,l)=>{m.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async m=>{var d;let{sequentially:l,onTxUpdate:f,recentBlockHash:p,skipPreflight:g=!0}=m||{};if(p&&s.forEach(T=>T.message.recentBlockhash=p),Ie(s),(d=this.owner)!=null&&d.isKeyPair){if(l){let T=[];for(let P of s){let y=await this.connection.sendTransaction(P,{skipPreflight:g}),{lastValidBlockHeight:h,blockhash:w}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:w,lastValidBlockHeight:h,signature:y},"confirmed"),T.push(y)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:g}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(l){let P=0,y=[],h=async()=>{if(!T[P])return;let w=await this.connection.sendTransaction(T[P],{skipPreflight:g});y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,B=>{let A=y.findIndex(D=>D.txId===w);A>-1&&(y[A].status=B.err?"error":"success"),f==null||f([...y]),B.err||h()},"processed"),this.connection.getSignatureStatus(w)};return h(),{txIds:[],signedTxs:T}}else{let P=[];for(let y=0;y<T.length;y+=1){let h=await this.connection.sendTransaction(T[y],{skipPreflight:g});P.push(h)}return{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(n){var m;let c=n||{},{computeBudgetConfig:e}=c,r=pe(c,["computeBudgetConfig"]),i=e?mt(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>H(K({},l),{[f.publicKey.toBase58()]:f}),{}),s=[],a=[],u=[];if(this.allInstructions.forEach(l=>{let f=[...u,l],p=e?[...i.instructions,...f]:f,d=[...new Set(f.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(T=>new _.PublicKey(T));if(u.length<12&&ze({instructions:p,payer:this.feePayer,signers:d})||ze({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");ze({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new _.Transaction().add(...i.instructions,...u)):s.push(new _.Transaction().add(...u)),a.push(Array.from(new Set(u.map(T=>T.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(T=>o[T]).filter(T=>T!==void 0)),u=[l]}}),u.length>0){let f=[...new Set(u.map(p=>p.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(p=>o[p]).filter(p=>p!==void 0);ze({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new _.Transaction().add(...i.instructions,...u)):s.push(new _.Transaction().add(...u)),a.push(f)}return s.forEach(l=>l.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var P;let{sequentially:f,onTxUpdate:p,recentBlockHash:g,skipPreflight:d=!0}=l||{},T=g!=null?g:await Me(this.connection,this.blockhashCommitment);if(s.forEach(async(y,h)=>{y.recentBlockhash=T,a[h].length&&y.sign(...a[h])}),Ie(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let h of s){let w=await(0,_.sendAndConfirmTransaction)(this.connection,h,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d});y.push(w)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:d}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let h=0,w=[],B=async()=>{if(!y[h])return;let A=await this.connection.sendRawTransaction(y[h].serialize(),{skipPreflight:d});w.push({txId:A,status:"sent",signedTx:y[h]}),p==null||p([...w]),h++,this.connection.onSignature(A,D=>{let N=w.findIndex(R=>R.txId===A);N>-1&&(w[N].status=D.err?"error":"success"),p==null||p([...w]),D.err||B()},"processed"),this.connection.getSignatureStatus(A)};return await B(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let B=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});h.push(B)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(n){var P;let T=n||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=pe(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=K(K({},this.cluster==="devnet"?{}:ht),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new _.PublicKey(y));let c=await zt({connection:this.connection,address:u});for(let[y,h]of Object.entries(c))s[y]=h;let m=e?mt(e):{instructions:[],instructionTypes:[]},l=await Me(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,h)=>H(K({},y),{[h.publicKey.toBase58()]:h}),{}),p=[],g=[],d=[];if(this.allInstructions.forEach(y=>{let h=[...d,y],w=e?[...m.instructions,...h]:h;if(d.length<12&&je({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||je({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s}))d.push(y);else{if(d.length===0)throw Error("item ins too big");let B={};for(let A of[...new Set(a)])s[A]!==void 0&&(B[A]=s[A]);if(e&&je({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(A))}else{let A=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(A))}g.push(Array.from(new Set(d.map(A=>A.keys.filter(D=>D.isSigner).map(D=>D.pubkey.toString())).flat())).map(A=>f[A]).filter(A=>A!==void 0)),d=[y]}}),d.length>0){let h=[...new Set(d.map(w=>w.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&je({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(w))}else{let w=new _.TransactionMessage({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new _.VersionedTransaction(w))}g.push(h)}return(P=this.owner)!=null&&P.signer&&g.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:n,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var D;let{sequentially:h,onTxUpdate:w,recentBlockHash:B,skipPreflight:A=!0}=y||{};if(p.map(async(N,R)=>{g[R].length&&N.sign(g[R]),B&&(N.message.recentBlockhash=B)}),Ie(p),(D=this.owner)!=null&&D.isKeyPair){if(h){let N=[];for(let R of p){let v=await this.connection.sendTransaction(R,{skipPreflight:A}),{lastValidBlockHeight:M,blockhash:G}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:G,lastValidBlockHeight:M,signature:v},"confirmed"),N.push(v)}return{txIds:N,signedTxs:p}}return{txIds:await Promise.all(p.map(async N=>await this.connection.sendTransaction(N,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let N=await this.signAllTransactions(p);if(h){let R=0,v=[],M=async()=>{if(!N[R])return;let G=await this.connection.sendTransaction(N[R],{skipPreflight:A});v.push({txId:G,status:"sent",signedTx:N[R]}),w==null||w([...v]),R++,this.connection.onSignature(G,$=>{let re=v.findIndex(U=>U.txId===G);re>-1&&(v[re].status=$.err?"error":"success"),w==null||w([...v]),$.err||M()},"processed"),this.connection.getSignatureStatus(G)};return M(),{txIds:[],signedTxs:N}}else{let R=[];for(let v=0;v<N.length;v+=1){let M=await this.connection.sendTransaction(N[v],{skipPreflight:A});R.push(M)}return{txIds:R,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var jt=(...t)=>t.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),Je=class{constructor({scope:n,moduleName:e}){this.disabled=!1;this.scope=n,this.logger=J(e)}createTxBuilder(n){return this.scope.checkOwner(),new bt({connection:this.scope.connection,feePayer:n||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...n){this.logger.debug(jt(n))}logInfo(...n){this.logger.info(jt(n))}logAndCreateError(...n){let e=jt(n);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ai=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),xi=Buffer.from("amm_config","utf8"),Bi=Buffer.from("pool","utf8"),ki=Buffer.from("pool_lp_mint","utf8"),Si=Buffer.from("pool_vault","utf8"),Ci=Buffer.from("observation","utf8");function yt(t){return be([Ai],t)}function Ii(t,n){return be([xi,Mi(n)],t)}function Ni(t,n,e,r){return be([Bi,n.toBuffer(),e.toBuffer(),r.toBuffer()],t)}function Li(t,n){return be([ki,n.toBuffer()],t)}function Gn(t,n,e){return be([Si,n.toBuffer(),e.toBuffer()],t)}function Zt(t,n){return be([Ci,n.toBuffer()],t)}function Mi(t){let n=new ArrayBuffer(2);return new DataView(n).setUint16(0,t,!1),new Uint8Array(n)}function Hn({programId:t,mintA:n,mintB:e}){let r=Ii(t,0).publicKey,i=yt(t).publicKey,o=Ni(t,r,n,e).publicKey,s=Li(t,o).publicKey,a=Gn(t,o,n).publicKey,u=Gn(t,o,e).publicKey,c=Zt(t,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}var Xe=require("@solana/web3.js"),ye=require("@solana/spl-token");var Jn=require("@solana/web3.js"),ve=ee(require("bn.js"));var k=require("@solana/buffer-layout"),Yt=k.Layout,zn=k.Structure;var Jt=k.UInt;var jn=k.u8,Zn=k.u16;var Yn=k.seq;var Ke=k.blob;var Xt=class extends Yt{constructor(e,r,i){super(e,i);this.blob=Ke(e),this.signed=r}decode(e,r=0){let i=new ve.default(this.blob.decode(e,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(e,r,i=0){return typeof e=="number"&&(e=new ve.default(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function me(t){return new Jt(1,t)}function $t(t){return new Jt(4,t)}function V(t){return new Xt(8,!1,t)}var wt=class extends Yt{constructor(e,r,i,o){super(e.span,o);this.layout=e,this.decoder=r,this.encoder=i}decode(e,r){return this.decoder(this.layout.decode(e,r))}encode(e,r,i){return this.layout.encode(this.encoder(e),r,i)}getSpan(e,r){return this.layout.getSpan(e,r)}};function Q(t){return new wt(Ke(32),n=>new Jn.PublicKey(n),n=>n.toBuffer(),t)}function Xn(t){return new wt(jn(),Ri,Ei,t)}function Ri(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function Ei(t){return t?1:0}var Qt=class extends zn{decode(n,e){return super.decode(n,e)}};function fe(t,n,e){return new Qt(t,n,e)}function en(t,n,e){let r,i=typeof n=="number"?n:(0,ve.isBN)(n)?n.toNumber():new Proxy(n,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=(0,ve.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return Yn(t,i,e)}var Di=J("Raydium_cpmm"),Pt={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173]};function Qn(t,n,e,r,i,o,s,a,u,c,m,l,f,p,g,d,T,P,y,h){let w=fe([V("amountMaxA"),V("amountMaxB"),V("openTime")]),B=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:T,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:ye.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:Bn,isSigner:!1,isWritable:!1},{pubkey:xn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:h},A),new Xe.TransactionInstruction({keys:B,programId:t,data:Buffer.from([...Pt.initialize,...A])})}function $n(t,n,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=fe([V("lpAmount"),V("amountMaxA"),V("amountMaxB")]),T=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:ye.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0}],P=Buffer.alloc(d.span);return Di.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:g.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:g},P),new Xe.TransactionInstruction({keys:T,programId:t,data:Buffer.from([...Pt.deposit,...P])})}function er(t,n,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=fe([V("lpAmount"),V("amountMinA"),V("amountMinB")]),T=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:ye.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:ye.TOKEN_2022_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:An,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:g},P),new Xe.TransactionInstruction({keys:T,programId:t,data:Buffer.from([...Pt.withdraw,...P])})}function tr(t,n,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=fe([V("amountIn"),V("amounOutMin")]),P=[{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!1},{pubkey:p,isSigner:!1,isWritable:!0}],y=Buffer.alloc(T.span);return T.encode({amountIn:g,amounOutMin:d},y),new Xe.TransactionInstruction({keys:P,programId:t,data:Buffer.from([...Pt.swapBaseInput,...y])})}var j=ee(require("bn.js"));var nr=fe([Ke(8),me("bump"),Xn("disableCreatePool"),Zn("index"),V("tradeFeeRate"),V("protocolFeeRate"),V("fundFeeRate"),V("createPoolFee"),Q("protocolOwner"),Q("fundOwner"),en(V(),16)]),rr=fe([Ke(8),Q("configId"),Q("poolCreator"),Q("vaultA"),Q("vaultB"),Q("mintLp"),Q("mintA"),Q("mintB"),Q("mintProgramA"),Q("mintProgramB"),Q("observationId"),me("bump"),me("status"),me("lpDecimals"),me("mintDecimalA"),me("mintDecimalB"),V("lpAmount"),V("protocolFeesMintA"),V("protocolFeesMintB"),V("fundFeesMintA"),V("fundFeesMintB"),V("openTime"),en(V(),32)]);var Tu=fe([$t("mintAuthorityOption"),Q("mintAuthority"),V("supply"),me("decimals"),me("isInitialized"),$t("freezeAuthorityOption"),Q("freezeAuthority")]);var Ki=require("@solana/web3.js"),ir=require("@solana/spl-token");var Fe=i=>{var o=i,{address:t,programId:n,decimals:e}=o,r=pe(o,["address","programId","decimals"]);return K({chainId:101,address:at(t).toBase58(),programId:n,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},Qe=t=>t?H(K({},t),{transferFeeConfigAuthority:t.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:t.withdrawWithheldAuthority.toBase58(),withheldAmount:t.withheldAmount.toString(),olderTransferFee:H(K({},t.olderTransferFee),{epoch:t.olderTransferFee.epoch.toString(),maximumFee:t.olderTransferFee.maximumFee.toString()}),newerTransferFee:H(K({},t.newerTransferFee),{epoch:t.newerTransferFee.epoch.toString(),maximumFee:t.newerTransferFee.maximumFee.toString()})}):void 0;var Tt=class extends Je{constructor(n){super(n)}async load(){this.checkDisabled()}async getCpmmPoolKeys(n){return(await this.scope.api.fetchPoolKeysById({idList:[n]}))[0]}async getRpcPoolInfo(n,e){return(await this.getRpcPoolInfos([n],e))[n]}async getRpcPoolInfos(n,e){let r=await Ye(this.scope.connection,n.map(l=>({pubkey:new C.PublicKey(l)}))),i={},o=new Set,s=[];for(let l=0;l<n.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(n[l]));let p=rr.decode(f.accountInfo.data);i[String(n[l])]=H(K({},p),{programId:f.accountInfo.owner}),o.add(String(p.configId)),s.push(p.vaultA,p.vaultB)}let a={};if(e){let l=[...o],f=await Ye(this.scope.connection,l.map(p=>({pubkey:new C.PublicKey(p)})));for(let p=0;p<l.length;p++){let g=f[p].accountInfo;if(g===null)throw Error("fetch pool config error: "+l[p]);a[l[p]]=nr.decode(g.data)}}let u={},c=await Ye(this.scope.connection,s.map(l=>({pubkey:new C.PublicKey(l)})));for(let l=0;l<s.length;l++){let f=c[l].accountInfo;if(f===null)throw Error("fetch vault info error: "+s[l]);u[String(s[l])]=new j.default(ne.AccountLayout.decode(f.data).amount.toString())}let m={};for(let[l,f]of Object.entries(i)){let p=u[f.vaultA.toString()].sub(f.protocolFeesMintA).sub(f.fundFeesMintA),g=u[f.vaultB.toString()].sub(f.protocolFeesMintB).sub(f.fundFeesMintB);m[l]=H(K({},f),{baseReserve:p,quoteReserve:g,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new oe(g.toString()).div(new oe(10).pow(f.mintDecimalB)).div(new oe(p.toString()).div(new oe(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:n,mintInfos:e}){return Object.keys(n).reduce((r,i)=>{var u,c,m,l;let o=n[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return H(K({},r),{[i]:H(K({},o),{id:new C.PublicKey(i),configInfo:o.configInfo,version:7,authority:yt(o.programId).publicKey,mintA:Fe({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?Qe((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Fe({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?Qe((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(n){let e=await this.getRpcPoolInfo(n,!0),r=await qn({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Fe({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?Qe(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Fe({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?Qe(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Fe({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:ne.TOKEN_PROGRAM_ID.toBase58()}),a={id:e.configId.toBase58(),index:e.configInfo.index,protocolFeeRate:e.configInfo.protocolFeeRate.toNumber(),tradeFeeRate:e.configInfo.tradeFeeRate.toNumber(),fundFeeRate:e.configInfo.fundFeeRate.toNumber(),createPoolFee:e.configInfo.createPoolFee.toString()},u={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]};return{poolInfo:{programId:e.programId.toBase58(),id:n,type:"Standard",lpMint:s,lpPrice:0,lpAmount:e.lpAmount.toNumber(),config:a,mintA:i,mintB:o,rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:e.poolPrice.toNumber(),mintAmountA:new oe(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new oe(e.vaultBAmount.toString()).div(10**o.decimals).toNumber(),feeRate:e.configInfo.tradeFeeRate.toNumber(),openTime:e.openTime.toString(),tvl:0,day:u,week:u,month:u,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0},poolKeys:{programId:e.programId.toBase58(),id:n,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:yt(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:n,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=pe(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var G,$,re;let f=i.feePayer||((G=this.scope.owner)==null?void 0:G.publicKey),p=new j.default(new C.PublicKey(c.mintA.address).toBuffer()).lte(new j.default(new C.PublicKey(c.mintB.address).toBuffer())),[g,d]=p?[c.mintA,c.mintB]:[c.mintB,c.mintA],[T,P]=p?[c.mintAAmount,c.mintBAmount]:[c.mintBAmount,c.mintAAmount],y=i.useSOLBalance&&g.address===ne.NATIVE_MINT.toBase58(),h=i.useSOLBalance&&d.address===ne.NATIVE_MINT.toBase58(),[w,B]=[new C.PublicKey(g.address),new C.PublicKey(d.address)],A=this.createTxBuilder(),{account:D,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:w,tokenProgram:g.programId,owner:this.scope.ownerPubKey,createInfo:y?{payer:f,amount:T}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:o,checkCreateATAOwner:s});A.addInstruction(N||{});let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new C.PublicKey(d.address),tokenProgram:d.programId,owner:this.scope.ownerPubKey,createInfo:h?{payer:f,amount:P}:void 0,notUseTokenAccount:h,skipCloseAccount:!h,associatedOnly:h?!1:o,checkCreateATAOwner:s});if(A.addInstruction(v||{}),D===void 0||R===void 0)throw Error("you don't has some token account");let M=Hn({programId:n,mintA:w,mintB:B});return A.addInstruction({instructions:[Qn(n,this.scope.ownerPubKey,M.configId,M.authority,M.poolId,w,B,M.lpMint,D,R,Wn(this.scope.ownerPubKey,M.lpMint).publicKey,M.vaultA,M.vaultB,e,new C.PublicKey(($=g.programId)!=null?$:ne.TOKEN_PROGRAM_ID),new C.PublicKey((re=d.programId)!=null?re:ne.TOKEN_PROGRAM_ID),M.observationId,T,P,r)],instructionTypes:[he.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:H(K({},M),{mintA:g,mintB:d,programId:n,poolFeeAccount:e})}})}async addLiquidity(n){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region"),i.isZero()&&this.logAndCreateError("amounts must greater than zero","amountInA",{amountInA:i.toString()});let{account:l}=this.scope,{bypassAssociatedCheck:f,checkCreateATAOwner:p}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1},c),g=a?void 0:await this.getRpcPoolInfo(e.id),{liquidity:d,inputAmountFee:T,anotherAmount:P}=a||this.computePairAmount({poolInfo:H(K({},e),{lpAmount:new oe(g.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:g.baseReserve,quoteReserve:g.quoteReserve,slippage:new le(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new oe(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,h=e.mintA.address===ne.NATIVE_MINT.toString(),w=e.mintB.address===ne.NATIVE_MINT.toString(),B=this.createTxBuilder(),[A,D]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)],{account:N,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new C.PublicKey(e.mintA.address),owner:this.scope.ownerPubKey,createInfo:h||(o?i:y).isZero()?{payer:this.scope.ownerPubKey,amount:o?i:y}:void 0,skipCloseAccount:!h,notUseTokenAccount:h,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(R||{});let{account:v,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new C.PublicKey(e.mintB.address),owner:this.scope.ownerPubKey,createInfo:w||(o?y:i).isZero()?{payer:this.scope.ownerPubKey,amount:o?y:i}:void 0,skipCloseAccount:!w,notUseTokenAccount:w,associatedOnly:!1,checkCreateATAOwner:p});B.addInstruction(M||{}),!N&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let G=await l.getCreatedTokenAccount({mint:new C.PublicKey(e.lpMint.address)}),tn=await l.handleTokenAccount({side:"out",amount:0,mint:new C.PublicKey(e.lpMint.address),tokenAccount:G,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:$}=tn,re=pe(tn,["tokenAccount"]);B.addInstruction(re);let U=r!=null?r:await this.getCpmmPoolKeys(e.id),O=new le(new j.default(1)).sub(s);return B.addInstruction({instructions:[$n(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(U.authority),new C.PublicKey(e.id),$,N,v,new C.PublicKey(U.vault.A),new C.PublicKey(U.vault.B),A,D,new C.PublicKey(e.lpMint.address),a?a==null?void 0:a.liquidity:O.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[he.CpmmAddLiquidity],lookupTableAddress:U.lookupTableAccount?[U.lookupTableAccount]:[]}),B.addCustomComputeBudget(u),B.versionBuild({txVersion:m})}async withdrawLiquidity(n){var $,re;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=n;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new le(new j.default(1)).sub(o),c=await this.getRpcPoolInfo(e.id),[m,l]=[u.mul(i.mul(c.baseReserve).div(c.lpAmount)).quotient,u.mul(i.mul(c.quoteReserve).div(c.lpAmount)).quotient],f=await this.scope.fetchEpochInfo(),[p,g]=[De(m,e.mintA.extensions.feeConfig,f,!1),De(l,e.mintB.extensions.feeConfig,f,!1)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)],h=P.equals(ge),w=y.equals(ge),B,A,{account:D,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new C.PublicKey(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});B=D,N&&T.addInstruction(N);let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new C.PublicKey(e.mintB.address),notUseTokenAccount:w,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!w,associatedOnly:!w,checkCreateATAOwner:!1});A=R,v&&T.addInstruction(v),(!B||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let M=await d.getCreatedTokenAccount({mint:new C.PublicKey(e.lpMint.address)});M||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let G=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[er(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(G.authority),new C.PublicKey(e.id),M,B,A,new C.PublicKey(G.vault.A),new C.PublicKey(G.vault.B),P,y,new C.PublicKey(e.lpMint.address),i,m.sub(($=p.fee)!=null?$:new j.default(0)),l.sub((re=g.fee)!=null?re:new j.default(0)))],instructionTypes:[he.CpmmWithdrawLiquidity],lookupTableAddress:G.lookupTableAccount?[G.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(n){var N,R,v,M;let{poolInfo:e,poolKeys:r,baseIn:i,inputAmount:o,swapResult:s,slippage:a=0,config:u,computeBudgetConfig:c,txVersion:m}=n,{bypassAssociatedCheck:l,checkCreateATAOwner:f,associatedOnly:p}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},u),g=this.createTxBuilder(),[d,T]=[new C.PublicKey(e.mintA.address),new C.PublicKey(e.mintB.address)];s.destinationAmountSwapped=s.destinationAmountSwapped.mul(new j.default((1-a)*1e4)).div(new j.default(1e4));let P=e.mintA.address===ge.toBase58(),y=e.mintB.address===ge.toBase58(),{account:h,instructionParams:w}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new C.PublicKey((N=e.mintA.programId)!=null?N:ne.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:P||!i?{payer:this.scope.ownerPubKey,amount:i?s.sourceAmountSwapped:0}:void 0,notUseTokenAccount:P,skipCloseAccount:!P,associatedOnly:P?!1:p,checkCreateATAOwner:f});w&&g.addInstruction(w);let{account:B,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({mint:T,tokenProgram:new C.PublicKey((R=e.mintB.programId)!=null?R:ne.TOKEN_PROGRAM_ID),owner:this.scope.ownerPubKey,createInfo:y||i?{payer:this.scope.ownerPubKey,amount:i?0:s.sourceAmountSwapped}:void 0,notUseTokenAccount:y,skipCloseAccount:!y,associatedOnly:y?!1:p,checkCreateATAOwner:f});A&&g.addInstruction(A),(!h||!B)&&this.logAndCreateError("user do not have token account",{mintA:e.mintA.symbol||e.mintA.address,mintB:e.mintB.symbol||e.mintB.address,mintATokenAcc:h,mintBTokenAcc:B,mintAUseSOLBalance:P,mintBUseSOLBalance:y,associatedOnly:p});let D=r!=null?r:await this.getCpmmPoolKeys(e.id);return g.addInstruction({instructions:[tr(new C.PublicKey(e.programId),this.scope.ownerPubKey,new C.PublicKey(D.authority),new C.PublicKey(D.config.id),new C.PublicKey(e.id),i?h:B,i?B:h,new C.PublicKey(D.vault[i?"A":"B"]),new C.PublicKey(D.vault[i?"B":"A"]),new C.PublicKey((v=e[i?"mintA":"mintB"].programId)!=null?v:ne.TOKEN_PROGRAM_ID),new C.PublicKey((M=e[i?"mintB":"mintA"].programId)!=null?M:ne.TOKEN_PROGRAM_ID),i?d:T,i?T:d,Zt(new C.PublicKey(e.programId),new C.PublicKey(e.id)).publicKey,o,s.destinationAmountSwapped)],instructionTypes:[i?he.CpmmSwapBaseIn:he.CpmmSwapBaseOut]}),g.addCustomComputeBudget(c),g.versionBuild({txVersion:m})}computeSwapAmount({pool:n,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===n.mintB.address,s=gt.swap(e,o?n.baseReserve:n.quoteReserve,o?n.quoteReserve:n.baseReserve,n.configInfo.tradeFeeRate),a=new oe(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new j.default((1-i)*1e4)).div(new j.default(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:n.poolPrice.sub(a).div(n.poolPrice)}}computePairAmount({poolInfo:n,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,h,w,B,A,D,N,R;let u=1-Number(o.toSignificant())/100,c=new j.default(new oe(i).mul(10**n[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=De(c,n[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new j.default(0)),f=new j.default(new oe(n.lpAmount).mul(10**n.lpMint.decimals).toFixed(0,oe.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?n.mintA.symbol:n.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(h=m.fee)==null?void 0:h.toString())!=null?w:0,"anotherToken:",a?n.mintB.symbol:n.mintA.symbol,"slippage:",`${o.toSignificant()}%`);let p=a?"base":"quote";this.logDebug("input side:",p);let g=l.mul(f).div(p==="base"?e:r),d={amount:Ft,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=vi(g,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=De(v[a?"amountB":"amountA"],n[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new le(new j.default(1)).add(o),P=De(T.mul(d.amount.sub((B=d.fee)!=null?B:new j.default(0))).quotient,n[a?"mintB":"mintA"].extensions.feeConfig,s,!0);return this.logDebug("anotherAmount:",d.amount.toString(),"anotherAmountFee:",(D=(A=d.fee)==null?void 0:A.toString())!=null?D:0,"maxAnotherAmount:",P.amount.toString(),"maxAnotherAmountFee:",(R=(N=P.fee)==null?void 0:N.toString())!=null?R:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:g}}};function vi(t,n,e,r){let i=t.mul(n).div(r);!i.isZero()&&!t.mul(n).mod(r).isZero()&&(i=i.add(new j.default(1)));let o=t.mul(e).div(r);return!o.isZero()&&!t.mul(e).mod(r).isZero()&&(o=o.add(new j.default(1))),{amountA:i,amountB:o}}0&&(module.exports={});
|
|
2
2
|
//# sourceMappingURL=cpmm.js.map
|