@raydium-io/raydium-sdk-v2 0.1.32-alpha → 0.1.34-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/raydium/cpmm/cpmm.js +1 -1
- package/lib/raydium/cpmm/cpmm.js.map +1 -1
- package/lib/raydium/cpmm/cpmm.mjs +1 -1
- package/lib/raydium/cpmm/cpmm.mjs.map +1 -1
- package/lib/raydium/farm/farm.js +1 -1
- package/lib/raydium/farm/farm.js.map +1 -1
- package/lib/raydium/farm/farm.mjs +1 -1
- package/lib/raydium/farm/farm.mjs.map +1 -1
- package/lib/raydium/index.js +1 -1
- package/lib/raydium/index.js.map +1 -1
- package/lib/raydium/index.mjs +1 -1
- package/lib/raydium/index.mjs.map +1 -1
- package/lib/raydium/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/package.json +1 -1
- package/src/raydium/cpmm/cpmm.ts +69 -69
- package/src/raydium/farm/farm.ts +19 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var rr=Object.defineProperty,ir=Object.defineProperties;var or=Object.getOwnPropertyDescriptors;var Ze=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable;var Qt=(n,t,e)=>t in n?rr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,K=(n,t)=>{for(var e in t||(t={}))$t.call(t,e)&&Qt(n,e,t[e]);if(Ze)for(var e of Ze(t))en.call(t,e)&&Qt(n,e,t[e]);return n},G=(n,t)=>ir(n,or(t));var ce=(n,t)=>{var e={};for(var r in n)$t.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&Ze)for(var r of Ze(n))t.indexOf(r)<0&&en.call(n,r)&&(e[r]=n[r]);return e};import{PublicKey as x}from"@solana/web3.js";import{NATIVE_MINT as bt,TOKEN_PROGRAM_ID as de,AccountLayout as to}from"@solana/spl-token";import pi from"big.js";import Us from"bn.js";import te from"bn.js";var xe=9e15,ye=1e9,yt="0123456789abcdef",Ye="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Xe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",wt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-xe,maxE:xe,crypto:!1},on,le,C=!0,$e="[DecimalError] ",be=$e+"Invalid argument: ",sn=$e+"Precision limit exceeded",an=$e+"crypto unavailable",un="[object Decimal]",Z=Math.floor,H=Math.pow,sr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ar=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ur=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,cn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,S=7,cr=9007199254740991,lr=Ye.length-1,Pt=Xe.length-1,b={toStringTag:un};b.absoluteValue=b.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),B(n)};b.ceil=function(){return B(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(n,t){var e,r=this,i=r.constructor;if(n=new i(n),t=new i(t),!n.s||!t.s)return new i(NaN);if(n.gt(t))throw Error(be+t);return e=r.cmp(n),e<0?n:r.cmp(t)>0?t:new i(r)};b.comparedTo=b.cmp=function(n){var t,e,r,i,o=this,s=o.d,a=(n=new o.constructor(n)).d,u=o.s,c=n.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!==n.e)return o.e>n.e^u<0?1:-1;for(r=s.length,i=a.length,t=0,e=r<i?r:i;t<e;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};b.cosine=b.cos=function(){var n,t,e=this,r=e.constructor;return e.d?e.d[0]?(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+S,r.rounding=1,e=mr(r,dn(r,e)),r.precision=n,r.rounding=t,B(le==2||le==3?e.neg():e,n,t,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var n,t,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(C=!1,o=m.s*H(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=j(m.d),n=m.e,(o=(n-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=H(e,1/3),n=Z((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?e="5e"+n:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+n),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(n=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=F(c.plus(m).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(e=j(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(B(a,n+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")&&(B(r,n+1,1),t=!r.times(r).times(r).eq(m));break}return C=!0,B(r,n,l.rounding,t)};b.decimalPlaces=b.dp=function(){var n,t=this.d,e=NaN;if(t){if(n=t.length-1,e=(n-Z(this.e/S))*S,n=t[n],n)for(;n%10==0;n/=10)e--;e<0&&(e=0)}return e};b.dividedBy=b.div=function(n){return F(this,new this.constructor(n))};b.dividedToIntegerBy=b.divToInt=function(n){var t=this,e=t.constructor;return B(F(t,new e(n),0,1,1),e.precision,e.rounding)};b.equals=b.eq=function(n){return this.cmp(n)===0};b.floor=function(){return B(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(n){return this.cmp(n)>0};b.greaterThanOrEqualTo=b.gte=function(n){var t=this.cmp(n);return t==1||t===0};b.hyperbolicCosine=b.cosh=function(){var n,t,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?(n=Math.ceil(i/3),t=(1/tt(4,n)).toString()):(n=16,t="2.3283064365386962890625e-10"),o=Be(s,1,o.times(t),new s(1),!0);for(var u,c=n,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return B(o,s.precision=e,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var n,t,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,e=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Be(o,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/tt(5,n)),i=Be(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);n--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=e,B(i,t,e,!0)};b.hyperbolicTangent=b.tanh=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+7,r.rounding=1,F(e.sinh(),e.cosh(),r.precision=n,r.rounding=t)):new r(e.s)};b.inverseCosine=b.acos=function(){var n,t=this,e=t.constructor,r=t.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?t.isNeg()?ne(e,i,o):new e(0):new e(NaN):t.isZero()?ne(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,t=t.asin(),n=ne(e,i+4,o).times(.5),e.precision=i,e.rounding=o,n.minus(t))};b.inverseHyperbolicCosine=b.acosh=function(){var n,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(n=r.precision,t=r.rounding,r.precision=n+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,C=!1,e=e.times(e).minus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln()):new r(e)};b.inverseHyperbolicSine=b.asinh=function(){var n,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,C=!1,e=e.times(e).plus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var n,t,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):(n=o.precision,t=o.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?B(new o(i),n,t,!0):(o.precision=e=r-i.e,i=F(i.plus(1),new o(1).minus(i),e+n,1),o.precision=n+4,o.rounding=1,i=i.ln(),o.precision=n,o.rounding=t,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var n,t,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),e=o.precision,r=o.rounding,t!==-1?t===0?(n=ne(o,e+4,r).times(.5),n.s=i.s,n):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 n,t,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<=Pt)return s=ne(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=Pt)return s=ne(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),n=e;n;--n)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/S),r=1,u=c.times(c),s=new m(c),i=c;n!==-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[t]!==void 0)for(n=t;s.d[n]===o.d[n]&&n--;);return e&&(s=s.times(2<<e-1)),C=!0,B(s,m.precision=l,m.rounding=f,!0)};b.isFinite=function(){return!!this.d};b.isInteger=b.isInt=function(){return!!this.d&&Z(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(n){return this.cmp(n)<0};b.lessThanOrEqualTo=b.lte=function(n){return this.cmp(n)<1};b.logarithm=b.log=function(n){var t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(n==null)n=new m(10),t=!0;else{if(n=new m(n),e=n.d,n.s<0||!e||!e[0]||n.eq(1))return new m(NaN);t=n.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(t)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(C=!1,a=l+p,s=he(c,a),r=t?Qe(m,a+10):he(n,a),u=F(s,r,a,1),Me(u.d,i=l,f))do if(a+=10,s=he(c,a),r=t?Qe(m,a+10):he(n,a),u=F(s,r,a,1),!o){+j(u.d).slice(i+1,i+15)+1==1e14&&(u=B(u,l+1,0));break}while(Me(u.d,i+=10,f));return C=!0,B(u,l,f)};b.minus=b.sub=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.constructor;if(n=new g(n),!p.d||!n.d)return!p.s||!n.s?n=new g(NaN):p.d?n.s=-n.s:n=new g(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(c=p.d,f=n.d,a=g.precision,u=g.rounding,!c[0]||!f[0]){if(f[0])n.s=-n.s;else if(c[0])n=new g(p);else return new g(u===3?-0:0);return C?B(n,a,u):n}if(e=Z(n.e/S),m=Z(p.e/S),c=c.slice(),o=m-e,o){for(l=o<0,l?(t=c,o=-o,s=f.length):(t=f,e=m,s=c.length),r=Math.max(Math.ceil(a/S),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.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&&(t=c,c=f,f=t,n.s=-n.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]=re-1;--c[i],c[r]+=re}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(n.d=c,n.e=et(c,e),C?B(n,a,u):n):new g(u===3?-0:0)};b.modulo=b.mod=function(n){var t,e=this,r=e.constructor;return n=new r(n),!e.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||e.d&&!e.d[0]?B(new r(e),r.precision,r.rounding):(C=!1,r.modulo==9?(t=F(e,n.abs(),0,3,1),t.s*=n.s):t=F(e,n,0,r.modulo,1),t=t.times(n),C=!0,e.minus(t))};b.naturalExponential=b.exp=function(){return Tt(this)};b.naturalLogarithm=b.ln=function(){return he(this)};b.negated=b.neg=function(){var n=new this.constructor(this);return n.s=-n.s,B(n)};b.plus=b.add=function(n){var t,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(n=new f(n),!l.d||!n.d)return!l.s||!n.s?n=new f(NaN):l.d||(n=new f(n.d||l.s===n.s?l:NaN)),n;if(l.s!=n.s)return n.s=-n.s,l.minus(n);if(c=l.d,m=n.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(n=new f(l)),C?B(n,a,u):n;if(o=Z(l.e/S),r=Z(n.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),t=0;i;)t=(c[--i]=c[i]+m[i]+t)/re|0,c[i]%=re;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return n.d=c,n.e=et(c,r),C?B(n,a,u):n};b.precision=b.sd=function(n){var t,e=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(be+n);return e.d?(t=ln(e.d),n&&e.e+1>t&&(t=e.e+1)):t=NaN,t};b.round=function(){var n=this,t=n.constructor;return B(new t(n),n.e+1,t.rounding)};b.sine=b.sin=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+S,r.rounding=1,e=pr(r,dn(r,e)),r.precision=n,r.rounding=t,B(le>2?e.neg():e,n,t,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var n,t,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(C=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=j(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=Z((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new m(t)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(F(s,o,e+2,1)).times(.5),j(o.d).slice(0,e)===(t=j(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!i&&t=="4999"){if(!i&&(B(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(B(r,u+1,1),n=!r.times(r).eq(s));break}return C=!0,B(r,u,m.rounding,n)};b.tangent=b.tan=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+10,r.rounding=1,e=e.sin(),e.s=1,e=F(e,new r(1).minus(e.times(e)).sqrt(),n+10,0),r.precision=n,r.rounding=t,B(le==2||le==4?e.neg():e,n,t,!0)):new r(NaN)};b.times=b.mul=function(n){var t,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(n=new l(n)).d;if(n.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!n.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?n.s/0:n.s*0);for(e=Z(m.e/S)+Z(n.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(t=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+t,o[i--]=a%re|0,t=a/re|0;o[i]=(o[i]+t)%re|0}for(;!o[--s];)o.pop();return t?++e:o.shift(),n.d=o,n.e=et(o,e),C?B(n,l.precision,l.rounding):n};b.toBinary=function(n,t){return xt(this,2,n,t)};b.toDecimalPlaces=b.toDP=function(n,t){var e=this,r=e.constructor;return e=new r(e),n===void 0?e:($(n,0,ye),t===void 0?t=r.rounding:$(t,0,8),B(e,n+e.e+1,t))};b.toExponential=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=se(r,!0):($(n,0,ye),t===void 0?t=i.rounding:$(t,0,8),r=B(new i(r),n+1,t),e=se(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toFixed=function(n,t){var e,r,i=this,o=i.constructor;return n===void 0?e=se(i):($(n,0,ye),t===void 0?t=o.rounding:$(t,0,8),r=B(new o(i),n+i.e+1,t),e=se(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};b.toFraction=function(n){var t,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),t=new d(r),o=t.e=ln(g)-p.e-1,s=o%S,t.d[0]=H(10,s<0?S+s:s),n==null)n=o>0?t:c;else{if(a=new d(n),!a.isInt()||a.lt(c))throw Error(be+a);n=a.gt(t)?o>0?t:c:a}for(C=!1,a=new d(j(g)),m=d.precision,d.precision=o=g.length*S*2;l=F(a,t,0,1,1),i=e.plus(l.times(r)),i.cmp(n)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=t,t=a.minus(l.times(i)),a=i;return i=F(n.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=F(c,r,o,1).minus(p).abs().cmp(F(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,C=!0,f};b.toHexadecimal=b.toHex=function(n,t){return xt(this,16,n,t)};b.toNearest=function(n,t){var e=this,r=e.constructor;if(e=new r(e),n==null){if(!e.d)return e;n=new r(1),t=r.rounding}else{if(n=new r(n),t===void 0?t=r.rounding:$(t,0,8),!e.d)return n.s?e:n;if(!n.d)return n.s&&(n.s=e.s),n}return n.d[0]?(C=!1,e=F(e,n,0,t,1).times(n),C=!0,B(e)):(n.s=e.s,e=n),e};b.toNumber=function(){return+this};b.toOctal=function(n,t){return xt(this,8,n,t)};b.toPower=b.pow=function(n){var t,e,r,i,o,s,a=this,u=a.constructor,c=+(n=new u(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new u(H(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,n.eq(1))return B(a,r,o);if(t=Z(n.e/S),t>=n.d.length-1&&(e=c<0?-c:c)<=cr)return i=mn(u,a,e,r),n.s<0?new u(1).div(i):B(i,r,o);if(s=a.s,s<0){if(t<n.d.length-1)return new u(NaN);if((n.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=H(+a,c),t=e==0||!isFinite(e)?Z(c*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new u(e+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(C=!1,u.rounding=a.s=1,e=Math.min(12,(t+"").length),i=Tt(n.times(he(a,r+e)),r),i.d&&(i=B(i,r+5,1),Me(i.d,r,o)&&(t=r+10,i=B(Tt(n.times(he(a,t+e)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=B(i,r+1,0)))),i.s=s,C=!0,u.rounding=o,B(i,r,o))};b.toPrecision=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=se(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):($(n,1,ye),t===void 0?t=i.rounding:$(t,0,8),r=B(new i(r),n,t),e=se(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toSignificantDigits=b.toSD=function(n,t){var e=this,r=e.constructor;return n===void 0?(n=r.precision,t=r.rounding):($(n,1,ye),t===void 0?t=r.rounding:$(t,0,8)),B(new r(e),n,t)};b.toString=function(){var n=this,t=n.constructor,e=se(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()&&!n.isZero()?"-"+e:e};b.truncated=b.trunc=function(){return B(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var n=this,t=n.constructor,e=se(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()?"-"+e:e};function j(n){var t,e,r,i=n.length-1,o="",s=n[0];if(i>0){for(o+=s,t=1;t<i;t++)r=n[t]+"",e=S-r.length,e&&(o+=ge(e)),o+=r;s=n[t],r=s+"",e=S-r.length,e&&(o+=ge(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function $(n,t,e){if(n!==~~n||n<t||n>e)throw Error(be+n)}function Me(n,t,e,r){var i,o,s,a;for(o=n[0];o>=10;o/=10)--t;return--t<0?(t+=S,i=0):(i=Math.ceil((t+1)/S),t%=S),o=H(10,S-t),a=n[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==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)&&(n[i+1]/o/100|0)==H(10,t-2)-1||(a==o/2||a==0)&&(n[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(n[i+1]/o/1e3|0)==H(10,t-3)-1,s}function Je(n,t,e){for(var r,i=[0],o,s=0,a=n.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=yt.indexOf(n.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 mr(n,t){var e,r,i;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),i=(1/tt(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),n.precision+=e,t=Be(n,1,t.times(i),new n(1));for(var o=e;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return n.precision-=e,t}var F=function(){function n(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 t(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,k,A,D,I,R,v,M,V,X=r.constructor,Q=r.s==i.s?1:-1,q=r.d,_=i.d;if(!q||!q[0]||!_||!_[0])return new X(!r.s||!i.s||(q?_&&q[0]==_[0]:!_)?NaN:q&&q[0]==0||!_?Q*0:Q/0);for(u?(p=1,m=r.e-i.e):(u=re,p=S,m=Z(r.e/p)-Z(i.e/p)),M=_.length,R=q.length,P=new X(Q),y=P.d=[],l=0;_[l]==(q[l]||0);l++);if(_[l]>(q[l]||0)&&m--,o==null?(A=o=X.precision,s=X.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,_=_[0],A++;(l<R||f)&&A--;l++)D=f*u+(q[l]||0),y[l]=D/_|0,f=D%_|0;g=f||l<R}else{for(f=u/(_[0]+1)|0,f>1&&(_=n(_,f,u),q=n(q,f,u),M=_.length,R=q.length),I=M,h=q.slice(0,M),w=h.length;w<M;)h[w++]=0;V=_.slice(),V.unshift(0),v=_[0],_[1]>=u/2&&++v;do f=0,c=t(_,h,M,w),c<0?(k=h[0],M!=w&&(k=k*u+(h[1]||0)),f=k/v|0,f>1?(f>=u&&(f=u-1),d=n(_,f,u),T=d.length,w=h.length,c=t(d,h,T,w),c==1&&(f--,e(d,M<T?V:_,T,u))):(f==0&&(c=f=1),d=_.slice()),T=d.length,T<w&&d.unshift(0),e(h,d,w,u),c==-1&&(w=h.length,c=t(_,h,M,w),c<1&&(f++,e(h,M<w?V:_,w,u))),w=h.length):c===0&&(f++,h=[0]),y[l++]=f,c&&h[0]?h[w++]=q[I]||0:(h=[q[I]],w=1);while((I++<R||h[0]!==void 0)&&A--);g=h[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,on=g;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,B(P,a?o+P.e+1:o,s,g)}return P}}();function B(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor;e:if(t!=null){if(l=n.d,!l)return n;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=S,s=t,m=l[f=0],u=m/H(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/H(10,i-s-1)%10|0}if(r=r||t<0||l[f+1]!==void 0||(s<0?m:m%H(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(n.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/H(10,i-s):0:l[f-1])%10&1||e==(n.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=n.e+1,l[0]=H(10,(S-t%S)%S),n.e=-t||0):l[0]=n.e=0,n;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=H(10,S-o),l[f]=s>0?(m/H(10,i-s)%H(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&&(n.e++,l[0]==re&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=re)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return C&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function se(n,t,e){if(!n.isFinite())return pn(n);var r,i=n.e,o=j(n.d),s=o.length;return t?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+ge(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):i<0?(o="0."+ge(-i-1)+o,e&&(r=e-s)>0&&(o+=ge(r))):i>=s?(o+=ge(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+ge(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=ge(r))),o}function et(n,t){var e=n[0];for(t*=S;e>=10;e/=10)t++;return t}function Qe(n,t,e){if(t>lr)throw C=!0,e&&(n.precision=e),Error(sn);return B(new n(Ye),t,1,!0)}function ne(n,t,e){if(t>Pt)throw Error(sn);return B(new n(Xe),t,e,!0)}function ln(n){var t=n.length-1,e=t*S+1;if(t=n[t],t){for(;t%10==0;t/=10)e--;for(t=n[0];t>=10;t/=10)e++}return e}function ge(n){for(var t="";n--;)t+="0";return t}function mn(n,t,e,r){var i,o=new n(1),s=Math.ceil(r/S+4);for(C=!1;;){if(e%2&&(o=o.times(t),nn(o.d,s)&&(i=!0)),e=Z(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}t=t.times(t),nn(t.d,s)}return C=!0,o}function tn(n){return n.d[n.d.length-1]&1}function fn(n,t,e){for(var r,i=new n(t[0]),o=0;++o<t.length;)if(r=new n(t[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function Tt(n,t){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=n.constructor,p=f.rounding,g=f.precision;if(!n.d||!n.d[0]||n.e>17)return new f(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(t==null?(C=!1,u=g):u=t,a=new f(.03125);n.e>-2;)n=n.times(a),l+=5;for(r=Math.log(H(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=B(o.times(n),u,1),e=e.times(++m),a=s.plus(F(o,e,u,1)),j(a.d).slice(0,u)===j(s.d).slice(0,u)){for(i=l;i--;)s=B(s.times(s),u,1);if(t==null)if(c<3&&Me(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return B(s,f.precision=g,p,C=!0);else return f.precision=g,s}s=a}}function he(n,t){var e,r,i,o,s,a,u,c,m,l,f,p=1,g=10,d=n,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(t==null?(C=!1,m=h):m=t,P.precision=m+=g,e=j(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(n),e=j(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=Qe(P,m+2,h).times(o+""),d=he(new P(r+"."+e.slice(1)),m-g).plus(c),P.precision=h,t==null?B(d,h,y,C=!0):d;for(l=d,u=s=d=F(d.minus(1),d.plus(1),m,1),f=B(d.times(d),m,1),i=3;;){if(s=B(s.times(f),m,1),c=u.plus(F(s,new P(i),m,1)),j(c.d).slice(0,m)===j(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(Qe(P,m+2,h).times(o+""))),u=F(u,new P(p),m,1),t==null)if(Me(u.d,m-g,y,a))P.precision=m+=g,c=s=d=F(l.minus(1),l.plus(1),m,1),f=B(d.times(d),m,1),i=a=1;else return B(u,P.precision=h,y,C=!0);else return P.precision=h,u;u=c,i+=2}}function pn(n){return String(n.s*n.s/0)}function At(n,t){var e,r,i;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,n.e=e=e-r-1,n.d=[],r=(e+1)%S,e<0&&(r+=S),r<i){for(r&&n.d.push(+t.slice(0,r)),i-=S;r<i;)n.d.push(+t.slice(r,r+=S));t=t.slice(r),r=S-t.length}else r-=i;for(;r--;)t+="0";n.d.push(+t),C&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function fr(n,t){var e,r,i,o,s,a,u,c,m;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),cn.test(t))return At(n,t)}else if(t==="Infinity"||t==="NaN")return+t||(n.s=NaN),n.e=NaN,n.d=null,n;if(ar.test(t))e=16,t=t.toLowerCase();else if(sr.test(t))e=2;else if(ur.test(t))e=8;else throw Error(be+t);for(o=t.search(/p/i),o>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=n.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=mn(r,new r(e),o,o*2)),c=Je(t,e,re),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(n.s*0):(n.e=et(c,m),n.d=c,C=!1,s&&(n=F(n,i,a*4)),u&&(n=n.times(Math.abs(u)<54?H(2,u):Re.pow(2,u))),C=!0,n)}function pr(n,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:Be(n,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/tt(5,e)),t=Be(n,2,t,t);for(var i,o=new n(5),s=new n(16),a=new n(20);e--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Be(n,t,e,r,i){var o,s,a,u,c=1,m=n.precision,l=Math.ceil(m/S);for(C=!1,u=e.times(e),a=new n(r);;){if(s=F(a.times(u),new n(t++*t++),m,1),a=i?r.plus(s):r.minus(s),r=F(s.times(u),new n(t++*t++),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 C=!0,s.d.length=l+1,s}function tt(n,t){for(var e=n;--t;)e*=n;return e}function dn(n,t){var e,r=t.s<0,i=ne(n,n.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return le=r?4:1,t;if(e=t.divToInt(i),e.isZero())le=r?3:2;else{if(t=t.minus(e.times(i)),t.lte(o))return le=tn(e)?r?2:3:r?4:1,t;le=tn(e)?r?1:4:r?3:2}return t.minus(i).abs()}function xt(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor,g=e!==void 0;if(g?($(e,1,ye),r===void 0?r=p.rounding:$(r,0,8)):(e=p.precision,r=p.rounding),!n.isFinite())m=pn(n);else{for(m=se(n),s=m.indexOf("."),g?(i=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):i=t,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=Je(se(f),10,i),f.e=f.d.length),l=Je(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--:(n=new p(n),n.d=l,n.e=o,n=F(n,f,e,r,0,i),l=n.d,o=n.e,c=on),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(n.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(n.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+=yt.charAt(l[s]);if(g){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)m+="0";for(l=Je(m,i,t),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=yt.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=(t==16?"0x":t==2?"0b":t==8?"0o":"")+m}return n.s<0?"-"+m:m}function nn(n,t){if(n.length>t)return n.length=t,!0}function dr(n){return new this(n).abs()}function gr(n){return new this(n).acos()}function hr(n){return new this(n).acosh()}function br(n,t){return new this(n).plus(t)}function yr(n){return new this(n).asin()}function wr(n){return new this(n).asinh()}function Pr(n){return new this(n).atan()}function Tr(n){return new this(n).atanh()}function Ar(n,t){n=new this(n),t=new this(t);var e,r=this.precision,i=this.rounding,o=r+4;return!n.s||!t.s?e=new this(NaN):!n.d&&!t.d?(e=ne(this,o,1).times(t.s>0?.25:.75),e.s=n.s):!t.d||n.isZero()?(e=t.s<0?ne(this,r,i):new this(0),e.s=n.s):!n.d||t.isZero()?(e=ne(this,o,1).times(.5),e.s=n.s):t.s<0?(this.precision=o,this.rounding=1,e=this.atan(F(n,t,o,1)),t=ne(this,o,1),this.precision=r,this.rounding=i,e=n.s<0?e.minus(t):e.plus(t)):e=this.atan(F(n,t,o,1)),e}function xr(n){return new this(n).cbrt()}function Br(n){return B(n=new this(n),n.e+1,2)}function kr(n,t,e){return new this(n).clamp(t,e)}function Sr(n){if(!n||typeof n!="object")throw Error($e+"Object expected");var t,e,r,i=n.defaults===!0,o=["precision",1,ye,"rounding",0,8,"toExpNeg",-xe,0,"toExpPos",0,xe,"maxE",0,xe,"minE",-xe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(e=o[t],i&&(this[e]=wt[e]),(r=n[e])!==void 0)if(Z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[e]=r;else throw Error(be+e+": "+r);if(e="crypto",i&&(this[e]=wt[e]),(r=n[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(an);else this[e]=!1;else throw Error(be+e+": "+r);return this}function Cr(n){return new this(n).cos()}function Ir(n){return new this(n).cosh()}function gn(n){var t,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,rn(o)){c.s=o.s,C?!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++;C?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 At(c,o.toString())}else if(u!=="string")throw Error(be+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),cn.test(o)?At(c,o):fr(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=Sr,i.clone=gn,i.isDecimal=rn,i.abs=dr,i.acos=gr,i.acosh=hr,i.add=br,i.asin=yr,i.asinh=wr,i.atan=Pr,i.atanh=Tr,i.atan2=Ar,i.cbrt=xr,i.ceil=Br,i.clamp=kr,i.cos=Cr,i.cosh=Ir,i.div=Nr,i.exp=Lr,i.floor=Mr,i.hypot=Rr,i.ln=Er,i.log=Kr,i.log10=vr,i.log2=Dr,i.max=Or,i.min=_r,i.mod=Fr,i.mul=Wr,i.pow=Vr,i.random=qr,i.round=Ur,i.sign=Gr,i.sin=Hr,i.sinh=zr,i.sqrt=jr,i.sub=Zr,i.sum=Jr,i.tan=Yr,i.tanh=Xr,i.trunc=Qr,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)n.hasOwnProperty(e=r[t++])||(n[e]=this[e]);return i.config(n),i}function Nr(n,t){return new this(n).div(t)}function Lr(n){return new this(n).exp()}function Mr(n){return B(n=new this(n),n.e+1,3)}function Rr(){var n,t,e=new this(0);for(C=!1,n=0;n<arguments.length;)if(t=new this(arguments[n++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return C=!0,new this(1/0);e=t}return C=!0,e.sqrt()}function rn(n){return n instanceof Re||n&&n.toStringTag===un||!1}function Er(n){return new this(n).ln()}function Kr(n,t){return new this(n).log(t)}function Dr(n){return new this(n).log(2)}function vr(n){return new this(n).log(10)}function Or(){return fn(this,arguments,"lt")}function _r(){return fn(this,arguments,"gt")}function Fr(n,t){return new this(n).mod(t)}function Wr(n,t){return new this(n).mul(t)}function Vr(n,t){return new this(n).pow(t)}function qr(n){var t,e,r,i,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:$(n,1,ye),r=Math.ceil(n/S),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(an);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],n%=S,r&&n&&(i=H(10,S-n),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 Ur(n){return B(n=new this(n),n.e+1,this.rounding)}function Gr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Hr(n){return new this(n).sin()}function zr(n){return new this(n).sinh()}function jr(n){return new this(n).sqrt()}function Zr(n,t){return new this(n).sub(t)}function Jr(){var n=0,t=arguments,e=new this(t[n]);for(C=!1;e.s&&++n<t.length;)e=e.plus(t[n]);return C=!0,B(e,this.precision,this.rounding)}function Yr(n){return new this(n).tan()}function Xr(n){return new this(n).tanh()}function Qr(n){return B(n=new this(n),n.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var Re=b.constructor=gn(wt);Ye=new Re(Ye);Xe=new Re(Xe);var ee=Re;import{PublicKey as Ct}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $r}from"@solana/spl-token";import{PublicKey as U,SystemProgram as hn,SYSVAR_RENT_PUBKEY as ei}from"@solana/web3.js";function Bt({pubkey:n,isSigner:t=!1,isWritable:e=!0}){return{pubkey:n,isWritable:e,isSigner:t}}var uo=[Bt({pubkey:$r,isWritable:!1}),Bt({pubkey:hn.programId,isWritable:!1}),Bt({pubkey:ei,isWritable:!1})];function kt({publicKey:n,transformSol:t}){let e=bn(n.toString());if(e instanceof U)return t&&e.equals(Ee)?me:e;if(t&&e.toString()===Ee.toBase58())return me;if(typeof e=="string"){if(e===U.default.toBase58())return U.default;try{return new U(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bn(n){try{return new U(n)}catch{return n}}var co=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yn=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),wn=new U("SysvarRent111111111111111111111111111111111"),lo=new U("SysvarC1ock11111111111111111111111111111111"),mo=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),fo=new U("Sysvar1nstructions1111111111111111111111111"),Pn=hn.programId,po=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),go=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ho=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),bo=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),yo=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),wo=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Po=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),To=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ao=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xo=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Bo=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new U("So11111111111111111111111111111111111111112"),Ee=U.default;function nt(n){return kt({publicKey:n,transformSol:!0})}import{PublicKey as ti}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var St={chainId:101,address:ti.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},we={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var It=class{constructor({mint:t,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Ee.toBase58()||t instanceof Ct&&Ee.equals(t)){this.decimals=we.decimals,this.symbol=we.symbol,this.name=we.name,this.mint=new Ct(we.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?Ct.default:kt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Te=It;Te.WSOL=new It(G(K({},we),{mint:we.address}));import{get as An,set as ni}from"lodash";var Nt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let e=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},xn={},ri={};function J(n){let t=An(xn,n);if(!t){let e=An(ri,n);t=new Nt({name:n,logLevel:e}),ni(xn,n,t)}return t}import it from"big.js";import si from"bn.js";import ai from"decimal.js-light";import ii from"toformat";var oi=ii,Ke=oi;var rt=J("module/fraction"),Lt=Ke(it),De=Ke(ai),ui={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},ci={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},W=class{constructor(t,e=new si(1)){this.numerator=Pe(t),this.denominator=Pe(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let e=t instanceof W?t:new W(Pe(t));return this.denominator.eq(e.denominator)?new W(this.numerator.add(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(t){let e=t instanceof W?t:new W(Pe(t));return this.denominator.eq(e.denominator)?new W(this.numerator.sub(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(t){let e=t instanceof W?t:new W(Pe(t));return new W(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(t){let e=t instanceof W?t:new W(Pe(t));return new W(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(t,e={groupSeparator:""},r=1){Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:ui[r]});let i=new De(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),e)}toFixed(t,e={groupSeparator:""},r=1){return Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Lt.DP=t,Lt.RM=ci[r]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)}isZero(){return this.numerator.isZero()}};var Qo=J("Raydium_price");var Mt=class{constructor({decimals:t,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=e,this.name=r}equals(t){return this===t}},ot=Mt;ot.SOL=new Mt(St);import mi from"bn.js";var Bn=new W(new mi(100)),ae=class extends W{toSignificant(t=5,e,r){return this.mul(Bn).toSignificant(t,e,r)}toFixed(t=2,e,r){return this.mul(Bn).toFixed(t,e,r)}};import{PublicKey as ps}from"@solana/web3.js";import gs from"bn.js";var Rt=new te(0),Rs=new te(1),Es=new te(2),Ks=new te(3),Ds=new te(5),fi=new te(10),vs=new te(100),Os=new te(1e3),_s=new te(1e4),Sn=9007199254740991;function Pe(n){let t=J("Raydium_parseBigNumberish");if(n instanceof te)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new te(n);t.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&t.logWithError(`BigNumberish number underflow: ${n}`),(n>=Sn||n<=-Sn)&&t.logWithError(`BigNumberish number overflow: ${n}`),new te(String(n))):typeof n=="bigint"?new te(n.toString()):(t.error(`invalid BigNumberish value: ${n}`),new te(0))}var Xs=J("Raydium_amount"),Qs=Ke(pi);import{PublicKey as yi}from"@solana/web3.js";import{PublicKey as di,ComputeBudgetProgram as Cn,Transaction as Nn,TransactionMessage as gi,Keypair as Ln,VersionedTransaction as Kt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hi}from"@solana/spl-token";var fe={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 In=J("Raydium_txUtil"),Mn=1644;function st(n){let t=[],e=[];return n.microLamports&&(t.push(Cn.setComputeUnitPrice({microLamports:n.microLamports})),e.push(fe.SetComputeUnitPrice)),n.units&&(t.push(Cn.setComputeUnitLimit({units:n.units})),e.push(fe.SetComputeUnitLimit)),{instructions:t,instructionTypes:e}}async function ke(n,t){var r,i;let e=t!=null?t:"confirmed";try{return((i=await((r=n.getLatestBlockhash)==null?void 0:r.call(n,{commitment:e})))==null?void 0:i.blockhash)||(await n.getRecentBlockhash(e)).blockhash}catch{return(await n.getRecentBlockhash(e)).blockhash}}function bi(n,t){n.length<1&&In.logWithError(`no instructions provided: ${n.toString()}`),t.length<1&&In.logWithError(`no signers provided:, ${t.toString()}`);let e=new Nn;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=t[0],e.add(...n);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function pe(n,t){let[e,r]=di.findProgramAddressSync(n,t);return{publicKey:e,nonce:r}}function ve({instructions:n,payer:t,signers:e}){return bi(n,[t,...e])}function Oe({instructions:n,payer:t,lookupTableAddressAccount:e,recentBlockhash:r=Ln.generate().publicKey.toString()}){let o=new gi({payerKey:t,recentBlockhash:r,instructions:n}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new Kt(o).serialize()).toString("base64").length<Mn}catch{return!1}}var Rn=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n);function Ae(n){let t=[];return n.forEach(e=>{e instanceof Nn&&(e.recentBlockhash||(e.recentBlockhash=hi.toBase58()),e.feePayer||(e.feePayer=Ln.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof Kt&&(r=Rn(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}function En(n){let t=n.serialize({requireAllSignatures:!1,verifySignatures:!1});return n instanceof Kt&&(t=Rn(t)),t.toString("base64")}import{TOKEN_PROGRAM_ID as wi}from"@solana/spl-token";function Kn(n,t,e){return pe([n.toBuffer(),(e!=null?e:wi).toBuffer(),t.toBuffer()],new yi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import vn from"bn.js";var Dt=new vn(1e6);function Pi(n,t,e){return n.mul(t).add(e).sub(new vn(1)).div(e)}function Dn(n,t,e){return n.mul(t).div(e)}var at=class{static tradingFee(t,e){return Pi(t,e,Dt)}static protocolFee(t,e){return Dn(t,e,Dt)}static fundFee(t,e){return Dn(t,e,Dt)}};import _e from"bn.js";function ut(n,t){if(t.isZero())throw Error("divisor is zero");return n.mod(t)}function Ti(n,t){if(t.isZero())throw Error("rhs is zero");let e=n.div(t);if(e.isZero())throw Error("quotient is zero");let r=ut(n,t);return r.gt(Se)&&(e=e.add(new _e(1)),t=n.div(e),r=ut(n,e),r.gt(Se)&&(t=t.add(new _e(1)))),[e,t]}var Se=new _e(0),ct=class{static swapWithoutFees(t,e,r){let i=e.mul(r),o=e.add(t),[s,a]=Ti(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(t,e,r,i,o){let s=t.mul(r).div(e),a=t.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return ut(t.mul(r),e).gt(Se)&&s.gt(Se)&&(s=s.add(new _e(1))),ut(t.mul(i),e).gt(Se)&&a.gt(Se)&&(a=a.add(new _e(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var lt=class{static validate_supply(t,e){if(t.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(t,e,r,i){let o=at.tradingFee(t,i),s=t.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=ct.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};import{PublicKey as Ie,sendAndConfirmTransaction as Vt,Transaction as Ve,TransactionMessage as qe,VersionedTransaction as Ue,SystemProgram as Ni,LAMPORTS_PER_SOL as Li}from"@solana/web3.js";import Mi from"axios";import{PublicKey as Fn,AddressLookupTableAccount as mt}from"@solana/web3.js";import{PublicKey as On}from"@solana/web3.js";import{MINT_SIZE as ki,TOKEN_PROGRAM_ID as Si,getTransferFeeConfig as Ci,unpackMint as Ii}from"@solana/spl-token";function vt(n,t=1,e=[]){let r=[...n];if(t<=0)return e;for(;r.length;)e.push(r.splice(0,t));return e}import{PublicKey as E}from"@solana/web3.js";var _a=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fa=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wa=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Va=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),qa=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ua=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ga=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ha=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),za=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ja=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Za=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ja=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ya=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Xa=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qa=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$a=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),eu=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),tu=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),nu=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ai=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),xi=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Bi=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var ru={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Ai,CREATE_CPMM_POOL_AUTH:xi,CREATE_CPMM_POOL_FEE_ACC:Bi,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Fe=1e4;function Ce(n,t,e,r){if(t===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let i=G(K({},t),{olderTransferFee:{epoch:BigInt(t.olderTransferFee.epoch),maximumFee:BigInt(t.olderTransferFee.maximumFee),transferFeeBasisPoints:t.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(t.newerTransferFee.epoch),maximumFee:BigInt(t.newerTransferFee.maximumFee),transferFeeBasisPoints:t.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(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===Fe){let u=new ie(o.maximumFee.toString());return{amount:n.add(u),fee:u,expirationTime:a}}else{let u=Ot(n.mul(new ie(Fe)),new ie(Fe-o.transferFeeBasisPoints)),c=new ie(o.maximumFee.toString()),m=u.sub(n).gt(c)?n.add(c):u,l=Ot(m.mul(new ie(o.transferFeeBasisPoints)),new ie(Fe)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=Ot(n.mul(new ie(o.transferFeeBasisPoints)),new ie(Fe)),c=u.gt(s)?s:u;return{amount:n,fee:c,expirationTime:a}}}function Ot(n,t){let{div:e,mod:r}=n.divmod(t);return r.gt(new ie(0))?e.add(new ie(1)):e}var _t=J("Raydium_accountInfo_util");async function Ft(n,t,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=K({batchRequest:!1},e),s=vt(t,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=n._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 n._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&_t.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"&&_t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:g,lamports:d,owner:new On(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>n.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function We(n,t,e){let r=await Ft(n,t.map(i=>i.pubkey),e);return t.map((i,o)=>G(K({},i),{accountInfo:r[o]}))}async function _n({connection:n,mints:t,config:e}){var o,s,a;if(t.length===0)return{};let r=await We(n,t.map(u=>({pubkey:nt(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<ki){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=Ii(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=G(K({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||Si,feeConfig:(a=Ci(c))!=null?a:void 0})}return i[On.default.toBase58()]=i[me.toBase58()],i}async function Wt({connection:n,address:t}){let e=await Ft(n,[...new Set(t.map(i=>i.toString()))].map(i=>new Fn(i))),r={};for(let i=0;i<t.length;i++){let o=e[i],s=t[i];if(!o)continue;let a=new mt({key:s,state:mt.deserialize(o.data)});r[s.toString()]=a,ft[s.toString()]=a}return r}var ft={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new mt({key:new Fn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:mt.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 Ri=new Ie("3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT"),pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.enableJito=!!t.enableJito,this.api=t.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 t=(await Mi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=t==null?void 0:t[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:e,instructionTypes:r}=st(t);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:e}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addJitoInstruction(t){let{fee:e,bundle:r}=t||{};if(!this.owner)return;let i=Ni.transfer({fromPubkey:this.owner.publicKey,toPubkey:Ri,lamports:e?e*Li:1e4});r?this.instructions.unshift(i):this.instructions.push(i)}async sendTxToJito(t){if(!this.api)return;let e=t.map(i=>En(i));return(await this.api.sendTxToJito(e)).result}addInstruction({instructions:t=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ie.default.toString())),this}async versionBuild({txVersion:t,extInfo:e}){return t===0?await this.buildV0(K({},e||{})):this.build(e)}build(t){var r;this.enableJito&&this.addJitoInstruction();let e=new Ve;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 ke(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Ae([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await Vt(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 this.enableJito&&this.sendTxToJito(m),{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:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:e=[],extInfo:r}=t,{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 ke(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let h=await Vt(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));Ae(P);let y=await this.signAllTransactions(P);if(l){let h=0,w=[],k=async()=>{if(!y[h])return;this.enableJito&&this.sendTxToJito([y[h]]);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 I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=D.err?"error":"success"),f==null||f([...w]),D.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:g});h.push(k)}return this.enableJito&&this.sendTxToJito(y),{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var p;let f=t||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=ce(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=K(K({},this.cluster==="devnet"?{}:ft),e);this.enableJito&&this.addJitoInstruction();let a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let g of a)s[g]===void 0&&u.push(new Ie(g));let c=await Wt({connection:this.connection,address:u});for(let[g,d]of Object.entries(c))s[g]=d;let m=new qe({payerKey:this.feePayer,recentBlockhash:i?Ie.default.toBase58():await ke(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 Ue(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),Ae([l]),(y=this.owner)!=null&&y.isKeyPair){let h=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:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return this.enableJito&&this.sendTxToJito(h),{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(t){var c;let{extraPreBuildData:e=[],buildProps:r}=t,{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),Ae(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});this.enableJito&&this.sendTxToJito([T[P]]),y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,k=>{let A=y.findIndex(D=>D.txId===w);A>-1&&(y[A].status=k.err?"error":"success"),f==null||f([...y]),k.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 this.enableJito&&this.sendTxToJito(T),{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let c=t||{},{computeBudgetConfig:e}=c,r=ce(c,["computeBudgetConfig"]),i=e?st(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>G(K({},l),{[f.publicKey.toBase58()]:f}),{});this.enableJito&&this.addJitoInstruction({bundle:!0});let 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 Ie(T));if(u.length<12&&ve({instructions:p,payer:this.feePayer,signers:d})||ve({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");ve({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().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);ve({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().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))||this.signers.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 ke(this.connection,this.blockhashCommitment);if(s.forEach(async(y,h)=>{y.recentBlockhash=T,a[h].length&&y.sign(...a[h])}),Ae(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let h of s){let w=await Vt(this.connection,h,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 h=0,w=[],k=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 I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=D.err?"error":"success"),p==null||p([...w]),D.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});h.push(k)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){var P;let T=t||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=ce(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]);this.enableJito&&this.addJitoInstruction();let s=K(K({},this.cluster==="devnet"?{}:ft),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new Ie(y));let c=await Wt({connection:this.connection,address:u});for(let[y,h]of Object.entries(c))s[y]=h;let m=e?st(e):{instructions:[],instructionTypes:[]},l=await ke(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,h)=>G(K({},y),{[h.publicKey.toBase58()]:h}),{});this.enableJito&&this.addJitoInstruction({bundle:!0});let p=[],g=[],d=[];if(this.allInstructions.forEach(y=>{let h=[...d,y],w=e?[...m.instructions,...h]:h;if(d.length<12&&Oe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||Oe({instructions:h,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&&Oe({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}else{let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(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(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&Oe({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}else{let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}g.push(h)}return(P=this.owner)!=null&&P.signer&&g.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var D;let{sequentially:h,onTxUpdate:w,recentBlockHash:k,skipPreflight:A=!0}=y||{};if(p.map(async(I,R)=>{g[R].length&&I.sign(g[R]),k&&(I.message.recentBlockhash=k)}),Ae(p),(D=this.owner)!=null&&D.isKeyPair){if(h){let I=[];for(let R of p){let v=await this.connection.sendTransaction(R,{skipPreflight:A}),{lastValidBlockHeight:M,blockhash:V}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:V,lastValidBlockHeight:M,signature:v},"confirmed"),I.push(v)}return{txIds:I,signedTxs:p}}return{txIds:await Promise.all(p.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let I=await this.signAllTransactions(p);if(h){let R=0,v=[],M=async()=>{if(!I[R])return;let V=await this.connection.sendTransaction(I[R],{skipPreflight:A});v.push({txId:V,status:"sent",signedTx:I[R]}),w==null||w([...v]),R++,this.connection.onSignature(V,X=>{let Q=v.findIndex(q=>q.txId===V);Q>-1&&(v[Q].status=X.err?"error":"success"),w==null||w([...v]),X.err||M()},"processed"),this.connection.getSignatureStatus(V)};return M(),{txIds:[],signedTxs:I}}else{let R=[];for(let v=0;v<I.length;v+=1){let M=await this.connection.sendTransaction(I[v],{skipPreflight:A});R.push(M)}return{txIds:R,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var qt=(...n)=>n.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ge=class{constructor({scope:t,moduleName:e}){this.disabled=!1;this.scope=t,this.logger=J(e)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,enableJito:this.scope.enableJito,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let e=qt(t);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ei=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ki=Buffer.from("amm_config","utf8"),Di=Buffer.from("pool","utf8"),vi=Buffer.from("pool_lp_mint","utf8"),Oi=Buffer.from("pool_vault","utf8"),_i=Buffer.from("observation","utf8");function dt(n){return pe([Ei],n)}function Fi(n,t){return pe([Ki,qi(t)],n)}function Wi(n,t,e,r){return pe([Di,t.toBuffer(),e.toBuffer(),r.toBuffer()],n)}function Vi(n,t){return pe([vi,t.toBuffer()],n)}function Wn(n,t,e){return pe([Oi,t.toBuffer(),e.toBuffer()],n)}function gt(n,t){return pe([_i,t.toBuffer()],n)}function qi(n){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,n,!1),new Uint8Array(t)}function Vn({programId:n,mintA:t,mintB:e}){let r=Fi(n,0).publicKey,i=dt(n).publicKey,o=Wi(n,r,t,e).publicKey,s=Vi(n,o).publicKey,a=Wn(n,o,t).publicKey,u=Wn(n,o,e).publicKey,c=gt(n,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}import{TransactionInstruction as He}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jt,TOKEN_2022_PROGRAM_ID as Jn,ASSOCIATED_TOKEN_PROGRAM_ID as $i}from"@solana/spl-token";import{PublicKey as Yi}from"@solana/web3.js";import zn,{isBN as jn}from"bn.js";import{bits as tc,BitStructure as nc,blob as Ui,Blob as rc,cstr as ic,f32 as oc,f32be as sc,f64 as ac,f64be as uc,greedy as cc,Layout as Gi,ns64 as lc,ns64be as mc,nu64 as fc,nu64be as pc,offset as dc,s16 as gc,s16be as hc,s24 as bc,s24be as yc,s32 as wc,s32be as Pc,s40 as Tc,s40be as Ac,s48 as xc,s48be as Bc,s8 as kc,seq as Hi,struct as Sc,Structure as zi,u16 as ji,u16be as Cc,u24 as Ic,u24be as Nc,u32 as Lc,u32be as Mc,u40 as Rc,u40be as Ec,u48 as Kc,u48be as Dc,u8 as Zi,UInt as Ji,union as vc,Union as Oc,unionLayoutDiscriminator as _c,utf8 as Fc}from"@solana/buffer-layout";var Ut=Gi,qn=zi;var Gt=Ji;var Un=Zi,Gn=ji;var Hn=Hi;var Ne=Ui;var Ht=class extends Ut{constructor(e,r,i){super(e,i);this.blob=Ne(e),this.signed=r}decode(e,r=0){let i=new zn(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 zn(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function ue(n){return new Gt(1,n)}function jt(n){return new Gt(4,n)}function O(n){return new Ht(8,!1,n)}var ht=class extends Ut{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 Y(n){return new ht(Ne(32),t=>new Yi(t),t=>t.toBuffer(),n)}function Zn(n){return new ht(Un(),Xi,Qi,n)}function Xi(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Qi(n){return n?1:0}var zt=class extends qn{decode(t,e){return super.decode(t,e)}};function oe(n,t,e){return new zt(n,t,e)}function Zt(n,t,e){let r,i=typeof t=="number"?t:jn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=jn(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 Hn(n,i,e)}var eo=J("Raydium_cpmm"),ze={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 Yn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d,T,P,y,h){let w=oe([O("amountMaxA"),O("amountMaxB"),O("openTime")]),k=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:$i,isSigner:!1,isWritable:!1},{pubkey:Pn,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:h},A),new He({keys:k,programId:n,data:Buffer.from([...ze.initialize,...A])})}function Xn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=oe([O("lpAmount"),O("amountMaxA"),O("amountMaxB")]),T=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:Jn,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 eo.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:g.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:g},P),new He({keys:T,programId:n,data:Buffer.from([...ze.deposit,...P])})}function Qn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=oe([O("lpAmount"),O("amountMinA"),O("amountMinB")]),T=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:Jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:yn,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:g},P),new He({keys:T,programId:n,data:Buffer.from([...ze.withdraw,...P])})}function $n(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=oe([O("amountIn"),O("amounOutMin")]),P=[{pubkey:t,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 He({keys:P,programId:n,data:Buffer.from([...ze.swapBaseInput,...y])})}function er(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=oe([O("amountInMax"),O("amountOut")]),P=[{pubkey:t,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({amountInMax:g,amountOut:d},y),new He({keys:P,programId:n,data:Buffer.from([...ze.swapBaseOutput,...y])})}import z from"bn.js";var tr=oe([Ne(8),ue("bump"),Zn("disableCreatePool"),Gn("index"),O("tradeFeeRate"),O("protocolFeeRate"),O("fundFeeRate"),O("createPoolFee"),Y("protocolOwner"),Y("fundOwner"),Zt(O(),16)]),nr=oe([Ne(8),Y("configId"),Y("poolCreator"),Y("vaultA"),Y("vaultB"),Y("mintLp"),Y("mintA"),Y("mintB"),Y("mintProgramA"),Y("mintProgramB"),Y("observationId"),ue("bump"),ue("status"),ue("lpDecimals"),ue("mintDecimalA"),ue("mintDecimalB"),O("lpAmount"),O("protocolFeesMintA"),O("protocolFeesMintB"),O("fundFeesMintA"),O("fundFeesMintB"),O("openTime"),Zt(O(),32)]);var ul=oe([jt("mintAuthorityOption"),Y("mintAuthority"),O("supply"),ue("decimals"),ue("isInitialized"),jt("freezeAuthorityOption"),Y("freezeAuthority")]);import{PublicKey as fl}from"@solana/web3.js";import{MintLayout as dl,TOKEN_PROGRAM_ID as hl}from"@solana/spl-token";var Le=i=>{var o=i,{address:n,programId:t,decimals:e}=o,r=ce(o,["address","programId","decimals"]);return K({chainId:101,address:nt(n).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},je=n=>n?G(K({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:G(K({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:G(K({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var Yt=class extends Ge{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,e){return(await this.getRpcPoolInfos([t],e))[t]}async getRpcPoolInfos(t,e){let r=await We(this.scope.connection,t.map(l=>({pubkey:new x(l)}))),i={},o=new Set,s=[];for(let l=0;l<t.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(t[l]));let p=nr.decode(f.accountInfo.data);i[String(t[l])]=G(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 We(this.scope.connection,l.map(p=>({pubkey:new x(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]]=tr.decode(g.data)}}let u={},c=await We(this.scope.connection,s.map(l=>({pubkey:new x(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 z(to.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]=G(K({},f),{baseReserve:p,quoteReserve:g,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new ee(g.toString()).div(new ee(10).pow(f.mintDecimalB)).div(new ee(p.toString()).div(new ee(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:t,mintInfos:e}){return Object.keys(t).reduce((r,i)=>{var u,c,m,l;let o=t[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return G(K({},r),{[i]:G(K({},o),{id:new x(i),configInfo:o.configInfo,version:7,authority:dt(o.programId).publicKey,mintA:Le({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?je((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Le({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?je((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(t){let e=await this.getRpcPoolInfo(t,!0),r=await _n({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Le({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?je(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Le({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?je(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Le({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:de.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:t,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 ee(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new ee(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:t,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:dt(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:t,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=ce(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var V,X,Q;let f=i.feePayer||((V=this.scope.owner)==null?void 0:V.publicKey),p=new z(new x(c.mintA.address).toBuffer()).lte(new z(new x(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===bt.toBase58(),h=i.useSOLBalance&&d.address===bt.toBase58(),[w,k]=[new x(g.address),new x(d.address)],A=this.createTxBuilder(),{account:D,instructionParams:I}=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(I||{});let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new x(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=Vn({programId:t,mintA:w,mintB:k});return A.addInstruction({instructions:[Yn(t,this.scope.ownerPubKey,M.configId,M.authority,M.poolId,w,k,M.lpMint,D,R,Kn(this.scope.ownerPubKey,M.lpMint).publicKey,M.vaultA,M.vaultB,e,new x((X=g.programId)!=null?X:de),new x((Q=d.programId)!=null?Q:de),M.observationId,T,P,r)],instructionTypes:[fe.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:G(K({},M),{mintA:g,mintB:d,programId:t,poolFeeAccount:e})}})}async addLiquidity(t){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=t;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:G(K({},e),{lpAmount:new ee(g.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:g.baseReserve,quoteReserve:g.quoteReserve,slippage:new ae(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new ee(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,h=e.mintA.address===bt.toString(),w=e.mintB.address===bt.toString(),k=this.createTxBuilder(),[A,D]=[new x(e.mintA.address),new x(e.mintB.address)],{account:I,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new x(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});k.addInstruction(R||{});let{account:v,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new x(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(M||{}),!I&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let V=await l.getCreatedTokenAccount({mint:new x(e.lpMint.address)}),Xt=await l.handleTokenAccount({side:"out",amount:0,mint:new x(e.lpMint.address),tokenAccount:V,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:X}=Xt,Q=ce(Xt,["tokenAccount"]);k.addInstruction(Q);let q=r!=null?r:await this.getCpmmPoolKeys(e.id),_=new ae(new z(1)).sub(s);return k.addInstruction({instructions:[Xn(new x(e.programId),this.scope.ownerPubKey,new x(q.authority),new x(e.id),X,I,v,new x(q.vault.A),new x(q.vault.B),A,D,new x(e.lpMint.address),a?a==null?void 0:a.liquidity:_.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[fe.CpmmAddLiquidity],lookupTableAddress:q.lookupTableAccount?[q.lookupTableAccount]:[]}),k.addCustomComputeBudget(u),k.versionBuild({txVersion:m})}async withdrawLiquidity(t){var X,Q;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new ae(new z(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]=[Ce(m,e.mintA.extensions.feeConfig,f,!0),Ce(l,e.mintB.extensions.feeConfig,f,!0)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new x(e.mintA.address),new x(e.mintB.address)],h=P.equals(me),w=y.equals(me),k,A,{account:D,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new x(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});k=D,I&&T.addInstruction(I);let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new x(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),(!k||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let M=await d.getCreatedTokenAccount({mint:new x(e.lpMint.address)});M||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let V=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[Qn(new x(e.programId),this.scope.ownerPubKey,new x(V.authority),new x(e.id),M,k,A,new x(V.vault.A),new x(V.vault.B),P,y,new x(e.lpMint.address),i,m.sub((X=p.fee)!=null?X:new z(0)),l.sub((Q=g.fee)!=null?Q:new z(0)))],instructionTypes:[fe.CpmmWithdrawLiquidity],lookupTableAddress:V.lookupTableAccount?[V.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(t){var D,I,R,v,M,V;let{poolInfo:e,poolKeys:r,baseIn:i,swapResult:o,slippage:s=0,config:a,computeBudgetConfig:u,txVersion:c}=t,{bypassAssociatedCheck:m,checkCreateATAOwner:l,associatedOnly:f}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},a),p=this.createTxBuilder(),[g,d]=[new x(e.mintA.address),new x(e.mintB.address)];o.destinationAmountSwapped=o.destinationAmountSwapped.mul(new z((1-s)*1e4)).div(new z(1e4));let T=e.mintA.address===me.toBase58(),P=e.mintB.address===me.toBase58(),{account:y,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({mint:g,tokenProgram:new x((D=e.mintA.programId)!=null?D:de),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});h&&p.addInstruction(h);let{account:w,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new x((I=e.mintB.programId)!=null?I:de),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:[i?$n(new x(e.programId),this.scope.ownerPubKey,new x(A.authority),new x(A.config.id),new x(e.id),y,w,new x(A.vault.A),new x(A.vault.B),new x((R=e.mintA.programId)!=null?R:de),new x((v=e.mintB.programId)!=null?v:de),g,d,gt(new x(e.programId),new x(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped):er(new x(e.programId),this.scope.ownerPubKey,new x(A.authority),new x(A.config.id),new x(e.id),w,y,new x(A.vault.B),new x(A.vault.A),new x((M=e.mintB.programId)!=null?M:de),new x((V=e.mintA.programId)!=null?V:de),d,g,gt(new x(e.programId),new x(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped)],instructionTypes:[i?fe.CpmmSwapBaseIn:fe.CpmmSwapBaseOut]}),p.addCustomComputeBudget(u),p.versionBuild({txVersion:c})}computeSwapAmount({pool:t,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===t.mintB.address,s=lt.swap(e,o?t.baseReserve:t.quoteReserve,o?t.quoteReserve:t.baseReserve,t.configInfo.tradeFeeRate),a=new ee(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new z((1-i)*1e4)).div(new z(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:t.poolPrice.sub(a).div(t.poolPrice)}}computePairAmount({poolInfo:t,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,h,w,k,A,D,I,R;let u=1-Number(o.toSignificant())/100,c=new z(new ee(i).mul(10**t[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=Ce(c,t[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new z(0)),f=new z(new ee(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,ee.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?t.mintA.symbol:t.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(h=m.fee)==null?void 0:h.toString())!=null?w:0,"anotherToken:",a?t.mintB.symbol:t.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:Rt,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=no(g,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=Ce(v[a?"amountB":"amountA"],t[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new ae(new z(1)).add(o),P=Ce(T.mul(d.amount.sub((k=d.fee)!=null?k:new z(0))).quotient,t[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=(I=P.fee)==null?void 0:I.toString())!=null?R:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:g}}};function no(n,t,e,r){let i=n.mul(t).div(r);!i.isZero()&&!n.mul(t).mod(r).isZero()&&(i=i.add(new z(1)));let o=n.mul(e).div(r);return!o.isZero()&&!n.mul(e).mod(r).isZero()&&(o=o.add(new z(1))),{amountA:i,amountB:o}}export{Yt as default};
|
|
1
|
+
var rr=Object.defineProperty,ir=Object.defineProperties;var or=Object.getOwnPropertyDescriptors;var Ze=Object.getOwnPropertySymbols;var $t=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable;var Qt=(n,t,e)=>t in n?rr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,K=(n,t)=>{for(var e in t||(t={}))$t.call(t,e)&&Qt(n,e,t[e]);if(Ze)for(var e of Ze(t))en.call(t,e)&&Qt(n,e,t[e]);return n},G=(n,t)=>ir(n,or(t));var ce=(n,t)=>{var e={};for(var r in n)$t.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&Ze)for(var r of Ze(n))t.indexOf(r)<0&&en.call(n,r)&&(e[r]=n[r]);return e};import{PublicKey as x}from"@solana/web3.js";import{NATIVE_MINT as bt,TOKEN_PROGRAM_ID as de,AccountLayout as to}from"@solana/spl-token";import pi from"big.js";import Us from"bn.js";import te from"bn.js";var xe=9e15,ye=1e9,yt="0123456789abcdef",Ye="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Xe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",wt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-xe,maxE:xe,crypto:!1},on,le,C=!0,$e="[DecimalError] ",be=$e+"Invalid argument: ",sn=$e+"Precision limit exceeded",an=$e+"crypto unavailable",un="[object Decimal]",Z=Math.floor,H=Math.pow,sr=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ar=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ur=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,cn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,re=1e7,S=7,cr=9007199254740991,lr=Ye.length-1,Pt=Xe.length-1,b={toStringTag:un};b.absoluteValue=b.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),B(n)};b.ceil=function(){return B(new this.constructor(this),this.e+1,2)};b.clampedTo=b.clamp=function(n,t){var e,r=this,i=r.constructor;if(n=new i(n),t=new i(t),!n.s||!t.s)return new i(NaN);if(n.gt(t))throw Error(be+t);return e=r.cmp(n),e<0?n:r.cmp(t)>0?t:new i(r)};b.comparedTo=b.cmp=function(n){var t,e,r,i,o=this,s=o.d,a=(n=new o.constructor(n)).d,u=o.s,c=n.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!==n.e)return o.e>n.e^u<0?1:-1;for(r=s.length,i=a.length,t=0,e=r<i?r:i;t<e;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};b.cosine=b.cos=function(){var n,t,e=this,r=e.constructor;return e.d?e.d[0]?(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+S,r.rounding=1,e=mr(r,dn(r,e)),r.precision=n,r.rounding=t,B(le==2||le==3?e.neg():e,n,t,!0)):new r(1):new r(NaN)};b.cubeRoot=b.cbrt=function(){var n,t,e,r,i,o,s,a,u,c,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(C=!1,o=m.s*H(m.s*m,1/3),!o||Math.abs(o)==1/0?(e=j(m.d),n=m.e,(o=(n-e.length+1)%3)&&(e+=o==1||o==-2?"0":"00"),o=H(e,1/3),n=Z((n+1)/3)-(n%3==(n<0?-1:2)),o==1/0?e="5e"+n:(e=o.toExponential(),e=e.slice(0,e.indexOf("e")+1)+n),r=new l(e),r.s=m.s):r=new l(o.toString()),s=(n=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(m),r=F(c.plus(m).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(e=j(r.d)).slice(0,s))if(e=e.slice(s-3,s+1),e=="9999"||!i&&e=="4999"){if(!i&&(B(a,n+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")&&(B(r,n+1,1),t=!r.times(r).times(r).eq(m));break}return C=!0,B(r,n,l.rounding,t)};b.decimalPlaces=b.dp=function(){var n,t=this.d,e=NaN;if(t){if(n=t.length-1,e=(n-Z(this.e/S))*S,n=t[n],n)for(;n%10==0;n/=10)e--;e<0&&(e=0)}return e};b.dividedBy=b.div=function(n){return F(this,new this.constructor(n))};b.dividedToIntegerBy=b.divToInt=function(n){var t=this,e=t.constructor;return B(F(t,new e(n),0,1,1),e.precision,e.rounding)};b.equals=b.eq=function(n){return this.cmp(n)===0};b.floor=function(){return B(new this.constructor(this),this.e+1,3)};b.greaterThan=b.gt=function(n){return this.cmp(n)>0};b.greaterThanOrEqualTo=b.gte=function(n){var t=this.cmp(n);return t==1||t===0};b.hyperbolicCosine=b.cosh=function(){var n,t,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?(n=Math.ceil(i/3),t=(1/tt(4,n)).toString()):(n=16,t="2.3283064365386962890625e-10"),o=Be(s,1,o.times(t),new s(1),!0);for(var u,c=n,m=new s(8);c--;)u=o.times(o),o=a.minus(u.times(m.minus(u.times(m))));return B(o,s.precision=e,s.rounding=r,!0)};b.hyperbolicSine=b.sinh=function(){var n,t,e,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,e=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=Be(o,2,i,i,!0);else{n=1.4*Math.sqrt(r),n=n>16?16:n|0,i=i.times(1/tt(5,n)),i=Be(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);n--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=t,o.rounding=e,B(i,t,e,!0)};b.hyperbolicTangent=b.tanh=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+7,r.rounding=1,F(e.sinh(),e.cosh(),r.precision=n,r.rounding=t)):new r(e.s)};b.inverseCosine=b.acos=function(){var n,t=this,e=t.constructor,r=t.abs().cmp(1),i=e.precision,o=e.rounding;return r!==-1?r===0?t.isNeg()?ne(e,i,o):new e(0):new e(NaN):t.isZero()?ne(e,i+4,o).times(.5):(e.precision=i+6,e.rounding=1,t=t.asin(),n=ne(e,i+4,o).times(.5),e.precision=i,e.rounding=o,n.minus(t))};b.inverseHyperbolicCosine=b.acosh=function(){var n,t,e=this,r=e.constructor;return e.lte(1)?new r(e.eq(1)?0:NaN):e.isFinite()?(n=r.precision,t=r.rounding,r.precision=n+Math.max(Math.abs(e.e),e.sd())+4,r.rounding=1,C=!1,e=e.times(e).minus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln()):new r(e)};b.inverseHyperbolicSine=b.asinh=function(){var n,t,e=this,r=e.constructor;return!e.isFinite()||e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+2*Math.max(Math.abs(e.e),e.sd())+6,r.rounding=1,C=!1,e=e.times(e).plus(1).sqrt().plus(e),C=!0,r.precision=n,r.rounding=t,e.ln())};b.inverseHyperbolicTangent=b.atanh=function(){var n,t,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):(n=o.precision,t=o.rounding,r=i.sd(),Math.max(r,n)<2*-i.e-1?B(new o(i),n,t,!0):(o.precision=e=r-i.e,i=F(i.plus(1),new o(1).minus(i),e+n,1),o.precision=n+4,o.rounding=1,i=i.ln(),o.precision=n,o.rounding=t,i.times(.5))):new o(NaN)};b.inverseSine=b.asin=function(){var n,t,e,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),e=o.precision,r=o.rounding,t!==-1?t===0?(n=ne(o,e+4,r).times(.5),n.s=i.s,n):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 n,t,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<=Pt)return s=ne(m,l+4,f).times(.25),s.s=c.s,s}else{if(!c.s)return new m(NaN);if(l+4<=Pt)return s=ne(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),n=e;n;--n)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/S),r=1,u=c.times(c),s=new m(c),i=c;n!==-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[t]!==void 0)for(n=t;s.d[n]===o.d[n]&&n--;);return e&&(s=s.times(2<<e-1)),C=!0,B(s,m.precision=l,m.rounding=f,!0)};b.isFinite=function(){return!!this.d};b.isInteger=b.isInt=function(){return!!this.d&&Z(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(n){return this.cmp(n)<0};b.lessThanOrEqualTo=b.lte=function(n){return this.cmp(n)<1};b.logarithm=b.log=function(n){var t,e,r,i,o,s,a,u,c=this,m=c.constructor,l=m.precision,f=m.rounding,p=5;if(n==null)n=new m(10),t=!0;else{if(n=new m(n),e=n.d,n.s<0||!e||!e[0]||n.eq(1))return new m(NaN);t=n.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(t)if(e.length>1)o=!0;else{for(i=e[0];i%10===0;)i/=10;o=i!==1}if(C=!1,a=l+p,s=he(c,a),r=t?Qe(m,a+10):he(n,a),u=F(s,r,a,1),Me(u.d,i=l,f))do if(a+=10,s=he(c,a),r=t?Qe(m,a+10):he(n,a),u=F(s,r,a,1),!o){+j(u.d).slice(i+1,i+15)+1==1e14&&(u=B(u,l+1,0));break}while(Me(u.d,i+=10,f));return C=!0,B(u,l,f)};b.minus=b.sub=function(n){var t,e,r,i,o,s,a,u,c,m,l,f,p=this,g=p.constructor;if(n=new g(n),!p.d||!n.d)return!p.s||!n.s?n=new g(NaN):p.d?n.s=-n.s:n=new g(n.d||p.s!==n.s?p:NaN),n;if(p.s!=n.s)return n.s=-n.s,p.plus(n);if(c=p.d,f=n.d,a=g.precision,u=g.rounding,!c[0]||!f[0]){if(f[0])n.s=-n.s;else if(c[0])n=new g(p);else return new g(u===3?-0:0);return C?B(n,a,u):n}if(e=Z(n.e/S),m=Z(p.e/S),c=c.slice(),o=m-e,o){for(l=o<0,l?(t=c,o=-o,s=f.length):(t=f,e=m,s=c.length),r=Math.max(Math.ceil(a/S),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.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&&(t=c,c=f,f=t,n.s=-n.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]=re-1;--c[i],c[r]+=re}c[r]-=f[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--e;return c[0]?(n.d=c,n.e=et(c,e),C?B(n,a,u):n):new g(u===3?-0:0)};b.modulo=b.mod=function(n){var t,e=this,r=e.constructor;return n=new r(n),!e.d||!n.s||n.d&&!n.d[0]?new r(NaN):!n.d||e.d&&!e.d[0]?B(new r(e),r.precision,r.rounding):(C=!1,r.modulo==9?(t=F(e,n.abs(),0,3,1),t.s*=n.s):t=F(e,n,0,r.modulo,1),t=t.times(n),C=!0,e.minus(t))};b.naturalExponential=b.exp=function(){return Tt(this)};b.naturalLogarithm=b.ln=function(){return he(this)};b.negated=b.neg=function(){var n=new this.constructor(this);return n.s=-n.s,B(n)};b.plus=b.add=function(n){var t,e,r,i,o,s,a,u,c,m,l=this,f=l.constructor;if(n=new f(n),!l.d||!n.d)return!l.s||!n.s?n=new f(NaN):l.d||(n=new f(n.d||l.s===n.s?l:NaN)),n;if(l.s!=n.s)return n.s=-n.s,l.minus(n);if(c=l.d,m=n.d,a=f.precision,u=f.rounding,!c[0]||!m[0])return m[0]||(n=new f(l)),C?B(n,a,u):n;if(o=Z(l.e/S),r=Z(n.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),t=0;i;)t=(c[--i]=c[i]+m[i]+t)/re|0,c[i]%=re;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return n.d=c,n.e=et(c,r),C?B(n,a,u):n};b.precision=b.sd=function(n){var t,e=this;if(n!==void 0&&n!==!!n&&n!==1&&n!==0)throw Error(be+n);return e.d?(t=ln(e.d),n&&e.e+1>t&&(t=e.e+1)):t=NaN,t};b.round=function(){var n=this,t=n.constructor;return B(new t(n),n.e+1,t.rounding)};b.sine=b.sin=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+Math.max(e.e,e.sd())+S,r.rounding=1,e=pr(r,dn(r,e)),r.precision=n,r.rounding=t,B(le>2?e.neg():e,n,t,!0)):new r(NaN)};b.squareRoot=b.sqrt=function(){var n,t,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(C=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=j(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=Z((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new m(t)):r=new m(c.toString()),e=(u=m.precision)+3;;)if(o=r,r=o.plus(F(s,o,e+2,1)).times(.5),j(o.d).slice(0,e)===(t=j(r.d)).slice(0,e))if(t=t.slice(e-3,e+1),t=="9999"||!i&&t=="4999"){if(!i&&(B(o,u+1,0),o.times(o).eq(s))){r=o;break}e+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(B(r,u+1,1),n=!r.times(r).eq(s));break}return C=!0,B(r,u,m.rounding,n)};b.tangent=b.tan=function(){var n,t,e=this,r=e.constructor;return e.isFinite()?e.isZero()?new r(e):(n=r.precision,t=r.rounding,r.precision=n+10,r.rounding=1,e=e.sin(),e.s=1,e=F(e,new r(1).minus(e.times(e)).sqrt(),n+10,0),r.precision=n,r.rounding=t,B(le==2||le==4?e.neg():e,n,t,!0)):new r(NaN)};b.times=b.mul=function(n){var t,e,r,i,o,s,a,u,c,m=this,l=m.constructor,f=m.d,p=(n=new l(n)).d;if(n.s*=m.s,!f||!f[0]||!p||!p[0])return new l(!n.s||f&&!f[0]&&!p||p&&!p[0]&&!f?NaN:!f||!p?n.s/0:n.s*0);for(e=Z(m.e/S)+Z(n.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(t=0,i=u+r;i>r;)a=o[i]+p[r]*f[i-r-1]+t,o[i--]=a%re|0,t=a/re|0;o[i]=(o[i]+t)%re|0}for(;!o[--s];)o.pop();return t?++e:o.shift(),n.d=o,n.e=et(o,e),C?B(n,l.precision,l.rounding):n};b.toBinary=function(n,t){return xt(this,2,n,t)};b.toDecimalPlaces=b.toDP=function(n,t){var e=this,r=e.constructor;return e=new r(e),n===void 0?e:($(n,0,ye),t===void 0?t=r.rounding:$(t,0,8),B(e,n+e.e+1,t))};b.toExponential=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=se(r,!0):($(n,0,ye),t===void 0?t=i.rounding:$(t,0,8),r=B(new i(r),n+1,t),e=se(r,!0,n+1)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toFixed=function(n,t){var e,r,i=this,o=i.constructor;return n===void 0?e=se(i):($(n,0,ye),t===void 0?t=o.rounding:$(t,0,8),r=B(new o(i),n+i.e+1,t),e=se(r,!1,n+r.e+1)),i.isNeg()&&!i.isZero()?"-"+e:e};b.toFraction=function(n){var t,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),t=new d(r),o=t.e=ln(g)-p.e-1,s=o%S,t.d[0]=H(10,s<0?S+s:s),n==null)n=o>0?t:c;else{if(a=new d(n),!a.isInt()||a.lt(c))throw Error(be+a);n=a.gt(t)?o>0?t:c:a}for(C=!1,a=new d(j(g)),m=d.precision,d.precision=o=g.length*S*2;l=F(a,t,0,1,1),i=e.plus(l.times(r)),i.cmp(n)!=1;)e=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=t,t=a.minus(l.times(i)),a=i;return i=F(n.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=F(c,r,o,1).minus(p).abs().cmp(F(u,e,o,1).minus(p).abs())<1?[c,r]:[u,e],d.precision=m,C=!0,f};b.toHexadecimal=b.toHex=function(n,t){return xt(this,16,n,t)};b.toNearest=function(n,t){var e=this,r=e.constructor;if(e=new r(e),n==null){if(!e.d)return e;n=new r(1),t=r.rounding}else{if(n=new r(n),t===void 0?t=r.rounding:$(t,0,8),!e.d)return n.s?e:n;if(!n.d)return n.s&&(n.s=e.s),n}return n.d[0]?(C=!1,e=F(e,n,0,t,1).times(n),C=!0,B(e)):(n.s=e.s,e=n),e};b.toNumber=function(){return+this};b.toOctal=function(n,t){return xt(this,8,n,t)};b.toPower=b.pow=function(n){var t,e,r,i,o,s,a=this,u=a.constructor,c=+(n=new u(n));if(!a.d||!n.d||!a.d[0]||!n.d[0])return new u(H(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,n.eq(1))return B(a,r,o);if(t=Z(n.e/S),t>=n.d.length-1&&(e=c<0?-c:c)<=cr)return i=mn(u,a,e,r),n.s<0?new u(1).div(i):B(i,r,o);if(s=a.s,s<0){if(t<n.d.length-1)return new u(NaN);if((n.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return e=H(+a,c),t=e==0||!isFinite(e)?Z(c*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new u(e+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(C=!1,u.rounding=a.s=1,e=Math.min(12,(t+"").length),i=Tt(n.times(he(a,r+e)),r),i.d&&(i=B(i,r+5,1),Me(i.d,r,o)&&(t=r+10,i=B(Tt(n.times(he(a,t+e)),t),t+5,1),+j(i.d).slice(r+1,r+15)+1==1e14&&(i=B(i,r+1,0)))),i.s=s,C=!0,u.rounding=o,B(i,r,o))};b.toPrecision=function(n,t){var e,r=this,i=r.constructor;return n===void 0?e=se(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):($(n,1,ye),t===void 0?t=i.rounding:$(t,0,8),r=B(new i(r),n,t),e=se(r,n<=r.e||r.e<=i.toExpNeg,n)),r.isNeg()&&!r.isZero()?"-"+e:e};b.toSignificantDigits=b.toSD=function(n,t){var e=this,r=e.constructor;return n===void 0?(n=r.precision,t=r.rounding):($(n,1,ye),t===void 0?t=r.rounding:$(t,0,8)),B(new r(e),n,t)};b.toString=function(){var n=this,t=n.constructor,e=se(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()&&!n.isZero()?"-"+e:e};b.truncated=b.trunc=function(){return B(new this.constructor(this),this.e+1,1)};b.valueOf=b.toJSON=function(){var n=this,t=n.constructor,e=se(n,n.e<=t.toExpNeg||n.e>=t.toExpPos);return n.isNeg()?"-"+e:e};function j(n){var t,e,r,i=n.length-1,o="",s=n[0];if(i>0){for(o+=s,t=1;t<i;t++)r=n[t]+"",e=S-r.length,e&&(o+=ge(e)),o+=r;s=n[t],r=s+"",e=S-r.length,e&&(o+=ge(e))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function $(n,t,e){if(n!==~~n||n<t||n>e)throw Error(be+n)}function Me(n,t,e,r){var i,o,s,a;for(o=n[0];o>=10;o/=10)--t;return--t<0?(t+=S,i=0):(i=Math.ceil((t+1)/S),t%=S),o=H(10,S-t),a=n[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==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)&&(n[i+1]/o/100|0)==H(10,t-2)-1||(a==o/2||a==0)&&(n[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||e<4)&&a==9999||!r&&e>3&&a==4999):s=((r||e<4)&&a+1==o||!r&&e>3&&a+1==o/2)&&(n[i+1]/o/1e3|0)==H(10,t-3)-1,s}function Je(n,t,e){for(var r,i=[0],o,s=0,a=n.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=yt.indexOf(n.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 mr(n,t){var e,r,i;if(t.isZero())return t;r=t.d.length,r<32?(e=Math.ceil(r/3),i=(1/tt(4,e)).toString()):(e=16,i="2.3283064365386962890625e-10"),n.precision+=e,t=Be(n,1,t.times(i),new n(1));for(var o=e;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return n.precision-=e,t}var F=function(){function n(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 t(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,k,A,D,I,R,v,M,V,X=r.constructor,Q=r.s==i.s?1:-1,q=r.d,_=i.d;if(!q||!q[0]||!_||!_[0])return new X(!r.s||!i.s||(q?_&&q[0]==_[0]:!_)?NaN:q&&q[0]==0||!_?Q*0:Q/0);for(u?(p=1,m=r.e-i.e):(u=re,p=S,m=Z(r.e/p)-Z(i.e/p)),M=_.length,R=q.length,P=new X(Q),y=P.d=[],l=0;_[l]==(q[l]||0);l++);if(_[l]>(q[l]||0)&&m--,o==null?(A=o=X.precision,s=X.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,_=_[0],A++;(l<R||f)&&A--;l++)D=f*u+(q[l]||0),y[l]=D/_|0,f=D%_|0;g=f||l<R}else{for(f=u/(_[0]+1)|0,f>1&&(_=n(_,f,u),q=n(q,f,u),M=_.length,R=q.length),I=M,h=q.slice(0,M),w=h.length;w<M;)h[w++]=0;V=_.slice(),V.unshift(0),v=_[0],_[1]>=u/2&&++v;do f=0,c=t(_,h,M,w),c<0?(k=h[0],M!=w&&(k=k*u+(h[1]||0)),f=k/v|0,f>1?(f>=u&&(f=u-1),d=n(_,f,u),T=d.length,w=h.length,c=t(d,h,T,w),c==1&&(f--,e(d,M<T?V:_,T,u))):(f==0&&(c=f=1),d=_.slice()),T=d.length,T<w&&d.unshift(0),e(h,d,w,u),c==-1&&(w=h.length,c=t(_,h,M,w),c<1&&(f++,e(h,M<w?V:_,w,u))),w=h.length):c===0&&(f++,h=[0]),y[l++]=f,c&&h[0]?h[w++]=q[I]||0:(h=[q[I]],w=1);while((I++<R||h[0]!==void 0)&&A--);g=h[0]!==void 0}y[0]||y.shift()}if(p==1)P.e=m,on=g;else{for(l=1,f=y[0];f>=10;f/=10)l++;P.e=l+m*p-1,B(P,a?o+P.e+1:o,s,g)}return P}}();function B(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor;e:if(t!=null){if(l=n.d,!l)return n;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=S,s=t,m=l[f=0],u=m/H(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/H(10,i-s-1)%10|0}if(r=r||t<0||l[f+1]!==void 0||(s<0?m:m%H(10,i-s-1)),c=e<4?(u||r)&&(e==0||e==(n.s<0?3:2)):u>5||u==5&&(e==4||r||e==6&&(o>0?s>0?m/H(10,i-s):0:l[f-1])%10&1||e==(n.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=n.e+1,l[0]=H(10,(S-t%S)%S),n.e=-t||0):l[0]=n.e=0,n;if(o==0?(l.length=f,a=1,f--):(l.length=f+1,a=H(10,S-o),l[f]=s>0?(m/H(10,i-s)%H(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&&(n.e++,l[0]==re&&(l[0]=1));break}else{if(l[f]+=a,l[f]!=re)break;l[f--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return C&&(n.e>p.maxE?(n.d=null,n.e=NaN):n.e<p.minE&&(n.e=0,n.d=[0])),n}function se(n,t,e){if(!n.isFinite())return pn(n);var r,i=n.e,o=j(n.d),s=o.length;return t?(e&&(r=e-s)>0?o=o.charAt(0)+"."+o.slice(1)+ge(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(n.e<0?"e":"e+")+n.e):i<0?(o="0."+ge(-i-1)+o,e&&(r=e-s)>0&&(o+=ge(r))):i>=s?(o+=ge(i+1-s),e&&(r=e-i-1)>0&&(o=o+"."+ge(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),e&&(r=e-s)>0&&(i+1===s&&(o+="."),o+=ge(r))),o}function et(n,t){var e=n[0];for(t*=S;e>=10;e/=10)t++;return t}function Qe(n,t,e){if(t>lr)throw C=!0,e&&(n.precision=e),Error(sn);return B(new n(Ye),t,1,!0)}function ne(n,t,e){if(t>Pt)throw Error(sn);return B(new n(Xe),t,e,!0)}function ln(n){var t=n.length-1,e=t*S+1;if(t=n[t],t){for(;t%10==0;t/=10)e--;for(t=n[0];t>=10;t/=10)e++}return e}function ge(n){for(var t="";n--;)t+="0";return t}function mn(n,t,e,r){var i,o=new n(1),s=Math.ceil(r/S+4);for(C=!1;;){if(e%2&&(o=o.times(t),nn(o.d,s)&&(i=!0)),e=Z(e/2),e===0){e=o.d.length-1,i&&o.d[e]===0&&++o.d[e];break}t=t.times(t),nn(t.d,s)}return C=!0,o}function tn(n){return n.d[n.d.length-1]&1}function fn(n,t,e){for(var r,i=new n(t[0]),o=0;++o<t.length;)if(r=new n(t[o]),r.s)i[e](r)&&(i=r);else{i=r;break}return i}function Tt(n,t){var e,r,i,o,s,a,u,c=0,m=0,l=0,f=n.constructor,p=f.rounding,g=f.precision;if(!n.d||!n.d[0]||n.e>17)return new f(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:0/0);for(t==null?(C=!1,u=g):u=t,a=new f(.03125);n.e>-2;)n=n.times(a),l+=5;for(r=Math.log(H(2,l))/Math.LN10*2+5|0,u+=r,e=o=s=new f(1),f.precision=u;;){if(o=B(o.times(n),u,1),e=e.times(++m),a=s.plus(F(o,e,u,1)),j(a.d).slice(0,u)===j(s.d).slice(0,u)){for(i=l;i--;)s=B(s.times(s),u,1);if(t==null)if(c<3&&Me(s.d,u-r,p,c))f.precision=u+=10,e=o=a=new f(1),m=0,c++;else return B(s,f.precision=g,p,C=!0);else return f.precision=g,s}s=a}}function he(n,t){var e,r,i,o,s,a,u,c,m,l,f,p=1,g=10,d=n,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(t==null?(C=!1,m=h):m=t,P.precision=m+=g,e=j(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(n),e=j(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=Qe(P,m+2,h).times(o+""),d=he(new P(r+"."+e.slice(1)),m-g).plus(c),P.precision=h,t==null?B(d,h,y,C=!0):d;for(l=d,u=s=d=F(d.minus(1),d.plus(1),m,1),f=B(d.times(d),m,1),i=3;;){if(s=B(s.times(f),m,1),c=u.plus(F(s,new P(i),m,1)),j(c.d).slice(0,m)===j(u.d).slice(0,m))if(u=u.times(2),o!==0&&(u=u.plus(Qe(P,m+2,h).times(o+""))),u=F(u,new P(p),m,1),t==null)if(Me(u.d,m-g,y,a))P.precision=m+=g,c=s=d=F(l.minus(1),l.plus(1),m,1),f=B(d.times(d),m,1),i=a=1;else return B(u,P.precision=h,y,C=!0);else return P.precision=h,u;u=c,i+=2}}function pn(n){return String(n.s*n.s/0)}function At(n,t){var e,r,i;for((e=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(e<0&&(e=r),e+=+t.slice(r+1),t=t.substring(0,r)):e<0&&(e=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,n.e=e=e-r-1,n.d=[],r=(e+1)%S,e<0&&(r+=S),r<i){for(r&&n.d.push(+t.slice(0,r)),i-=S;r<i;)n.d.push(+t.slice(r,r+=S));t=t.slice(r),r=S-t.length}else r-=i;for(;r--;)t+="0";n.d.push(+t),C&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function fr(n,t){var e,r,i,o,s,a,u,c,m;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),cn.test(t))return At(n,t)}else if(t==="Infinity"||t==="NaN")return+t||(n.s=NaN),n.e=NaN,n.d=null,n;if(ar.test(t))e=16,t=t.toLowerCase();else if(sr.test(t))e=2;else if(ur.test(t))e=8;else throw Error(be+t);for(o=t.search(/p/i),o>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=n.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=mn(r,new r(e),o,o*2)),c=Je(t,e,re),m=c.length-1,o=m;c[o]===0;--o)c.pop();return o<0?new r(n.s*0):(n.e=et(c,m),n.d=c,C=!1,s&&(n=F(n,i,a*4)),u&&(n=n.times(Math.abs(u)<54?H(2,u):Re.pow(2,u))),C=!0,n)}function pr(n,t){var e,r=t.d.length;if(r<3)return t.isZero()?t:Be(n,2,t,t);e=1.4*Math.sqrt(r),e=e>16?16:e|0,t=t.times(1/tt(5,e)),t=Be(n,2,t,t);for(var i,o=new n(5),s=new n(16),a=new n(20);e--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Be(n,t,e,r,i){var o,s,a,u,c=1,m=n.precision,l=Math.ceil(m/S);for(C=!1,u=e.times(e),a=new n(r);;){if(s=F(a.times(u),new n(t++*t++),m,1),a=i?r.plus(s):r.minus(s),r=F(s.times(u),new n(t++*t++),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 C=!0,s.d.length=l+1,s}function tt(n,t){for(var e=n;--t;)e*=n;return e}function dn(n,t){var e,r=t.s<0,i=ne(n,n.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return le=r?4:1,t;if(e=t.divToInt(i),e.isZero())le=r?3:2;else{if(t=t.minus(e.times(i)),t.lte(o))return le=tn(e)?r?2:3:r?4:1,t;le=tn(e)?r?1:4:r?3:2}return t.minus(i).abs()}function xt(n,t,e,r){var i,o,s,a,u,c,m,l,f,p=n.constructor,g=e!==void 0;if(g?($(e,1,ye),r===void 0?r=p.rounding:$(r,0,8)):(e=p.precision,r=p.rounding),!n.isFinite())m=pn(n);else{for(m=se(n),s=m.indexOf("."),g?(i=2,t==16?e=e*4-3:t==8&&(e=e*3-2)):i=t,s>=0&&(m=m.replace(".",""),f=new p(1),f.e=m.length-s,f.d=Je(se(f),10,i),f.e=f.d.length),l=Je(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--:(n=new p(n),n.d=l,n.e=o,n=F(n,f,e,r,0,i),l=n.d,o=n.e,c=on),s=l[e],a=i/2,c=c||l[e+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(n.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[e-1]&1||r===(n.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+=yt.charAt(l[s]);if(g){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)m+="0";for(l=Je(m,i,t),u=l.length;!l[u-1];--u);for(s=1,m="1.";s<u;s++)m+=yt.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=(t==16?"0x":t==2?"0b":t==8?"0o":"")+m}return n.s<0?"-"+m:m}function nn(n,t){if(n.length>t)return n.length=t,!0}function dr(n){return new this(n).abs()}function gr(n){return new this(n).acos()}function hr(n){return new this(n).acosh()}function br(n,t){return new this(n).plus(t)}function yr(n){return new this(n).asin()}function wr(n){return new this(n).asinh()}function Pr(n){return new this(n).atan()}function Tr(n){return new this(n).atanh()}function Ar(n,t){n=new this(n),t=new this(t);var e,r=this.precision,i=this.rounding,o=r+4;return!n.s||!t.s?e=new this(NaN):!n.d&&!t.d?(e=ne(this,o,1).times(t.s>0?.25:.75),e.s=n.s):!t.d||n.isZero()?(e=t.s<0?ne(this,r,i):new this(0),e.s=n.s):!n.d||t.isZero()?(e=ne(this,o,1).times(.5),e.s=n.s):t.s<0?(this.precision=o,this.rounding=1,e=this.atan(F(n,t,o,1)),t=ne(this,o,1),this.precision=r,this.rounding=i,e=n.s<0?e.minus(t):e.plus(t)):e=this.atan(F(n,t,o,1)),e}function xr(n){return new this(n).cbrt()}function Br(n){return B(n=new this(n),n.e+1,2)}function kr(n,t,e){return new this(n).clamp(t,e)}function Sr(n){if(!n||typeof n!="object")throw Error($e+"Object expected");var t,e,r,i=n.defaults===!0,o=["precision",1,ye,"rounding",0,8,"toExpNeg",-xe,0,"toExpPos",0,xe,"maxE",0,xe,"minE",-xe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(e=o[t],i&&(this[e]=wt[e]),(r=n[e])!==void 0)if(Z(r)===r&&r>=o[t+1]&&r<=o[t+2])this[e]=r;else throw Error(be+e+": "+r);if(e="crypto",i&&(this[e]=wt[e]),(r=n[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(an);else this[e]=!1;else throw Error(be+e+": "+r);return this}function Cr(n){return new this(n).cos()}function Ir(n){return new this(n).cosh()}function gn(n){var t,e,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,rn(o)){c.s=o.s,C?!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++;C?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 At(c,o.toString())}else if(u!=="string")throw Error(be+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),cn.test(o)?At(c,o):fr(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=Sr,i.clone=gn,i.isDecimal=rn,i.abs=dr,i.acos=gr,i.acosh=hr,i.add=br,i.asin=yr,i.asinh=wr,i.atan=Pr,i.atanh=Tr,i.atan2=Ar,i.cbrt=xr,i.ceil=Br,i.clamp=kr,i.cos=Cr,i.cosh=Ir,i.div=Nr,i.exp=Lr,i.floor=Mr,i.hypot=Rr,i.ln=Er,i.log=Kr,i.log10=vr,i.log2=Dr,i.max=Or,i.min=_r,i.mod=Fr,i.mul=Wr,i.pow=Vr,i.random=qr,i.round=Ur,i.sign=Gr,i.sin=Hr,i.sinh=zr,i.sqrt=jr,i.sub=Zr,i.sum=Jr,i.tan=Yr,i.tanh=Xr,i.trunc=Qr,n===void 0&&(n={}),n&&n.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)n.hasOwnProperty(e=r[t++])||(n[e]=this[e]);return i.config(n),i}function Nr(n,t){return new this(n).div(t)}function Lr(n){return new this(n).exp()}function Mr(n){return B(n=new this(n),n.e+1,3)}function Rr(){var n,t,e=new this(0);for(C=!1,n=0;n<arguments.length;)if(t=new this(arguments[n++]),t.d)e.d&&(e=e.plus(t.times(t)));else{if(t.s)return C=!0,new this(1/0);e=t}return C=!0,e.sqrt()}function rn(n){return n instanceof Re||n&&n.toStringTag===un||!1}function Er(n){return new this(n).ln()}function Kr(n,t){return new this(n).log(t)}function Dr(n){return new this(n).log(2)}function vr(n){return new this(n).log(10)}function Or(){return fn(this,arguments,"lt")}function _r(){return fn(this,arguments,"gt")}function Fr(n,t){return new this(n).mod(t)}function Wr(n,t){return new this(n).mul(t)}function Vr(n,t){return new this(n).pow(t)}function qr(n){var t,e,r,i,o=0,s=new this(1),a=[];if(n===void 0?n=this.precision:$(n,1,ye),r=Math.ceil(n/S),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(an);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],n%=S,r&&n&&(i=H(10,S-n),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 Ur(n){return B(n=new this(n),n.e+1,this.rounding)}function Gr(n){return n=new this(n),n.d?n.d[0]?n.s:0*n.s:n.s||NaN}function Hr(n){return new this(n).sin()}function zr(n){return new this(n).sinh()}function jr(n){return new this(n).sqrt()}function Zr(n,t){return new this(n).sub(t)}function Jr(){var n=0,t=arguments,e=new this(t[n]);for(C=!1;e.s&&++n<t.length;)e=e.plus(t[n]);return C=!0,B(e,this.precision,this.rounding)}function Yr(n){return new this(n).tan()}function Xr(n){return new this(n).tanh()}function Qr(n){return B(n=new this(n),n.e+1,1)}b[Symbol.for("nodejs.util.inspect.custom")]=b.toString;b[Symbol.toStringTag]="Decimal";var Re=b.constructor=gn(wt);Ye=new Re(Ye);Xe=new Re(Xe);var ee=Re;import{PublicKey as Ct}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $r}from"@solana/spl-token";import{PublicKey as U,SystemProgram as hn,SYSVAR_RENT_PUBKEY as ei}from"@solana/web3.js";function Bt({pubkey:n,isSigner:t=!1,isWritable:e=!0}){return{pubkey:n,isWritable:e,isSigner:t}}var uo=[Bt({pubkey:$r,isWritable:!1}),Bt({pubkey:hn.programId,isWritable:!1}),Bt({pubkey:ei,isWritable:!1})];function kt({publicKey:n,transformSol:t}){let e=bn(n.toString());if(e instanceof U)return t&&e.equals(Ee)?me:e;if(t&&e.toString()===Ee.toBase58())return me;if(typeof e=="string"){if(e===U.default.toBase58())return U.default;try{return new U(e)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bn(n){try{return new U(n)}catch{return n}}var co=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yn=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),wn=new U("SysvarRent111111111111111111111111111111111"),lo=new U("SysvarC1ock11111111111111111111111111111111"),mo=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),fo=new U("Sysvar1nstructions1111111111111111111111111"),Pn=hn.programId,po=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),go=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ho=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),bo=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),yo=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),wo=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Po=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),To=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ao=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xo=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Bo=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new U("So11111111111111111111111111111111111111112"),Ee=U.default;function nt(n){return kt({publicKey:n,transformSol:!0})}import{PublicKey as ti}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var St={chainId:101,address:ti.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},we={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var It=class{constructor({mint:t,decimals:e,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Ee.toBase58()||t instanceof Ct&&Ee.equals(t)){this.decimals=we.decimals,this.symbol=we.symbol,this.name=we.name,this.mint=new Ct(we.address),this.isToken2022=!1;return}this.decimals=e,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?Ct.default:kt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Te=It;Te.WSOL=new It(G(K({},we),{mint:we.address}));import{get as An,set as ni}from"lodash";var Nt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let e=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(e)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},xn={},ri={};function J(n){let t=An(xn,n);if(!t){let e=An(ri,n);t=new Nt({name:n,logLevel:e}),ni(xn,n,t)}return t}import it from"big.js";import si from"bn.js";import ai from"decimal.js-light";import ii from"toformat";var oi=ii,Ke=oi;var rt=J("module/fraction"),Lt=Ke(it),De=Ke(ai),ui={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},ci={[0]:it.roundDown,[1]:it.roundHalfUp,[2]:it.roundUp},W=class{constructor(t,e=new si(1)){this.numerator=Pe(t),this.denominator=Pe(e)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let e=t instanceof W?t:new W(Pe(t));return this.denominator.eq(e.denominator)?new W(this.numerator.add(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).add(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}sub(t){let e=t instanceof W?t:new W(Pe(t));return this.denominator.eq(e.denominator)?new W(this.numerator.sub(e.numerator),this.denominator):new W(this.numerator.mul(e.denominator).sub(e.numerator.mul(this.denominator)),this.denominator.mul(e.denominator))}mul(t){let e=t instanceof W?t:new W(Pe(t));return new W(this.numerator.mul(e.numerator),this.denominator.mul(e.denominator))}div(t){let e=t instanceof W?t:new W(Pe(t));return new W(this.numerator.mul(e.denominator),this.denominator.mul(e.numerator))}toSignificant(t,e={groupSeparator:""},r=1){Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<=0&&rt.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:ui[r]});let i=new De(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),e)}toFixed(t,e={groupSeparator:""},r=1){return Number.isInteger(t)||rt.logWithError(`${t} is not an integer.`),t<0&&rt.logWithError(`${t} is negative.`),Lt.DP=t,Lt.RM=ci[r]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,e)}isZero(){return this.numerator.isZero()}};var Qo=J("Raydium_price");var Mt=class{constructor({decimals:t,symbol:e="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=e,this.name=r}equals(t){return this===t}},ot=Mt;ot.SOL=new Mt(St);import mi from"bn.js";var Bn=new W(new mi(100)),ae=class extends W{toSignificant(t=5,e,r){return this.mul(Bn).toSignificant(t,e,r)}toFixed(t=2,e,r){return this.mul(Bn).toFixed(t,e,r)}};import{PublicKey as ps}from"@solana/web3.js";import gs from"bn.js";var Rt=new te(0),Rs=new te(1),Es=new te(2),Ks=new te(3),Ds=new te(5),fi=new te(10),vs=new te(100),Os=new te(1e3),_s=new te(1e4),Sn=9007199254740991;function Pe(n){let t=J("Raydium_parseBigNumberish");if(n instanceof te)return n;if(typeof n=="string"){if(n.match(/^-?[0-9]+$/))return new te(n);t.logWithError(`invalid BigNumberish string: ${n}`)}return typeof n=="number"?(n%1&&t.logWithError(`BigNumberish number underflow: ${n}`),(n>=Sn||n<=-Sn)&&t.logWithError(`BigNumberish number overflow: ${n}`),new te(String(n))):typeof n=="bigint"?new te(n.toString()):(t.error(`invalid BigNumberish value: ${n}`),new te(0))}var Xs=J("Raydium_amount"),Qs=Ke(pi);import{PublicKey as yi}from"@solana/web3.js";import{PublicKey as di,ComputeBudgetProgram as Cn,Transaction as Nn,TransactionMessage as gi,Keypair as Ln,VersionedTransaction as Kt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hi}from"@solana/spl-token";var fe={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 In=J("Raydium_txUtil"),Mn=1644;function st(n){let t=[],e=[];return n.microLamports&&(t.push(Cn.setComputeUnitPrice({microLamports:n.microLamports})),e.push(fe.SetComputeUnitPrice)),n.units&&(t.push(Cn.setComputeUnitLimit({units:n.units})),e.push(fe.SetComputeUnitLimit)),{instructions:t,instructionTypes:e}}async function ke(n,t){var r,i;let e=t!=null?t:"confirmed";try{return((i=await((r=n.getLatestBlockhash)==null?void 0:r.call(n,{commitment:e})))==null?void 0:i.blockhash)||(await n.getRecentBlockhash(e)).blockhash}catch{return(await n.getRecentBlockhash(e)).blockhash}}function bi(n,t){n.length<1&&In.logWithError(`no instructions provided: ${n.toString()}`),t.length<1&&In.logWithError(`no signers provided:, ${t.toString()}`);let e=new Nn;e.recentBlockhash="11111111111111111111111111111111",e.feePayer=t[0],e.add(...n);try{return Buffer.from(e.serialize({verifySignatures:!1})).toString("base64").length<Mn}catch{return!1}}function pe(n,t){let[e,r]=di.findProgramAddressSync(n,t);return{publicKey:e,nonce:r}}function ve({instructions:n,payer:t,signers:e}){return bi(n,[t,...e])}function Oe({instructions:n,payer:t,lookupTableAddressAccount:e,recentBlockhash:r=Ln.generate().publicKey.toString()}){let o=new gi({payerKey:t,recentBlockhash:r,instructions:n}).compileToV0Message(Object.values(e!=null?e:{}));try{return Buffer.from(new Kt(o).serialize()).toString("base64").length<Mn}catch{return!1}}var Rn=n=>Buffer.isBuffer(n)?n:n instanceof Uint8Array?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n);function Ae(n){let t=[];return n.forEach(e=>{e instanceof Nn&&(e.recentBlockhash||(e.recentBlockhash=hi.toBase58()),e.feePayer||(e.feePayer=Ln.generate().publicKey));let r=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof Kt&&(r=Rn(r));let i=r.toString("base64");t.push(i)}),console.log("simulate tx string:",t),t}function En(n){let t=n.serialize({requireAllSignatures:!1,verifySignatures:!1});return n instanceof Kt&&(t=Rn(t)),t.toString("base64")}import{TOKEN_PROGRAM_ID as wi}from"@solana/spl-token";function Kn(n,t,e){return pe([n.toBuffer(),(e!=null?e:wi).toBuffer(),t.toBuffer()],new yi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import vn from"bn.js";var Dt=new vn(1e6);function Pi(n,t,e){return n.mul(t).add(e).sub(new vn(1)).div(e)}function Dn(n,t,e){return n.mul(t).div(e)}var at=class{static tradingFee(t,e){return Pi(t,e,Dt)}static protocolFee(t,e){return Dn(t,e,Dt)}static fundFee(t,e){return Dn(t,e,Dt)}};import _e from"bn.js";function ut(n,t){if(t.isZero())throw Error("divisor is zero");return n.mod(t)}function Ti(n,t){if(t.isZero())throw Error("rhs is zero");let e=n.div(t);if(e.isZero())throw Error("quotient is zero");let r=ut(n,t);return r.gt(Se)&&(e=e.add(new _e(1)),t=n.div(e),r=ut(n,e),r.gt(Se)&&(t=t.add(new _e(1)))),[e,t]}var Se=new _e(0),ct=class{static swapWithoutFees(t,e,r){let i=e.mul(r),o=e.add(t),[s,a]=Ti(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(t,e,r,i,o){let s=t.mul(r).div(e),a=t.mul(i).div(e);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return ut(t.mul(r),e).gt(Se)&&s.gt(Se)&&(s=s.add(new _e(1))),ut(t.mul(i),e).gt(Se)&&a.gt(Se)&&(a=a.add(new _e(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};var lt=class{static validate_supply(t,e){if(t.isZero())throw Error("tokenAmount0 is zero");if(e.isZero())throw Error("tokenAmount1 is zero")}static swap(t,e,r,i){let o=at.tradingFee(t,i),s=t.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:u}=ct.swapWithoutFees(s,e,r),c=a.add(o);return{newSwapSourceAmount:e.add(c),newSwapDestinationAmount:r.sub(u),sourceAmountSwapped:c,destinationAmountSwapped:u,tradeFee:o}}};import{PublicKey as Ie,sendAndConfirmTransaction as Vt,Transaction as Ve,TransactionMessage as qe,VersionedTransaction as Ue,SystemProgram as Ni,LAMPORTS_PER_SOL as Li}from"@solana/web3.js";import Mi from"axios";import{PublicKey as Fn,AddressLookupTableAccount as mt}from"@solana/web3.js";import{PublicKey as On}from"@solana/web3.js";import{MINT_SIZE as ki,TOKEN_PROGRAM_ID as Si,getTransferFeeConfig as Ci,unpackMint as Ii}from"@solana/spl-token";function vt(n,t=1,e=[]){let r=[...n];if(t<=0)return e;for(;r.length;)e.push(r.splice(0,t));return e}import{PublicKey as E}from"@solana/web3.js";var _a=new E("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fa=new E("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Wa=new E("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Va=new E("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),qa=new E("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ua=new E("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ga=new E("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ha=new E("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),za=new E("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ja=new E("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Za=new E("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ja=new E("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ya=new E("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Xa=new E("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qa=new E("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$a=new E("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),eu=new E("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),tu=new E("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),nu=new E("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ai=new E("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),xi=new E("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Bi=new E("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var ru={SERUM_MARKET:E.default,OPENBOOK_MARKET:new E("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:E.default,FarmV3:new E("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new E("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new E("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new E("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new E("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new E("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new E("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Ai,CREATE_CPMM_POOL_AUTH:xi,CREATE_CPMM_POOL_FEE_ACC:Bi,FEE_DESTINATION_ID:new E("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import ie from"bn.js";var Fe=1e4;function Ce(n,t,e,r){if(t===void 0)return{amount:n,fee:void 0,expirationTime:void 0};let i=G(K({},t),{olderTransferFee:{epoch:BigInt(t.olderTransferFee.epoch),maximumFee:BigInt(t.olderTransferFee.maximumFee),transferFeeBasisPoints:t.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(t.newerTransferFee.epoch),maximumFee:BigInt(t.newerTransferFee.maximumFee),transferFeeBasisPoints:t.newerTransferFee.transferFeeBasisPoints}}),o=e.epoch<i.newerTransferFee.epoch?i.olderTransferFee:i.newerTransferFee,s=new ie(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===Fe){let u=new ie(o.maximumFee.toString());return{amount:n.add(u),fee:u,expirationTime:a}}else{let u=Ot(n.mul(new ie(Fe)),new ie(Fe-o.transferFeeBasisPoints)),c=new ie(o.maximumFee.toString()),m=u.sub(n).gt(c)?n.add(c):u,l=Ot(m.mul(new ie(o.transferFeeBasisPoints)),new ie(Fe)),f=l.gt(s)?s:l;return{amount:m,fee:f,expirationTime:a}}else{let u=Ot(n.mul(new ie(o.transferFeeBasisPoints)),new ie(Fe)),c=u.gt(s)?s:u;return{amount:n,fee:c,expirationTime:a}}}function Ot(n,t){let{div:e,mod:r}=n.divmod(t);return r.gt(new ie(0))?e.add(new ie(1)):e}var _t=J("Raydium_accountInfo_util");async function Ft(n,t,e){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=K({batchRequest:!1},e),s=vt(t,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let f=n._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 n._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&_t.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"&&_t.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:g,lamports:d,owner:new On(T),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>n.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&_t.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function We(n,t,e){let r=await Ft(n,t.map(i=>i.pubkey),e);return t.map((i,o)=>G(K({},i),{accountInfo:r[o]}))}async function _n({connection:n,mints:t,config:e}){var o,s,a;if(t.length===0)return{};let r=await We(n,t.map(u=>({pubkey:nt(u)})),e),i={};for(let u of r){if(!u.accountInfo||u.accountInfo.data.length<ki){console.log("invalid mint account",u.pubkey.toBase58());continue}let c=Ii(u.pubkey,u.accountInfo,(o=u.accountInfo)==null?void 0:o.owner);i[u.pubkey.toString()]=G(K({},c),{programId:((s=u.accountInfo)==null?void 0:s.owner)||Si,feeConfig:(a=Ci(c))!=null?a:void 0})}return i[On.default.toBase58()]=i[me.toBase58()],i}async function Wt({connection:n,address:t}){let e=await Ft(n,[...new Set(t.map(i=>i.toString()))].map(i=>new Fn(i))),r={};for(let i=0;i<t.length;i++){let o=e[i],s=t[i];if(!o)continue;let a=new mt({key:s,state:mt.deserialize(o.data)});r[s.toString()]=a,ft[s.toString()]=a}return r}var ft={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new mt({key:new Fn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:mt.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 Ri=new Ie("3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT"),pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.enableJito=!!t.enableJito,this.api=t.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 t=(await Mi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:e}=(r=t==null?void 0:t[15])!=null?r:{};if(!!e)return{units:6e5,microLamports:Math.min(Math.ceil(e*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:e,instructionTypes:r}=st(t);return this.instructions.unshift(...e),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:e}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;e&&this.instructions.unshift(...e)}catch{e&&this.instructions.unshift(...e)}}addJitoInstruction(t){let{fee:e,bundle:r}=t||{};if(!this.owner)return;let i=Ni.transfer({fromPubkey:this.owner.publicKey,toPubkey:Ri,lamports:e?e*Li:1e4});r?this.instructions.unshift(i):this.instructions.push(i)}async sendTxToJito(t){if(!this.api)return;let e=t.map(i=>En(i));return(await this.api.sendTxToJito(e)).result}addInstruction({instructions:t=[],endInstructions:e=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...e),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ie.default.toString())),this}async versionBuild({txVersion:t,extInfo:e}){return t===0?await this.buildV0(K({},e||{})):this.build(e)}build(t){var r;this.enableJito&&this.addJitoInstruction();let e=new Ve;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 ke(this.connection,this.blockhashCommitment);if(e.recentBlockhash=u,this.signers.length&&e.sign(...this.signers),Ae([e]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await Vt(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 this.enableJito&&this.sendTxToJito(m),{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:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:e=[],extInfo:r}=t,{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 ke(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let P=[];for(let y of s){let h=await Vt(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));Ae(P);let y=await this.signAllTransactions(P);if(l){let h=0,w=[],k=async()=>{if(!y[h])return;this.enableJito&&this.sendTxToJito([y[h]]);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 I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=D.err?"error":"success"),f==null||f([...w]),D.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:g});h.push(k)}return this.enableJito&&this.sendTxToJito(y),{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:e,extInfo:r}){return e===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var p;let f=t||{},{lookupTableCache:e={},lookupTableAddress:r=[],forerunCreate:i}=f,o=ce(f,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=K(K({},this.cluster==="devnet"?{}:ft),e);this.enableJito&&this.addJitoInstruction();let a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let g of a)s[g]===void 0&&u.push(new Ie(g));let c=await Wt({connection:this.connection,address:u});for(let[g,d]of Object.entries(c))s[g]=d;let m=new qe({payerKey:this.feePayer,recentBlockhash:i?Ie.default.toBase58():await ke(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 Ue(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),Ae([l]),(y=this.owner)!=null&&y.isKeyPair){let h=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:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return this.enableJito&&this.sendTxToJito(h),{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(t){var c;let{extraPreBuildData:e=[],buildProps:r}=t,{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),Ae(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});this.enableJito&&this.sendTxToJito([T[P]]),y.push({txId:w,status:"sent",signedTx:T[P]}),f==null||f([...y]),P++,this.connection.onSignature(w,k=>{let A=y.findIndex(D=>D.txId===w);A>-1&&(y[A].status=k.err?"error":"success"),f==null||f([...y]),k.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 this.enableJito&&this.sendTxToJito(T),{txIds:P,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let c=t||{},{computeBudgetConfig:e}=c,r=ce(c,["computeBudgetConfig"]),i=e?st(e):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,f)=>G(K({},l),{[f.publicKey.toBase58()]:f}),{});this.enableJito&&this.addJitoInstruction({bundle:!0});let 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 Ie(T));if(u.length<12&&ve({instructions:p,payer:this.feePayer,signers:d})||ve({instructions:f,payer:this.feePayer,signers:d}))u.push(l);else{if(u.length===0)throw Error("item ins too big");ve({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:d})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().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);ve({instructions:e?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:f.map(p=>p.publicKey)})?s.push(new Ve().add(...i.instructions,...u)):s.push(new Ve().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))||this.signers.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 ke(this.connection,this.blockhashCommitment);if(s.forEach(async(y,h)=>{y.recentBlockhash=T,a[h].length&&y.sign(...a[h])}),Ae(s),(P=this.owner)!=null&&P.isKeyPair){if(f){let y=[];for(let h of s){let w=await Vt(this.connection,h,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 h=0,w=[],k=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 I=w.findIndex(R=>R.txId===A);I>-1&&(w[I].status=D.err?"error":"success"),p==null||p([...w]),D.err||k()},"processed"),this.connection.getSignatureStatus(A)};return await k(),{txIds:w.map(A=>A.txId),signedTxs:y}}else{let h=[];for(let w=0;w<y.length;w+=1){let k=await this.connection.sendRawTransaction(y[w].serialize(),{skipPreflight:d});h.push(k)}return{txIds:h,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(t){var P;let T=t||{},{computeBudgetConfig:e,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=ce(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]);this.enableJito&&this.addJitoInstruction();let s=K(K({},this.cluster==="devnet"?{}:ft),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let y of a)s[y]===void 0&&u.push(new Ie(y));let c=await Wt({connection:this.connection,address:u});for(let[y,h]of Object.entries(c))s[y]=h;let m=e?st(e):{instructions:[],instructionTypes:[]},l=await ke(this.connection,this.blockhashCommitment),f=this.signers.reduce((y,h)=>G(K({},y),{[h.publicKey.toBase58()]:h}),{});this.enableJito&&this.addJitoInstruction({bundle:!0});let p=[],g=[],d=[];if(this.allInstructions.forEach(y=>{let h=[...d,y],w=e?[...m.instructions,...h]:h;if(d.length<12&&Oe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:s})||Oe({instructions:h,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&&Oe({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(A))}else{let A=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(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(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(w=>f[w]).filter(w=>w!==void 0);if(e&&Oe({instructions:[...m.instructions,...d],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...m.instructions,...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}else{let w=new qe({payerKey:this.feePayer,recentBlockhash:l,instructions:[...d]}).compileToV0Message(Object.values(s));p.push(new Ue(w))}g.push(h)}return(P=this.owner)!=null&&P.signer&&g.forEach(y=>{y.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var D;let{sequentially:h,onTxUpdate:w,recentBlockHash:k,skipPreflight:A=!0}=y||{};if(p.map(async(I,R)=>{g[R].length&&I.sign(g[R]),k&&(I.message.recentBlockhash=k)}),Ae(p),(D=this.owner)!=null&&D.isKeyPair){if(h){let I=[];for(let R of p){let v=await this.connection.sendTransaction(R,{skipPreflight:A}),{lastValidBlockHeight:M,blockhash:V}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:V,lastValidBlockHeight:M,signature:v},"confirmed"),I.push(v)}return{txIds:I,signedTxs:p}}return{txIds:await Promise.all(p.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:A}))),signedTxs:p}}if(this.signAllTransactions){let I=await this.signAllTransactions(p);if(h){let R=0,v=[],M=async()=>{if(!I[R])return;let V=await this.connection.sendTransaction(I[R],{skipPreflight:A});v.push({txId:V,status:"sent",signedTx:I[R]}),w==null||w([...v]),R++,this.connection.onSignature(V,X=>{let Q=v.findIndex(q=>q.txId===V);Q>-1&&(v[Q].status=X.err?"error":"success"),w==null||w([...v]),X.err||M()},"processed"),this.connection.getSignatureStatus(V)};return M(),{txIds:[],signedTxs:I}}else{let R=[];for(let v=0;v<I.length;v+=1){let M=await this.connection.sendTransaction(I[v],{skipPreflight:A});R.push(M)}return{txIds:R,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var qt=(...n)=>n.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Ge=class{constructor({scope:t,moduleName:e}){this.disabled=!1;this.scope=t,this.logger=J(e)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,enableJito:this.scope.enableJito,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let e=qt(t);throw new Error(e)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Ei=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ki=Buffer.from("amm_config","utf8"),Di=Buffer.from("pool","utf8"),vi=Buffer.from("pool_lp_mint","utf8"),Oi=Buffer.from("pool_vault","utf8"),_i=Buffer.from("observation","utf8");function dt(n){return pe([Ei],n)}function Fi(n,t){return pe([Ki,qi(t)],n)}function Wi(n,t,e,r){return pe([Di,t.toBuffer(),e.toBuffer(),r.toBuffer()],n)}function Vi(n,t){return pe([vi,t.toBuffer()],n)}function Wn(n,t,e){return pe([Oi,t.toBuffer(),e.toBuffer()],n)}function gt(n,t){return pe([_i,t.toBuffer()],n)}function qi(n){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,n,!1),new Uint8Array(t)}function Vn({programId:n,mintA:t,mintB:e}){let r=Fi(n,0).publicKey,i=dt(n).publicKey,o=Wi(n,r,t,e).publicKey,s=Vi(n,o).publicKey,a=Wn(n,o,t).publicKey,u=Wn(n,o,e).publicKey,c=gt(n,o).publicKey;return{poolId:o,configId:r,authority:i,lpMint:s,vaultA:a,vaultB:u,observationId:c}}import{TransactionInstruction as He}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jt,TOKEN_2022_PROGRAM_ID as Jn,ASSOCIATED_TOKEN_PROGRAM_ID as $i}from"@solana/spl-token";import{PublicKey as Yi}from"@solana/web3.js";import zn,{isBN as jn}from"bn.js";import{bits as tc,BitStructure as nc,blob as Ui,Blob as rc,cstr as ic,f32 as oc,f32be as sc,f64 as ac,f64be as uc,greedy as cc,Layout as Gi,ns64 as lc,ns64be as mc,nu64 as fc,nu64be as pc,offset as dc,s16 as gc,s16be as hc,s24 as bc,s24be as yc,s32 as wc,s32be as Pc,s40 as Tc,s40be as Ac,s48 as xc,s48be as Bc,s8 as kc,seq as Hi,struct as Sc,Structure as zi,u16 as ji,u16be as Cc,u24 as Ic,u24be as Nc,u32 as Lc,u32be as Mc,u40 as Rc,u40be as Ec,u48 as Kc,u48be as Dc,u8 as Zi,UInt as Ji,union as vc,Union as Oc,unionLayoutDiscriminator as _c,utf8 as Fc}from"@solana/buffer-layout";var Ut=Gi,qn=zi;var Gt=Ji;var Un=Zi,Gn=ji;var Hn=Hi;var Ne=Ui;var Ht=class extends Ut{constructor(e,r,i){super(e,i);this.blob=Ne(e),this.signed=r}decode(e,r=0){let i=new zn(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 zn(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,i)}};function ue(n){return new Gt(1,n)}function jt(n){return new Gt(4,n)}function O(n){return new Ht(8,!1,n)}var ht=class extends Ut{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 Y(n){return new ht(Ne(32),t=>new Yi(t),t=>t.toBuffer(),n)}function Zn(n){return new ht(Un(),Xi,Qi,n)}function Xi(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function Qi(n){return n?1:0}var zt=class extends qn{decode(t,e){return super.decode(t,e)}};function oe(n,t,e){return new zt(n,t,e)}function Zt(n,t,e){let r,i=typeof t=="number"?t:jn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=jn(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 Hn(n,i,e)}var eo=J("Raydium_cpmm"),ze={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 Yn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d,T,P,y,h){let w=oe([O("amountMaxA"),O("amountMaxB"),O("openTime")]),k=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:$i,isSigner:!1,isWritable:!1},{pubkey:Pn,isSigner:!1,isWritable:!1},{pubkey:wn,isSigner:!1,isWritable:!1}],A=Buffer.alloc(w.span);return w.encode({amountMaxA:P,amountMaxB:y,openTime:h},A),new He({keys:k,programId:n,data:Buffer.from([...ze.initialize,...A])})}function Xn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=oe([O("lpAmount"),O("amountMaxA"),O("amountMaxB")]),T=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:Jn,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 eo.debug("cpmm deposit data",{lpAmount:f.toString(),amountMaxA:p.toString(),amountMaxB:g.toString()}),d.encode({lpAmount:f,amountMaxA:p,amountMaxB:g},P),new He({keys:T,programId:n,data:Buffer.from([...ze.deposit,...P])})}function Qn(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g){let d=oe([O("lpAmount"),O("amountMinA"),O("amountMinB")]),T=[{pubkey:t,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:Jt,isSigner:!1,isWritable:!1},{pubkey:Jn,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:yn,isSigner:!1,isWritable:!1}],P=Buffer.alloc(d.span);return d.encode({lpAmount:f,amountMinA:p,amountMinB:g},P),new He({keys:T,programId:n,data:Buffer.from([...ze.withdraw,...P])})}function $n(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=oe([O("amountIn"),O("amounOutMin")]),P=[{pubkey:t,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 He({keys:P,programId:n,data:Buffer.from([...ze.swapBaseInput,...y])})}function er(n,t,e,r,i,o,s,a,u,c,m,l,f,p,g,d){let T=oe([O("amountInMax"),O("amountOut")]),P=[{pubkey:t,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({amountInMax:g,amountOut:d},y),new He({keys:P,programId:n,data:Buffer.from([...ze.swapBaseOutput,...y])})}import z from"bn.js";var tr=oe([Ne(8),ue("bump"),Zn("disableCreatePool"),Gn("index"),O("tradeFeeRate"),O("protocolFeeRate"),O("fundFeeRate"),O("createPoolFee"),Y("protocolOwner"),Y("fundOwner"),Zt(O(),16)]),nr=oe([Ne(8),Y("configId"),Y("poolCreator"),Y("vaultA"),Y("vaultB"),Y("mintLp"),Y("mintA"),Y("mintB"),Y("mintProgramA"),Y("mintProgramB"),Y("observationId"),ue("bump"),ue("status"),ue("lpDecimals"),ue("mintDecimalA"),ue("mintDecimalB"),O("lpAmount"),O("protocolFeesMintA"),O("protocolFeesMintB"),O("fundFeesMintA"),O("fundFeesMintB"),O("openTime"),Zt(O(),32)]);var ul=oe([jt("mintAuthorityOption"),Y("mintAuthority"),O("supply"),ue("decimals"),ue("isInitialized"),jt("freezeAuthorityOption"),Y("freezeAuthority")]);import{PublicKey as fl}from"@solana/web3.js";import{MintLayout as dl,TOKEN_PROGRAM_ID as hl}from"@solana/spl-token";var Le=i=>{var o=i,{address:n,programId:t,decimals:e}=o,r=ce(o,["address","programId","decimals"]);return K({chainId:101,address:nt(n).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:e,tags:[],extensions:r.extensions||{}},r)},je=n=>n?G(K({},n),{transferFeeConfigAuthority:n.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:n.withdrawWithheldAuthority.toBase58(),withheldAmount:n.withheldAmount.toString(),olderTransferFee:G(K({},n.olderTransferFee),{epoch:n.olderTransferFee.epoch.toString(),maximumFee:n.olderTransferFee.maximumFee.toString()}),newerTransferFee:G(K({},n.newerTransferFee),{epoch:n.newerTransferFee.epoch.toString(),maximumFee:n.newerTransferFee.maximumFee.toString()})}):void 0;var Yt=class extends Ge{constructor(t){super(t)}async load(){this.checkDisabled()}async getCpmmPoolKeys(t){return(await this.scope.api.fetchPoolKeysById({idList:[t]}))[0]}async getRpcPoolInfo(t,e){return(await this.getRpcPoolInfos([t],e))[t]}async getRpcPoolInfos(t,e){let r=await We(this.scope.connection,t.map(l=>({pubkey:new x(l)}))),i={},o=new Set,s=[];for(let l=0;l<t.length;l++){let f=r[l];if(f.accountInfo===null)throw Error("fetch pool info error: "+String(t[l]));let p=nr.decode(f.accountInfo.data);i[String(t[l])]=G(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 We(this.scope.connection,l.map(p=>({pubkey:new x(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]]=tr.decode(g.data)}}let u={},c=await We(this.scope.connection,s.map(l=>({pubkey:new x(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 z(to.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]=G(K({},f),{baseReserve:p,quoteReserve:g,vaultAAmount:u[f.vaultA.toString()],vaultBAmount:u[f.vaultB.toString()],configInfo:a[f.configId.toString()],poolPrice:new ee(g.toString()).div(new ee(10).pow(f.mintDecimalB)).div(new ee(p.toString()).div(new ee(10).pow(f.mintDecimalA)))})}return m}toComputePoolInfos({pools:t,mintInfos:e}){return Object.keys(t).reduce((r,i)=>{var u,c,m,l;let o=t[i],[s,a]=[o.mintA.toBase58(),o.mintB.toBase58()];return G(K({},r),{[i]:G(K({},o),{id:new x(i),configInfo:o.configInfo,version:7,authority:dt(o.programId).publicKey,mintA:Le({address:s,decimals:o.mintDecimalA,programId:o.mintProgramA.toBase58(),extensions:{feeConfig:(u=e[s])!=null&&u.feeConfig?je((c=e[s])==null?void 0:c.feeConfig):void 0}}),mintB:Le({address:a,decimals:o.mintDecimalB,programId:o.mintProgramB.toBase58(),extensions:{feeConfig:(m=e[a])!=null&&m.feeConfig?je((l=e[a])==null?void 0:l.feeConfig):void 0}})})})},{})}async getPoolInfoFromRpc(t){let e=await this.getRpcPoolInfo(t,!0),r=await _n({connection:this.scope.connection,mints:[e.mintA,e.mintB]}),i=Le({address:e.mintA.toBase58(),decimals:e.mintDecimalA,programId:e.mintProgramA.toBase58(),extensions:{feeConfig:r[e.mintA.toBase58()].feeConfig?je(r[e.mintA.toBase58()].feeConfig):void 0}}),o=Le({address:e.mintB.toBase58(),decimals:e.mintDecimalB,programId:e.mintProgramB.toBase58(),extensions:{feeConfig:r[e.mintB.toBase58()].feeConfig?je(r[e.mintB.toBase58()].feeConfig):void 0}}),s=Le({address:e.mintLp.toBase58(),decimals:e.lpDecimals,programId:de.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:t,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 ee(e.vaultAAmount.toString()).div(10**i.decimals).toNumber(),mintAmountB:new ee(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:t,mintA:i,mintB:o,openTime:e.openTime.toString(),vault:{A:e.vaultA.toBase58(),B:e.vaultB.toBase58()},authority:dt(e.programId).publicKey.toBase58(),mintLp:s,config:a},rpcData:e}}async createPool(m){var l=m,{programId:t,poolFeeAccount:e,startTime:r,ownerInfo:i,associatedOnly:o=!1,checkCreateATAOwner:s=!1,txVersion:a,computeBudgetConfig:u}=l,c=ce(l,["programId","poolFeeAccount","startTime","ownerInfo","associatedOnly","checkCreateATAOwner","txVersion","computeBudgetConfig"]);var V,X,Q;let f=i.feePayer||((V=this.scope.owner)==null?void 0:V.publicKey),p=new z(new x(c.mintA.address).toBuffer()).lte(new z(new x(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===bt.toBase58(),h=i.useSOLBalance&&d.address===bt.toBase58(),[w,k]=[new x(g.address),new x(d.address)],A=this.createTxBuilder(),{account:D,instructionParams:I}=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(I||{});let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({mint:new x(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=Vn({programId:t,mintA:w,mintB:k});return A.addInstruction({instructions:[Yn(t,this.scope.ownerPubKey,M.configId,M.authority,M.poolId,w,k,M.lpMint,D,R,Kn(this.scope.ownerPubKey,M.lpMint).publicKey,M.vaultA,M.vaultB,e,new x((X=g.programId)!=null?X:de),new x((Q=d.programId)!=null?Q:de),M.observationId,T,P,r)],instructionTypes:[fe.CpmmCreatePool]}),A.addCustomComputeBudget(u),A.versionBuild({txVersion:a,extInfo:{address:G(K({},M),{mintA:g,mintB:d,programId:t,poolFeeAccount:e})}})}async addLiquidity(t){let{poolInfo:e,poolKeys:r,inputAmount:i,baseIn:o,slippage:s,computeResult:a,computeBudgetConfig:u,config:c,txVersion:m}=t;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:G(K({},e),{lpAmount:new ee(g.lpAmount.toString()).div(10**e.lpMint.decimals).toNumber()}),baseReserve:g.baseReserve,quoteReserve:g.quoteReserve,slippage:new ae(0),baseIn:o,epochInfo:await this.scope.fetchEpochInfo(),amount:new ee(i.toString()).div(10**(o?e.mintA.decimals:e.mintB.decimals))}),y=P.amount,h=e.mintA.address===bt.toString(),w=e.mintB.address===bt.toString(),k=this.createTxBuilder(),[A,D]=[new x(e.mintA.address),new x(e.mintB.address)],{account:I,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new x(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});k.addInstruction(R||{});let{account:v,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new x(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(M||{}),!I&&!v&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",l.tokenAccounts);let V=await l.getCreatedTokenAccount({mint:new x(e.lpMint.address)}),Xt=await l.handleTokenAccount({side:"out",amount:0,mint:new x(e.lpMint.address),tokenAccount:V,bypassAssociatedCheck:f,checkCreateATAOwner:p}),{tokenAccount:X}=Xt,Q=ce(Xt,["tokenAccount"]);k.addInstruction(Q);let q=r!=null?r:await this.getCpmmPoolKeys(e.id),_=new ae(new z(1)).sub(s);return k.addInstruction({instructions:[Xn(new x(e.programId),this.scope.ownerPubKey,new x(q.authority),new x(e.id),X,I,v,new x(q.vault.A),new x(q.vault.B),A,D,new x(e.lpMint.address),a?a==null?void 0:a.liquidity:_.mul(d).quotient,o?T.amount:y,o?y:T.amount)],instructionTypes:[fe.CpmmAddLiquidity],lookupTableAddress:q.lookupTableAccount?[q.lookupTableAccount]:[]}),k.addCustomComputeBudget(u),k.versionBuild({txVersion:m})}async withdrawLiquidity(t){var X,Q;let{poolInfo:e,poolKeys:r,lpAmount:i,slippage:o,computeBudgetConfig:s,txVersion:a}=t;this.scope.availability.addStandardPosition===!1&&this.logAndCreateError("add liquidity feature disabled in your region");let u=new ae(new z(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]=[Ce(m,e.mintA.extensions.feeConfig,f,!1),Ce(l,e.mintB.extensions.feeConfig,f,!1)],{account:d}=this.scope,T=this.createTxBuilder(),[P,y]=[new x(e.mintA.address),new x(e.mintB.address)],h=P.equals(me),w=y.equals(me),k,A,{account:D,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintA.programId,mint:new x(e.mintA.address),notUseTokenAccount:h,owner:this.scope.ownerPubKey,createInfo:{payer:this.scope.ownerPubKey,amount:0},skipCloseAccount:!h,associatedOnly:!h,checkCreateATAOwner:!1});k=D,I&&T.addInstruction(I);let{account:R,instructionParams:v}=await this.scope.account.getOrCreateTokenAccount({tokenProgram:e.mintB.programId,mint:new x(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),(!k||!A)&&this.logAndCreateError("cannot found target token accounts","tokenAccounts",d.tokenAccounts);let M=await d.getCreatedTokenAccount({mint:new x(e.lpMint.address)});M||this.logAndCreateError("cannot found lp token account","tokenAccounts",d.tokenAccounts);let V=r!=null?r:await this.getCpmmPoolKeys(e.id);return T.addInstruction({instructions:[Qn(new x(e.programId),this.scope.ownerPubKey,new x(V.authority),new x(e.id),M,k,A,new x(V.vault.A),new x(V.vault.B),P,y,new x(e.lpMint.address),i,m.sub((X=p.fee)!=null?X:new z(0)),l.sub((Q=g.fee)!=null?Q:new z(0)))],instructionTypes:[fe.CpmmWithdrawLiquidity],lookupTableAddress:V.lookupTableAccount?[V.lookupTableAccount]:[]}),T.addCustomComputeBudget(s),T.versionBuild({txVersion:a})}async swap(t){var D,I,R,v,M,V;let{poolInfo:e,poolKeys:r,baseIn:i,swapResult:o,slippage:s=0,config:a,computeBudgetConfig:u,txVersion:c}=t,{bypassAssociatedCheck:m,checkCreateATAOwner:l,associatedOnly:f}=K({bypassAssociatedCheck:!1,checkCreateATAOwner:!1,associatedOnly:!0},a),p=this.createTxBuilder(),[g,d]=[new x(e.mintA.address),new x(e.mintB.address)];o.destinationAmountSwapped=o.destinationAmountSwapped.mul(new z((1-s)*1e4)).div(new z(1e4));let T=e.mintA.address===me.toBase58(),P=e.mintB.address===me.toBase58(),{account:y,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({mint:g,tokenProgram:new x((D=e.mintA.programId)!=null?D:de),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});h&&p.addInstruction(h);let{account:w,instructionParams:k}=await this.scope.account.getOrCreateTokenAccount({mint:d,tokenProgram:new x((I=e.mintB.programId)!=null?I:de),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:[i?$n(new x(e.programId),this.scope.ownerPubKey,new x(A.authority),new x(A.config.id),new x(e.id),y,w,new x(A.vault.A),new x(A.vault.B),new x((R=e.mintA.programId)!=null?R:de),new x((v=e.mintB.programId)!=null?v:de),g,d,gt(new x(e.programId),new x(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped):er(new x(e.programId),this.scope.ownerPubKey,new x(A.authority),new x(A.config.id),new x(e.id),w,y,new x(A.vault.B),new x(A.vault.A),new x((M=e.mintB.programId)!=null?M:de),new x((V=e.mintA.programId)!=null?V:de),d,g,gt(new x(e.programId),new x(e.id)).publicKey,o.sourceAmountSwapped,o.destinationAmountSwapped)],instructionTypes:[i?fe.CpmmSwapBaseIn:fe.CpmmSwapBaseOut]}),p.addCustomComputeBudget(u),p.versionBuild({txVersion:c})}computeSwapAmount({pool:t,amountIn:e,outputMint:r,slippage:i}){let o=r.toString()===t.mintB.address,s=lt.swap(e,o?t.baseReserve:t.quoteReserve,o?t.quoteReserve:t.baseReserve,t.configInfo.tradeFeeRate),a=new ee(s.destinationAmountSwapped.toString()).div(s.sourceAmountSwapped.toString()),u=s.destinationAmountSwapped.mul(new z((1-i)*1e4)).div(new z(1e4));return{allTrade:s.sourceAmountSwapped.eq(e),amountIn:e,amountOut:s.destinationAmountSwapped,minAmountOut:u,executionPrice:a,fee:s.tradeFee,priceImpact:t.poolPrice.sub(a).div(t.poolPrice)}}computePairAmount({poolInfo:t,baseReserve:e,quoteReserve:r,amount:i,slippage:o,epochInfo:s,baseIn:a}){var y,h,w,k,A,D,I,R;let u=1-Number(o.toSignificant())/100,c=new z(new ee(i).mul(10**t[a?"mintA":"mintB"].decimals).mul(u).toFixed(0)),m=Ce(c,t[a?"mintA":"mintB"].extensions.feeConfig,s,!1),l=c.sub((y=m.fee)!=null?y:new z(0)),f=new z(new ee(t.lpAmount).mul(10**t.lpMint.decimals).toFixed(0,ee.ROUND_DOWN));this.logDebug("baseReserve:",e.toString(),"quoteReserve:",r.toString()),this.logDebug("tokenIn:",a?t.mintA.symbol:t.mintB.symbol,"amountIn:",c.toString(),"amountInFee:",(w=(h=m.fee)==null?void 0:h.toString())!=null?w:0,"anotherToken:",a?t.mintB.symbol:t.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:Rt,fee:void 0,expirationTime:void 0};if(!l.isZero()){let v=no(g,e,r,f);this.logDebug("lpAmountData:",{amountA:v.amountA.toString(),amountB:v.amountB.toString()}),d=Ce(v[a?"amountB":"amountA"],t[a?"mintB":"mintA"].extensions.feeConfig,s,!0)}let T=new ae(new z(1)).add(o),P=Ce(T.mul(d.amount.sub((k=d.fee)!=null?k:new z(0))).quotient,t[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=(I=P.fee)==null?void 0:I.toString())!=null?R:0),{inputAmountFee:m,anotherAmount:d,maxAnotherAmount:P,liquidity:g}}};function no(n,t,e,r){let i=n.mul(t).div(r);!i.isZero()&&!n.mul(t).mod(r).isZero()&&(i=i.add(new z(1)));let o=n.mul(e).div(r);return!o.isZero()&&!n.mul(e).mod(r).isZero()&&(o=o.add(new z(1))),{amountA:i,amountB:o}}export{Yt as default};
|
|
2
2
|
//# sourceMappingURL=cpmm.mjs.map
|