UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 64.7 kB
var Fn=Object.defineProperty,Mn=Object.defineProperties;var On=Object.getOwnPropertyDescriptors;var Dt=Object.getOwnPropertySymbols;var vn=Object.prototype.hasOwnProperty,En=Object.prototype.propertyIsEnumerable;var _t=(t,e,n)=>e in t?Fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,z=(t,e)=>{for(var n in e||(e={}))vn.call(e,n)&&_t(t,n,e[n]);if(Dt)for(var n of Dt(e))En.call(e,n)&&_t(t,n,e[n]);return t},j=(t,e)=>Mn(t,On(e));import J from"bn.js";var we=9e15,me=1e9,ut="0123456789abcdef",We="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ct={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-we,maxE:we,crypto:!1},Gt,se,T=!0,Ue="[DecimalError] ",le=Ue+"Invalid argument: ",Ut=Ue+"Precision limit exceeded",Xt=Ue+"crypto unavailable",Ht="[object Decimal]",V=Math.floor,E=Math.pow,Dn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,_n=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,zt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,te=1e7,h=7,Wn=9007199254740991,qn=We.length-1,lt=qe.length-1,p={toStringTag:Ht};p.absoluteValue=p.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),y(t)};p.ceil=function(){return y(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())+h,i.rounding=1,n=Gn(i,Jt(i,n)),i.precision=t,i.rounding=e,y(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*E(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=D(l.d),t=l.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=E(n,1/3),t=V((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=C(u.plus(l).times(a),u.plus(c),s+2,1),D(a.d).slice(0,s)===(n=D(i.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!r&&n=="4999"){if(!r&&(y(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")&&(y(i,t+1,1),e=!i.times(i).times(i).eq(l));break}return T=!0,y(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-V(this.e/h))*h,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(t){return C(this,new this.constructor(t))};p.dividedToIntegerBy=p.divToInt=function(t){var e=this,n=e.constructor;return y(C(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 y(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/He(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=Pe(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 y(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=Pe(o,2,r,r,!0);else{t=1.4*Math.sqrt(i),t=t>16?16:t|0,r=r.times(1/He(5,t)),r=Pe(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,y(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,C(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()?ee(n,r,o):new n(0):new n(NaN):e.isZero()?ee(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,e=e.asin(),t=ee(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?y(new o(r),t,e,!0):(o.precision=n=i-r.e,r=C(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=ee(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<=lt)return s=ee(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=lt)return s=ee(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/h+2|0),t=n;t;--t)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(T=!1,e=Math.ceil(a/h),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,y(s,l.precision=m,l.rounding=d,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&V(this.e/h)>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,f=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+f,s=ce(u,a),i=e?Ge(l,a+10):ce(t,a),c=C(s,i,a,1),xe(c.d,r=m,d))do if(a+=10,s=ce(u,a),i=e?Ge(l,a+10):ce(t,a),c=C(s,i,a,1),!o){+D(c.d).slice(r+1,r+15)+1==1e14&&(c=y(c,m+1,0));break}while(xe(c.d,r+=10,d));return T=!0,y(c,m,d)};p.minus=p.sub=function(t){var e,n,i,r,o,s,a,c,u,l,m,d,f=this,b=f.constructor;if(t=new b(t),!f.d||!t.d)return!f.s||!t.s?t=new b(NaN):f.d?t.s=-t.s:t=new b(t.d||f.s!==t.s?f:NaN),t;if(f.s!=t.s)return t.s=-t.s,f.plus(t);if(u=f.d,d=t.d,a=b.precision,c=b.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new b(f);else return new b(c===3?-0:0);return T?y(t,a,c):t}if(n=V(t.e/h),l=V(f.e/h),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/h),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]=te-1;--u[r],u[i]+=te}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=Xe(u,n),T?y(t,a,c):t):new b(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]?y(new i(n),i.precision,i.rounding):(T=!1,i.modulo==9?(e=C(n,t.abs(),0,3,1),e.s*=t.s):e=C(n,t,0,i.modulo,1),e=e.times(t),T=!0,n.minus(e))};p.naturalExponential=p.exp=function(){return mt(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,y(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?y(t,a,c):t;if(o=V(m.e/h),i=V(t.e/h),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/h),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)/te|0,u[r]%=te;for(e&&(u.unshift(e),++i),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=Xe(u,i),T?y(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=Zt(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};p.round=function(){var t=this,e=t.constructor;return y(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())+h,i.rounding=1,n=Xn(i,Jt(i,n)),i.precision=t,i.rounding=e,y(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=D(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=V((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(C(s,o,n+2,1)).times(.5),D(o.d).slice(0,n)===(e=D(i.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!r&&e=="4999"){if(!r&&(y(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")&&(y(i,c+1,1),t=!i.times(i).eq(s));break}return T=!0,y(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=C(n,new i(1).minus(n.times(n)).sqrt(),t+10,0),i.precision=t,i.rounding=e,y(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,f=(t=new m(t)).d;if(t.s*=l.s,!d||!d[0]||!f||!f[0])return new m(!t.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?t.s/0:t.s*0);for(n=V(l.e/h)+V(t.e/h),c=d.length,u=f.length,c<u&&(o=d,d=f,f=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]+f[i]*d[r-i-1]+e,o[r--]=a%te|0,e=a/te|0;o[r]=(o[r]+e)%te|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=Xe(o,n),T?y(t,m.precision,m.rounding):t};p.toBinary=function(t,e){return pt(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:(X(t,0,me),e===void 0?e=i.rounding:X(e,0,8),y(n,t+n.e+1,e))};p.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=ne(i,!0):(X(t,0,me),e===void 0?e=r.rounding:X(e,0,8),i=y(new r(i),t+1,e),n=ne(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=ne(r):(X(t,0,me),e===void 0?e=o.rounding:X(e,0,8),i=y(new o(r),t+r.e+1,e),n=ne(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,f=this,b=f.d,g=f.constructor;if(!b)return new g(f);if(u=n=new g(1),i=c=new g(0),e=new g(i),o=e.e=Zt(b)-f.e-1,s=o%h,e.d[0]=E(10,s<0?h+s:s),t==null)t=o>0?e:u;else{if(a=new g(t),!a.isInt()||a.lt(u))throw Error(le+a);t=a.gt(e)?o>0?e:u:a}for(T=!1,a=new g(D(b)),l=g.precision,g.precision=o=b.length*h*2;m=C(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=C(t.minus(n),i,0,1,1),c=c.plus(r.times(u)),n=n.plus(r.times(i)),c.s=u.s=f.s,d=C(u,i,o,1).minus(f).abs().cmp(C(c,n,o,1).minus(f).abs())<1?[u,i]:[c,n],g.precision=l,T=!0,d};p.toHexadecimal=p.toHex=function(t,e){return pt(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:X(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=C(n,t,0,e,1).times(t),T=!0,y(n)):(t.s=n.s,n=t),n};p.toNumber=function(){return+this};p.toOctal=function(t,e){return pt(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(E(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,t.eq(1))return y(a,i,o);if(e=V(t.e/h),e>=t.d.length-1&&(n=u<0?-u:u)<=Wn)return r=Yt(c,a,n,i),t.s<0?new c(1).div(r):y(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=E(+a,u),e=n==0||!isFinite(n)?V(u*(Math.log("0."+D(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=mt(t.times(ce(a,i+n)),i),r.d&&(r=y(r,i+5,1),xe(r.d,i,o)&&(e=i+10,r=y(mt(t.times(ce(a,e+n)),e),e+5,1),+D(r.d).slice(i+1,i+15)+1==1e14&&(r=y(r,i+1,0)))),r.s=s,T=!0,c.rounding=o,y(r,i,o))};p.toPrecision=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=ne(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(X(t,1,me),e===void 0?e=r.rounding:X(e,0,8),i=y(new r(i),t,e),n=ne(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):(X(t,1,me),e===void 0?e=i.rounding:X(e,0,8)),y(new i(n),t,e)};p.toString=function(){var t=this,e=t.constructor,n=ne(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return y(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var t=this,e=t.constructor,n=ne(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function D(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=h-i.length,n&&(o+=ue(n)),o+=i;s=t[e],i=s+"",n=h-i.length,n&&(o+=ue(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function X(t,e,n){if(t!==~~t||t<e||t>n)throw Error(le+t)}function xe(t,e,n,i){var r,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=h,r=0):(r=Math.ceil((e+1)/h),e%=h),o=E(10,h-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)==E(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)==E(10,e-3)-1,s}function Ve(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]+=ut.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 Gn(t,e){var n,i,r;if(e.isZero())return e;i=e.d.length,i<32?(n=Math.ceil(i/3),r=(1/He(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),t.precision+=n,e=Pe(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 C=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,f,b,g,N,x,O,k,v,ye,Y,ke,Ee,Be,st,$,De,_e=i.constructor,at=i.s==r.s?1:-1,_=i.d,K=r.d;if(!_||!_[0]||!K||!K[0])return new _e(!i.s||!r.s||(_?K&&_[0]==K[0]:!K)?NaN:_&&_[0]==0||!K?at*0:at/0);for(c?(f=1,l=i.e-r.e):(c=te,f=h,l=V(i.e/f)-V(r.e/f)),$=K.length,Be=_.length,x=new _e(at),O=x.d=[],m=0;K[m]==(_[m]||0);m++);if(K[m]>(_[m]||0)&&l--,o==null?(Y=o=_e.precision,s=_e.rounding):a?Y=o+(i.e-r.e)+1:Y=o,Y<0)O.push(1),b=!0;else{if(Y=Y/f+2|0,m=0,$==1){for(d=0,K=K[0],Y++;(m<Be||d)&&Y--;m++)ke=d*c+(_[m]||0),O[m]=ke/K|0,d=ke%K|0;b=d||m<Be}else{for(d=c/(K[0]+1)|0,d>1&&(K=t(K,d,c),_=t(_,d,c),$=K.length,Be=_.length),Ee=$,k=_.slice(0,$),v=k.length;v<$;)k[v++]=0;De=K.slice(),De.unshift(0),st=K[0],K[1]>=c/2&&++st;do d=0,u=e(K,k,$,v),u<0?(ye=k[0],$!=v&&(ye=ye*c+(k[1]||0)),d=ye/st|0,d>1?(d>=c&&(d=c-1),g=t(K,d,c),N=g.length,v=k.length,u=e(g,k,N,v),u==1&&(d--,n(g,$<N?De:K,N,c))):(d==0&&(u=d=1),g=K.slice()),N=g.length,N<v&&g.unshift(0),n(k,g,v,c),u==-1&&(v=k.length,u=e(K,k,$,v),u<1&&(d++,n(k,$<v?De:K,v,c))),v=k.length):u===0&&(d++,k=[0]),O[m++]=d,u&&k[0]?k[v++]=_[Ee]||0:(k=[_[Ee]],v=1);while((Ee++<Be||k[0]!==void 0)&&Y--);b=k[0]!==void 0}O[0]||O.shift()}if(f==1)x.e=l,Gt=b;else{for(m=1,d=O[0];d>=10;d/=10)m++;x.e=m+l*f-1,y(x,a?o+x.e+1:o,s,b)}return x}}();function y(t,e,n,i){var r,o,s,a,c,u,l,m,d,f=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+=h,s=e,l=m[d=0],c=l/E(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/h),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=h,s=o-h+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=h,s=o-h+r,c=s<0?0:l/E(10,r-s-1)%10|0}if(i=i||e<0||m[d+1]!==void 0||(s<0?l:l%E(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/E(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]=E(10,(h-e%h)%h),t.e=-e||0):m[0]=t.e=0,t;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=E(10,h-o),m[d]=s>0?(l/E(10,r-s)%E(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]==te&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=te)break;m[d--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return T&&(t.e>f.maxE?(t.d=null,t.e=NaN):t.e<f.minE&&(t.e=0,t.d=[0])),t}function ne(t,e,n){if(!t.isFinite())return Qt(t);var i,r=t.e,o=D(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 Xe(t,e){var n=t[0];for(e*=h;n>=10;n/=10)e++;return e}function Ge(t,e,n){if(e>qn)throw T=!0,n&&(t.precision=n),Error(Ut);return y(new t(We),e,1,!0)}function ee(t,e,n){if(e>lt)throw Error(Ut);return y(new t(qe),e,n,!0)}function Zt(t){var e=t.length-1,n=e*h+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 Yt(t,e,n,i){var r,o=new t(1),s=Math.ceil(i/h+4);for(T=!1;;){if(n%2&&(o=o.times(e),Wt(o.d,s)&&(r=!0)),n=V(n/2),n===0){n=o.d.length-1,r&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Wt(e.d,s)}return T=!0,o}function Vt(t){return t.d[t.d.length-1]&1}function jt(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 mt(t,e){var n,i,r,o,s,a,c,u=0,l=0,m=0,d=t.constructor,f=d.rounding,b=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=b):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),m+=5;for(i=Math.log(E(2,m))/Math.LN10*2+5|0,c+=i,n=o=s=new d(1),d.precision=c;;){if(o=y(o.times(t),c,1),n=n.times(++l),a=s.plus(C(o,n,c,1)),D(a.d).slice(0,c)===D(s.d).slice(0,c)){for(r=m;r--;)s=y(s.times(s),c,1);if(e==null)if(u<3&&xe(s.d,c-i,f,u))d.precision=c+=10,n=o=a=new d(1),l=0,u++;else return y(s,d.precision=b,f,T=!0);else return d.precision=b,s}s=a}}function ce(t,e){var n,i,r,o,s,a,c,u,l,m,d,f=1,b=10,g=t,N=g.d,x=g.constructor,O=x.rounding,k=x.precision;if(g.s<0||!N||!N[0]||!g.e&&N[0]==1&&N.length==1)return new x(N&&!N[0]?-1/0:g.s!=1?NaN:N?0:g);if(e==null?(T=!1,l=k):l=e,x.precision=l+=b,n=D(N),i=n.charAt(0),Math.abs(o=g.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)g=g.times(t),n=D(g.d),i=n.charAt(0),f++;o=g.e,i>1?(g=new x("0."+n),o++):g=new x(i+"."+n.slice(1))}else return u=Ge(x,l+2,k).times(o+""),g=ce(new x(i+"."+n.slice(1)),l-b).plus(u),x.precision=k,e==null?y(g,k,O,T=!0):g;for(m=g,c=s=g=C(g.minus(1),g.plus(1),l,1),d=y(g.times(g),l,1),r=3;;){if(s=y(s.times(d),l,1),u=c.plus(C(s,new x(r),l,1)),D(u.d).slice(0,l)===D(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Ge(x,l+2,k).times(o+""))),c=C(c,new x(f),l,1),e==null)if(xe(c.d,l-b,O,a))x.precision=l+=b,u=s=g=C(m.minus(1),m.plus(1),l,1),d=y(g.times(g),l,1),r=a=1;else return y(c,x.precision=k,O,T=!0);else return x.precision=k,c;c=u,r+=2}}function Qt(t){return String(t.s*t.s/0)}function dt(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)%h,n<0&&(i+=h),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=h;i<r;)t.d.push(+e.slice(i,i+=h));e=e.slice(i),i=h-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 Un(t,e){var n,i,r,o,s,a,c,u,l;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),zt.test(e))return dt(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(_n.test(e))n=16,e=e.toLowerCase();else if(Dn.test(e))n=2;else if(Vn.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=Yt(i,new i(n),o,o*2)),u=Ve(e,n,te),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(t.s*0):(t.e=Xe(u,l),t.d=u,T=!1,s&&(t=C(t,r,a*4)),c&&(t=t.times(Math.abs(c)<54?E(2,c):Ie.pow(2,c))),T=!0,t)}function Xn(t,e){var n,i=e.d.length;if(i<3)return e.isZero()?e:Pe(t,2,e,e);n=1.4*Math.sqrt(i),n=n>16?16:n|0,e=e.times(1/He(5,n)),e=Pe(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 Pe(t,e,n,i,r){var o,s,a,c,u=1,l=t.precision,m=Math.ceil(l/h);for(T=!1,c=n.times(n),a=new t(i);;){if(s=C(a.times(c),new t(e++*e++),l,1),a=r?i.plus(s):i.minus(s),i=C(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 He(t,e){for(var n=t;--e;)n*=t;return n}function Jt(t,e){var n,i=e.s<0,r=ee(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=Vt(n)?i?2:3:i?4:1,e;se=Vt(n)?i?1:4:i?3:2}return e.minus(r).abs()}function pt(t,e,n,i){var r,o,s,a,c,u,l,m,d,f=t.constructor,b=n!==void 0;if(b?(X(n,1,me),i===void 0?i=f.rounding:X(i,0,8)):(n=f.precision,i=f.rounding),!t.isFinite())l=Qt(t);else{for(l=ne(t),s=l.indexOf("."),b?(r=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):r=e,s>=0&&(l=l.replace(".",""),d=new f(1),d.e=l.length-s,d.d=Ve(ne(d),10,r),d.e=d.d.length),m=Ve(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=b?"0p+0":"0";else{if(s<0?o--:(t=new f(t),t.d=m,t.e=o,t=C(t,d,n,i,0,r),m=t.d,o=t.e,u=Gt),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+=ut.charAt(m[s]);if(b){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)l+="0";for(m=Ve(l,r,e),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ut.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 Wt(t,e){if(t.length>e)return t.length=e,!0}function Hn(t){return new this(t).abs()}function zn(t){return new this(t).acos()}function Zn(t){return new this(t).acosh()}function Yn(t,e){return new this(t).plus(e)}function jn(t){return new this(t).asin()}function Qn(t){return new this(t).asinh()}function Jn(t){return new this(t).atan()}function $n(t){return new this(t).atanh()}function ei(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=ee(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?ee(this,i,r):new this(0),n.s=t.s):!t.d||e.isZero()?(n=ee(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(C(t,e,o,1)),e=ee(this,o,1),this.precision=i,this.rounding=r,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(C(t,e,o,1)),n}function ti(t){return new this(t).cbrt()}function ni(t){return y(t=new this(t),t.e+1,2)}function ii(t,e,n){return new this(t).clamp(e,n)}function ri(t){if(!t||typeof t!="object")throw Error(Ue+"Object expected");var e,n,i,r=t.defaults===!0,o=["precision",1,me,"rounding",0,8,"toExpNeg",-we,0,"toExpPos",0,we,"maxE",0,we,"minE",-we,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],r&&(this[n]=ct[n]),(i=t[n])!==void 0)if(V(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]=ct[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(Xt);else this[n]=!1;else throw Error(le+n+": "+i);return this}function oi(t){return new this(t).cos()}function si(t){return new this(t).cosh()}function $t(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,qt(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 dt(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),zt.test(o)?dt(u,o):Un(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=ri,r.clone=$t,r.isDecimal=qt,r.abs=Hn,r.acos=zn,r.acosh=Zn,r.add=Yn,r.asin=jn,r.asinh=Qn,r.atan=Jn,r.atanh=$n,r.atan2=ei,r.cbrt=ti,r.ceil=ni,r.clamp=ii,r.cos=oi,r.cosh=si,r.div=ai,r.exp=ui,r.floor=ci,r.hypot=li,r.ln=mi,r.log=di,r.log10=fi,r.log2=pi,r.max=bi,r.min=gi,r.mod=yi,r.mul=wi,r.pow=Pi,r.random=Ai,r.round=hi,r.sign=Ti,r.sin=ki,r.sinh=Bi,r.sqrt=xi,r.sub=Ii,r.sum=Si,r.tan=Ci,r.tanh=Ni,r.trunc=Ki,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 ai(t,e){return new this(t).div(e)}function ui(t){return new this(t).exp()}function ci(t){return y(t=new this(t),t.e+1,3)}function li(){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 qt(t){return t instanceof Ie||t&&t.toStringTag===Ht||!1}function mi(t){return new this(t).ln()}function di(t,e){return new this(t).log(e)}function pi(t){return new this(t).log(2)}function fi(t){return new this(t).log(10)}function bi(){return jt(this,arguments,"lt")}function gi(){return jt(this,arguments,"gt")}function yi(t,e){return new this(t).mod(e)}function wi(t,e){return new this(t).mul(e)}function Pi(t,e){return new this(t).pow(e)}function Ai(t){var e,n,i,r,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:X(t,1,me),i=Math.ceil(t/h),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(Xt);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],t%=h,i&&t&&(r=E(10,h-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-=h)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<h&&(n-=h-i)}return s.e=n,s.d=a,s}function hi(t){return y(t=new this(t),t.e+1,this.rounding)}function Ti(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function ki(t){return new this(t).sin()}function Bi(t){return new this(t).sinh()}function xi(t){return new this(t).sqrt()}function Ii(t,e){return new this(t).sub(e)}function Si(){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,y(n,this.precision,this.rounding)}function Ci(t){return new this(t).tan()}function Ni(t){return new this(t).tanh()}function Ki(t){return y(t=new this(t),t.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var Ie=p.constructor=$t(ct);We=new Ie(We);qe=new Ie(qe);var I=Ie;import{PublicKey as _r}from"@solana/web3.js";import{get as en,set as Ri}from"lodash";var ft=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}},tn={},Li={};function G(t){let e=en(tn,t);if(!e){let n=en(Li,t);e=new ft({name:t,logLevel:n}),Ri(tn,t,e)}return e}import{MINT_SIZE as Gr,TOKEN_PROGRAM_ID as Ur,getTransferFeeConfig as Xr,unpackMint as Hr}from"@solana/spl-token";var zr=G("Raydium_accountInfo_util");import re from"bn.js";import Vi from"big.js";import mo from"bn.js";import Fi from"toformat";var Mi=Fi,Se=Mi;import Ye from"big.js";import vi from"bn.js";import Ei from"decimal.js-light";import Ce from"bn.js";var rn=9007199254740991;function ie(t){let e=G("Raydium_parseBigNumberish");if(t instanceof Ce)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Ce(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=rn||t<=-rn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Ce(String(t))):typeof t=="bigint"?new Ce(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Ce(0))}var Ze=G("module/fraction"),bt=Se(Ye),Ne=Se(Ei),Di={[0]:Ne.ROUND_DOWN,[1]:Ne.ROUND_HALF_UP,[2]:Ne.ROUND_UP},_i={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},R=class{constructor(e,n=new vi(1)){this.numerator=ie(e),this.denominator=ie(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(ie(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(ie(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(ie(e));return new R(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof R?e:new R(ie(e));return new R(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},i=1){Number.isInteger(e)||Ze.logWithError(`${e} is not an integer.`),e<=0&&Ze.logWithError(`${e} is not positive.`),Ne.set({precision:e+1,rounding:Di[i]});let r=new Ne(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)||Ze.logWithError(`${e} is not an integer.`),e<0&&Ze.logWithError(`${e} is negative.`),bt.DP=e,bt.RM=_i[i]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var ho=G("Raydium_amount"),To=Se(Vi);import{PublicKey as qi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as on}from"@solana/spl-token";var gt={chainId:101,address:qi.default.toBase58(),programId:on.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:on.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as wt}from"@solana/web3.js";import{PublicKey as L,SystemProgram as sn,SYSVAR_RENT_PUBKEY as Gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ui}from"@solana/spl-token";function yt({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var Ko=[yt({pubkey:Ui,isWritable:!1}),yt({pubkey:sn.programId,isWritable:!1}),yt({pubkey:Gi,isWritable:!1})];function an({publicKey:t,transformSol:e}){let n=un(t.toString());if(n instanceof L)return e&&n.equals(Ke)?ze:n;if(e&&n.toString()===Ke.toBase58())return ze;if(typeof n=="string"){if(n===L.default.toBase58())return L.default;try{return new L(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function un(t){try{return new L(t)}catch{return t}}var Xi=new L("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Hi=new L("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),zi=new L("SysvarRent111111111111111111111111111111111"),Ro=new L("SysvarC1ock11111111111111111111111111111111"),cn=new L("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Lo=new L("Sysvar1nstructions1111111111111111111111111"),Fo=sn.programId,Mo=new L("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Oo=new L("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),vo=new L("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Eo=new L("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Do=new L("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),_o=new L("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Vo=new L("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Wo=new L("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),qo=new L("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Go=new L("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Uo=new L("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ze=new L("So11111111111111111111111111111111111111112"),Ke=L.default;var Pt=class{constructor({mint:e,decimals:n,symbol:i,name:r,skipMint:o=!1,isToken2022:s=!1}){if(e===Ke.toBase58()||e instanceof wt&&Ke.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new wt(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?wt.default:an({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},pe=Pt;pe.WSOL=new Pt(j(z({},de),{mint:de.address}));var At=class{constructor({decimals:e,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=i}equals(e){return this===e}},je=At;je.SOL=new At(gt);import Zi from"bn.js";var ns=new R(new Zi(100));var us=G("Raydium_price");var Yi=new re(0),vs=new re(1),Es=new re(2),Ds=new re(3),_s=new re(5),Wi=new re(10),Vs=new re(100),Ws=new re(1e3),qs=new re(1e4);function ln(t,e,n){return t.mul(e).add(n).sub(new re(1)).div(n)}import{PublicKey as pa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ba}from"@solana/spl-token";import{ComputeBudgetProgram as js,Keypair as $s,PublicKey as ea,Transaction as na,TransactionMessage as ra,VersionedTransaction as oa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ca}from"@solana/spl-token";var la=G("Raydium_txUtil");import{PublicKey as w}from"@solana/web3.js";var Pa=new w("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Aa=new w("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ha=new w("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ta=new w("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ka=new w("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ba=new w("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),xa=new w("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ia=new w("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Sa=new w("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ca=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qi=new w("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ji=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new w("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Na=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ka=new w("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ra=new w("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),La=new w("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Fa=new w("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ma=new w("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Oa=new w("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),va=new w("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ea=new w("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Da=new w("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),_a=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Va=new w("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wa=new w("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),qa=new w("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ga=new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Ua=new w("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Xa=new w("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ha=new w("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var za={OPEN_BOOK_PROGRAM:new w("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new w("Ray1111111111111111111111111111111111111111"),AMM_V4:new w("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new w("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new w("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new w("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new w("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new w("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new w("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new w("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new w("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new w("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:w.default,Router:new w("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new w("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new w("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new w("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new w("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new w("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new w("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new w("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new w("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new w("Ray1111111111111111111111111111111111111111")};import W from"bn.js";var Re=1e4;function Bt(t,e){let{div:n,mod:i}=t.divmod(e);return i.gt(new W(0))?n.add(new W(1)):n}function be(t,e){if(t.isZero())return new W(0);let n=t.div(e);return n.isZero()?new W(1):t.mod(e).gt(new W(0))?n.add(new W(1)):n}function xt(t,e,n){if(e===void 0)return{amount:t,fee:void 0,expirationTime:void 0};let i=Math.floor(n/432e3),r=i<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,o=new W(r.maximumFee.toString()),s=i<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-n)*400/1e3:void 0,a=Bt(t.mul(new W(r.transferFeeBasisPoints)),new W(Re)),c=a.gt(o)?o:a;return{amount:t,fee:c,expirationTime:s}}function It(t,e,n){if(e===void 0)return{amount:t,fee:void 0,expirationTime:void 0};let i=Math.floor(n/432e3),r=i<e.newerTransferFee.epoch?e.olderTransferFee:e.newerTransferFee,o=new W(r.maximumFee.toString()),s=i<e.newerTransferFee.epoch?(Number(e.newerTransferFee.epoch)*432e3-n)*400/1e3:void 0;if(r.transferFeeBasisPoints===Re){let a=new W(r.maximumFee.toString());return{amount:t.add(a),fee:a,expirationTime:s}}else{let a=Bt(t.mul(new W(Re)),new W(Re-r.transferFeeBasisPoints)),c=new W(r.maximumFee.toString()),u=a.sub(t).gt(c)?t.add(c):a,l=Bt(u.mul(new W(r.transferFeeBasisPoints)),new W(Re)),m=l.gt(o)?o:l;return{amount:u,fee:m,expirationTime:s}}}import{PublicKey as $a,AddressLookupTableAccount as eu}from"@solana/web3.js";import{PublicKey as bu,sendAndConfirmTransaction as gu,SystemProgram as Pu,Transaction as Au,TransactionMessage as Tu,VersionedTransaction as ku}from"@solana/web3.js";import xu from"axios";import{PublicKey as Lu}from"@solana/web3.js";import Mu from"bn.js";import nr from"bn.js";var ge=new nr(1e6);import Je from"bn.js";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 $e=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new I(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new I(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new I(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 I(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 I(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 Je(0)))throw Error("supplyMinusSellLocked <= 0");let a=n.sub(o);if(a.lte(new Je(0)))throw Error("tfMinusMf <= 0");let c=a.mul(i).mul(i).div(s),u=a.mul(i).div(s).sub(n),l=c.div(u),m=n.mul(n).div(u);if(l.lt(new Je(0))||m.lt(new Je(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 be(r,o)}};import et from"bn.js";var tt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new I(e.virtualB.toString()).div(e.virtualA.toString()).mul(10**(n-i))}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new I(n.toString()).div(e.toString()).mul(10**(i-r))}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new I(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 I(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 I(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 et(0)))throw Error("invalid input 1");let a=new et(2).mul(n).sub(o),u=n.mul(s).div(a);if(u.lt(new et(0))||n.lt(new et(0)))throw Error("invalid input 0");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 be(r,i)}};import H from"bn.js";import{PublicKey as gp}from"@solana/web3.js";import wp from"bn.js";import{AccountLayout as Tp,createAssociatedTokenAccountIdempotentInstruction as kp,TOKEN_2022_PROGRAM_ID as Bp,TOKEN_PROGRAM_ID as xp}from"@solana/spl-token";import{PublicKey as Ac}from"@solana/web3.js";import{MintLayout as Tc,TOKEN_PROGRAM_ID as Bc}from"@solana/spl-token";import{Keypair as _d,PublicKey as Vd,SystemProgram as qd,TransactionInstruction as Gd}from"@solana/web3.js";import Xd from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Zd,TOKEN_2022_PROGRAM_ID as Yd,TOKEN_PROGRAM_ID as jd}from"@solana/spl-token";import{PublicKey as mr}from"@solana/web3.js";import bn,{isBN as gn}from"bn.js";import{bits as vc,BitStructure as Ec,blob as ir,Blob as Dc,cstr as _c,f32 as Vc,f32be as Wc,f64 as qc,f64be as Gc,greedy as Uc,Layout as rr,ns64 as Xc,ns64be as Hc,nu64 as zc,nu64be as Zc,offset as Yc,s16 as jc,s16be as Qc,s24 as Jc,s24be as $c,s32 as or,s32be as el,s40 as tl,s40be as nl,s48 as il,s48be as rl,s8 as ol,seq as sr,struct as sl,Structure as ar,u16 as ur,u16be as al,u24 as ul,u24be as cl,u32 as ll,u32be as ml,u40 as dl,u40be as pl,u48 as fl,u48be as bl,u8 as cr,UInt as lr,union as gl,Union as yl,unionLayoutDiscriminator as wl,utf8 as Pl}from"@solana/buffer-layout";var St=rr,dn=ar;var Ct=lr;var pn=cr,Le=ur;var ae=or;var fn=sr;var Z=ir;var Ae=class extends St{constructor(n,i,r){super(n,r);this.blob=Z(n),this.signed=i}decode(n,i=0){let r=new bn(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 bn(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 Ct(1,t)}function he(t){return new Ct(4,t)}function B(t){return new Ae(8,!1,t)}function F(t){return new Ae(16,!1,t)}function yn(t){return new Ae(8,!0,t)}function wn(t){return new Ae(16,!0,t)}var nt=class extends St{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 S(t){return new nt(Z(32),e=>new mr(e),e=>e.toBuffer(),t)}function Kt(t){return new nt(pn(),dr,pr,t)}function dr(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function pr(t){return t?1:0}var Nt=class extends dn{decode(e,n){return super.decode(e,n)}};function q(t,e,n){return new Nt(t,e,n)}function M(t,e,n){let i,r=typeof e=="number"?e:gn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=gn(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)}import wd from"bn.js";import Q from"bn.js";var Rt=new Q(0),Pn=new Q(1),An=new Q(-1),oe=new Q(1).shln(64),hn=new Q(1).shln(128),Lt=oe.sub(Pn);var fr=hn.subn(1),Te=-443636,Fe=-Te,Ft=new Q("4295048016"),Mt=new Q("79226673521066979257578248091"),Fl=new Q("4295048017"),Ml=new Q("79226673521066979257578248090");var br=new Q(10).pow(new Q(6));var Ol=new Q("18446744073700000000");import rd from"bn.js";var ql=Buffer.from("amm_config","utf8"),Gl=Buffer.from("pool","utf8"),Ul=Buffer.from("pool_vault","utf8"),Xl=Buffer.from("pool_reward_vault","utf8"),Hl=Buffer.from("position","utf8"),zl=Buffer.from("tick_array","utf8"),Zl=Buffer.from("operation","utf8"),Yl=Buffer.from("pool_tick_array_bitmap_extension","utf8"),jl=Buffer.from("observation","utf8");var Ql=Buffer.from("locked_position","utf8");var Jl=Buffer.from("support_mint","utf8");import{PublicKey as Rm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as Fm}from"@solana/spl-token";import Om from"bn.js";import tm from"bn.js";var Et=14;var it=60;var Ar=q([Z(8),U("bump"),Le("index"),S(""),he("protocolFeeRate"),he("tradeFeeRate"),Le("tickSpacing"),M(B(),8,"")]),hr=q([he("blockTimestamp"),yn("tickCumulative"),M(B(),4)]),Rn=q([Z(8),Kt("initialized"),B("recentEpoch"),Le("observationIndex"),S("poolId"),M(hr,100,"observations"),M(B(),4)]),Tr=q([U("rewardState"),B("openTime"),B("endTime"),B("lastUpdateTime"),F("emissionsPerSecondX64"),B("rewardTotalEmissioned"),B("rewardClaimed"),S("tokenMint"),S("tokenVault"),S("creator"),F("rewardGrowthGlobalX64")]),Cn=q([Z(8),U("bump"),S("ammConfig"),S("creator"),S("mintA"),S("mintB"),S("vaultA"),S("vaultB"),S("observationId"),U("mintDecimalsA"),U("mintDecimalsB"),Le("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),ae("tickCurrent"),he(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),B("protocolFeesTokenA"),B("protocolFeesTokenB"),F("swapInAmountTokenA"),F("swapOutAmountTokenB"),F("swapInAmountTokenB"),F("swapOutAmountTokenA"),U("status"),M(U(),7,""),M(Tr,3,"rewardInfos"),M(B(),16,"tickArrayBitmap"),B("totalFeesTokenA"),B("totalFeesClaimedTokenA"),B("totalFeesTokenB"),B("totalFeesClaimedTokenB"),B("fundFeesTokenA"),B("fundFeesTokenB"),B("startTime"),M(B(),15*4-3,"padding")]),kr=q([F("growthInsideLastX64"),B("rewardAmountOwed")]),Nn=q([Z(8),U("bump"),S("nftMint"),S("poolId"),ae("tickLower"),ae("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),B("tokenFeesOwedA"),B("tokenFeesOwedB"),M(kr,3,"rewardInfos"),M(B(),8,"")]),Cd=q([Z(8),U("bump"),S("poolId"),ae("tickLowerIndex"),ae("tickUpperIndex"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),B("tokenFeesOwedA"),B("tokenFeesOwedB"),M(F(),3,"rewardGrowthInside"),M(B(),8,"")]),Br=q([ae("tick"),wn("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),M(F(),3,"rewardGrowthsOutsideX64"),M(he(),13,"")]),xn=q([Z(8),S("poolId"),ae("startTickIndex"),M(Br,it,"ticks"),U("initializedTickCount"),M(U(),115,"")]),xr=q([Z(329),M(S(),100,"whitelistMints")]),Pr=q([Z(8),S("poolId"),M(M(B(),8),Et,"positiveTickArrayBitmap"),M(M(B(),8),Et,"negativeTickArrayBitmap")]),Nd=q([B(),U("bump"),S("owner"),S("poolId"),S("positionId"),S("nftAccount"),M(B(),8)]),Ir=q([Z(8),U("bump"),S("lockOwner"),S("poolId"),S("positionId"),S("nftAccount"),S("lockNftMint"),B("recentEpoch"),M(B(),8)]);Rn.span;var op=G("Raydium_Clmm");import Ln from"bn.js";var ve=class{static _multipler(e){return new I(10).pow(e)}static getPrice({priceX64:e,decimalA:n,decimalB:i}){return new I(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 Ln(r.mul(this._Q64).toFixed(0))}};ve._Q64=new I(new Ln(1).shln(64).toString());var rt=class extends fe{static getPoolInitPriceByPool({poolInfo:e,decimalA:n,decimalB:i}){return new I(0)}static getPoolInitPriceByInit({a:e,b:n,decimalA:i,decimalB:r}){return new I(0)}static getPoolPrice({poolInfo:e,decimalA:n,decimalB:i}){return new I(e.virtualA.mul(e.realA).toString()).div(ve._Q64).mul(10**(n-i))}static getPoolEndPrice({supply:e,totalSell:n,totalLockedAmount:i,totalFundRaising:r,migrateFee:o,decimalA:s,decimalB:a}){return new I(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 I(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 H(0)))throw Error("supplyMinusLocked need gt 0");let a=n.mul(new H(3)).sub(o),u=n.mul(new H(2)).mul(s).div(a),l=u.mul(u),m=n.mul(new H(2)).mul(oe).div(l);if(!m.gt(new H(0)))throw Error("a need gt 0");if(!Lt.gt(m))throw Error("a need lt u64 max");if(m.lt(new H(0))||u.lt(new H(0)))throw Error("invalid input 0");return{a:m,b:new H(0),c:u}}static buyExactIn({poolInfo:e,amount:n}){let i=e.realB.add(n),r=new H(2).mul(i).mul(oe).div(e.virtualA);return new H(new I(r.toString()).sqrt().toFixed(0)).sub(e.realA)}static buyExactOut({poolInfo:e,amount:n}){let i=e.realA.add(n),r=i.mul(i);return be(e.virtualA.mul(r),new H(2).mul(oe)).sub(e.realB)}static sellExactIn({poolInfo:e,amount:n}){let i=e.realA.sub(n),r=i.mul(i),o=be(e.virtualA.mul(r),new H(2).mul(oe));return e.realB.sub(o)}static sellExactOut({poolInfo:e,amount:n}){let i=e.realB.sub(n),r=new H(2).mul(i).mul(oe).div(e.virtualA),o=new H(new I(r.toString()).sqrt().toFixed(0));return e.realA.sub(o)}};var ot=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(j(z({},m),{decimalA:c,decimalB:u})),f=r.div(new J(n-1)),b=new J(0),g=[{price:d,totalSellSupply:0}],{a:N,b:x}=m,O=b,k=b;for(let v=1;v<n;v++){let ye=v!==n-1?f:r.sub(k),Y=this.buyExactIn({poolInfo:{virtualA:N,virtualB:x,realA:O,realB:k,totalFundRaisingB:r,totalSellA:o},amountB:ye,protocolFeeRate:b,platformFeeRate:b,curveType:e,shareFeeRate:b,creatorFeeRate:b,transferFeeConfigA:void 0,slot:0});O=O.add(Y.amountA.amount),k=k.add(Y.amountB);let ke=this.getPrice({poolInfo:{virtualA:N,virtualB:x,realA:O,realB:k},decimalA:c,decimalB:u,curveType:e});g.push({price:ke,totalSellSupply:new I(O.toString()).div(10**c).toNumber()})}return g}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(ge).lt(r))throw Error("total lock amount gte max lock amount");if(e.lt(s.minSupplyA.mul(new J(10**o))))throw Error("supply lt min supply");let u=e.mul(s.minSellRateA).div(ge);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(ge);if(l.lt(m))throw Error("migrate lt min migrate amoount");let d=e.sub(i).sub(r),f=new J(new I(d.mul(n).toString()).sqrt().toFixed(0));if(a==="amm"){let b=new J(10).pow(new J(o));if(f.lte(b))throw Error("check migrate lp error")}else if(a==="cpmm"){let b=new J(100);if(f.lte(b))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,creatorFeeRate:a,transferFeeConfigA:c,slot:u}){let l=this.totalFeeRate({protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a}),m=this.calculateFee({amount:n,feeRate:l}),d=n.sub(m),f=this.getCurve(o),b=f.buyExactIn({poolInfo:e,amount:d}),g=e.totalSellA.sub(e.realA),N,x,O;if(b.gt(g)){N=g;let v=f.buyExactOut({poolInfo:e,amount:N});x=this.calculatePreFee({postFeeAmount:v,feeRate:l}),O=x.sub(v)}else N=b,x=n,O=m;let k=this.splitFee({totalFee:O,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a});return{amountA:xt(N,c,u),amountB:x,splitFee:k}}static buyExactOut({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s,creatorFeeRate:a,transferFeeConfigA:c,slot:u}){let l=e.totalSellA.sub(e.realA),m=It(n,c,u),d=m.fee?m.amount.add(m.fee):m.amount;n.gt(l)&&(d=l);let b=this.getCurve(o).buyExactOut({poolInfo:e,amount:d}),g=this.totalFeeRate({protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a}),N=this.calculatePreFee({postFeeAmount:b,feeRate:g}),x=N.sub(b),O=this.splitFee({totalFee:x,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a});return{amountA:m,amountB:N,splitFee:O}}static sellExactIn({poolInfo:e,amountA:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s,creatorFeeRate:a,transferFeeConfigA:c,slot:u}){let l=this.getCurve(o),m=xt(n,c,u),d=m.fee?m.amount.sub(m.fee):m.amount,f=l.sellExactIn({poolInfo:e,amount:d}),b=this.calculateFee({amount:f,feeRate:this.totalFeeRate({protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a})}),g=this.splitFee({totalFee:b,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a});return{amountA:m,amountB:f.sub(b),splitFee:g}}static sellExactOut({poolInfo:e,amountB:n,protocolFeeRate:i,platformFeeRate:r,curveType:o,shareFeeRate:s,creatorFeeRate:a,transferFeeConfigA:c,slot:u}){let l=this.totalFeeRate({protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a}),m=this.calculatePreFee({postFeeAmount:n,feeRate:l});if(e.realB.lt(m))throw Error("Insufficient liquidity");let d=m.sub(n),b=ot.getCurve(o).sellExactOut({poolInfo:e,amount:m});if(b.gt(e.realA))throw Error();let g=this.splitFee({totalFee:d,protocolFeeRate:i,platformFeeRate:r,shareFeeRate:s,creatorFeeRate:a});return{amountA:It(b,c,u),amountB:n,splitFee:g}}static splitFee({totalFee:e,protocolFeeRate:n,platformFeeRate:i,shareFeeRate:r,creatorFeeRate:o}){let s=this.totalFeeRate({protocolFeeRate:n,platformFeeRate:i,shareFeeRate:r,creatorFeeRate:o}),a=s.isZero()?new J(0):e.mul(i).div(s),c=s.isZero()?new J(0):e.mul(r).div(s),u=s.isZero()?new J(0):e.mul(o).div(s),l=e.sub(a).sub(c).sub(u);return{platformFee:a,shareFee:c,protocolFee:l,creatorFee:u}}static calculateFee({amount:e,feeRate:n}){return ln(e,n,ge)}static calculatePreFee({postFeeAmount:e,feeRate:n}){if(n.isZero())return e;let i=e.mul(ge),r=ge.sub(n);return i.add(r).sub(new J(1)).div(r)}static totalFeeRate({protocolFeeRate:e,platformFeeRate:n,shareFeeRate:i,creatorFeeRate:r}){if(e.add(n).add(i).add(r).gt(new J(1e6)))throw Error("total fee rate gt 1_000_000");return e.add(n).add(i).add(r)}static getCurve(e){switch(e){case 0:return $e;case 1:return tt;case 2:return rt}throw Error("find curve error")}};export{ot as Curve};
//# sourceMappingURL=curve.mjs.map