@raydium-io/raydium-sdk-v2 0.2.1-alpha → 0.2.2-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/api.d.ts +1 -1
- package/lib/api/index.d.ts +1 -1
- package/lib/api/index.js.map +1 -1
- package/lib/api/index.mjs.map +1 -1
- package/lib/api/type.d.ts +1 -1
- package/lib/api/type.js +1 -1
- package/lib/api/type.js.map +1 -1
- package/lib/api/type.mjs.map +1 -1
- package/lib/{api-24bf4058.d.ts → api-0017263f.d.ts} +5 -0
- package/lib/common/accountInfo.d.ts +1 -1
- package/lib/common/bignumber.d.ts +1 -1
- package/lib/common/constant.d.ts +1 -1
- package/lib/common/fractionUtil.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/transfer.d.ts +1 -1
- package/lib/common/txTool/txTool.d.ts +1 -1
- package/lib/common/txTool/txUtils.d.ts +1 -1
- package/lib/common/utility.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js.map +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/module/amount.d.ts +1 -1
- package/lib/module/fraction.d.ts +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/percent.d.ts +1 -1
- package/lib/module/price.d.ts +1 -1
- package/lib/raydium/account/account.d.ts +3 -3
- package/lib/raydium/account/index.d.ts +1 -1
- package/lib/raydium/account/instruction.d.ts +1 -1
- package/lib/raydium/account/types.d.ts +1 -1
- package/lib/raydium/account/util.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +3 -3
- package/lib/raydium/clmm/index.d.ts +3 -3
- package/lib/raydium/clmm/index.js +1 -1
- package/lib/raydium/clmm/index.mjs +1 -1
- package/lib/raydium/clmm/instrument.d.ts +2 -2
- package/lib/raydium/clmm/type.d.ts +2 -2
- package/lib/raydium/clmm/utils/math.d.ts +2 -2
- package/lib/raydium/clmm/utils/pool.d.ts +2 -2
- package/lib/raydium/clmm/utils/position.d.ts +2 -2
- package/lib/raydium/clmm/utils/tick.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
- package/lib/raydium/cpmm/cpmm.d.ts +3 -3
- package/lib/raydium/cpmm/curve/calculator.d.ts +1 -1
- package/lib/raydium/cpmm/curve/constantProduct.d.ts +1 -1
- package/lib/raydium/cpmm/index.d.ts +1 -1
- package/lib/raydium/cpmm/instruction.d.ts +1 -1
- package/lib/raydium/cpmm/type.d.ts +1 -1
- package/lib/raydium/farm/config.d.ts +1 -1
- package/lib/raydium/farm/farm.d.ts +3 -3
- package/lib/raydium/farm/index.d.ts +1 -1
- package/lib/raydium/farm/instruction.d.ts +1 -1
- package/lib/raydium/farm/layout.d.ts +1 -1
- package/lib/raydium/farm/type.d.ts +1 -1
- package/lib/raydium/farm/util.d.ts +1 -1
- package/lib/raydium/ido/ido.d.ts +3 -3
- package/lib/raydium/ido/index.d.ts +3 -3
- package/lib/raydium/ido/instruction.d.ts +1 -1
- package/lib/raydium/ido/type.d.ts +1 -1
- package/lib/raydium/index.d.ts +3 -3
- package/lib/raydium/launchpad/curve/constantProductCurve.d.ts +1 -1
- package/lib/raydium/launchpad/curve/curve.d.ts +1 -1
- package/lib/raydium/launchpad/curve/curve.js +1 -1
- package/lib/raydium/launchpad/curve/curve.mjs +1 -1
- package/lib/raydium/launchpad/curve/curveBase.d.ts +1 -1
- package/lib/raydium/launchpad/curve/fixedPriceCurve.d.ts +1 -1
- package/lib/raydium/launchpad/curve/linearPriceCurve.d.ts +1 -1
- package/lib/raydium/launchpad/curve/linearPriceCurve.js +1 -1
- package/lib/raydium/launchpad/curve/linearPriceCurve.js.map +1 -1
- package/lib/raydium/launchpad/curve/linearPriceCurve.mjs +1 -1
- package/lib/raydium/launchpad/curve/linearPriceCurve.mjs.map +1 -1
- package/lib/raydium/launchpad/index.d.ts +3 -3
- package/lib/raydium/launchpad/launchpad.d.ts +3 -3
- package/lib/raydium/launchpad/pda.d.ts +1 -1
- package/lib/raydium/launchpad/type.d.ts +1 -1
- package/lib/raydium/liquidity/index.d.ts +1 -1
- package/lib/raydium/liquidity/instruction.d.ts +1 -1
- package/lib/raydium/liquidity/liquidity.d.ts +3 -3
- package/lib/raydium/liquidity/type.d.ts +1 -1
- package/lib/raydium/liquidity/utils.d.ts +1 -1
- package/lib/raydium/marketV2/createMarket.d.ts +3 -3
- package/lib/raydium/marketV2/index.d.ts +3 -3
- package/lib/raydium/moduleBase.d.ts +3 -3
- package/lib/raydium/raydium.d.ts +3 -3
- package/lib/raydium/token/constant.d.ts +1 -1
- package/lib/raydium/token/index.d.ts +1 -1
- package/lib/raydium/token/token.d.ts +3 -3
- package/lib/raydium/token/type.d.ts +1 -1
- package/lib/raydium/token/utils.d.ts +1 -1
- package/lib/raydium/tradeV2/index.d.ts +2 -2
- package/lib/raydium/tradeV2/instrument.d.ts +2 -2
- package/lib/raydium/tradeV2/trade.d.ts +3 -3
- package/lib/raydium/tradeV2/type.d.ts +2 -2
- package/lib/raydium/type.d.ts +1 -1
- package/lib/raydium/utils1216/index.d.ts +3 -3
- package/lib/raydium/utils1216/utils1216.d.ts +3 -3
- package/lib/{raydium-80c3ce5d.d.ts → raydium-2d36f2ed.d.ts} +2 -2
- package/lib/{type-a20a0a77.d.ts → type-afa99d0e.d.ts} +1 -1
- package/package.json +1 -1
- package/src/api/type.ts +5 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Yn=Object.create;var Ne=Object.defineProperty,Jn=Object.defineProperties,$n=Object.getOwnPropertyDescriptor,ei=Object.getOwnPropertyDescriptors,ti=Object.getOwnPropertyNames,Zt=Object.getOwnPropertySymbols,ni=Object.getPrototypeOf,jt=Object.prototype.hasOwnProperty,ii=Object.prototype.propertyIsEnumerable;var zt=(t,e,n)=>e in t?Ne(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Z=(t,e)=>{for(var n in e||(e={}))jt.call(e,n)&&zt(t,n,e[n]);if(Zt)for(var n of Zt(e))ii.call(e,n)&&zt(t,n,e[n]);return t},Y=(t,e)=>Jn(t,ei(e));var ri=(t,e)=>{for(var n in e)Ne(t,n,{get:e[n],enumerable:!0})},Qt=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ti(e))!jt.call(t,r)&&r!==n&&Ne(t,r,{get:()=>e[r],enumerable:!(i=$n(e,r))||i.enumerable});return t};var L=(t,e,n)=>(n=t!=null?Yn(ni(t)):{},Qt(e||!t||!t.__esModule?Ne(n,"default",{value:t,enumerable:!0}):n,t)),oi=t=>Qt(Ne({},"__esModule",{value:!0}),t);var so={};ri(so,{Curve:()=>Ue});module.exports=oi(so);var ie=L(require("bn.js"));var Ie=L(require("bn.js"));var ye=9e15,me=1e9,yt="0123456789abcdef",je="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",wt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ye,maxE:ye,crypto:!1},en,se,T=!0,Je="[DecimalError] ",le=Je+"Invalid argument: ",tn=Je+"Precision limit exceeded",nn=Je+"crypto unavailable",rn="[object Decimal]",W=Math.floor,v=Math.pow,si=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ai=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ui=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,on=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ee=1e7,A=7,ci=9007199254740991,li=je.length-1,Pt=Qe.length-1,p={toStringTag:rn};p.absoluteValue=p.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};p.ceil=function(){return g(new this.constructor(this),this.e+1,2)};p.clampedTo=p.clamp=function(t,e){var n,i=this,r=i.constructor;if(t=new r(t),e=new r(e),!t.s||!e.s)return new r(NaN);if(t.gt(e))throw Error(le+e);return n=i.cmp(t),n<0?t:i.cmp(e)>0?e:new r(i)};p.comparedTo=p.cmp=function(t){var e,n,i,r,o=this,s=o.d,a=(t=new o.constructor(t)).d,c=o.s,u=t.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==t.e)return o.e>t.e^c<0?1:-1;for(i=s.length,r=a.length,e=0,n=i<r?i:r;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};p.cosine=p.cos=function(){var t,e,n=this,i=n.constructor;return n.d?n.d[0]?(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+A,i.rounding=1,n=mi(i,ln(i,n)),i.precision=t,i.rounding=e,g(se==2||se==3?n.neg():n,t,e,!0)):new i(1):new i(NaN)};p.cubeRoot=p.cbrt=function(){var t,e,n,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(T=!1,o=l.s*v(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=_(l.d),t=l.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=v(n,1/3),t=W((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),i=new m(n),i.s=l.s):i=new m(o.toString()),s=(t=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=N(u.plus(l).times(a),u.plus(c),s+2,1),_(a.d).slice(0,s)===(n=_(i.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!r&&n=="4999"){if(!r&&(g(a,t+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(i,t+1,1),e=!i.times(i).times(i).eq(l));break}return T=!0,g(i,t,m.rounding,e)};p.decimalPlaces=p.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-W(this.e/A))*A,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(t){return N(this,new this.constructor(t))};p.dividedToIntegerBy=p.divToInt=function(t){var e=this,n=e.constructor;return g(N(e,new n(t),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(t){return this.cmp(t)===0};p.floor=function(){return g(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(t){return this.cmp(t)>0};p.greaterThanOrEqualTo=p.gte=function(t){var e=this.cmp(t);return e==1||e===0};p.hyperbolicCosine=p.cosh=function(){var t,e,n,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,i=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(t=Math.ceil(r/3),e=(1/et(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=we(s,1,o.times(e),new s(1),!0);for(var c,u=t,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return g(o,s.precision=n,s.rounding=i,!0)};p.hyperbolicSine=p.sinh=function(){var t,e,n,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=we(o,2,r,r,!0);else{t=1.4*Math.sqrt(i),t=t>16?16:t|0,r=r.times(1/et(5,t)),r=we(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(r,e,n,!0)};p.hyperbolicTangent=p.tanh=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+7,i.rounding=1,N(n.sinh(),n.cosh(),i.precision=t,i.rounding=e)):new i(n.s)};p.inverseCosine=p.acos=function(){var t,e=this,n=e.constructor,i=e.abs().cmp(1),r=n.precision,o=n.rounding;return i!==-1?i===0?e.isNeg()?$(n,r,o):new n(0):new n(NaN):e.isZero()?$(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,e=e.asin(),t=$(n,r+4,o).times(.5),n.precision=r,n.rounding=o,t.minus(e))};p.inverseHyperbolicCosine=p.acosh=function(){var t,e,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(t=i.precision,e=i.rounding,i.precision=t+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,T=!1,n=n.times(n).minus(1).sqrt().plus(n),T=!0,i.precision=t,i.rounding=e,n.ln()):new i(n)};p.inverseHyperbolicSine=p.asinh=function(){var t,e,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,T=!1,n=n.times(n).plus(1).sqrt().plus(n),T=!0,i.precision=t,i.rounding=e,n.ln())};p.inverseHyperbolicTangent=p.atanh=function(){var t,e,n,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(t=o.precision,e=o.rounding,i=r.sd(),Math.max(i,t)<2*-r.e-1?g(new o(r),t,e,!0):(o.precision=n=i-r.e,r=N(r.plus(1),new o(1).minus(r),n+t,1),o.precision=t+4,o.rounding=1,r=r.ln(),o.precision=t,o.rounding=e,r.times(.5))):new o(NaN)};p.inverseSine=p.asin=function(){var t,e,n,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),n=o.precision,i=o.rounding,e!==-1?e===0?(t=$(o,n+4,i).times(.5),t.s=r.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=i,r.times(2)))};p.inverseTangent=p.atan=function(){var t,e,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=Pt)return s=$(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=Pt)return s=$(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,n=Math.min(28,a/A+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(T=!1,e=Math.ceil(a/A),i=1,c=u.times(u),s=new l(u),r=u;t!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),T=!0,g(s,l.precision=m,l.rounding=d,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&W(this.e/A)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(t){return this.cmp(t)<0};p.lessThanOrEqualTo=p.lte=function(t){return this.cmp(t)<1};p.logarithm=p.log=function(t){var e,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,b=5;if(t==null)t=new l(10),e=!0;else{if(t=new l(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new l(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(r=n[0];r%10===0;)r/=10;o=r!==1}if(T=!1,a=m+b,s=ce(u,a),i=e?Ye(l,a+10):ce(t,a),c=N(s,i,a,1),Ke(c.d,r=m,d))do if(a+=10,s=ce(u,a),i=e?Ye(l,a+10):ce(t,a),c=N(s,i,a,1),!o){+_(c.d).slice(r+1,r+15)+1==1e14&&(c=g(c,m+1,0));break}while(Ke(c.d,r+=10,d));return T=!0,g(c,m,d)};p.minus=p.sub=function(t){var e,n,i,r,o,s,a,c,u,l,m,d,b=this,h=b.constructor;if(t=new h(t),!b.d||!t.d)return!b.s||!t.s?t=new h(NaN):b.d?t.s=-t.s:t=new h(t.d||b.s!==t.s?b:NaN),t;if(b.s!=t.s)return t.s=-t.s,b.plus(t);if(u=b.d,d=t.d,a=h.precision,c=h.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new h(b);else return new h(c===3?-0:0);return T?g(t,a,c):t}if(n=W(t.e/A),l=W(b.e/A),u=u.slice(),o=l-n,o){for(m=o<0,m?(e=u,o=-o,s=d.length):(e=d,n=l,s=u.length),i=Math.max(Math.ceil(a/A),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;i--;)e.push(0);e.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}o=0}for(m&&(e=u,u=d,d=e,t.s=-t.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=ee-1;--u[r],u[i]+=ee}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=$e(u,n),T?g(t,a,c):t):new h(c===3?-0:0)};p.modulo=p.mod=function(t){var e,n=this,i=n.constructor;return t=new i(t),!n.d||!t.s||t.d&&!t.d[0]?new i(NaN):!t.d||n.d&&!n.d[0]?g(new i(n),i.precision,i.rounding):(T=!1,i.modulo==9?(e=N(n,t.abs(),0,3,1),e.s*=t.s):e=N(n,t,0,i.modulo,1),e=e.times(t),T=!0,n.minus(e))};p.naturalExponential=p.exp=function(){return At(this)};p.naturalLogarithm=p.ln=function(){return ce(this)};p.negated=p.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};p.plus=p.add=function(t){var e,n,i,r,o,s,a,c,u,l,m=this,d=m.constructor;if(t=new d(t),!m.d||!t.d)return!m.s||!t.s?t=new d(NaN):m.d||(t=new d(t.d||m.s===t.s?m:NaN)),t;if(m.s!=t.s)return t.s=-t.s,m.minus(t);if(u=m.d,l=t.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(t=new d(m)),T?g(t,a,c):t;if(o=W(m.e/A),i=W(t.e/A),u=u.slice(),r=o-i,r){for(r<0?(n=u,r=-r,s=l.length):(n=l,i=o,s=u.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,r>s&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,n=l,l=u,u=n),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/ee|0,u[r]%=ee;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=$e(u,i),T?g(t,a,c):t};p.precision=p.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(le+t);return n.d?(e=sn(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};p.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};p.sine=p.sin=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+A,i.rounding=1,n=pi(i,ln(i,n)),i.precision=t,i.rounding=e,g(se>2?n.neg():n,t,e,!0)):new i(NaN)};p.squareRoot=p.sqrt=function(){var t,e,n,i,r,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(T=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=_(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=W((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),n=(c=l.precision)+3;;)if(o=i,i=o.plus(N(s,o,n+2,1)).times(.5),_(o.d).slice(0,n)===(e=_(i.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!r&&e=="4999"){if(!r&&(g(o,c+1,0),o.times(o).eq(s))){i=o;break}n+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(i,c+1,1),t=!i.times(i).eq(s));break}return T=!0,g(i,c,l.rounding,t)};p.tangent=p.tan=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+10,i.rounding=1,n=n.sin(),n.s=1,n=N(n,new i(1).minus(n.times(n)).sqrt(),t+10,0),i.precision=t,i.rounding=e,g(se==2||se==4?n.neg():n,t,e,!0)):new i(NaN)};p.times=p.mul=function(t){var e,n,i,r,o,s,a,c,u,l=this,m=l.constructor,d=l.d,b=(t=new m(t)).d;if(t.s*=l.s,!d||!d[0]||!b||!b[0])return new m(!t.s||d&&!d[0]&&!b||b&&!b[0]&&!d?NaN:!d||!b?t.s/0:t.s*0);for(n=W(l.e/A)+W(t.e/A),c=d.length,u=b.length,c<u&&(o=d,d=b,b=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(e=0,r=c+i;r>i;)a=o[r]+b[i]*d[r-i-1]+e,o[r--]=a%ee|0,e=a/ee|0;o[r]=(o[r]+e)%ee|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=$e(o,n),T?g(t,m.precision,m.rounding):t};p.toBinary=function(t,e){return Tt(this,2,t,e)};p.toDecimalPlaces=p.toDP=function(t,e){var n=this,i=n.constructor;return n=new i(n),t===void 0?n:(H(t,0,me),e===void 0?e=i.rounding:H(e,0,8),g(n,t+n.e+1,e))};p.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=re(i,!0):(H(t,0,me),e===void 0?e=r.rounding:H(e,0,8),i=g(new r(i),t+1,e),n=re(i,!0,t+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFixed=function(t,e){var n,i,r=this,o=r.constructor;return t===void 0?n=re(r):(H(t,0,me),e===void 0?e=o.rounding:H(e,0,8),i=g(new o(r),t+r.e+1,e),n=re(i,!1,t+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFraction=function(t){var e,n,i,r,o,s,a,c,u,l,m,d,b=this,h=b.d,P=b.constructor;if(!h)return new P(b);if(u=n=new P(1),i=c=new P(0),e=new P(i),o=e.e=sn(h)-b.e-1,s=o%A,e.d[0]=v(10,s<0?A+s:s),t==null)t=o>0?e:u;else{if(a=new P(t),!a.isInt()||a.lt(u))throw Error(le+a);t=a.gt(e)?o>0?e:u:a}for(T=!1,a=new P(_(h)),l=P.precision,P.precision=o=h.length*A*2;m=N(a,e,0,1,1),r=n.plus(m.times(i)),r.cmp(t)!=1;)n=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=e,e=a.minus(m.times(r)),a=r;return r=N(t.minus(n),i,0,1,1),c=c.plus(r.times(u)),n=n.plus(r.times(i)),c.s=u.s=b.s,d=N(u,i,o,1).minus(b).abs().cmp(N(c,n,o,1).minus(b).abs())<1?[u,i]:[c,n],P.precision=l,T=!0,d};p.toHexadecimal=p.toHex=function(t,e){return Tt(this,16,t,e)};p.toNearest=function(t,e){var n=this,i=n.constructor;if(n=new i(n),t==null){if(!n.d)return n;t=new i(1),e=i.rounding}else{if(t=new i(t),e===void 0?e=i.rounding:H(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(T=!1,n=N(n,t,0,e,1).times(t),T=!0,g(n)):(t.s=n.s,n=t),n};p.toNumber=function(){return+this};p.toOctal=function(t,e){return Tt(this,8,t,e)};p.toPower=p.pow=function(t){var e,n,i,r,o,s,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(v(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,t.eq(1))return g(a,i,o);if(e=W(t.e/A),e>=t.d.length-1&&(n=u<0?-u:u)<=ci)return r=an(c,a,n,i),t.s<0?new c(1).div(r):g(r,i,o);if(s=a.s,s<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=v(+a,u),e=n==0||!isFinite(n)?W(u*(Math.log("0."+_(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(T=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),r=At(t.times(ce(a,i+n)),i),r.d&&(r=g(r,i+5,1),Ke(r.d,i,o)&&(e=i+10,r=g(At(t.times(ce(a,e+n)),e),e+5,1),+_(r.d).slice(i+1,i+15)+1==1e14&&(r=g(r,i+1,0)))),r.s=s,T=!0,c.rounding=o,g(r,i,o))};p.toPrecision=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=re(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(H(t,1,me),e===void 0?e=r.rounding:H(e,0,8),i=g(new r(i),t,e),n=re(i,t<=i.e||i.e<=r.toExpNeg,t)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(t,e){var n=this,i=n.constructor;return t===void 0?(t=i.precision,e=i.rounding):(H(t,1,me),e===void 0?e=i.rounding:H(e,0,8)),g(new i(n),t,e)};p.toString=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return g(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function _(t){var e,n,i,r=t.length-1,o="",s=t[0];if(r>0){for(o+=s,e=1;e<r;e++)i=t[e]+"",n=A-i.length,n&&(o+=ue(n)),o+=i;s=t[e],i=s+"",n=A-i.length,n&&(o+=ue(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function H(t,e,n){if(t!==~~t||t<e||t>n)throw Error(le+t)}function Ke(t,e,n,i){var r,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=A,r=0):(r=Math.ceil((e+1)/A),e%=A),o=v(10,A-e),a=t[r]%o|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[r+1]/o/100|0)==v(10,e-2)-1||(a==o/2||a==0)&&(t[r+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(i||n<4)&&a==9999||!i&&n>3&&a==4999):s=((i||n<4)&&a+1==o||!i&&n>3&&a+1==o/2)&&(t[r+1]/o/1e3|0)==v(10,e-3)-1,s}function ze(t,e,n){for(var i,r=[0],o,s=0,a=t.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=yt.indexOf(t.charAt(s++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function mi(t,e){var n,i,r;if(e.isZero())return e;i=e.d.length,i<32?(n=Math.ceil(i/3),r=(1/et(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),t.precision+=n,e=we(t,1,e.times(r),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var N=function(){function t(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function n(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,c){var u,l,m,d,b,h,P,O,S,D,B,E,ge,Q,Se,Xe,Ce,bt,J,He,Ze=i.constructor,gt=i.s==r.s?1:-1,V=i.d,K=r.d;if(!V||!V[0]||!K||!K[0])return new Ze(!i.s||!r.s||(V?K&&V[0]==K[0]:!K)?NaN:V&&V[0]==0||!K?gt*0:gt/0);for(c?(b=1,l=i.e-r.e):(c=ee,b=A,l=W(i.e/b)-W(r.e/b)),J=K.length,Ce=V.length,S=new Ze(gt),D=S.d=[],m=0;K[m]==(V[m]||0);m++);if(K[m]>(V[m]||0)&&l--,o==null?(Q=o=Ze.precision,s=Ze.rounding):a?Q=o+(i.e-r.e)+1:Q=o,Q<0)D.push(1),h=!0;else{if(Q=Q/b+2|0,m=0,J==1){for(d=0,K=K[0],Q++;(m<Ce||d)&&Q--;m++)Se=d*c+(V[m]||0),D[m]=Se/K|0,d=Se%K|0;h=d||m<Ce}else{for(d=c/(K[0]+1)|0,d>1&&(K=t(K,d,c),V=t(V,d,c),J=K.length,Ce=V.length),Xe=J,B=V.slice(0,J),E=B.length;E<J;)B[E++]=0;He=K.slice(),He.unshift(0),bt=K[0],K[1]>=c/2&&++bt;do d=0,u=e(K,B,J,E),u<0?(ge=B[0],J!=E&&(ge=ge*c+(B[1]||0)),d=ge/bt|0,d>1?(d>=c&&(d=c-1),P=t(K,d,c),O=P.length,E=B.length,u=e(P,B,O,E),u==1&&(d--,n(P,J<O?He:K,O,c))):(d==0&&(u=d=1),P=K.slice()),O=P.length,O<E&&P.unshift(0),n(B,P,E,c),u==-1&&(E=B.length,u=e(K,B,J,E),u<1&&(d++,n(B,J<E?He:K,E,c))),E=B.length):u===0&&(d++,B=[0]),D[m++]=d,u&&B[0]?B[E++]=V[Xe]||0:(B=[V[Xe]],E=1);while((Xe++<Ce||B[0]!==void 0)&&Q--);h=B[0]!==void 0}D[0]||D.shift()}if(b==1)S.e=l,en=h;else{for(m=1,d=D[0];d>=10;d/=10)m++;S.e=m+l*b-1,g(S,a?o+S.e+1:o,s,h)}return S}}();function g(t,e,n,i){var r,o,s,a,c,u,l,m,d,b=t.constructor;e:if(e!=null){if(m=t.d,!m)return t;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=A,s=e,l=m[d=0],c=l/v(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/A),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=A,s=o-A+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=A,s=o-A+r,c=s<0?0:l/v(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%v(10,r-s-1)),u=n<4?(c||i)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||i||n==6&&(o>0?s>0?l/v(10,r-s):0:m[d-1])%10&1||n==(t.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=t.e+1,m[0]=v(10,(A-e%A)%A),t.e=-e||0):m[0]=t.e=0,t;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=v(10,A-o),m[d]=s>0?(l/v(10,r-s)%v(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,m[0]==ee&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=ee)break;m[d--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return T&&(t.e>b.maxE?(t.d=null,t.e=NaN):t.e<b.minE&&(t.e=0,t.d=[0])),t}function re(t,e,n){if(!t.isFinite())return cn(t);var i,r=t.e,o=_(t.d),s=o.length;return e?(n&&(i=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ue(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):r<0?(o="0."+ue(-r-1)+o,n&&(i=n-s)>0&&(o+=ue(i))):r>=s?(o+=ue(r+1-s),n&&(i=n-r-1)>0&&(o=o+"."+ue(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),n&&(i=n-s)>0&&(r+1===s&&(o+="."),o+=ue(i))),o}function $e(t,e){var n=t[0];for(e*=A;n>=10;n/=10)e++;return e}function Ye(t,e,n){if(e>li)throw T=!0,n&&(t.precision=n),Error(tn);return g(new t(je),e,1,!0)}function $(t,e,n){if(e>Pt)throw Error(tn);return g(new t(Qe),e,n,!0)}function sn(t){var e=t.length-1,n=e*A+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function ue(t){for(var e="";t--;)e+="0";return e}function an(t,e,n,i){var r,o=new t(1),s=Math.ceil(i/A+4);for(T=!1;;){if(n%2&&(o=o.times(e),Jt(o.d,s)&&(r=!0)),n=W(n/2),n===0){n=o.d.length-1,r&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Jt(e.d,s)}return T=!0,o}function Yt(t){return t.d[t.d.length-1]&1}function un(t,e,n){for(var i,r=new t(e[0]),o=0;++o<e.length;)if(i=new t(e[o]),i.s)r[n](i)&&(r=i);else{r=i;break}return r}function At(t,e){var n,i,r,o,s,a,c,u=0,l=0,m=0,d=t.constructor,b=d.rounding,h=d.precision;if(!t.d||!t.d[0]||t.e>17)return new d(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(T=!1,c=h):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),m+=5;for(i=Math.log(v(2,m))/Math.LN10*2+5|0,c+=i,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++l),a=s.plus(N(o,n,c,1)),_(a.d).slice(0,c)===_(s.d).slice(0,c)){for(r=m;r--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Ke(s.d,c-i,b,u))d.precision=c+=10,n=o=a=new d(1),l=0,u++;else return g(s,d.precision=h,b,T=!0);else return d.precision=h,s}s=a}}function ce(t,e){var n,i,r,o,s,a,c,u,l,m,d,b=1,h=10,P=t,O=P.d,S=P.constructor,D=S.rounding,B=S.precision;if(P.s<0||!O||!O[0]||!P.e&&O[0]==1&&O.length==1)return new S(O&&!O[0]?-1/0:P.s!=1?NaN:O?0:P);if(e==null?(T=!1,l=B):l=e,S.precision=l+=h,n=_(O),i=n.charAt(0),Math.abs(o=P.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)P=P.times(t),n=_(P.d),i=n.charAt(0),b++;o=P.e,i>1?(P=new S("0."+n),o++):P=new S(i+"."+n.slice(1))}else return u=Ye(S,l+2,B).times(o+""),P=ce(new S(i+"."+n.slice(1)),l-h).plus(u),S.precision=B,e==null?g(P,B,D,T=!0):P;for(m=P,c=s=P=N(P.minus(1),P.plus(1),l,1),d=g(P.times(P),l,1),r=3;;){if(s=g(s.times(d),l,1),u=c.plus(N(s,new S(r),l,1)),_(u.d).slice(0,l)===_(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Ye(S,l+2,B).times(o+""))),c=N(c,new S(b),l,1),e==null)if(Ke(c.d,l-h,D,a))S.precision=l+=h,u=s=P=N(m.minus(1),m.plus(1),l,1),d=g(P.times(P),l,1),r=a=1;else return g(c,S.precision=B,D,T=!0);else return S.precision=B,c;c=u,r+=2}}function cn(t){return String(t.s*t.s/0)}function ht(t,e){var n,i,r;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,t.e=n=n-i-1,t.d=[],i=(n+1)%A,n<0&&(i+=A),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=A;i<r;)t.d.push(+e.slice(i,i+=A));e=e.slice(i),i=A-e.length}else i-=r;for(;i--;)e+="0";t.d.push(+e),T&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function di(t,e){var n,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),on.test(e))return ht(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(ai.test(e))n=16,e=e.toLowerCase();else if(si.test(e))n=2;else if(ui.test(e))n=8;else throw Error(le+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=an(i,new i(n),o,o*2)),u=ze(e,n,ee),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(t.s*0):(t.e=$e(u,l),t.d=u,T=!1,s&&(t=N(t,r,a*4)),c&&(t=t.times(Math.abs(c)<54?v(2,c):Le.pow(2,c))),T=!0,t)}function pi(t,e){var n,i=e.d.length;if(i<3)return e.isZero()?e:we(t,2,e,e);n=1.4*Math.sqrt(i),n=n>16?16:n|0,e=e.times(1/et(5,n)),e=we(t,2,e,e);for(var r,o=new t(5),s=new t(16),a=new t(20);n--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function we(t,e,n,i,r){var o,s,a,c,u=1,l=t.precision,m=Math.ceil(l/A);for(T=!1,c=n.times(n),a=new t(i);;){if(s=N(a.times(c),new t(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=N(s.times(c),new t(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return T=!0,s.d.length=m+1,s}function et(t,e){for(var n=t;--e;)n*=t;return n}function ln(t,e){var n,i=e.s<0,r=$(t,t.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return se=i?4:1,e;if(n=e.divToInt(r),n.isZero())se=i?3:2;else{if(e=e.minus(n.times(r)),e.lte(o))return se=Yt(n)?i?2:3:i?4:1,e;se=Yt(n)?i?1:4:i?3:2}return e.minus(r).abs()}function Tt(t,e,n,i){var r,o,s,a,c,u,l,m,d,b=t.constructor,h=n!==void 0;if(h?(H(n,1,me),i===void 0?i=b.rounding:H(i,0,8)):(n=b.precision,i=b.rounding),!t.isFinite())l=cn(t);else{for(l=re(t),s=l.indexOf("."),h?(r=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new b(1),d.e=l.length-s,d.d=ze(re(d),10,r),d.e=d.d.length),m=ze(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=h?"0p+0":"0";else{if(s<0?o--:(t=new b(t),t.d=m,t.e=o,t=N(t,d,n,i,0,r),m=t.d,o=t.e,u=en),s=m[n],a=r/2,u=u||m[n+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(t.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[n-1]&1||i===(t.s<0?8:7)),m.length=n,u)for(;++m[--n]>r-1;)m[n]=0,n||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=yt.charAt(m[s]);if(h){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=ze(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=yt.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return t.s<0?"-"+l:l}function Jt(t,e){if(t.length>e)return t.length=e,!0}function fi(t){return new this(t).abs()}function bi(t){return new this(t).acos()}function gi(t){return new this(t).acosh()}function yi(t,e){return new this(t).plus(e)}function wi(t){return new this(t).asin()}function Pi(t){return new this(t).asinh()}function Ai(t){return new this(t).atan()}function hi(t){return new this(t).atanh()}function Ti(t,e){t=new this(t),e=new this(e);var n,i=this.precision,r=this.rounding,o=i+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=$(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?$(this,i,r):new this(0),n.s=t.s):!t.d||e.isZero()?(n=$(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(t,e,o,1)),e=$(this,o,1),this.precision=i,this.rounding=r,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(N(t,e,o,1)),n}function ki(t){return new this(t).cbrt()}function Bi(t){return g(t=new this(t),t.e+1,2)}function xi(t,e,n){return new this(t).clamp(e,n)}function Ii(t){if(!t||typeof t!="object")throw Error(Je+"Object expected");var e,n,i,r=t.defaults===!0,o=["precision",1,me,"rounding",0,8,"toExpNeg",-ye,0,"toExpPos",0,ye,"maxE",0,ye,"minE",-ye,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],r&&(this[n]=wt[n]),(i=t[n])!==void 0)if(W(i)===i&&i>=o[e+1]&&i<=o[e+2])this[n]=i;else throw Error(le+n+": "+i);if(n="crypto",r&&(this[n]=wt[n]),(i=t[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(nn);else this[n]=!1;else throw Error(le+n+": "+i);return this}function Si(t){return new this(t).cos()}function Ci(t){return new this(t).cosh()}function mn(t){var e,n,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,$t(o)){u.s=o.s,T?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;T?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return ht(u,o.toString())}else if(c!=="string")throw Error(le+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),on.test(o)?ht(u,o):di(u,o)}if(r.prototype=p,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Ii,r.clone=mn,r.isDecimal=$t,r.abs=fi,r.acos=bi,r.acosh=gi,r.add=yi,r.asin=wi,r.asinh=Pi,r.atan=Ai,r.atanh=hi,r.atan2=Ti,r.cbrt=ki,r.ceil=Bi,r.clamp=xi,r.cos=Si,r.cosh=Ci,r.div=Ni,r.exp=Ki,r.floor=Li,r.hypot=Ri,r.ln=Mi,r.log=Fi,r.log10=Ei,r.log2=Oi,r.max=vi,r.min=Di,r.mod=_i,r.mul=Vi,r.pow=Wi,r.random=qi,r.round=Gi,r.sign=Ui,r.sin=Xi,r.sinh=Hi,r.sqrt=Zi,r.sub=zi,r.sum=ji,r.tan=Qi,r.tanh=Yi,r.trunc=Ji,t===void 0&&(t={}),t&&t.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)t.hasOwnProperty(n=i[e++])||(t[n]=this[n]);return r.config(t),r}function Ni(t,e){return new this(t).div(e)}function Ki(t){return new this(t).exp()}function Li(t){return g(t=new this(t),t.e+1,3)}function Ri(){var t,e,n=new this(0);for(T=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return T=!0,new this(1/0);n=e}return T=!0,n.sqrt()}function $t(t){return t instanceof Le||t&&t.toStringTag===rn||!1}function Mi(t){return new this(t).ln()}function Fi(t,e){return new this(t).log(e)}function Oi(t){return new this(t).log(2)}function Ei(t){return new this(t).log(10)}function vi(){return un(this,arguments,"lt")}function Di(){return un(this,arguments,"gt")}function _i(t,e){return new this(t).mod(e)}function Vi(t,e){return new this(t).mul(e)}function Wi(t,e){return new this(t).pow(e)}function qi(t){var e,n,i,r,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:H(t,1,me),i=Math.ceil(t/A),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(nn);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],t%=A,i&&t&&(r=v(10,A-t),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=A)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<A&&(n-=A-i)}return s.e=n,s.d=a,s}function Gi(t){return g(t=new this(t),t.e+1,this.rounding)}function Ui(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Xi(t){return new this(t).sin()}function Hi(t){return new this(t).sinh()}function Zi(t){return new this(t).sqrt()}function zi(t,e){return new this(t).sub(e)}function ji(){var t=0,e=arguments,n=new this(e[t]);for(T=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return T=!0,g(n,this.precision,this.rounding)}function Qi(t){return new this(t).tan()}function Yi(t){return new this(t).tanh()}function Ji(t){return g(t=new this(t),t.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var Le=p.constructor=mn(wt);je=new Le(je);Qe=new Le(Qe);var x=Le;var er=require("@solana/web3.js");var Re=require("lodash");var kt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},dn={},$i={};function G(t){let e=(0,Re.get)(dn,t);if(!e){let n=(0,Re.get)($i,t);e=new kt({name:t,logLevel:n}),(0,Re.set)(dn,t,e)}return e}var tt=require("@solana/spl-token"),go=G("Raydium_accountInfo_util");var te=L(require("bn.js"));var wn=L(require("big.js")),or=L(require("bn.js"));var fn=L(require("toformat")),tr=fn.default,Me=tr;var Fe=L(require("big.js")),gn=L(require("bn.js")),yn=L(require("decimal.js-light"));var Pe=L(require("bn.js"));var bn=9007199254740991;function oe(t){let e=G("Raydium_parseBigNumberish");if(t instanceof Pe.default)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Pe.default(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=bn||t<=-bn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Pe.default(String(t))):typeof t=="bigint"?new Pe.default(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Pe.default(0))}var it=G("module/fraction"),Bt=Me(Fe.default),Oe=Me(yn.default),ir={[0]:Oe.ROUND_DOWN,[1]:Oe.ROUND_HALF_UP,[2]:Oe.ROUND_UP},rr={[0]:Fe.default.roundDown,[1]:Fe.default.roundHalfUp,[2]:Fe.default.roundUp},R=class{constructor(e,n=new gn.default(1)){this.numerator=oe(e),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(e){let n=e instanceof R?e:new R(oe(e));return this.denominator.eq(n.denominator)?new R(this.numerator.add(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof R?e:new R(oe(e));return this.denominator.eq(n.denominator)?new R(this.numerator.sub(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof R?e:new R(oe(e));return new R(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof R?e:new R(oe(e));return new R(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||it.logWithError(`${e} is not an integer.`),e<=0&&it.logWithError(`${e} is not positive.`),Oe.set({precision:e+1,rounding:ir[i]});let r=new Oe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||it.logWithError(`${e} is not an integer.`),e<0&&it.logWithError(`${e} is negative.`),Bt.DP=e,Bt.RM=rr[i]||1,new Bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Oo=G("Raydium_amount"),Eo=Me(wn.default);var Pn=require("@solana/web3.js"),xt=require("@solana/spl-token"),It={chainId:101,address:Pn.PublicKey.default.toBase58(),programId:xt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:xt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var rt=require("@solana/web3.js");var I=require("@solana/web3.js"),An=require("@solana/spl-token");function St({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var Vo=[St({pubkey:An.TOKEN_PROGRAM_ID,isWritable:!1}),St({pubkey:I.SystemProgram.programId,isWritable:!1}),St({pubkey:I.SYSVAR_RENT_PUBKEY,isWritable:!1})];function hn({publicKey:t,transformSol:e}){let n=Tn(t.toString());if(n instanceof I.PublicKey)return e&&n.equals(Ee)?nt:n;if(e&&n.toString()===Ee.toBase58())return nt;if(typeof n=="string"){if(n===I.PublicKey.default.toBase58())return I.PublicKey.default;try{return new I.PublicKey(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Tn(t){try{return new I.PublicKey(t)}catch{return t}}var ar=new I.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ur=new I.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),cr=new I.PublicKey("SysvarRent111111111111111111111111111111111"),Wo=new I.PublicKey("SysvarC1ock11111111111111111111111111111111"),kn=new I.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),qo=new I.PublicKey("Sysvar1nstructions1111111111111111111111111"),Go=I.SystemProgram.programId,Uo=new I.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xo=new I.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ho=new I.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Zo=new I.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zo=new I.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),jo=new I.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qo=new I.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Yo=new I.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Jo=new I.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$o=new I.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),es=new I.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),nt=new I.PublicKey("So11111111111111111111111111111111111111112"),Ee=I.PublicKey.default;var Ct=class{constructor({mint:e,decimals:n,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===Ee.toBase58()||e instanceof rt.PublicKey&&Ee.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new rt.PublicKey(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?rt.PublicKey.default:hn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},pe=Ct;pe.WSOL=new Ct(Y(Z({},de),{mint:de.address}));var Nt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},ot=Nt;ot.SOL=new Nt(It);var Bn=L(require("bn.js"));var ls=new R(new Bn.default(100));var gs=G("Raydium_price");var mr=require("@solana/web3.js"),dr=L(require("bn.js"));var lr=new te.default(0),zs=new te.default(1),js=new te.default(2),Qs=new te.default(3),Ys=new te.default(5),sr=new te.default(10),Js=new te.default(100),$s=new te.default(1e3),ea=new te.default(1e4);function xn(t,e,n){return t.mul(e).add(n).sub(new te.default(1)).div(n)}var br=require("@solana/web3.js"),gr=require("@solana/spl-token");var Ae=require("@solana/web3.js");var pr=require("@solana/spl-token"),pa=G("Raydium_txUtil");var f=require("@solana/web3.js"),ya=new f.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),wa=new f.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Pa=new f.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Aa=new f.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ha=new f.PublicKey("Ray1111111111111111111111111111111111111111"),Ta=new f.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ka=new f.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ba=new f.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xa=new f.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ia=new f.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Sa=new f.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yr=new f.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),wr=new f.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pr=new f.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ca=new f.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),In=new f.PublicKey("Ray1111111111111111111111111111111111111111"),Na=new f.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ka=new f.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),La=new f.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ra=new f.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ma=new f.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Fa=new f.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Oa=new f.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ea=new f.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),va=new f.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ar=new f.PublicKey("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),hr=new f.PublicKey("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Tr=new f.PublicKey("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Da=new f.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),kr=new f.PublicKey("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),_a=new f.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Br=new f.PublicKey("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),Va=new f.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Wa=new f.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),xr=new f.PublicKey("LanD8FpTBBvzZFXjTxsAoipkFsxPUCDB4qAqKxYDiNP"),Ir=new f.PublicKey("HYNHiyKJ3gGVFvyxJAurK7qr7P2o5J9THmvCGMdULtpW"),qa=new f.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sn=new f.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),Ga=new f.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Cn=new f.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt");var Ua={AMM_V4:new f.PublicKey("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AMM_STABLE:new f.PublicKey("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM_PROGRAM_ID:new f.PublicKey("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new f.PublicKey("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new f.PublicKey("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),FARM_PROGRAM_ID_V3:new f.PublicKey("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FARM_PROGRAM_ID_V5:new f.PublicKey("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FARM_PROGRAM_ID_V6:new f.PublicKey("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),OPEN_BOOK_PROGRAM:new f.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:f.PublicKey.default,UTIL1216:f.PublicKey.default,Router:new f.PublicKey("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Ar,CREATE_CPMM_POOL_AUTH:hr,CREATE_CPMM_POOL_FEE_ACC:Tr,LOCK_CPMM_PROGRAM:kr,LOCK_CPMM_AUTH:Br,LAUNCHPAD_PROGRAM:xr,LAUNCHPAD_AUTH:Ir,LAUNCHPAD_PLATFORM:Sn,LAUNCHPAD_CONFIG:Cn,FEE_DESTINATION_ID:new f.PublicKey("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),MODEL_DATA_PUBKEY:In},Xa={OPEN_BOOK_PROGRAM:new f.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new f.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new f.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new f.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new f.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new f.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new f.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new f.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new f.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new f.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new f.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new f.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:f.PublicKey.default,Router:new f.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new f.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V5:new f.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new f.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new f.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new f.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:Sn,LAUNCHPAD_CONFIG:Cn,FEE_DESTINATION_ID:new f.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:In};var ve=L(require("bn.js"));function at(t,e){if(t.isZero())return new ve.default(0);let n=t.div(e);return n.isZero()?new ve.default(1):t.mod(e).gt(new ve.default(0))?n.add(new ve.default(1)):n}var De=require("@solana/web3.js");var Sr={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new De.AddressLookupTableAccount({key:new De.PublicKey("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:De.AddressLookupTableAccount.deserialize(Buffer.from("AQAAAP//////////I1rcEwAAAAAvAQYwun9CU6c5Ikm2pAj+D9IEnCOR45nK+SFTGSdpd6J6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpBt324e51j94YQl285GzN2rYa/E2DuQ0n/r35KNihi/wFSlNQ+F3IgtYUpVZyeIopbd8eq6vQpgZ4iEky9O72oAVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvBkX2T9y7AHdNGviJAqQNtlDUDCnauQRWybsLji6nPM8Qkw5asQRvCdB3MbX6IEBwytOrpM32l4jQygKG9TKgR0vZScQ2AsM/IHeQ7RajUkyhuZdc8SGiqQz/7H34torNR/Wir3sl0ruUrVxJWEZfUg+QLNAxxODdBi53/OP7Ioil1cqeBM9dtZC3FLov4yyxWRM/wcGStyJX/QfTnLBAHqkqWotPKVlShCVQqpP9W5W1rOao65IMk5QuQ2kMIOxzDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu/YsA/yfEEFGcr8Z57VKDw8uQzpiru7g4lvjnfapW62W030syevD8k07SGoxUHiuT/ai7gAHWWhDsVmg/C63ajgpkH7Sn3GdutArDTfyqOkdqv4/IPC/EFFy7mGkfDd2C57N5a/4jC+BbmJy7wQaSEZr0CQU88lPtUxIVvzGjC95b8Ooss2TqmkrayGKofkPMGQn7Ux+9lfwBSNfxwH8NgbpqC/7LNlV4I7nCvsXf3p+ohQk9NrAJb2KAFpUqEIJ9ZBV7BYDzHF/ORKYlgtvPnXjudZQ6CEo5OzUDaNIomTCCsvhD16TxJjsbgne1kGnQPCFSoaxUbq2V1bPMFQ3VYP6wDZ9bKStCFKx9A3tNbwZFC5ZGAN83MFK7XoTy+OmmcFEr6rLOjfSuTfPvHJkSVxW6Qllwkl67XcBi5v00u2gQsbu+38sp+rd5pA/LvyWj4P94ZGZwc1tE2P88xekCLcAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAn+HWRkdcPKyFFMnVwEoD7vnD0jCKFIU1sImubYCxNTSVzsKpaQX+fzNxrLAI3L14JQnJx/D6Uk2LADIHGqnGELzjEbkBDAlaM77NkXMPfqXNLSveCkWI7UEgNs31WEWB6XHSYI/v5DklHOb4QTtDOR804PVbi3fjloZeLR2F8d4FuZmMMO7ck3Fnkn2zEMG5gOmqsygb6PjTitArVl52NhcSznTxVnguaIJxiZkAnurDmn3MWR0PC2GLghp2KJqHCc6QQ85odeIjFHKOlRlJyeSXVJmL8vb1UgOzsbJPVP8p6zM4M3C1Sd7uWIHP33G42AP2Zg8ucn/n6meQjjD266JgCWdxZD6PXs9CsnIeL7SSG0/6lGb9xfP0ZcWkCXB/3hjxHYVXjra/GPOeXGk0fLLKjCbk+mgs2w6d2oCwimBipTzuoZ30GiI8ij8VRzD5CzMWtu2m21eDBIfjGAEo4pQeNNonKcqzV/cleX8ySZLOHsz8PtBCrLqF+VkLm9hOzIT+6i/nIf6keR4GWKMOD4AvqfpjHoD4DuhBpz8P28+DxkGrDXXr/nr20x291VPvcTU/b+b+o2kC9G0kcXeTlLjU6a2TQXWlZ4gBUdBl1jgT7mObSTpLblNiXZsLkbmVXZwvFKXua5cUKlWed/w30skmEUraTuQqtqr5fHZPW9n57EmeTif6LjHL2YJFZkQU+TrJmFzqzmF4/b8OwrPQAprl8mX3q4LUIdAS/a+11B6DWD1Xk2++Sn94dLC4xjkO4Wtlw8c4XuzciVbepHOmnoWzVu/0y3KCrLCSfQxQ3br8DJCoVzhgtPsS2nZZjsBGIZgnU0QpMv+2MnRsnKwdp1VsrCX84j/qvaZn4WhKunippgTbN2EUs0tPTP55Qfgj+nKmjtWW5IYs72FrEwJKYoNfsmqaF4o5pf4v9zgPwVwY/5I4XJKUL2L25m9kAQcW/K+H1RTFEUoj8Z4ajpOmAB/dG0COmCphVMW2CCMvnxhcGiSgPnpDuWu6qiJ7NG7ye5kvHgefgqPLeicspNJ5EpL3XiRNLM2tmJLI1awAwOyd6iHv0dCkMYRKaa6rcaZeYwmKCkckm0kM2JNmnmmAaBQQ7mwmIM0IMxX4f5W6j9PqZWcJxF7r17T/lQBAmcjoupRiJifbnXCNUv9GhpRF19WcBdeKbivRJVlGop6I2RS6lGImJ9udcI1S/0aGlEXX1ZwF14puK9ElWUainojZFYVHLHD6dIP2ESjqBzg3ol1/wB7+/ylGwd9LS7wSZ2A630CJSVKwH47K9P4bB8PEQP8BwjMFa7xQHOqZFP1XqaQ==","base64"))})};var he=require("@solana/web3.js"),Kr=L(require("axios"));var Kn=L(require("bn.js")),be=new Kn.default(1e6);var fe=class{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){throw Error()}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){throw Error()}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){throw Error()}static buyExactIn({poolInfo:e,amount:n}){throw Error()}static buyExactOut({poolInfo:e,amount:n}){throw Error()}static sellExactIn({poolInfo:e,amount:n}){throw Error()}static sellExactOut({poolInfo:e,amount:n}){throw Error()}};var ro=require("@solana/web3.js"),oo=L(require("bn.js"));var mt=require("@solana/spl-token");var Lr=require("@solana/web3.js"),Ln=require("@solana/spl-token");var lt=require("@solana/web3.js"),io=L(require("bn.js"));var Ut=require("@solana/spl-token");var On=require("@solana/web3.js"),Te=L(require("bn.js"));var y=require("@solana/buffer-layout"),Mt=y.Layout,Rn=y.Structure;var Ft=y.UInt;var Mn=y.u8,_e=y.u16;var ae=y.s32;var Fn=y.seq;var z=y.blob;var ke=class extends Mt{constructor(n,i,r){super(n,r);this.blob=z(n),this.signed=i}decode(n,i=0){let r=new Te.default(this.blob.decode(n,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(n,i,r=0){return typeof n=="number"&&(n=new Te.default(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,r)}};function U(t){return new Ft(1,t)}function Be(t){return new Ft(4,t)}function k(t){return new ke(8,!1,t)}function M(t){return new ke(16,!1,t)}function En(t){return new ke(8,!0,t)}function vn(t){return new ke(16,!0,t)}var ut=class extends Mt{constructor(n,i,r,o){super(n.span,o);this.layout=n,this.decoder=i,this.encoder=r}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,r){return this.layout.encode(this.encoder(n),i,r)}getSpan(n,i){return this.layout.getSpan(n,i)}};function C(t){return new ut(z(32),e=>new On.PublicKey(e),e=>e.toBuffer(),t)}function Et(t){return new ut(Mn(),Rr,Mr,t)}function Rr(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function Mr(t){return t?1:0}var Ot=class extends Rn{decode(e,n){return super.decode(e,n)}};function q(t,e,n){return new Ot(t,e,n)}function F(t,e,n){let i,r=typeof e=="number"?e:(0,Te.isBN)(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=(0,Te.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Fn(t,r,n)}var Xr=L(require("bn.js"));var j=L(require("bn.js")),vt=new j.default(0),Dn=new j.default(1),_n=new j.default(-1),ne=new j.default(1).shln(64),Vn=new j.default(1).shln(128),Dt=ne.sub(Dn);var Fr=Vn.subn(1),xe=-443636,Ve=-xe,_t=new j.default("4295048016"),Vt=new j.default("79226673521066979257578248091"),rc=new j.default("4295048017"),oc=new j.default("79226673521066979257578248090");var Or=new j.default(10).pow(new j.default(6));var sc=new j.default("18446744073700000000");var Ur=L(require("bn.js"));var pc=Buffer.from("amm_config","utf8"),fc=Buffer.from("pool","utf8"),bc=Buffer.from("pool_vault","utf8"),gc=Buffer.from("pool_reward_vault","utf8"),yc=Buffer.from("position","utf8"),wc=Buffer.from("tick_array","utf8"),Pc=Buffer.from("operation","utf8"),Ac=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hc=Buffer.from("observation","utf8");var Tc=Buffer.from("locked_position","utf8");var kc=Buffer.from("support_mint","utf8");var Vr=require("@solana/web3.js"),Wr=require("@solana/spl-token"),qr=L(require("bn.js"));var Er=L(require("bn.js"));var Gt=14;var ct=60;var Hr=q([z(8),U("bump"),_e("index"),C(""),Be("protocolFeeRate"),Be("tradeFeeRate"),_e("tickSpacing"),F(k(),8,"")]),Zr=q([Be("blockTimestamp"),En("tickCumulative"),F(k(),4)]),Qn=q([z(8),Et("initialized"),k("recentEpoch"),_e("observationIndex"),C("poolId"),F(Zr,100,"observations"),F(k(),4)]),zr=q([U("rewardState"),k("openTime"),k("endTime"),k("lastUpdateTime"),M("emissionsPerSecondX64"),k("rewardTotalEmissioned"),k("rewardClaimed"),C("tokenMint"),C("tokenVault"),C("creator"),M("rewardGrowthGlobalX64")]),Zn=q([z(8),U("bump"),C("ammConfig"),C("creator"),C("mintA"),C("mintB"),C("vaultA"),C("vaultB"),C("observationId"),U("mintDecimalsA"),U("mintDecimalsB"),_e("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),ae("tickCurrent"),Be(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),k("protocolFeesTokenA"),k("protocolFeesTokenB"),M("swapInAmountTokenA"),M("swapOutAmountTokenB"),M("swapInAmountTokenB"),M("swapOutAmountTokenA"),U("status"),F(U(),7,""),F(zr,3,"rewardInfos"),F(k(),16,"tickArrayBitmap"),k("totalFeesTokenA"),k("totalFeesClaimedTokenA"),k("totalFeesTokenB"),k("totalFeesClaimedTokenB"),k("fundFeesTokenA"),k("fundFeesTokenB"),k("startTime"),F(k(),15*4-3,"padding")]),jr=q([M("growthInsideLastX64"),k("rewardAmountOwed")]),zn=q([z(8),U("bump"),C("nftMint"),C("poolId"),ae("tickLower"),ae("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),k("tokenFeesOwedA"),k("tokenFeesOwedB"),F(jr,3,"rewardInfos"),F(k(),8,"")]),Vl=q([z(8),U("bump"),C("poolId"),ae("tickLowerIndex"),ae("tickUpperIndex"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),k("tokenFeesOwedA"),k("tokenFeesOwedB"),F(M(),3,"rewardGrowthInside"),F(k(),8,"")]),Qr=q([ae("tick"),vn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),F(M(),3,"rewardGrowthsOutsideX64"),F(Be(),13,"")]),Un=q([z(8),C("poolId"),ae("startTickIndex"),F(Qr,ct,"ticks"),U("initializedTickCount"),F(U(),115,"")]),Yr=q([z(329),F(C(),100,"whitelistMints")]),Gr=q([z(8),C("poolId"),F(F(k(),8),Gt,"positiveTickArrayBitmap"),F(F(k(),8),Gt,"negativeTickArrayBitmap")]),Wl=q([k(),U("bump"),C("owner"),C("poolId"),C("positionId"),C("nftAccount"),F(k(),8)]),Jr=q([z(8),U("bump"),C("lockOwner"),C("poolId"),C("positionId"),C("nftAccount"),C("lockNftMint"),k("recentEpoch"),F(k(),8)]);Qn.span;var sm=G("Raydium_Clmm");var dt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.add(e.realB).toString()).div(e.virtualA.sub(e.realA).toString()).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB.add(o)).toString()).div(e.virtualA.sub(e.realA.add(r)).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){if(e.lte(i))throw Error("supply need gt total sell");let s=e.sub(i).sub(r);if(s.lte(new Ie.default(0)))throw Error("supplyMinusSellLocked <= 0");let a=n.sub(o);if(a.lte(new Ie.default(0)))throw Error("tfMinusMf <= 0");let c=a.mul(i).mul(i).div(s),u=a.mul(i).div(s).sub(n);if(u.lt(new Ie.default(0)))throw Error("supply/totalSell/totalLockedAmount diff too high");let l=c.div(u),m=n.mul(n).div(u);if(l.lt(new Ie.default(0))||m.lt(new Ie.default(0)))throw Error("invalid input 0");return{a:l,b:m,c:i}}static buyExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static buyExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static sellExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static sellExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static getAmountOut({amountIn:e,inputReserve:n,outputReserve:i}){let r=e.mul(i),o=n.add(e);return r.div(o)}static getAmountIn({amountOut:e,inputReserve:n,outputReserve:i}){let r=n.mul(e),o=i.sub(e);return at(r,o)}};var Xt=L(require("bn.js"));var pt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB).add(o).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){let s=e.sub(r);if(s.lte(new Xt.default(0)))throw Error("invalid input 1");let a=new Xt.default(2).mul(n).sub(o),u=n.mul(s).div(a);return{a:u,b:n,c:u}}static buyExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,initInput:e.virtualB,initOutput:e.virtualA})}static buyExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,initInput:e.virtualB,initOutput:e.virtualA})}static sellExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,initInput:e.virtualA,initOutput:e.virtualB})}static sellExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,initInput:e.virtualA,initOutput:e.virtualB})}static getAmountOut({amountIn:e,initInput:n,initOutput:i}){return i.mul(e).div(n)}static getAmountIn({amountOut:e,initInput:n,initOutput:i}){let r=n.mul(e);return at(r,i)}};var X=L(require("bn.js"));var Ht=L(require("bn.js"));var Ge=class{static _multipler(e){return new x(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new x(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let r=e.mul(this._multipler(i)).div(this._multipler(n));return new Ht.default(r.mul(this._Q64).toFixed(0))}};Ge._Q64=new x(new Ht.default(1).shln(64).toString());var ft=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(0)}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(0)}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualA.mul(e.realA).toString()).div(Ge._Q64).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB).add(o).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){let s=e.sub(r);if(s.lte(new X.default(0)))throw Error("supplyMinusLocked need gt 0");let a=n.mul(new X.default(3)).sub(o),u=n.mul(new X.default(2)).mul(s).div(a),l=u.mul(u),m=n.mul(new X.default(2)).mul(ne).div(l);if(!m.gt(new X.default(0)))throw Error("a need gt 0");if(!Dt.gt(m))throw Error("a need lt u64 max");return{a:m,b:new X.default(0),c:u}}static buyExactIn({poolInfo:e,amount:n}){let i=e.realB.add(n),r=new X.default(2).mul(i).mul(ne).div(e.virtualA);return new X.default(new x(r.toString()).sqrt().toFixed(0)).sub(e.realA)}static buyExactOut({poolInfo:e,amount:n}){let i=e.realA.add(n),r=i.mul(i),{div:o,mod:s}=e.virtualA.mul(r).divmod(new X.default(2).mul(ne));return(s.isZero()?o:o.add(new X.default(1))).sub(e.realB)}static sellExactIn({poolInfo:e,amount:n}){let i=e.realA.sub(n),r=i.mul(i),{div:o,mod:s}=e.virtualA.mul(r).divmod(new X.default(2).mul(ne)),a=s.isZero()?o:o.add(new X.default(1));return e.realB.sub(a)}static sellExactOut({poolInfo:e,amount:n}){let i=e.realB.sub(n),r=new X.default(2).mul(i).mul(ne).div(e.virtualA),o=new X.default(new x(r.toString()).sqrt().toFixed(0));return e.realA.sub(o)}};var Ue=class{static getPoolCurvePointByPoolInfo({curveType:e,pointCount:n,poolInfo:i}){return this.getPoolCurvePointByInit({curveType:e,pointCount:n,supply:i.supply,totalFundRaising:i.totalFundRaisingB,totalSell:i.totalSellA,totalLockedAmount:i.vestingSchedule.totalLockedAmount,migrateFee:i.migrateFee,decimalA:i.mintDecimalsA,decimalB:i.mintDecimalsB})}static getPoolCurvePointByInit({curveType:e,pointCount:n,supply:i,totalFundRaising:r,totalSell:o,totalLockedAmount:s,migrateFee:a,decimalA:c,decimalB:u}){if(n<3)throw Error("point count < 3");let l=this.getCurve(e),m=l.getInitParam({supply:i,totalFundRaising:r,totalSell:o,totalLockedAmount:s,migrateFee:a}),d=l.getPoolInitPriceByInit(Y(Z({},m),{decimalA:c,decimalB:u})),b=r.div(new ie.default(n-1)),h=new ie.default(0),P=[{price:d,totalSellSupply:0}],{a:O,b:S}=m,D=h,B=h;for(let E=1;E<n;E++){let ge=E!==n-1?b:r.sub(B),Q=this.buyExactIn({poolInfo:{virtualA:O,virtualB:S,realA:D,realB:B,totalFundRaisingB:r,totalSellA:o},amountB:ge,protocolFeeRate:h,platformFeeRate:h,curveType:e,shareFeeRate:h});D=D.add(Q.amountA),B=B.add(Q.amountB);let Se=this.getPrice({poolInfo:{virtualA:O,virtualB:S,realA:D,realB:B},decimalA:c,decimalB:u,curveType:e});P.push({price:Se,totalSellSupply:new x(D.toString()).div(10**c).toNumber()})}return P}static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i,curveType:r}){return this.getCurve(r).getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i})}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r,curveType:o}){return this.getCurve(o).getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r})}static getPrice({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolPrice({poolInfo:e,decimalA:i,decimalB:r})}static getEndPrice({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolPrice({poolInfo:e,decimalA:i,decimalB:r})}static getPoolEndPriceReal({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolEndPriceReal({poolInfo:e,decimalA:i,decimalB:r})}static checkParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,decimals:o,config:s,migrateType:a}){if(Number(o)!==6)throw Error("decimals = 6");if(e.mul(s.maxLockRate).div(be).lt(r))throw Error("total lock amount gte max lock amount");if(e.lt(s.minSupplyA.mul(new ie.default(10**o))))throw Error("supply lt min supply");let u=e.mul(s.minSellRateA).div(be);if(i.lt(u))throw Error("invalid input");if(n.lt(s.minFundRaisingB))throw Error("total fund raising lt min fund raising");let l=e.sub(i).sub(r),m=e.mul(s.minMigrateRateA).div(be);if(l.lt(m))throw Error("migrate lt min migrate amount");let d=e.sub(i).sub(r),b=new ie.default(new x(d.mul(n).toString()).sqrt().toFixed(0));if(a==="amm"){let h=new ie.default(10).pow(new ie.default(o));if(b.lte(h))throw Error("check migrate lp error")}else if(a==="cpmm"){let h=new ie.default(100);if(b.lte(h))throw Error("check migrate lp error")}else throw Error("migrate type error")}static buyExactIn({poolInfo:e,amountB:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=i.add(s).add(r),c=this.calculateFee({amount:n,feeRate:a}),u=n.sub(c),l=this.getCurve(o),m=l.buyExactIn({poolInfo:e,amount:u}),d=e.totalSellA.sub(e.realA),b,h,P;if(m.gt(d)){b=d;let S=l.buyExactOut({poolInfo:e,amount:b});h=this.calculatePreFee({postFeeAmount:S,feeRate:a}),P=h.sub(S)}else b=m,h=n,P=c;let O=this.splitFee({totalFee:P,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:b,amountB:h,splitFee:O}}static buyExactOut({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=e.totalSellA.sub(e.realA),c=n;n.gt(a)&&(c=a);let l=this.getCurve(o).buyExactOut({poolInfo:e,amount:n}),m=i.add(s).add(r),d=this.calculatePreFee({postFeeAmount:l,feeRate:m}),b=d.sub(l),h=this.splitFee({totalFee:b,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:c,amountB:d,splitFee:h}}static sellExactIn({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let c=this.getCurve(o).sellExactIn({poolInfo:e,amount:n}),u=this.calculateFee({amount:c,feeRate:i.add(s).add(r)}),l=this.splitFee({totalFee:u,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:n,amountB:c.sub(u),splitFee:l}}static sellExactOut({poolInfo:e,amountB:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=i.add(s).add(r),c=this.calculatePreFee({postFeeAmount:n,feeRate:a});if(e.realB.lt(c))throw Error("Insufficient liquidity");let u=c.sub(n),m=Ue.getCurve(o).sellExactOut({poolInfo:e,amount:c});if(m.gt(e.realA))throw Error();let d=this.splitFee({totalFee:u,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:m,amountB:n,splitFee:d}}static splitFee({totalFee:e,protocolFeeRate:n,platformFeeRate:i,shareFeeRate:r}){let o=n.add(i).add(r),s=o.isZero()?new ie.default(0):e.mul(i).div(o),a=o.isZero()?new ie.default(0):e.mul(r).div(o),c=e.sub(s).sub(a);return{platformFee:s,shareFee:a,protocolFee:c}}static calculateFee({amount:e,feeRate:n}){return xn(e,n,be)}static calculatePreFee({postFeeAmount:e,feeRate:n}){if(n.isZero())return e;let i=e.mul(be),r=be.sub(n);return i.add(r).sub(new ie.default(1)).div(r)}static getCurve(e){switch(e){case 0:return dt;case 1:return pt;case 2:return ft}throw Error("find curve error")}};0&&(module.exports={Curve});
|
|
1
|
+
var Yn=Object.create;var Ne=Object.defineProperty,Jn=Object.defineProperties,$n=Object.getOwnPropertyDescriptor,ei=Object.getOwnPropertyDescriptors,ti=Object.getOwnPropertyNames,Zt=Object.getOwnPropertySymbols,ni=Object.getPrototypeOf,jt=Object.prototype.hasOwnProperty,ii=Object.prototype.propertyIsEnumerable;var zt=(t,e,n)=>e in t?Ne(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Z=(t,e)=>{for(var n in e||(e={}))jt.call(e,n)&&zt(t,n,e[n]);if(Zt)for(var n of Zt(e))ii.call(e,n)&&zt(t,n,e[n]);return t},Y=(t,e)=>Jn(t,ei(e));var ri=(t,e)=>{for(var n in e)Ne(t,n,{get:e[n],enumerable:!0})},Qt=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ti(e))!jt.call(t,r)&&r!==n&&Ne(t,r,{get:()=>e[r],enumerable:!(i=$n(e,r))||i.enumerable});return t};var L=(t,e,n)=>(n=t!=null?Yn(ni(t)):{},Qt(e||!t||!t.__esModule?Ne(n,"default",{value:t,enumerable:!0}):n,t)),oi=t=>Qt(Ne({},"__esModule",{value:!0}),t);var so={};ri(so,{Curve:()=>Ue});module.exports=oi(so);var ie=L(require("bn.js"));var Ie=L(require("bn.js"));var ye=9e15,me=1e9,yt="0123456789abcdef",je="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",wt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ye,maxE:ye,crypto:!1},en,se,k=!0,Je="[DecimalError] ",le=Je+"Invalid argument: ",tn=Je+"Precision limit exceeded",nn=Je+"crypto unavailable",rn="[object Decimal]",W=Math.floor,v=Math.pow,si=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ai=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ui=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,on=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ee=1e7,A=7,ci=9007199254740991,li=je.length-1,Pt=Qe.length-1,p={toStringTag:rn};p.absoluteValue=p.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};p.ceil=function(){return g(new this.constructor(this),this.e+1,2)};p.clampedTo=p.clamp=function(t,e){var n,i=this,r=i.constructor;if(t=new r(t),e=new r(e),!t.s||!e.s)return new r(NaN);if(t.gt(e))throw Error(le+e);return n=i.cmp(t),n<0?t:i.cmp(e)>0?e:new r(i)};p.comparedTo=p.cmp=function(t){var e,n,i,r,o=this,s=o.d,a=(t=new o.constructor(t)).d,c=o.s,u=t.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==t.e)return o.e>t.e^c<0?1:-1;for(i=s.length,r=a.length,e=0,n=i<r?i:r;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};p.cosine=p.cos=function(){var t,e,n=this,i=n.constructor;return n.d?n.d[0]?(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+A,i.rounding=1,n=mi(i,ln(i,n)),i.precision=t,i.rounding=e,g(se==2||se==3?n.neg():n,t,e,!0)):new i(1):new i(NaN)};p.cubeRoot=p.cbrt=function(){var t,e,n,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(k=!1,o=l.s*v(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=_(l.d),t=l.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=v(n,1/3),t=W((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),i=new m(n),i.s=l.s):i=new m(o.toString()),s=(t=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=N(u.plus(l).times(a),u.plus(c),s+2,1),_(a.d).slice(0,s)===(n=_(i.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!r&&n=="4999"){if(!r&&(g(a,t+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(i,t+1,1),e=!i.times(i).times(i).eq(l));break}return k=!0,g(i,t,m.rounding,e)};p.decimalPlaces=p.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-W(this.e/A))*A,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(t){return N(this,new this.constructor(t))};p.dividedToIntegerBy=p.divToInt=function(t){var e=this,n=e.constructor;return g(N(e,new n(t),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(t){return this.cmp(t)===0};p.floor=function(){return g(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(t){return this.cmp(t)>0};p.greaterThanOrEqualTo=p.gte=function(t){var e=this.cmp(t);return e==1||e===0};p.hyperbolicCosine=p.cosh=function(){var t,e,n,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,i=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(t=Math.ceil(r/3),e=(1/et(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=we(s,1,o.times(e),new s(1),!0);for(var c,u=t,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return g(o,s.precision=n,s.rounding=i,!0)};p.hyperbolicSine=p.sinh=function(){var t,e,n,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=we(o,2,r,r,!0);else{t=1.4*Math.sqrt(i),t=t>16?16:t|0,r=r.times(1/et(5,t)),r=we(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(r,e,n,!0)};p.hyperbolicTangent=p.tanh=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+7,i.rounding=1,N(n.sinh(),n.cosh(),i.precision=t,i.rounding=e)):new i(n.s)};p.inverseCosine=p.acos=function(){var t,e=this,n=e.constructor,i=e.abs().cmp(1),r=n.precision,o=n.rounding;return i!==-1?i===0?e.isNeg()?$(n,r,o):new n(0):new n(NaN):e.isZero()?$(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,e=e.asin(),t=$(n,r+4,o).times(.5),n.precision=r,n.rounding=o,t.minus(e))};p.inverseHyperbolicCosine=p.acosh=function(){var t,e,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(t=i.precision,e=i.rounding,i.precision=t+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,k=!1,n=n.times(n).minus(1).sqrt().plus(n),k=!0,i.precision=t,i.rounding=e,n.ln()):new i(n)};p.inverseHyperbolicSine=p.asinh=function(){var t,e,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,k=!1,n=n.times(n).plus(1).sqrt().plus(n),k=!0,i.precision=t,i.rounding=e,n.ln())};p.inverseHyperbolicTangent=p.atanh=function(){var t,e,n,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(t=o.precision,e=o.rounding,i=r.sd(),Math.max(i,t)<2*-r.e-1?g(new o(r),t,e,!0):(o.precision=n=i-r.e,r=N(r.plus(1),new o(1).minus(r),n+t,1),o.precision=t+4,o.rounding=1,r=r.ln(),o.precision=t,o.rounding=e,r.times(.5))):new o(NaN)};p.inverseSine=p.asin=function(){var t,e,n,i,r=this,o=r.constructor;return r.isZero()?new o(r):(e=r.abs().cmp(1),n=o.precision,i=o.rounding,e!==-1?e===0?(t=$(o,n+4,i).times(.5),t.s=r.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=i,r.times(2)))};p.inverseTangent=p.atan=function(){var t,e,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=Pt)return s=$(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=Pt)return s=$(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,n=Math.min(28,a/A+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(k=!1,e=Math.ceil(a/A),i=1,c=u.times(u),s=new l(u),r=u;t!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),k=!0,g(s,l.precision=m,l.rounding=d,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&W(this.e/A)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(t){return this.cmp(t)<0};p.lessThanOrEqualTo=p.lte=function(t){return this.cmp(t)<1};p.logarithm=p.log=function(t){var e,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,b=5;if(t==null)t=new l(10),e=!0;else{if(t=new l(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new l(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(r=n[0];r%10===0;)r/=10;o=r!==1}if(k=!1,a=m+b,s=ce(u,a),i=e?Ye(l,a+10):ce(t,a),c=N(s,i,a,1),Ke(c.d,r=m,d))do if(a+=10,s=ce(u,a),i=e?Ye(l,a+10):ce(t,a),c=N(s,i,a,1),!o){+_(c.d).slice(r+1,r+15)+1==1e14&&(c=g(c,m+1,0));break}while(Ke(c.d,r+=10,d));return k=!0,g(c,m,d)};p.minus=p.sub=function(t){var e,n,i,r,o,s,a,c,u,l,m,d,b=this,h=b.constructor;if(t=new h(t),!b.d||!t.d)return!b.s||!t.s?t=new h(NaN):b.d?t.s=-t.s:t=new h(t.d||b.s!==t.s?b:NaN),t;if(b.s!=t.s)return t.s=-t.s,b.plus(t);if(u=b.d,d=t.d,a=h.precision,c=h.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new h(b);else return new h(c===3?-0:0);return k?g(t,a,c):t}if(n=W(t.e/A),l=W(b.e/A),u=u.slice(),o=l-n,o){for(m=o<0,m?(e=u,o=-o,s=d.length):(e=d,n=l,s=u.length),i=Math.max(Math.ceil(a/A),s)+2,o>i&&(o=i,e.length=1),e.reverse(),i=o;i--;)e.push(0);e.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}o=0}for(m&&(e=u,u=d,d=e,t.s=-t.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=ee-1;--u[r],u[i]+=ee}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=$e(u,n),k?g(t,a,c):t):new h(c===3?-0:0)};p.modulo=p.mod=function(t){var e,n=this,i=n.constructor;return t=new i(t),!n.d||!t.s||t.d&&!t.d[0]?new i(NaN):!t.d||n.d&&!n.d[0]?g(new i(n),i.precision,i.rounding):(k=!1,i.modulo==9?(e=N(n,t.abs(),0,3,1),e.s*=t.s):e=N(n,t,0,i.modulo,1),e=e.times(t),k=!0,n.minus(e))};p.naturalExponential=p.exp=function(){return At(this)};p.naturalLogarithm=p.ln=function(){return ce(this)};p.negated=p.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};p.plus=p.add=function(t){var e,n,i,r,o,s,a,c,u,l,m=this,d=m.constructor;if(t=new d(t),!m.d||!t.d)return!m.s||!t.s?t=new d(NaN):m.d||(t=new d(t.d||m.s===t.s?m:NaN)),t;if(m.s!=t.s)return t.s=-t.s,m.minus(t);if(u=m.d,l=t.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(t=new d(m)),k?g(t,a,c):t;if(o=W(m.e/A),i=W(t.e/A),u=u.slice(),r=o-i,r){for(r<0?(n=u,r=-r,s=l.length):(n=l,i=o,s=u.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,r>s&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,n=l,l=u,u=n),e=0;r;)e=(u[--r]=u[r]+l[r]+e)/ee|0,u[r]%=ee;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=$e(u,i),k?g(t,a,c):t};p.precision=p.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(le+t);return n.d?(e=sn(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};p.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};p.sine=p.sin=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+Math.max(n.e,n.sd())+A,i.rounding=1,n=pi(i,ln(i,n)),i.precision=t,i.rounding=e,g(se>2?n.neg():n,t,e,!0)):new i(NaN)};p.squareRoot=p.sqrt=function(){var t,e,n,i,r,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(k=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=_(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=W((c+1)/2)-(c<0||c%2),u==1/0?e="5e"+c:(e=u.toExponential(),e=e.slice(0,e.indexOf("e")+1)+c),i=new l(e)):i=new l(u.toString()),n=(c=l.precision)+3;;)if(o=i,i=o.plus(N(s,o,n+2,1)).times(.5),_(o.d).slice(0,n)===(e=_(i.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!r&&e=="4999"){if(!r&&(g(o,c+1,0),o.times(o).eq(s))){i=o;break}n+=4,r=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(i,c+1,1),t=!i.times(i).eq(s));break}return k=!0,g(i,c,l.rounding,t)};p.tangent=p.tan=function(){var t,e,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(t=i.precision,e=i.rounding,i.precision=t+10,i.rounding=1,n=n.sin(),n.s=1,n=N(n,new i(1).minus(n.times(n)).sqrt(),t+10,0),i.precision=t,i.rounding=e,g(se==2||se==4?n.neg():n,t,e,!0)):new i(NaN)};p.times=p.mul=function(t){var e,n,i,r,o,s,a,c,u,l=this,m=l.constructor,d=l.d,b=(t=new m(t)).d;if(t.s*=l.s,!d||!d[0]||!b||!b[0])return new m(!t.s||d&&!d[0]&&!b||b&&!b[0]&&!d?NaN:!d||!b?t.s/0:t.s*0);for(n=W(l.e/A)+W(t.e/A),c=d.length,u=b.length,c<u&&(o=d,d=b,b=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(e=0,r=c+i;r>i;)a=o[r]+b[i]*d[r-i-1]+e,o[r--]=a%ee|0,e=a/ee|0;o[r]=(o[r]+e)%ee|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=$e(o,n),k?g(t,m.precision,m.rounding):t};p.toBinary=function(t,e){return kt(this,2,t,e)};p.toDecimalPlaces=p.toDP=function(t,e){var n=this,i=n.constructor;return n=new i(n),t===void 0?n:(H(t,0,me),e===void 0?e=i.rounding:H(e,0,8),g(n,t+n.e+1,e))};p.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=re(i,!0):(H(t,0,me),e===void 0?e=r.rounding:H(e,0,8),i=g(new r(i),t+1,e),n=re(i,!0,t+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFixed=function(t,e){var n,i,r=this,o=r.constructor;return t===void 0?n=re(r):(H(t,0,me),e===void 0?e=o.rounding:H(e,0,8),i=g(new o(r),t+r.e+1,e),n=re(i,!1,t+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFraction=function(t){var e,n,i,r,o,s,a,c,u,l,m,d,b=this,h=b.d,P=b.constructor;if(!h)return new P(b);if(u=n=new P(1),i=c=new P(0),e=new P(i),o=e.e=sn(h)-b.e-1,s=o%A,e.d[0]=v(10,s<0?A+s:s),t==null)t=o>0?e:u;else{if(a=new P(t),!a.isInt()||a.lt(u))throw Error(le+a);t=a.gt(e)?o>0?e:u:a}for(k=!1,a=new P(_(h)),l=P.precision,P.precision=o=h.length*A*2;m=N(a,e,0,1,1),r=n.plus(m.times(i)),r.cmp(t)!=1;)n=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=e,e=a.minus(m.times(r)),a=r;return r=N(t.minus(n),i,0,1,1),c=c.plus(r.times(u)),n=n.plus(r.times(i)),c.s=u.s=b.s,d=N(u,i,o,1).minus(b).abs().cmp(N(c,n,o,1).minus(b).abs())<1?[u,i]:[c,n],P.precision=l,k=!0,d};p.toHexadecimal=p.toHex=function(t,e){return kt(this,16,t,e)};p.toNearest=function(t,e){var n=this,i=n.constructor;if(n=new i(n),t==null){if(!n.d)return n;t=new i(1),e=i.rounding}else{if(t=new i(t),e===void 0?e=i.rounding:H(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(k=!1,n=N(n,t,0,e,1).times(t),k=!0,g(n)):(t.s=n.s,n=t),n};p.toNumber=function(){return+this};p.toOctal=function(t,e){return kt(this,8,t,e)};p.toPower=p.pow=function(t){var e,n,i,r,o,s,a=this,c=a.constructor,u=+(t=new c(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new c(v(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,t.eq(1))return g(a,i,o);if(e=W(t.e/A),e>=t.d.length-1&&(n=u<0?-u:u)<=ci)return r=an(c,a,n,i),t.s<0?new c(1).div(r):g(r,i,o);if(s=a.s,s<0){if(e<t.d.length-1)return new c(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=v(+a,u),e=n==0||!isFinite(n)?W(u*(Math.log("0."+_(a.d))/Math.LN10+a.e+1)):new c(n+"").e,e>c.maxE+1||e<c.minE-1?new c(e>0?s/0:0):(k=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),r=At(t.times(ce(a,i+n)),i),r.d&&(r=g(r,i+5,1),Ke(r.d,i,o)&&(e=i+10,r=g(At(t.times(ce(a,e+n)),e),e+5,1),+_(r.d).slice(i+1,i+15)+1==1e14&&(r=g(r,i+1,0)))),r.s=s,k=!0,c.rounding=o,g(r,i,o))};p.toPrecision=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=re(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(H(t,1,me),e===void 0?e=r.rounding:H(e,0,8),i=g(new r(i),t,e),n=re(i,t<=i.e||i.e<=r.toExpNeg,t)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(t,e){var n=this,i=n.constructor;return t===void 0?(t=i.precision,e=i.rounding):(H(t,1,me),e===void 0?e=i.rounding:H(e,0,8)),g(new i(n),t,e)};p.toString=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return g(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var t=this,e=t.constructor,n=re(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function _(t){var e,n,i,r=t.length-1,o="",s=t[0];if(r>0){for(o+=s,e=1;e<r;e++)i=t[e]+"",n=A-i.length,n&&(o+=ue(n)),o+=i;s=t[e],i=s+"",n=A-i.length,n&&(o+=ue(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function H(t,e,n){if(t!==~~t||t<e||t>n)throw Error(le+t)}function Ke(t,e,n,i){var r,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=A,r=0):(r=Math.ceil((e+1)/A),e%=A),o=v(10,A-e),a=t[r]%o|0,i==null?e<3?(e==0?a=a/100|0:e==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[r+1]/o/100|0)==v(10,e-2)-1||(a==o/2||a==0)&&(t[r+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==2&&(a=a/10|0),s=(i||n<4)&&a==9999||!i&&n>3&&a==4999):s=((i||n<4)&&a+1==o||!i&&n>3&&a+1==o/2)&&(t[r+1]/o/1e3|0)==v(10,e-3)-1,s}function ze(t,e,n){for(var i,r=[0],o,s=0,a=t.length;s<a;){for(o=r.length;o--;)r[o]*=e;for(r[0]+=yt.indexOf(t.charAt(s++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function mi(t,e){var n,i,r;if(e.isZero())return e;i=e.d.length,i<32?(n=Math.ceil(i/3),r=(1/et(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),t.precision+=n,e=we(t,1,e.times(r),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var N=function(){function t(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function e(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function n(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,c){var u,l,m,d,b,h,P,O,S,D,B,E,ge,Q,Se,Xe,Ce,bt,J,He,Ze=i.constructor,gt=i.s==r.s?1:-1,V=i.d,K=r.d;if(!V||!V[0]||!K||!K[0])return new Ze(!i.s||!r.s||(V?K&&V[0]==K[0]:!K)?NaN:V&&V[0]==0||!K?gt*0:gt/0);for(c?(b=1,l=i.e-r.e):(c=ee,b=A,l=W(i.e/b)-W(r.e/b)),J=K.length,Ce=V.length,S=new Ze(gt),D=S.d=[],m=0;K[m]==(V[m]||0);m++);if(K[m]>(V[m]||0)&&l--,o==null?(Q=o=Ze.precision,s=Ze.rounding):a?Q=o+(i.e-r.e)+1:Q=o,Q<0)D.push(1),h=!0;else{if(Q=Q/b+2|0,m=0,J==1){for(d=0,K=K[0],Q++;(m<Ce||d)&&Q--;m++)Se=d*c+(V[m]||0),D[m]=Se/K|0,d=Se%K|0;h=d||m<Ce}else{for(d=c/(K[0]+1)|0,d>1&&(K=t(K,d,c),V=t(V,d,c),J=K.length,Ce=V.length),Xe=J,B=V.slice(0,J),E=B.length;E<J;)B[E++]=0;He=K.slice(),He.unshift(0),bt=K[0],K[1]>=c/2&&++bt;do d=0,u=e(K,B,J,E),u<0?(ge=B[0],J!=E&&(ge=ge*c+(B[1]||0)),d=ge/bt|0,d>1?(d>=c&&(d=c-1),P=t(K,d,c),O=P.length,E=B.length,u=e(P,B,O,E),u==1&&(d--,n(P,J<O?He:K,O,c))):(d==0&&(u=d=1),P=K.slice()),O=P.length,O<E&&P.unshift(0),n(B,P,E,c),u==-1&&(E=B.length,u=e(K,B,J,E),u<1&&(d++,n(B,J<E?He:K,E,c))),E=B.length):u===0&&(d++,B=[0]),D[m++]=d,u&&B[0]?B[E++]=V[Xe]||0:(B=[V[Xe]],E=1);while((Xe++<Ce||B[0]!==void 0)&&Q--);h=B[0]!==void 0}D[0]||D.shift()}if(b==1)S.e=l,en=h;else{for(m=1,d=D[0];d>=10;d/=10)m++;S.e=m+l*b-1,g(S,a?o+S.e+1:o,s,h)}return S}}();function g(t,e,n,i){var r,o,s,a,c,u,l,m,d,b=t.constructor;e:if(e!=null){if(m=t.d,!m)return t;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=e-r,o<0)o+=A,s=e,l=m[d=0],c=l/v(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/A),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=A,s=o-A+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=A,s=o-A+r,c=s<0?0:l/v(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%v(10,r-s-1)),u=n<4?(c||i)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||i||n==6&&(o>0?s>0?l/v(10,r-s):0:m[d-1])%10&1||n==(t.s<0?8:7)),e<1||!m[0])return m.length=0,u?(e-=t.e+1,m[0]=v(10,(A-e%A)%A),t.e=-e||0):m[0]=t.e=0,t;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=v(10,A-o),m[d]=s>0?(l/v(10,r-s)%v(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,m[0]==ee&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=ee)break;m[d--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return k&&(t.e>b.maxE?(t.d=null,t.e=NaN):t.e<b.minE&&(t.e=0,t.d=[0])),t}function re(t,e,n){if(!t.isFinite())return cn(t);var i,r=t.e,o=_(t.d),s=o.length;return e?(n&&(i=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ue(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):r<0?(o="0."+ue(-r-1)+o,n&&(i=n-s)>0&&(o+=ue(i))):r>=s?(o+=ue(r+1-s),n&&(i=n-r-1)>0&&(o=o+"."+ue(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),n&&(i=n-s)>0&&(r+1===s&&(o+="."),o+=ue(i))),o}function $e(t,e){var n=t[0];for(e*=A;n>=10;n/=10)e++;return e}function Ye(t,e,n){if(e>li)throw k=!0,n&&(t.precision=n),Error(tn);return g(new t(je),e,1,!0)}function $(t,e,n){if(e>Pt)throw Error(tn);return g(new t(Qe),e,n,!0)}function sn(t){var e=t.length-1,n=e*A+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function ue(t){for(var e="";t--;)e+="0";return e}function an(t,e,n,i){var r,o=new t(1),s=Math.ceil(i/A+4);for(k=!1;;){if(n%2&&(o=o.times(e),Jt(o.d,s)&&(r=!0)),n=W(n/2),n===0){n=o.d.length-1,r&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Jt(e.d,s)}return k=!0,o}function Yt(t){return t.d[t.d.length-1]&1}function un(t,e,n){for(var i,r=new t(e[0]),o=0;++o<e.length;)if(i=new t(e[o]),i.s)r[n](i)&&(r=i);else{r=i;break}return r}function At(t,e){var n,i,r,o,s,a,c,u=0,l=0,m=0,d=t.constructor,b=d.rounding,h=d.precision;if(!t.d||!t.d[0]||t.e>17)return new d(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(k=!1,c=h):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),m+=5;for(i=Math.log(v(2,m))/Math.LN10*2+5|0,c+=i,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++l),a=s.plus(N(o,n,c,1)),_(a.d).slice(0,c)===_(s.d).slice(0,c)){for(r=m;r--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Ke(s.d,c-i,b,u))d.precision=c+=10,n=o=a=new d(1),l=0,u++;else return g(s,d.precision=h,b,k=!0);else return d.precision=h,s}s=a}}function ce(t,e){var n,i,r,o,s,a,c,u,l,m,d,b=1,h=10,P=t,O=P.d,S=P.constructor,D=S.rounding,B=S.precision;if(P.s<0||!O||!O[0]||!P.e&&O[0]==1&&O.length==1)return new S(O&&!O[0]?-1/0:P.s!=1?NaN:O?0:P);if(e==null?(k=!1,l=B):l=e,S.precision=l+=h,n=_(O),i=n.charAt(0),Math.abs(o=P.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)P=P.times(t),n=_(P.d),i=n.charAt(0),b++;o=P.e,i>1?(P=new S("0."+n),o++):P=new S(i+"."+n.slice(1))}else return u=Ye(S,l+2,B).times(o+""),P=ce(new S(i+"."+n.slice(1)),l-h).plus(u),S.precision=B,e==null?g(P,B,D,k=!0):P;for(m=P,c=s=P=N(P.minus(1),P.plus(1),l,1),d=g(P.times(P),l,1),r=3;;){if(s=g(s.times(d),l,1),u=c.plus(N(s,new S(r),l,1)),_(u.d).slice(0,l)===_(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Ye(S,l+2,B).times(o+""))),c=N(c,new S(b),l,1),e==null)if(Ke(c.d,l-h,D,a))S.precision=l+=h,u=s=P=N(m.minus(1),m.plus(1),l,1),d=g(P.times(P),l,1),r=a=1;else return g(c,S.precision=B,D,k=!0);else return S.precision=B,c;c=u,r+=2}}function cn(t){return String(t.s*t.s/0)}function ht(t,e){var n,i,r;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charCodeAt(i)===48;i++);for(r=e.length;e.charCodeAt(r-1)===48;--r);if(e=e.slice(i,r),e){if(r-=i,t.e=n=n-i-1,t.d=[],i=(n+1)%A,n<0&&(i+=A),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=A;i<r;)t.d.push(+e.slice(i,i+=A));e=e.slice(i),i=A-e.length}else i-=r;for(;i--;)e+="0";t.d.push(+e),k&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function di(t,e){var n,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),on.test(e))return ht(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(ai.test(e))n=16,e=e.toLowerCase();else if(si.test(e))n=2;else if(ui.test(e))n=8;else throw Error(le+e);for(o=e.search(/p/i),o>0?(c=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,i=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,r=an(i,new i(n),o,o*2)),u=ze(e,n,ee),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(t.s*0):(t.e=$e(u,l),t.d=u,k=!1,s&&(t=N(t,r,a*4)),c&&(t=t.times(Math.abs(c)<54?v(2,c):Le.pow(2,c))),k=!0,t)}function pi(t,e){var n,i=e.d.length;if(i<3)return e.isZero()?e:we(t,2,e,e);n=1.4*Math.sqrt(i),n=n>16?16:n|0,e=e.times(1/et(5,n)),e=we(t,2,e,e);for(var r,o=new t(5),s=new t(16),a=new t(20);n--;)r=e.times(e),e=e.times(o.plus(r.times(s.times(r).minus(a))));return e}function we(t,e,n,i,r){var o,s,a,c,u=1,l=t.precision,m=Math.ceil(l/A);for(k=!1,c=n.times(n),a=new t(i);;){if(s=N(a.times(c),new t(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=N(s.times(c),new t(e++*e++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return k=!0,s.d.length=m+1,s}function et(t,e){for(var n=t;--e;)n*=t;return n}function ln(t,e){var n,i=e.s<0,r=$(t,t.precision,1),o=r.times(.5);if(e=e.abs(),e.lte(o))return se=i?4:1,e;if(n=e.divToInt(r),n.isZero())se=i?3:2;else{if(e=e.minus(n.times(r)),e.lte(o))return se=Yt(n)?i?2:3:i?4:1,e;se=Yt(n)?i?1:4:i?3:2}return e.minus(r).abs()}function kt(t,e,n,i){var r,o,s,a,c,u,l,m,d,b=t.constructor,h=n!==void 0;if(h?(H(n,1,me),i===void 0?i=b.rounding:H(i,0,8)):(n=b.precision,i=b.rounding),!t.isFinite())l=cn(t);else{for(l=re(t),s=l.indexOf("."),h?(r=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new b(1),d.e=l.length-s,d.d=ze(re(d),10,r),d.e=d.d.length),m=ze(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=h?"0p+0":"0";else{if(s<0?o--:(t=new b(t),t.d=m,t.e=o,t=N(t,d,n,i,0,r),m=t.d,o=t.e,u=en),s=m[n],a=r/2,u=u||m[n+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(t.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[n-1]&1||i===(t.s<0?8:7)),m.length=n,u)for(;++m[--n]>r-1;)m[n]=0,n||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=yt.charAt(m[s]);if(h){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=ze(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=yt.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(e==16?"0x":e==2?"0b":e==8?"0o":"")+l}return t.s<0?"-"+l:l}function Jt(t,e){if(t.length>e)return t.length=e,!0}function fi(t){return new this(t).abs()}function bi(t){return new this(t).acos()}function gi(t){return new this(t).acosh()}function yi(t,e){return new this(t).plus(e)}function wi(t){return new this(t).asin()}function Pi(t){return new this(t).asinh()}function Ai(t){return new this(t).atan()}function hi(t){return new this(t).atanh()}function ki(t,e){t=new this(t),e=new this(e);var n,i=this.precision,r=this.rounding,o=i+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=$(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?$(this,i,r):new this(0),n.s=t.s):!t.d||e.isZero()?(n=$(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(t,e,o,1)),e=$(this,o,1),this.precision=i,this.rounding=r,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(N(t,e,o,1)),n}function Ti(t){return new this(t).cbrt()}function Bi(t){return g(t=new this(t),t.e+1,2)}function xi(t,e,n){return new this(t).clamp(e,n)}function Ii(t){if(!t||typeof t!="object")throw Error(Je+"Object expected");var e,n,i,r=t.defaults===!0,o=["precision",1,me,"rounding",0,8,"toExpNeg",-ye,0,"toExpPos",0,ye,"maxE",0,ye,"minE",-ye,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],r&&(this[n]=wt[n]),(i=t[n])!==void 0)if(W(i)===i&&i>=o[e+1]&&i<=o[e+2])this[n]=i;else throw Error(le+n+": "+i);if(n="crypto",r&&(this[n]=wt[n]),(i=t[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(nn);else this[n]=!1;else throw Error(le+n+": "+i);return this}function Si(t){return new this(t).cos()}function Ci(t){return new this(t).cosh()}function mn(t){var e,n,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,$t(o)){u.s=o.s,k?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;k?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return ht(u,o.toString())}else if(c!=="string")throw Error(le+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),on.test(o)?ht(u,o):di(u,o)}if(r.prototype=p,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=Ii,r.clone=mn,r.isDecimal=$t,r.abs=fi,r.acos=bi,r.acosh=gi,r.add=yi,r.asin=wi,r.asinh=Pi,r.atan=Ai,r.atanh=hi,r.atan2=ki,r.cbrt=Ti,r.ceil=Bi,r.clamp=xi,r.cos=Si,r.cosh=Ci,r.div=Ni,r.exp=Ki,r.floor=Li,r.hypot=Ri,r.ln=Mi,r.log=Fi,r.log10=Ei,r.log2=Oi,r.max=vi,r.min=Di,r.mod=_i,r.mul=Vi,r.pow=Wi,r.random=qi,r.round=Gi,r.sign=Ui,r.sin=Xi,r.sinh=Hi,r.sqrt=Zi,r.sub=zi,r.sum=ji,r.tan=Qi,r.tanh=Yi,r.trunc=Ji,t===void 0&&(t={}),t&&t.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<i.length;)t.hasOwnProperty(n=i[e++])||(t[n]=this[n]);return r.config(t),r}function Ni(t,e){return new this(t).div(e)}function Ki(t){return new this(t).exp()}function Li(t){return g(t=new this(t),t.e+1,3)}function Ri(){var t,e,n=new this(0);for(k=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return k=!0,new this(1/0);n=e}return k=!0,n.sqrt()}function $t(t){return t instanceof Le||t&&t.toStringTag===rn||!1}function Mi(t){return new this(t).ln()}function Fi(t,e){return new this(t).log(e)}function Oi(t){return new this(t).log(2)}function Ei(t){return new this(t).log(10)}function vi(){return un(this,arguments,"lt")}function Di(){return un(this,arguments,"gt")}function _i(t,e){return new this(t).mod(e)}function Vi(t,e){return new this(t).mul(e)}function Wi(t,e){return new this(t).pow(e)}function qi(t){var e,n,i,r,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:H(t,1,me),i=Math.ceil(t/A),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(i));o<i;)r=e[o],r>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(i*=4);o<i;)r=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(nn);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],t%=A,i&&t&&(r=v(10,A-t),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=A)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<A&&(n-=A-i)}return s.e=n,s.d=a,s}function Gi(t){return g(t=new this(t),t.e+1,this.rounding)}function Ui(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Xi(t){return new this(t).sin()}function Hi(t){return new this(t).sinh()}function Zi(t){return new this(t).sqrt()}function zi(t,e){return new this(t).sub(e)}function ji(){var t=0,e=arguments,n=new this(e[t]);for(k=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return k=!0,g(n,this.precision,this.rounding)}function Qi(t){return new this(t).tan()}function Yi(t){return new this(t).tanh()}function Ji(t){return g(t=new this(t),t.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var Le=p.constructor=mn(wt);je=new Le(je);Qe=new Le(Qe);var x=Le;var er=require("@solana/web3.js");var Re=require("lodash");var Tt=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},dn={},$i={};function G(t){let e=(0,Re.get)(dn,t);if(!e){let n=(0,Re.get)($i,t);e=new Tt({name:t,logLevel:n}),(0,Re.set)(dn,t,e)}return e}var tt=require("@solana/spl-token"),go=G("Raydium_accountInfo_util");var te=L(require("bn.js"));var wn=L(require("big.js")),or=L(require("bn.js"));var fn=L(require("toformat")),tr=fn.default,Me=tr;var Fe=L(require("big.js")),gn=L(require("bn.js")),yn=L(require("decimal.js-light"));var Pe=L(require("bn.js"));var bn=9007199254740991;function oe(t){let e=G("Raydium_parseBigNumberish");if(t instanceof Pe.default)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Pe.default(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=bn||t<=-bn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Pe.default(String(t))):typeof t=="bigint"?new Pe.default(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Pe.default(0))}var it=G("module/fraction"),Bt=Me(Fe.default),Oe=Me(yn.default),ir={[0]:Oe.ROUND_DOWN,[1]:Oe.ROUND_HALF_UP,[2]:Oe.ROUND_UP},rr={[0]:Fe.default.roundDown,[1]:Fe.default.roundHalfUp,[2]:Fe.default.roundUp},R=class{constructor(e,n=new gn.default(1)){this.numerator=oe(e),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new R(this.denominator,this.numerator)}add(e){let n=e instanceof R?e:new R(oe(e));return this.denominator.eq(n.denominator)?new R(this.numerator.add(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof R?e:new R(oe(e));return this.denominator.eq(n.denominator)?new R(this.numerator.sub(n.numerator),this.denominator):new R(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof R?e:new R(oe(e));return new R(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof R?e:new R(oe(e));return new R(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||it.logWithError(`${e} is not an integer.`),e<=0&&it.logWithError(`${e} is not positive.`),Oe.set({precision:e+1,rounding:ir[i]});let r=new Oe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},i=1){return Number.isInteger(e)||it.logWithError(`${e} is not an integer.`),e<0&&it.logWithError(`${e} is negative.`),Bt.DP=e,Bt.RM=rr[i]||1,new Bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Oo=G("Raydium_amount"),Eo=Me(wn.default);var Pn=require("@solana/web3.js"),xt=require("@solana/spl-token"),It={chainId:101,address:Pn.PublicKey.default.toBase58(),programId:xt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:xt.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var rt=require("@solana/web3.js");var I=require("@solana/web3.js"),An=require("@solana/spl-token");function St({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var Vo=[St({pubkey:An.TOKEN_PROGRAM_ID,isWritable:!1}),St({pubkey:I.SystemProgram.programId,isWritable:!1}),St({pubkey:I.SYSVAR_RENT_PUBKEY,isWritable:!1})];function hn({publicKey:t,transformSol:e}){let n=kn(t.toString());if(n instanceof I.PublicKey)return e&&n.equals(Ee)?nt:n;if(e&&n.toString()===Ee.toBase58())return nt;if(typeof n=="string"){if(n===I.PublicKey.default.toBase58())return I.PublicKey.default;try{return new I.PublicKey(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function kn(t){try{return new I.PublicKey(t)}catch{return t}}var ar=new I.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ur=new I.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),cr=new I.PublicKey("SysvarRent111111111111111111111111111111111"),Wo=new I.PublicKey("SysvarC1ock11111111111111111111111111111111"),Tn=new I.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),qo=new I.PublicKey("Sysvar1nstructions1111111111111111111111111"),Go=I.SystemProgram.programId,Uo=new I.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xo=new I.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ho=new I.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Zo=new I.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zo=new I.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),jo=new I.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Qo=new I.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Yo=new I.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Jo=new I.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$o=new I.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),es=new I.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),nt=new I.PublicKey("So11111111111111111111111111111111111111112"),Ee=I.PublicKey.default;var Ct=class{constructor({mint:e,decimals:n,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===Ee.toBase58()||e instanceof rt.PublicKey&&Ee.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new rt.PublicKey(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=o?rt.PublicKey.default:hn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},pe=Ct;pe.WSOL=new Ct(Y(Z({},de),{mint:de.address}));var Nt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},ot=Nt;ot.SOL=new Nt(It);var Bn=L(require("bn.js"));var ls=new R(new Bn.default(100));var gs=G("Raydium_price");var mr=require("@solana/web3.js"),dr=L(require("bn.js"));var lr=new te.default(0),zs=new te.default(1),js=new te.default(2),Qs=new te.default(3),Ys=new te.default(5),sr=new te.default(10),Js=new te.default(100),$s=new te.default(1e3),ea=new te.default(1e4);function xn(t,e,n){return t.mul(e).add(n).sub(new te.default(1)).div(n)}var br=require("@solana/web3.js"),gr=require("@solana/spl-token");var Ae=require("@solana/web3.js");var pr=require("@solana/spl-token"),pa=G("Raydium_txUtil");var f=require("@solana/web3.js"),ya=new f.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),wa=new f.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Pa=new f.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Aa=new f.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ha=new f.PublicKey("Ray1111111111111111111111111111111111111111"),ka=new f.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ta=new f.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ba=new f.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xa=new f.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ia=new f.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Sa=new f.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yr=new f.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),wr=new f.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pr=new f.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ca=new f.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),In=new f.PublicKey("Ray1111111111111111111111111111111111111111"),Na=new f.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ka=new f.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),La=new f.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ra=new f.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ma=new f.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Fa=new f.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Oa=new f.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ea=new f.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),va=new f.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ar=new f.PublicKey("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),hr=new f.PublicKey("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),kr=new f.PublicKey("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Da=new f.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Tr=new f.PublicKey("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),_a=new f.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Br=new f.PublicKey("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix"),Va=new f.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Wa=new f.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),xr=new f.PublicKey("LanD8FpTBBvzZFXjTxsAoipkFsxPUCDB4qAqKxYDiNP"),Ir=new f.PublicKey("HYNHiyKJ3gGVFvyxJAurK7qr7P2o5J9THmvCGMdULtpW"),qa=new f.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Sn=new f.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),Ga=new f.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Cn=new f.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt");var Ua={AMM_V4:new f.PublicKey("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AMM_STABLE:new f.PublicKey("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM_PROGRAM_ID:new f.PublicKey("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new f.PublicKey("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new f.PublicKey("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),FARM_PROGRAM_ID_V3:new f.PublicKey("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FARM_PROGRAM_ID_V5:new f.PublicKey("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FARM_PROGRAM_ID_V6:new f.PublicKey("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),OPEN_BOOK_PROGRAM:new f.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:f.PublicKey.default,UTIL1216:f.PublicKey.default,Router:new f.PublicKey("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Ar,CREATE_CPMM_POOL_AUTH:hr,CREATE_CPMM_POOL_FEE_ACC:kr,LOCK_CPMM_PROGRAM:Tr,LOCK_CPMM_AUTH:Br,LAUNCHPAD_PROGRAM:xr,LAUNCHPAD_AUTH:Ir,LAUNCHPAD_PLATFORM:Sn,LAUNCHPAD_CONFIG:Cn,FEE_DESTINATION_ID:new f.PublicKey("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),MODEL_DATA_PUBKEY:In},Xa={OPEN_BOOK_PROGRAM:new f.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new f.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new f.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new f.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new f.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new f.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new f.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new f.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new f.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new f.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new f.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new f.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:f.PublicKey.default,Router:new f.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new f.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V5:new f.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new f.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new f.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new f.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:Sn,LAUNCHPAD_CONFIG:Cn,FEE_DESTINATION_ID:new f.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:In};var ve=L(require("bn.js"));function at(t,e){if(t.isZero())return new ve.default(0);let n=t.div(e);return n.isZero()?new ve.default(1):t.mod(e).gt(new ve.default(0))?n.add(new ve.default(1)):n}var De=require("@solana/web3.js");var Sr={AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU:new De.AddressLookupTableAccount({key:new De.PublicKey("AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU"),state:De.AddressLookupTableAccount.deserialize(Buffer.from("AQAAAP//////////I1rcEwAAAAAvAQYwun9CU6c5Ikm2pAj+D9IEnCOR45nK+SFTGSdpd6J6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpBt324e51j94YQl285GzN2rYa/E2DuQ0n/r35KNihi/wFSlNQ+F3IgtYUpVZyeIopbd8eq6vQpgZ4iEky9O72oAVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvBkX2T9y7AHdNGviJAqQNtlDUDCnauQRWybsLji6nPM8Qkw5asQRvCdB3MbX6IEBwytOrpM32l4jQygKG9TKgR0vZScQ2AsM/IHeQ7RajUkyhuZdc8SGiqQz/7H34torNR/Wir3sl0ruUrVxJWEZfUg+QLNAxxODdBi53/OP7Ioil1cqeBM9dtZC3FLov4yyxWRM/wcGStyJX/QfTnLBAHqkqWotPKVlShCVQqpP9W5W1rOao65IMk5QuQ2kMIOxzDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu/YsA/yfEEFGcr8Z57VKDw8uQzpiru7g4lvjnfapW62W030syevD8k07SGoxUHiuT/ai7gAHWWhDsVmg/C63ajgpkH7Sn3GdutArDTfyqOkdqv4/IPC/EFFy7mGkfDd2C57N5a/4jC+BbmJy7wQaSEZr0CQU88lPtUxIVvzGjC95b8Ooss2TqmkrayGKofkPMGQn7Ux+9lfwBSNfxwH8NgbpqC/7LNlV4I7nCvsXf3p+ohQk9NrAJb2KAFpUqEIJ9ZBV7BYDzHF/ORKYlgtvPnXjudZQ6CEo5OzUDaNIomTCCsvhD16TxJjsbgne1kGnQPCFSoaxUbq2V1bPMFQ3VYP6wDZ9bKStCFKx9A3tNbwZFC5ZGAN83MFK7XoTy+OmmcFEr6rLOjfSuTfPvHJkSVxW6Qllwkl67XcBi5v00u2gQsbu+38sp+rd5pA/LvyWj4P94ZGZwc1tE2P88xekCLcAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAn+HWRkdcPKyFFMnVwEoD7vnD0jCKFIU1sImubYCxNTSVzsKpaQX+fzNxrLAI3L14JQnJx/D6Uk2LADIHGqnGELzjEbkBDAlaM77NkXMPfqXNLSveCkWI7UEgNs31WEWB6XHSYI/v5DklHOb4QTtDOR804PVbi3fjloZeLR2F8d4FuZmMMO7ck3Fnkn2zEMG5gOmqsygb6PjTitArVl52NhcSznTxVnguaIJxiZkAnurDmn3MWR0PC2GLghp2KJqHCc6QQ85odeIjFHKOlRlJyeSXVJmL8vb1UgOzsbJPVP8p6zM4M3C1Sd7uWIHP33G42AP2Zg8ucn/n6meQjjD266JgCWdxZD6PXs9CsnIeL7SSG0/6lGb9xfP0ZcWkCXB/3hjxHYVXjra/GPOeXGk0fLLKjCbk+mgs2w6d2oCwimBipTzuoZ30GiI8ij8VRzD5CzMWtu2m21eDBIfjGAEo4pQeNNonKcqzV/cleX8ySZLOHsz8PtBCrLqF+VkLm9hOzIT+6i/nIf6keR4GWKMOD4AvqfpjHoD4DuhBpz8P28+DxkGrDXXr/nr20x291VPvcTU/b+b+o2kC9G0kcXeTlLjU6a2TQXWlZ4gBUdBl1jgT7mObSTpLblNiXZsLkbmVXZwvFKXua5cUKlWed/w30skmEUraTuQqtqr5fHZPW9n57EmeTif6LjHL2YJFZkQU+TrJmFzqzmF4/b8OwrPQAprl8mX3q4LUIdAS/a+11B6DWD1Xk2++Sn94dLC4xjkO4Wtlw8c4XuzciVbepHOmnoWzVu/0y3KCrLCSfQxQ3br8DJCoVzhgtPsS2nZZjsBGIZgnU0QpMv+2MnRsnKwdp1VsrCX84j/qvaZn4WhKunippgTbN2EUs0tPTP55Qfgj+nKmjtWW5IYs72FrEwJKYoNfsmqaF4o5pf4v9zgPwVwY/5I4XJKUL2L25m9kAQcW/K+H1RTFEUoj8Z4ajpOmAB/dG0COmCphVMW2CCMvnxhcGiSgPnpDuWu6qiJ7NG7ye5kvHgefgqPLeicspNJ5EpL3XiRNLM2tmJLI1awAwOyd6iHv0dCkMYRKaa6rcaZeYwmKCkckm0kM2JNmnmmAaBQQ7mwmIM0IMxX4f5W6j9PqZWcJxF7r17T/lQBAmcjoupRiJifbnXCNUv9GhpRF19WcBdeKbivRJVlGop6I2RS6lGImJ9udcI1S/0aGlEXX1ZwF14puK9ElWUainojZFYVHLHD6dIP2ESjqBzg3ol1/wB7+/ylGwd9LS7wSZ2A630CJSVKwH47K9P4bB8PEQP8BwjMFa7xQHOqZFP1XqaQ==","base64"))})};var he=require("@solana/web3.js"),Kr=L(require("axios"));var Kn=L(require("bn.js")),be=new Kn.default(1e6);var fe=class{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){throw Error()}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){throw Error()}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){throw Error()}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){throw Error()}static buyExactIn({poolInfo:e,amount:n}){throw Error()}static buyExactOut({poolInfo:e,amount:n}){throw Error()}static sellExactIn({poolInfo:e,amount:n}){throw Error()}static sellExactOut({poolInfo:e,amount:n}){throw Error()}};var ro=require("@solana/web3.js"),oo=L(require("bn.js"));var mt=require("@solana/spl-token");var Lr=require("@solana/web3.js"),Ln=require("@solana/spl-token");var lt=require("@solana/web3.js"),io=L(require("bn.js"));var Ut=require("@solana/spl-token");var On=require("@solana/web3.js"),ke=L(require("bn.js"));var y=require("@solana/buffer-layout"),Mt=y.Layout,Rn=y.Structure;var Ft=y.UInt;var Mn=y.u8,_e=y.u16;var ae=y.s32;var Fn=y.seq;var z=y.blob;var Te=class extends Mt{constructor(n,i,r){super(n,r);this.blob=z(n),this.signed=i}decode(n,i=0){let r=new ke.default(this.blob.decode(n,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(n,i,r=0){return typeof n=="number"&&(n=new ke.default(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,r)}};function U(t){return new Ft(1,t)}function Be(t){return new Ft(4,t)}function T(t){return new Te(8,!1,t)}function M(t){return new Te(16,!1,t)}function En(t){return new Te(8,!0,t)}function vn(t){return new Te(16,!0,t)}var ut=class extends Mt{constructor(n,i,r,o){super(n.span,o);this.layout=n,this.decoder=i,this.encoder=r}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,r){return this.layout.encode(this.encoder(n),i,r)}getSpan(n,i){return this.layout.getSpan(n,i)}};function C(t){return new ut(z(32),e=>new On.PublicKey(e),e=>e.toBuffer(),t)}function Et(t){return new ut(Mn(),Rr,Mr,t)}function Rr(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function Mr(t){return t?1:0}var Ot=class extends Rn{decode(e,n){return super.decode(e,n)}};function q(t,e,n){return new Ot(t,e,n)}function F(t,e,n){let i,r=typeof e=="number"?e:(0,ke.isBN)(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=(0,ke.isBN)(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Fn(t,r,n)}var Xr=L(require("bn.js"));var j=L(require("bn.js")),vt=new j.default(0),Dn=new j.default(1),_n=new j.default(-1),ne=new j.default(1).shln(64),Vn=new j.default(1).shln(128),Dt=ne.sub(Dn);var Fr=Vn.subn(1),xe=-443636,Ve=-xe,_t=new j.default("4295048016"),Vt=new j.default("79226673521066979257578248091"),rc=new j.default("4295048017"),oc=new j.default("79226673521066979257578248090");var Or=new j.default(10).pow(new j.default(6));var sc=new j.default("18446744073700000000");var Ur=L(require("bn.js"));var pc=Buffer.from("amm_config","utf8"),fc=Buffer.from("pool","utf8"),bc=Buffer.from("pool_vault","utf8"),gc=Buffer.from("pool_reward_vault","utf8"),yc=Buffer.from("position","utf8"),wc=Buffer.from("tick_array","utf8"),Pc=Buffer.from("operation","utf8"),Ac=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hc=Buffer.from("observation","utf8");var kc=Buffer.from("locked_position","utf8");var Tc=Buffer.from("support_mint","utf8");var Vr=require("@solana/web3.js"),Wr=require("@solana/spl-token"),qr=L(require("bn.js"));var Er=L(require("bn.js"));var Gt=14;var ct=60;var Hr=q([z(8),U("bump"),_e("index"),C(""),Be("protocolFeeRate"),Be("tradeFeeRate"),_e("tickSpacing"),F(T(),8,"")]),Zr=q([Be("blockTimestamp"),En("tickCumulative"),F(T(),4)]),Qn=q([z(8),Et("initialized"),T("recentEpoch"),_e("observationIndex"),C("poolId"),F(Zr,100,"observations"),F(T(),4)]),zr=q([U("rewardState"),T("openTime"),T("endTime"),T("lastUpdateTime"),M("emissionsPerSecondX64"),T("rewardTotalEmissioned"),T("rewardClaimed"),C("tokenMint"),C("tokenVault"),C("creator"),M("rewardGrowthGlobalX64")]),Zn=q([z(8),U("bump"),C("ammConfig"),C("creator"),C("mintA"),C("mintB"),C("vaultA"),C("vaultB"),C("observationId"),U("mintDecimalsA"),U("mintDecimalsB"),_e("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),ae("tickCurrent"),Be(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),T("protocolFeesTokenA"),T("protocolFeesTokenB"),M("swapInAmountTokenA"),M("swapOutAmountTokenB"),M("swapInAmountTokenB"),M("swapOutAmountTokenA"),U("status"),F(U(),7,""),F(zr,3,"rewardInfos"),F(T(),16,"tickArrayBitmap"),T("totalFeesTokenA"),T("totalFeesClaimedTokenA"),T("totalFeesTokenB"),T("totalFeesClaimedTokenB"),T("fundFeesTokenA"),T("fundFeesTokenB"),T("startTime"),F(T(),15*4-3,"padding")]),jr=q([M("growthInsideLastX64"),T("rewardAmountOwed")]),zn=q([z(8),U("bump"),C("nftMint"),C("poolId"),ae("tickLower"),ae("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),T("tokenFeesOwedA"),T("tokenFeesOwedB"),F(jr,3,"rewardInfos"),F(T(),8,"")]),Vl=q([z(8),U("bump"),C("poolId"),ae("tickLowerIndex"),ae("tickUpperIndex"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),T("tokenFeesOwedA"),T("tokenFeesOwedB"),F(M(),3,"rewardGrowthInside"),F(T(),8,"")]),Qr=q([ae("tick"),vn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),F(M(),3,"rewardGrowthsOutsideX64"),F(Be(),13,"")]),Un=q([z(8),C("poolId"),ae("startTickIndex"),F(Qr,ct,"ticks"),U("initializedTickCount"),F(U(),115,"")]),Yr=q([z(329),F(C(),100,"whitelistMints")]),Gr=q([z(8),C("poolId"),F(F(T(),8),Gt,"positiveTickArrayBitmap"),F(F(T(),8),Gt,"negativeTickArrayBitmap")]),Wl=q([T(),U("bump"),C("owner"),C("poolId"),C("positionId"),C("nftAccount"),F(T(),8)]),Jr=q([z(8),U("bump"),C("lockOwner"),C("poolId"),C("positionId"),C("nftAccount"),C("lockNftMint"),T("recentEpoch"),F(T(),8)]);Qn.span;var sm=G("Raydium_Clmm");var dt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.add(e.realB).toString()).div(e.virtualA.sub(e.realA).toString()).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB.add(o)).toString()).div(e.virtualA.sub(e.realA.add(r)).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){if(e.lte(i))throw Error("supply need gt total sell");let s=e.sub(i).sub(r);if(s.lte(new Ie.default(0)))throw Error("supplyMinusSellLocked <= 0");let a=n.sub(o);if(a.lte(new Ie.default(0)))throw Error("tfMinusMf <= 0");let c=a.mul(i).mul(i).div(s),u=a.mul(i).div(s).sub(n);if(u.lt(new Ie.default(0)))throw Error("supply/totalSell/totalLockedAmount diff too high");let l=c.div(u),m=n.mul(n).div(u);if(l.lt(new Ie.default(0))||m.lt(new Ie.default(0)))throw Error("invalid input 0");return{a:l,b:m,c:i}}static buyExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static buyExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,inputReserve:e.virtualB.add(e.realB),outputReserve:e.virtualA.sub(e.realA)})}static sellExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static sellExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,inputReserve:e.virtualA.sub(e.realA),outputReserve:e.virtualB.add(e.realB)})}static getAmountOut({amountIn:e,inputReserve:n,outputReserve:i}){let r=e.mul(i),o=n.add(e);return r.div(o)}static getAmountIn({amountOut:e,inputReserve:n,outputReserve:i}){let r=n.mul(e),o=i.sub(e);return at(r,o)}};var Xt=L(require("bn.js"));var pt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB).add(o).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){let s=e.sub(r);if(s.lte(new Xt.default(0)))throw Error("invalid input 1");let a=new Xt.default(2).mul(n).sub(o),u=n.mul(s).div(a);return{a:u,b:n,c:u}}static buyExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,initInput:e.virtualB,initOutput:e.virtualA})}static buyExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,initInput:e.virtualB,initOutput:e.virtualA})}static sellExactIn({poolInfo:e,amount:n}){return this.getAmountOut({amountIn:n,initInput:e.virtualA,initOutput:e.virtualB})}static sellExactOut({poolInfo:e,amount:n}){return this.getAmountIn({amountOut:n,initInput:e.virtualA,initOutput:e.virtualB})}static getAmountOut({amountIn:e,initInput:n,initOutput:i}){return i.mul(e).div(n)}static getAmountIn({amountOut:e,initInput:n,initOutput:i}){let r=n.mul(e);return at(r,i)}};var X=L(require("bn.js"));var Ht=L(require("bn.js"));var Ge=class{static _multipler(e){return new x(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new x(e.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:n,decimalB:i}){let r=e.mul(this._multipler(i)).div(this._multipler(n));return new Ht.default(r.mul(this._Q64).toFixed(0))}};Ge._Q64=new x(new Ht.default(1).shln(64).toString());var ft=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new x(0)}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new x(0)}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new x(e.virtualA.mul(e.realA).toString()).div(Ge._Q64).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new x(r.sub(o).toString()).div(e.sub(n).sub(i).toString()).mul(10**(s-a))}static getPoolEndPriceReal({poolInfo:e,decimalA:n,decimalB:i}){let r=e.totalSellA.sub(e.realA),o=e.totalFundRaisingB.sub(e.realB);return new x(e.virtualB.add(e.realB).add(o).toString()).div(e.virtualA.sub(e.realA).add(r).toString()).mul(10**(n-i))}static getInitParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,migrateFee:o}){let s=e.sub(r);if(s.lte(new X.default(0)))throw Error("supplyMinusLocked need gt 0");let a=n.mul(new X.default(3)).sub(o),u=n.mul(new X.default(2)).mul(s).div(a),l=u.mul(u),m=n.mul(new X.default(2)).mul(ne).div(l);if(!m.gt(new X.default(0)))throw Error("a need gt 0");if(!Dt.gt(m))throw Error("a need lt u64 max");return{a:m,b:new X.default(0),c:u}}static buyExactIn({poolInfo:e,amount:n}){let i=e.realB.add(n),r=new X.default(2).mul(i).mul(ne).div(e.virtualA);return new X.default(new x(r.toString()).sqrt().toFixed(0)).sub(e.realA)}static buyExactOut({poolInfo:e,amount:n}){let i=e.realA.add(n),r=i.mul(i),{div:o,mod:s}=e.virtualA.mul(r).divmod(new X.default(2).mul(ne));return(s.isZero()?o:o.add(new X.default(1))).sub(e.realB)}static sellExactIn({poolInfo:e,amount:n}){let i=e.realA.sub(n),r=i.mul(i),{div:o,mod:s}=e.virtualA.mul(r).divmod(new X.default(2).mul(ne)),a=s.isZero()?o:o.add(new X.default(1));return e.realB.sub(a)}static sellExactOut({poolInfo:e,amount:n}){let i=e.realB.sub(n),r=new X.default(2).mul(i).mul(ne).div(e.virtualA),o=new X.default(new x(r.toString()).sqrt().toFixed(0));return e.realA.sub(o)}};var Ue=class{static getPoolCurvePointByPoolInfo({curveType:e,pointCount:n,poolInfo:i}){return this.getPoolCurvePointByInit({curveType:e,pointCount:n,supply:i.supply,totalFundRaising:i.totalFundRaisingB,totalSell:i.totalSellA,totalLockedAmount:i.vestingSchedule.totalLockedAmount,migrateFee:i.migrateFee,decimalA:i.mintDecimalsA,decimalB:i.mintDecimalsB})}static getPoolCurvePointByInit({curveType:e,pointCount:n,supply:i,totalFundRaising:r,totalSell:o,totalLockedAmount:s,migrateFee:a,decimalA:c,decimalB:u}){if(n<3)throw Error("point count < 3");let l=this.getCurve(e),m=l.getInitParam({supply:i,totalFundRaising:r,totalSell:o,totalLockedAmount:s,migrateFee:a}),d=l.getPoolInitPriceByInit(Y(Z({},m),{decimalA:c,decimalB:u})),b=r.div(new ie.default(n-1)),h=new ie.default(0),P=[{price:d,totalSellSupply:0}],{a:O,b:S}=m,D=h,B=h;for(let E=1;E<n;E++){let ge=E!==n-1?b:r.sub(B),Q=this.buyExactIn({poolInfo:{virtualA:O,virtualB:S,realA:D,realB:B,totalFundRaisingB:r,totalSellA:o},amountB:ge,protocolFeeRate:h,platformFeeRate:h,curveType:e,shareFeeRate:h});D=D.add(Q.amountA),B=B.add(Q.amountB);let Se=this.getPrice({poolInfo:{virtualA:O,virtualB:S,realA:D,realB:B},decimalA:c,decimalB:u,curveType:e});P.push({price:Se,totalSellSupply:new x(D.toString()).div(10**c).toNumber()})}return P}static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i,curveType:r}){return this.getCurve(r).getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i})}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r,curveType:o}){return this.getCurve(o).getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r})}static getPrice({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolPrice({poolInfo:e,decimalA:i,decimalB:r})}static getEndPrice({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolPrice({poolInfo:e,decimalA:i,decimalB:r})}static getPoolEndPriceReal({poolInfo:e,curveType:n,decimalA:i,decimalB:r}){return this.getCurve(n).getPoolEndPriceReal({poolInfo:e,decimalA:i,decimalB:r})}static checkParam({supply:e,totalFundRaising:n,totalSell:i,totalLockedAmount:r,decimals:o,config:s,migrateType:a}){if(Number(o)!==6)throw Error("decimals = 6");if(e.mul(s.maxLockRate).div(be).lt(r))throw Error("total lock amount gte max lock amount");if(e.lt(s.minSupplyA.mul(new ie.default(10**o))))throw Error("supply lt min supply");let u=e.mul(s.minSellRateA).div(be);if(i.lt(u))throw Error("invalid input");if(n.lt(s.minFundRaisingB))throw Error("total fund raising lt min fund raising");let l=e.sub(i).sub(r),m=e.mul(s.minMigrateRateA).div(be);if(l.lt(m))throw Error("migrate lt min migrate amount");let d=e.sub(i).sub(r),b=new ie.default(new x(d.mul(n).toString()).sqrt().toFixed(0));if(a==="amm"){let h=new ie.default(10).pow(new ie.default(o));if(b.lte(h))throw Error("check migrate lp error")}else if(a==="cpmm"){let h=new ie.default(100);if(b.lte(h))throw Error("check migrate lp error")}else throw Error("migrate type error")}static buyExactIn({poolInfo:e,amountB:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=i.add(s).add(r),c=this.calculateFee({amount:n,feeRate:a}),u=n.sub(c),l=this.getCurve(o),m=l.buyExactIn({poolInfo:e,amount:u}),d=e.totalSellA.sub(e.realA),b,h,P;if(m.gt(d)){b=d;let S=l.buyExactOut({poolInfo:e,amount:b});h=this.calculatePreFee({postFeeAmount:S,feeRate:a}),P=h.sub(S)}else b=m,h=n,P=c;let O=this.splitFee({totalFee:P,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:b,amountB:h,splitFee:O}}static buyExactOut({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=e.totalSellA.sub(e.realA),c=n;n.gt(a)&&(c=a);let l=this.getCurve(o).buyExactOut({poolInfo:e,amount:n}),m=i.add(s).add(r),d=this.calculatePreFee({postFeeAmount:l,feeRate:m}),b=d.sub(l),h=this.splitFee({totalFee:b,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:c,amountB:d,splitFee:h}}static sellExactIn({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let c=this.getCurve(o).sellExactIn({poolInfo:e,amount:n}),u=this.calculateFee({amount:c,feeRate:i.add(s).add(r)}),l=this.splitFee({totalFee:u,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:n,amountB:c.sub(u),splitFee:l}}static sellExactOut({poolInfo:e,amountB:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s}){let a=i.add(s).add(r),c=this.calculatePreFee({postFeeAmount:n,feeRate:a});if(e.realB.lt(c))throw Error("Insufficient liquidity");let u=c.sub(n),m=Ue.getCurve(o).sellExactOut({poolInfo:e,amount:c});if(m.gt(e.realA))throw Error();let d=this.splitFee({totalFee:u,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s});return{amountA:m,amountB:n,splitFee:d}}static splitFee({totalFee:e,protocolFeeRate:n,platformFeeRate:i,shareFeeRate:r}){let o=n.add(i).add(r),s=o.isZero()?new ie.default(0):e.mul(i).div(o),a=o.isZero()?new ie.default(0):e.mul(r).div(o),c=e.sub(s).sub(a);return{platformFee:s,shareFee:a,protocolFee:c}}static calculateFee({amount:e,feeRate:n}){return xn(e,n,be)}static calculatePreFee({postFeeAmount:e,feeRate:n}){if(n.isZero())return e;let i=e.mul(be),r=be.sub(n);return i.add(r).sub(new ie.default(1)).div(r)}static getCurve(e){switch(e){case 0:return dt;case 1:return pt;case 2:return ft}throw Error("find curve error")}};0&&(module.exports={Curve});
|
|
2
2
|
//# sourceMappingURL=curve.js.map
|