snapper-sdk
Version:
An SDK for building applications on top of Snapper.
1 lines • 61.4 kB
JavaScript
import{PublicKey as wn}from"@solana/web3.js";import{get as St,set as hn}from"lodash";var et=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(r=>typeof r=="object"?JSON.stringify(r):r).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}},Lt={},bn={};function Z(t){let e=St(Lt,t);if(!e){let n=St(bn,t);e=new et({name:t,logLevel:n}),hn(Lt,t,e)}return e}import{MINT_SIZE as hi,TOKEN_PROGRAM_ID as bi,getTransferFeeConfig as wi,unpackMint as yi}from"@solana/spl-token";var tt=Z("Raydium_accountInfo_util");async function De(t,e,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}={batchRequest:!1,...n},s=nt(e,o),a=new Array(s.length).fill([]);if(r){let c=s.map(l=>{let d=t._buildArgs([l.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:d}}),u=nt(c,10);a=(await(await Promise.all(u.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&tt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(d=>{if(d){let{data:p,executable:y,lamports:b,owner:v,rentEpoch:S}=d;return p.length!==2&&p[1]!=="base64"&&tt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:y,lamports:b,owner:new wn(v),rentEpoch:S}}return null})))}else try{a=await Promise.all(s.map(c=>t.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&tt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import ue from"bn.js";var Te=9e15,pe=1e9,it="0123456789abcdef",Ke="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ot={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},Mt,se,w=!0,Ve="[DecimalError] ",fe=Ve+"Invalid argument: ",Ft=Ve+"Precision limit exceeded",Ot=Ve+"crypto unavailable",Dt="[object Decimal]",U=Math.floor,O=Math.pow,Tn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,xn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,An=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,vt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,te=1e7,h=7,Pn=9007199254740991,kn=Ke.length-1,st=qe.length-1,f={toStringTag:Dt};f.absoluteValue=f.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),g(t)};f.ceil=function(){return g(new this.constructor(this),this.e+1,2)};f.clampedTo=f.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(fe+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};f.comparedTo=f.cmp=function(t){var e,n,r,i,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(r=s.length,i=a.length,e=0,n=r<i?r:i;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};f.cosine=f.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Bn(r,Ut(r,n)),r.precision=t,r.rounding=e,g(se==2||se==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};f.cubeRoot=f.cbrt=function(){var t,e,n,r,i,o,s,a,c,u,m=this,l=m.constructor;if(!m.isFinite()||m.isZero())return new l(m);for(w=!1,o=m.s*O(m.s*m,1/3),!o||Math.abs(o)==1/0?(n=K(m.d),t=m.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=O(n,1/3),t=U((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),r=new l(n),r.s=m.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(m),r=N(u.plus(m).times(a),u.plus(c),s+2,1),K(a.d).slice(0,s)===(n=K(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(g(a,t+1,0),a.times(a).times(a).eq(m))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(g(r,t+1,1),e=!r.times(r).times(r).eq(m));break}return w=!0,g(r,t,l.rounding,e)};f.decimalPlaces=f.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-U(this.e/h))*h,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};f.dividedBy=f.div=function(t){return N(this,new this.constructor(t))};f.dividedToIntegerBy=f.divToInt=function(t){var e=this,n=e.constructor;return g(N(e,new n(t),0,1,1),n.precision,n.rounding)};f.equals=f.eq=function(t){return this.cmp(t)===0};f.floor=function(){return g(new this.constructor(this),this.e+1,3)};f.greaterThan=f.gt=function(t){return this.cmp(t)>0};f.greaterThanOrEqualTo=f.gte=function(t){var e=this.cmp(t);return e==1||e===0};f.hyperbolicCosine=f.cosh=function(){var t,e,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(t=Math.ceil(i/3),e=(1/We(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=xe(s,1,o.times(e),new s(1),!0);for(var c,u=t,m=new s(8);u--;)c=o.times(o),o=a.minus(c.times(m.minus(c.times(m))));return g(o,s.precision=n,s.rounding=r,!0)};f.hyperbolicSine=f.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/We(5,t)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=e,o.rounding=n,g(i,e,n,!0)};f.hyperbolicTangent=f.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};f.inverseCosine=f.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?ee(n,i,o):new n(0):new n(NaN):e.isZero()?ee(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=ee(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};f.inverseHyperbolicCosine=f.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,w=!1,n=n.times(n).minus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};f.inverseHyperbolicSine=f.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,w=!1,n=n.times(n).plus(1).sqrt().plus(n),w=!0,r.precision=t,r.rounding=e,n.ln())};f.inverseHyperbolicTangent=f.atanh=function(){var t,e,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?g(new o(i),t,e,!0):(o.precision=n=r-i.e,i=N(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};f.inverseSine=f.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=ee(o,n+4,r).times(.5),t.s=i.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};f.inverseTangent=f.atan=function(){var t,e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding;if(u.isFinite()){if(u.isZero())return new m(u);if(u.abs().eq(1)&&l+4<=st)return s=ee(m,l+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new m(NaN);if(l+4<=st)return s=ee(m,l+4,d).times(.5),s.s=u.s,s}for(m.precision=a=l+10,m.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(w=!1,e=Math.ceil(a/h),r=1,c=u.times(u),s=new m(u),i=u;t!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),w=!0,g(s,m.precision=l,m.rounding=d,!0)};f.isFinite=function(){return!!this.d};f.isInteger=f.isInt=function(){return!!this.d&&U(this.e/h)>this.d.length-2};f.isNaN=function(){return!this.s};f.isNegative=f.isNeg=function(){return this.s<0};f.isPositive=f.isPos=function(){return this.s>0};f.isZero=function(){return!!this.d&&this.d[0]===0};f.lessThan=f.lt=function(t){return this.cmp(t)<0};f.lessThanOrEqualTo=f.lte=function(t){return this.cmp(t)<1};f.logarithm=f.log=function(t){var e,n,r,i,o,s,a,c,u=this,m=u.constructor,l=m.precision,d=m.rounding,p=5;if(t==null)t=new m(10),e=!0;else{if(t=new m(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new m(NaN);e=t.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new m(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=l+p,s=de(u,a),r=e?Ge(m,a+10):de(t,a),c=N(s,r,a,1),Ie(c.d,i=l,d))do if(a+=10,s=de(u,a),r=e?Ge(m,a+10):de(t,a),c=N(s,r,a,1),!o){+K(c.d).slice(i+1,i+15)+1==1e14&&(c=g(c,l+1,0));break}while(Ie(c.d,i+=10,d));return w=!0,g(c,l,d)};f.minus=f.sub=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.constructor;if(t=new y(t),!p.d||!t.d)return!p.s||!t.s?t=new y(NaN):p.d?t.s=-t.s:t=new y(t.d||p.s!==t.s?p:NaN),t;if(p.s!=t.s)return t.s=-t.s,p.plus(t);if(u=p.d,d=t.d,a=y.precision,c=y.rounding,!u[0]||!d[0]){if(d[0])t.s=-t.s;else if(u[0])t=new y(p);else return new y(c===3?-0:0);return w?g(t,a,c):t}if(n=U(t.e/h),m=U(p.e/h),u=u.slice(),o=m-n,o){for(l=o<0,l?(e=u,o=-o,s=d.length):(e=d,n=m,s=u.length),r=Math.max(Math.ceil(a/h),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=u.length,s=d.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(u[r]!=d[r]){l=u[r]<d[r];break}o=0}for(l&&(e=u,u=d,d=e,t.s=-t.s),s=u.length,r=d.length-s;r>0;--r)u[s++]=0;for(r=d.length;r>o;){if(u[--r]<d[r]){for(i=r;i&&u[--i]===0;)u[i]=te-1;--u[i],u[r]+=te}u[r]-=d[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(t.d=u,t.e=Ue(u,n),w?g(t,a,c):t):new y(c===3?-0:0)};f.modulo=f.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?g(new r(n),r.precision,r.rounding):(w=!1,r.modulo==9?(e=N(n,t.abs(),0,3,1),e.s*=t.s):e=N(n,t,0,r.modulo,1),e=e.times(t),w=!0,n.minus(e))};f.naturalExponential=f.exp=function(){return at(this)};f.naturalLogarithm=f.ln=function(){return de(this)};f.negated=f.neg=function(){var t=new this.constructor(this);return t.s=-t.s,g(t)};f.plus=f.add=function(t){var e,n,r,i,o,s,a,c,u,m,l=this,d=l.constructor;if(t=new d(t),!l.d||!t.d)return!l.s||!t.s?t=new d(NaN):l.d||(t=new d(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(u=l.d,m=t.d,a=d.precision,c=d.rounding,!u[0]||!m[0])return m[0]||(t=new d(l)),w?g(t,a,c):t;if(o=U(l.e/h),r=U(t.e/h),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=m.length):(n=m,r=o,s=u.length),o=Math.ceil(a/h),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=m.length,s-i<0&&(i=s,n=m,m=u,u=n),e=0;i;)e=(u[--i]=u[i]+m[i]+e)/te|0,u[i]%=te;for(e&&(u.unshift(e),++r),s=u.length;u[--s]==0;)u.pop();return t.d=u,t.e=Ue(u,r),w?g(t,a,c):t};f.precision=f.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(fe+t);return n.d?(e=Kt(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};f.round=function(){var t=this,e=t.constructor;return g(new e(t),t.e+1,e.rounding)};f.sine=f.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+h,r.rounding=1,n=Nn(r,Ut(r,n)),r.precision=t,r.rounding=e,g(se>2?n.neg():n,t,e,!0)):new r(NaN)};f.squareRoot=f.sqrt=function(){var t,e,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,m=s.constructor;if(u!==1||!a||!a[0])return new m(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(e=K(a),(e.length+c)%2==0&&(e+="0"),u=Math.sqrt(e),c=U((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),r=new m(e)):r=new m(u.toString()),n=(c=m.precision)+3;;)if(o=r,r=o.plus(N(s,o,n+2,1)).times(.5),K(o.d).slice(0,n)===(e=K(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(g(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(g(r,c+1,1),t=!r.times(r).eq(s));break}return w=!0,g(r,c,m.rounding,t)};f.tangent=f.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,g(se==2||se==4?n.neg():n,t,e,!0)):new r(NaN)};f.times=f.mul=function(t){var e,n,r,i,o,s,a,c,u,m=this,l=m.constructor,d=m.d,p=(t=new l(t)).d;if(t.s*=m.s,!d||!d[0]||!p||!p[0])return new l(!t.s||d&&!d[0]&&!p||p&&!p[0]&&!d?NaN:!d||!p?t.s/0:t.s*0);for(n=U(m.e/h)+U(t.e/h),c=d.length,u=p.length,c<u&&(o=d,d=p,p=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(e=0,i=c+r;i>r;)a=o[i]+p[r]*d[i-r-1]+e,o[i--]=a%te|0,e=a/te|0;o[i]=(o[i]+e)%te|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=Ue(o,n),w?g(t,l.precision,l.rounding):t};f.toBinary=function(t,e){return ct(this,2,t,e)};f.toDecimalPlaces=f.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(z(t,0,pe),e===void 0?e=r.rounding:z(e,0,8),g(n,t+n.e+1,e))};f.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ne(r,!0):(z(t,0,pe),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t+1,e),n=ne(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=ne(i):(z(t,0,pe),e===void 0?e=o.rounding:z(e,0,8),r=g(new o(i),t+i.e+1,e),n=ne(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};f.toFraction=function(t){var e,n,r,i,o,s,a,c,u,m,l,d,p=this,y=p.d,b=p.constructor;if(!y)return new b(p);if(u=n=new b(1),r=c=new b(0),e=new b(r),o=e.e=Kt(y)-p.e-1,s=o%h,e.d[0]=O(10,s<0?h+s:s),t==null)t=o>0?e:u;else{if(a=new b(t),!a.isInt()||a.lt(u))throw Error(fe+a);t=a.gt(e)?o>0?e:u:a}for(w=!1,a=new b(K(y)),m=b.precision,b.precision=o=y.length*h*2;l=N(a,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=r,r=i,i=u,u=c.plus(l.times(i)),c=i,i=e,e=a.minus(l.times(i)),a=i;return i=N(t.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=p.s,d=N(u,r,o,1).minus(p).abs().cmp(N(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],b.precision=m,w=!0,d};f.toHexadecimal=f.toHex=function(t,e){return ct(this,16,t,e)};f.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:z(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]?(w=!1,n=N(n,t,0,e,1).times(t),w=!0,g(n)):(t.s=n.s,n=t),n};f.toNumber=function(){return+this};f.toOctal=function(t,e){return ct(this,8,t,e)};f.toPower=f.pow=function(t){var e,n,r,i,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(O(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,t.eq(1))return g(a,r,o);if(e=U(t.e/h),e>=t.d.length-1&&(n=u<0?-u:u)<=Pn)return i=qt(c,a,n,r),t.s<0?new c(1).div(i):g(i,r,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=O(+a,u),e=n==0||!isFinite(n)?U(u*(Math.log("0."+K(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):(w=!1,c.rounding=a.s=1,n=Math.min(12,(e+"").length),i=at(t.times(de(a,r+n)),r),i.d&&(i=g(i,r+5,1),Ie(i.d,r,o)&&(e=r+10,i=g(at(t.times(de(a,e+n)),e),e+5,1),+K(i.d).slice(r+1,r+15)+1==1e14&&(i=g(i,r+1,0)))),i.s=s,w=!0,c.rounding=o,g(i,r,o))};f.toPrecision=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ne(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(z(t,1,pe),e===void 0?e=i.rounding:z(e,0,8),r=g(new i(r),t,e),n=ne(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};f.toSignificantDigits=f.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(z(t,1,pe),e===void 0?e=r.rounding:z(e,0,8)),g(new r(n),t,e)};f.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};f.truncated=f.trunc=function(){return g(new this.constructor(this),this.e+1,1)};f.valueOf=f.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 K(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=h-r.length,n&&(o+=le(n)),o+=r;s=t[e],r=s+"",n=h-r.length,n&&(o+=le(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function z(t,e,n){if(t!==~~t||t<e||t>n)throw Error(fe+t)}function Ie(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=h,i=0):(i=Math.ceil((e+1)/h),e%=h),o=O(10,h-e),a=t[i]%o|0,r==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[i+1]/o/100|0)==O(10,e-2)-1||(a==o/2||a==0)&&(t[i+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=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==O(10,e-3)-1,s}function ve(t,e,n){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=it.indexOf(t.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function Bn(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/We(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=xe(t,1,e.times(i),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(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function e(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,m,l,d,p,y,b,v,S,J,I,G,_e,oe,Qe,Me,Be,Je,$,Fe,Oe=r.constructor,$e=r.s==i.s?1:-1,V=r.d,C=i.d;if(!V||!V[0]||!C||!C[0])return new Oe(!r.s||!i.s||(V?C&&V[0]==C[0]:!C)?NaN:V&&V[0]==0||!C?$e*0:$e/0);for(c?(p=1,m=r.e-i.e):(c=te,p=h,m=U(r.e/p)-U(i.e/p)),$=C.length,Be=V.length,S=new Oe($e),J=S.d=[],l=0;C[l]==(V[l]||0);l++);if(C[l]>(V[l]||0)&&m--,o==null?(oe=o=Oe.precision,s=Oe.rounding):a?oe=o+(r.e-i.e)+1:oe=o,oe<0)J.push(1),y=!0;else{if(oe=oe/p+2|0,l=0,$==1){for(d=0,C=C[0],oe++;(l<Be||d)&&oe--;l++)Qe=d*c+(V[l]||0),J[l]=Qe/C|0,d=Qe%C|0;y=d||l<Be}else{for(d=c/(C[0]+1)|0,d>1&&(C=t(C,d,c),V=t(V,d,c),$=C.length,Be=V.length),Me=$,I=V.slice(0,$),G=I.length;G<$;)I[G++]=0;Fe=C.slice(),Fe.unshift(0),Je=C[0],C[1]>=c/2&&++Je;do d=0,u=e(C,I,$,G),u<0?(_e=I[0],$!=G&&(_e=_e*c+(I[1]||0)),d=_e/Je|0,d>1?(d>=c&&(d=c-1),b=t(C,d,c),v=b.length,G=I.length,u=e(b,I,v,G),u==1&&(d--,n(b,$<v?Fe:C,v,c))):(d==0&&(u=d=1),b=C.slice()),v=b.length,v<G&&b.unshift(0),n(I,b,G,c),u==-1&&(G=I.length,u=e(C,I,$,G),u<1&&(d++,n(I,$<G?Fe:C,G,c))),G=I.length):u===0&&(d++,I=[0]),J[l++]=d,u&&I[0]?I[G++]=V[Me]||0:(I=[V[Me]],G=1);while((Me++<Be||I[0]!==void 0)&&oe--);y=I[0]!==void 0}J[0]||J.shift()}if(p==1)S.e=m,Mt=y;else{for(l=1,d=J[0];d>=10;d/=10)l++;S.e=l+m*p-1,g(S,a?o+S.e+1:o,s,y)}return S}}();function g(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=h,s=e,m=l[d=0],c=m/O(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/h),a=l.length,d>=a)if(r){for(;a++<=d;)l.push(0);m=c=0,i=1,o%=h,s=o-h+1}else break e;else{for(m=a=l[d],i=1;a>=10;a/=10)i++;o%=h,s=o-h+i,c=s<0?0:m/O(10,i-s-1)%10|0}if(r=r||e<0||l[d+1]!==void 0||(s<0?m:m%O(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(t.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?m/O(10,i-s):0:l[d-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,u?(e-=t.e+1,l[0]=O(10,(h-e%h)%h),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=d,a=1,d--):(l.length=d+1,a=O(10,h-o),l[d]=s>0?(m/O(10,i-s)%O(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==te&&(l[0]=1));break}else{if(l[d]+=a,l[d]!=te)break;l[d--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return w&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function ne(t,e,n){if(!t.isFinite())return Vt(t);var r,i=t.e,o=K(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+le(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+le(-i-1)+o,n&&(r=n-s)>0&&(o+=le(r))):i>=s?(o+=le(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+le(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=le(r))),o}function Ue(t,e){var n=t[0];for(e*=h;n>=10;n/=10)e++;return e}function Ge(t,e,n){if(e>kn)throw w=!0,n&&(t.precision=n),Error(Ft);return g(new t(Ke),e,1,!0)}function ee(t,e,n){if(e>st)throw Error(Ft);return g(new t(qe),e,n,!0)}function Kt(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 le(t){for(var e="";t--;)e+="0";return e}function qt(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/h+4);for(w=!1;;){if(n%2&&(o=o.times(e),Rt(o.d,s)&&(i=!0)),n=U(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Rt(e.d,s)}return w=!0,o}function Et(t){return t.d[t.d.length-1]&1}function Gt(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function at(t,e){var n,r,i,o,s,a,c,u=0,m=0,l=0,d=t.constructor,p=d.rounding,y=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?(w=!1,c=y):c=e,a=new d(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(O(2,l))/Math.LN10*2+5|0,c+=r,n=o=s=new d(1),d.precision=c;;){if(o=g(o.times(t),c,1),n=n.times(++m),a=s.plus(N(o,n,c,1)),K(a.d).slice(0,c)===K(s.d).slice(0,c)){for(i=l;i--;)s=g(s.times(s),c,1);if(e==null)if(u<3&&Ie(s.d,c-r,p,u))d.precision=c+=10,n=o=a=new d(1),m=0,u++;else return g(s,d.precision=y,p,w=!0);else return d.precision=y,s}s=a}}function de(t,e){var n,r,i,o,s,a,c,u,m,l,d,p=1,y=10,b=t,v=b.d,S=b.constructor,J=S.rounding,I=S.precision;if(b.s<0||!v||!v[0]||!b.e&&v[0]==1&&v.length==1)return new S(v&&!v[0]?-1/0:b.s!=1?NaN:v?0:b);if(e==null?(w=!1,m=I):m=e,S.precision=m+=y,n=K(v),r=n.charAt(0),Math.abs(o=b.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)b=b.times(t),n=K(b.d),r=n.charAt(0),p++;o=b.e,r>1?(b=new S("0."+n),o++):b=new S(r+"."+n.slice(1))}else return u=Ge(S,m+2,I).times(o+""),b=de(new S(r+"."+n.slice(1)),m-y).plus(u),S.precision=I,e==null?g(b,I,J,w=!0):b;for(l=b,c=s=b=N(b.minus(1),b.plus(1),m,1),d=g(b.times(b),m,1),i=3;;){if(s=g(s.times(d),m,1),u=c.plus(N(s,new S(i),m,1)),K(u.d).slice(0,m)===K(c.d).slice(0,m))if(c=c.times(2),o!==0&&(c=c.plus(Ge(S,m+2,I).times(o+""))),c=N(c,new S(p),m,1),e==null)if(Ie(c.d,m-y,J,a))S.precision=m+=y,u=s=b=N(l.minus(1),l.plus(1),m,1),d=g(b.times(b),m,1),i=a=1;else return g(c,S.precision=I,J,w=!0);else return S.precision=I,c;c=u,i+=2}}function Vt(t){return String(t.s*t.s/0)}function ut(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%h,n<0&&(r+=h),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=h;r<i;)t.d.push(+e.slice(r,r+=h));e=e.slice(r),r=h-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),w&&(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 In(t,e){var n,r,i,o,s,a,c,u,m;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),vt.test(e))return ut(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(xn.test(e))n=16,e=e.toLowerCase();else if(Tn.test(e))n=2;else if(An.test(e))n=8;else throw Error(fe+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,r=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=qt(r,new r(n),o,o*2)),u=ve(e,n,te),m=u.length-1,o=m;u[o]===0;--o)u.pop();return o<0?new r(t.s*0):(t.e=Ue(u,m),t.d=u,w=!1,s&&(t=N(t,i,a*4)),c&&(t=t.times(Math.abs(c)<54?O(2,c):Ne.pow(2,c))),w=!0,t)}function Nn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:xe(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/We(5,n)),e=xe(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function xe(t,e,n,r,i){var o,s,a,c,u=1,m=t.precision,l=Math.ceil(m/h);for(w=!1,c=n.times(n),a=new t(r);;){if(s=N(a.times(c),new t(e++*e++),m,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new t(e++*e++),m,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return w=!0,s.d.length=l+1,s}function We(t,e){for(var n=t;--e;)n*=t;return n}function Ut(t,e){var n,r=e.s<0,i=ee(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return se=r?4:1,e;if(n=e.divToInt(i),n.isZero())se=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return se=Et(n)?r?2:3:r?4:1,e;se=Et(n)?r?1:4:r?3:2}return e.minus(i).abs()}function ct(t,e,n,r){var i,o,s,a,c,u,m,l,d,p=t.constructor,y=n!==void 0;if(y?(z(n,1,pe),r===void 0?r=p.rounding:z(r,0,8)):(n=p.precision,r=p.rounding),!t.isFinite())m=Vt(t);else{for(m=ne(t),s=m.indexOf("."),y?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(m=m.replace(".",""),d=new p(1),d.e=m.length-s,d.d=ve(ne(d),10,i),d.e=d.d.length),l=ve(m,10,i),o=c=l.length;l[--c]==0;)l.pop();if(!l[0])m=y?"0p+0":"0";else{if(s<0?o--:(t=new p(t),t.d=l,t.e=o,t=N(t,d,n,r,0,i),l=t.d,o=t.e,u=Mt),s=l[n],a=i/2,u=u||l[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,u)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(s=0,m="";s<c;s++)m+=it.charAt(l[s]);if(y){if(c>1)if(e==16||e==8){for(s=e==16?4:3,--c;c%s;c++)m+="0";for(l=ve(m,i,e),c=l.length;!l[c-1];--c);for(s=1,m="1.";s<c;s++)m+=it.charAt(l[s])}else m=m.charAt(0)+"."+m.slice(1);m=m+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)m="0"+m;m="0."+m}else if(++o>c)for(o-=c;o--;)m+="0";else o<c&&(m=m.slice(0,o)+"."+m.slice(o))}m=(e==16?"0x":e==2?"0b":e==8?"0o":"")+m}return t.s<0?"-"+m:m}function Rt(t,e){if(t.length>e)return t.length=e,!0}function Cn(t){return new this(t).abs()}function Sn(t){return new this(t).acos()}function Ln(t){return new this(t).acosh()}function En(t,e){return new this(t).plus(e)}function Rn(t){return new this(t).asin()}function _n(t){return new this(t).asinh()}function Mn(t){return new this(t).atan()}function Fn(t){return new this(t).atanh()}function On(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+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,r,i):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(N(t,e,o,1)),e=ee(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(N(t,e,o,1)),n}function Dn(t){return new this(t).cbrt()}function vn(t){return g(t=new this(t),t.e+1,2)}function Kn(t,e,n){return new this(t).clamp(e,n)}function qn(t){if(!t||typeof t!="object")throw Error(Ve+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,pe,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=ot[n]),(r=t[n])!==void 0)if(U(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(fe+n+": "+r);if(n="crypto",i&&(this[n]=ot[n]),(r=t[n])!==void 0)if(r===!0||r===!1||r===0||r===1)if(r)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(Ot);else this[n]=!1;else throw Error(fe+n+": "+r);return this}function Gn(t){return new this(t).cos()}function Vn(t){return new this(t).cosh()}function Wt(t){var e,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,_t(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.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++;w?s>i.maxE?(u.e=NaN,u.d=null):s<i.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 ut(u,o.toString())}else if(c!=="string")throw Error(fe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),vt.test(o)?ut(u,o):In(u,o)}if(i.prototype=f,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=qn,i.clone=Wt,i.isDecimal=_t,i.abs=Cn,i.acos=Sn,i.acosh=Ln,i.add=En,i.asin=Rn,i.asinh=_n,i.atan=Mn,i.atanh=Fn,i.atan2=On,i.cbrt=Dn,i.ceil=vn,i.clamp=Kn,i.cos=Gn,i.cosh=Vn,i.div=Un,i.exp=Wn,i.floor=Xn,i.hypot=zn,i.ln=Hn,i.log=jn,i.log10=Zn,i.log2=Yn,i.max=Qn,i.min=Jn,i.mod=$n,i.mul=er,i.pow=tr,i.random=nr,i.round=rr,i.sign=ir,i.sin=or,i.sinh=sr,i.sqrt=ar,i.sub=ur,i.sum=cr,i.tan=mr,i.tanh=lr,i.trunc=dr,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function Un(t,e){return new this(t).div(e)}function Wn(t){return new this(t).exp()}function Xn(t){return g(t=new this(t),t.e+1,3)}function zn(){var t,e,n=new this(0);for(w=!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 w=!0,new this(1/0);n=e}return w=!0,n.sqrt()}function _t(t){return t instanceof Ne||t&&t.toStringTag===Dt||!1}function Hn(t){return new this(t).ln()}function jn(t,e){return new this(t).log(e)}function Yn(t){return new this(t).log(2)}function Zn(t){return new this(t).log(10)}function Qn(){return Gt(this,arguments,"lt")}function Jn(){return Gt(this,arguments,"gt")}function $n(t,e){return new this(t).mod(e)}function er(t,e){return new this(t).mul(e)}function tr(t,e){return new this(t).pow(e)}function nr(t){var e,n,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:z(t,1,pe),r=Math.ceil(t/h),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Ot);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=h,r&&t&&(i=O(10,h-t),a[o]=(r/i|0)*i);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(r=1,i=a[0];i>=10;i/=10)r++;r<h&&(n-=h-r)}return s.e=n,s.d=a,s}function rr(t){return g(t=new this(t),t.e+1,this.rounding)}function ir(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function or(t){return new this(t).sin()}function sr(t){return new this(t).sinh()}function ar(t){return new this(t).sqrt()}function ur(t,e){return new this(t).sub(e)}function cr(){var t=0,e=arguments,n=new this(e[t]);for(w=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return w=!0,g(n,this.precision,this.rounding)}function mr(t){return new this(t).tan()}function lr(t){return new this(t).tanh()}function dr(t){return g(t=new this(t),t.e+1,1)}f[Symbol.for("nodejs.util.inspect.custom")]=f.toString;f[Symbol.toStringTag]="Decimal";var Ne=f.constructor=Wt(ot);Ke=new Ne(Ke);qe=new Ne(qe);var W=Ne;import Tr from"big.js";import Di from"bn.js";import fr from"toformat";var pr=fr,Ce=pr;import ze from"big.js";import hr from"bn.js";import br from"decimal.js-light";import Se from"bn.js";var Xt=9007199254740991;function ae(t){let e=Z("Raydium_parseBigNumberish");if(t instanceof Se)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Se(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=Xt||t<=-Xt)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Se(String(t))):typeof t=="bigint"?new Se(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Se(0))}var Xe=Z("module/fraction"),mt=Ce(ze),Le=Ce(br),wr={[0]:Le.ROUND_DOWN,[1]:Le.ROUND_HALF_UP,[2]:Le.ROUND_UP},yr={[0]:ze.roundDown,[1]:ze.roundHalfUp,[2]:ze.roundUp},L=class{constructor(e,n=new hr(1)){this.numerator=ae(e),this.denominator=ae(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new L(this.denominator,this.numerator)}add(e){let n=e instanceof L?e:new L(ae(e));return this.denominator.eq(n.denominator)?new L(this.numerator.add(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof L?e:new L(ae(e));return this.denominator.eq(n.denominator)?new L(this.numerator.sub(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof L?e:new L(ae(e));return new L(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof L?e:new L(ae(e));return new L(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||Xe.logWithError(`${e} is not an integer.`),e<=0&&Xe.logWithError(`${e} is not positive.`),Le.set({precision:e+1,rounding:wr[r]});let i=new Le(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||Xe.logWithError(`${e} is not an integer.`),e<0&&Xe.logWithError(`${e} is negative.`),mt.DP=e,mt.RM=yr[r]||1,new mt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var zi=Z("Raydium_amount"),Hi=Ce(Tr);import{PublicKey as Ar}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zt}from"@solana/spl-token";var Ht={chainId:101,address:Ar.default.toBase58(),programId:zt.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},be={chainId:101,address:"So11111111111111111111111111111111111111112",programId:zt.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as dt}from"@solana/web3.js";import{PublicKey as E,SystemProgram as jt,SYSVAR_RENT_PUBKEY as Pr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kr}from"@solana/spl-token";function lt({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var to=[lt({pubkey:kr,isWritable:!1}),lt({pubkey:jt.programId,isWritable:!1}),lt({pubkey:Pr,isWritable:!1})];function Yt({publicKey:t,transformSol:e}){let n=Zt(t.toString());if(n instanceof E)return e&&n.equals(Ee)?rt:n;if(e&&n.toString()===Ee.toBase58())return rt;if(typeof n=="string"){if(n===E.default.toBase58())return E.default;try{return new E(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Zt(t){try{return new E(t)}catch{return t}}var no=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ro=new E("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),io=new E("SysvarRent111111111111111111111111111111111"),oo=new E("SysvarC1ock11111111111111111111111111111111"),Br=new E("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),so=new E("Sysvar1nstructions1111111111111111111111111"),ao=jt.programId,uo=new E("2cpMA1jNS4obgRz8XNg38QuSP83L1AXpUgfxPNcvnAGj"),co=new E("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),mo=new E("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),lo=new E("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),fo=new E("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),po=new E("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),go=new E("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ho=new E("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),bo=new E("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),wo=new E("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),yo=new E("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),rt=new E("So11111111111111111111111111111111111111112"),Ee=E.default;var ft=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Ee.toBase58()||e instanceof dt&&Ee.equals(e)){this.decimals=be.decimals,this.symbol=be.symbol,this.name=be.name,this.mint=new dt(be.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?dt.default:Yt({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},we=ft;we.WSOL=new ft({...be,mint:be.address});var pt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},He=pt;He.SOL=new pt(Ht);import Ir from"bn.js";var Eo=new L(new Ir(100));var Do=Z("Raydium_price");import{PublicKey as es}from"@solana/web3.js";import ns from"bn.js";var Nr=new ue(0),Ts=new ue(1),xs=new ue(2),As=new ue(3),Ps=new ue(5),xr=new ue(10),ks=new ue(100),Bs=new ue(1e3),Is=new ue(1e4);function nt(t,e=1,n=[]){let r=[...t];if(e<=0)return n;for(;r.length;)n.push(r.splice(0,e));return n}import{PublicKey as Qs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $s}from"@solana/spl-token";import{ComputeBudgetProgram as Fs,Keypair as vs,PublicKey as Cr,Transaction as qs,TransactionMessage as Vs,VersionedTransaction as Us}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Hs}from"@solana/spl-token";var js=Z("Raydium_txUtil");function wt(t,e){let[n,r]=Cr.findProgramAddressSync(t,e);return{publicKey:n,nonce:r}}import{PublicKey as T}from"@solana/web3.js";var ra=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),ia=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),oa=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),sa=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),aa=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),ua=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ca=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ma=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),la=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),da=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),fa=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pa=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ga=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ha=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ba=new T("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),wa=new T("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ya=new T("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ta=new T("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),xa=new T("SNaPnpKUY656VPwbKmKT8FG4T85g4VWhRH1B4TQUfKs"),Aa=new T("9pR79Lqe6wDNjag3v8MeVYUostoXjY2ognTydor6AtEZ"),Pa=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Sr=new T("4AscABy58S62owbByjUUkQfZsP7fxYH1rDYb69V58HPM"),Lr=new T("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Er=new T("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),ka=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Rr=new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Ba=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),_r=new T("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Ia={SERUM_MARKET:T.default,OPENBOOK_MARKET:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:T.default,FarmV3:new T("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new T("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new T("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new T("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new T("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new T("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new T("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new T("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new T("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Sr,CREATE_CPMM_POOL_AUTH:Lr,CREATE_CPMM_POOL_FEE_ACC:Er,FEE_DESTINATION_ID:new T("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Rr,LCOK_CPMM_AUTH:_r};import Sa from"bn.js";import{PublicKey as Mr,AddressLookupTableAccount as Qt}from"@solana/web3.js";var Fr={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Qt({key:new Mr("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Qt.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};import{PublicKey as za,sendAndConfirmTransaction as Ha,Transaction as Ya,TransactionMessage as Qa,VersionedTransaction as Ja}from"@solana/web3.js";import eu from"axios";import{PublicKey as Wr}from"@solana/web3.js";import tn,{isBN as nn}from"bn.js";import{bits as Bu,BitStructure as Iu,blob as Or,Blob as Nu,cstr as Cu,f32 as Su,f32be as Lu,f64 as Eu,f64be as Ru,greedy as _u,Layout as Dr,ns64 as Mu,ns64be as Fu,nu64 as Ou,nu64be as Du,offset as vu,s16 as Ku,s16be as qu,s24 as Gu,s24be as Vu,s32 as vr,s32be as Uu,s40 as Wu,s40be as Xu,s48 as zu,s48be as Hu,s8 as ju,seq as Kr,struct as Yu,Structure as qr,u16 as Gr,u16be as Zu,u24 as Qu,u24be as Ju,u32 as $u,u32be as ec,u40 as tc,u40be as nc,u48 as rc,u48be as ic,u8 as Vr,UInt as Ur,union as oc,Union as sc,unionLayoutDiscriminator as ac,utf8 as uc}from"@solana/buffer-layout";var yt=Dr,Jt=qr;var Tt=Ur;var $t=Vr,Re=Gr;var ge=vr;var en=Kr;var j=Or;var Ae=class extends yt{constructor(n,r,i){super(n,i);this.blob=j(n),this.signed=r}decode(n,r=0){let i=new tn(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new tn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function H(t){return new Tt(1,t)}function Pe(t){return new Tt(4,t)}function P(t){return new Ae(8,!1,t)}function _(t){return new Ae(16,!1,t)}function rn(t){return new Ae(8,!0,t)}function on(t){return new Ae(16,!0,t)}var je=class extends yt{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function k(t){return new je(j(32),e=>new Wr(e),e=>e.toBuffer(),t)}function sn(t){return new je($t(),Xr,zr,t)}function Xr(t){if(t===0)return!1;if(t===1)return!0;throw new Error("Invalid bool: "+t)}function zr(t){return t?1:0}var xt=class extends Jt{decode(e,n){return super.decode(e,n)}};function X(t,e,n){return new xt(t,e,n)}function R(t,e,n){let r,i=typeof e=="number"?e:nn(e)?e.toNumber():new Proxy(e,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=nn(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return en(t,i,n)}import ti from"bn.js";import Q from"bn.js";var re=new Q(0),ke=new Q(1),an=new Q(-1),Ye=new Q(1).shln(64),Ze=new Q(1).shln(128),Hr=Ye.sub(ke),At=64,un=Ze.subn(1),ce=-443636,he=-ce,Pt=new Q("4295048016"),kt=new Q("79226673521066979257578248091"),Ac=new Q("4295048017"),Pc=new Q("79226673521066979257578248090"),cn=16,mn="59543866431248",ln="184467440737095516",dn="15793534762490258745",jr=new Q(10).pow(new Q(6));var kc=new Q("18446744073700000000");import B from"bn.js";function fn(t){let e=new ArrayBuffer(4);return new DataView(e).setInt32(0,t,!1),new Uint8Array(e)}var Lc=Buffer.from("amm_config","utf8"),Ec=Buffer.from("pool","utf8"),Rc=Buffer.from("pool_vault","utf8"),_c=Buffer.from("pool_reward_vault","utf8"),Mc=Buffer.from("position","utf8"),Yr=Buffer.from("tick_array","utf8"),Fc=Buffer.from("operation","utf8"),Oc=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Dc=Buffer.from("observation","utf8");function me(t,e,n){return wt([Yr,e.toBuffer(),fn(n)],t)}var vc=Buffer.from("locked_position","utf8");import{PublicKey as dm}from"@solana/web3.js";import{TOKEN_2022_PROGRAM_ID as pm}from"@solana/spl-token";import hm from"bn.js";import Gc from"bn.js";var Bt=14;var ie=class{static mulDivRoundingUp(e,n,r){let i=e.mul(n),o=i.div(r);return i.mod(r).eq(re)||(o=o.add(ke)),o}static mulDivFloor(e,n,r){if(r.eq(re))throw new Error("division by 0");return e.mul(n).div(r)}static mulDivCeil(e,n,r){if(r.eq(re))throw new Error("division by 0");return e.mul(n).add(r.sub(ke)).div(r)}static x64ToDecimal(e,n){return new W(e.toString()).div(W.pow(2,64)).toDecimalPlaces(n)}static decimalToX64(e){return new B(e.mul(W.pow(2,64)).floor().toFixed())}static wrappingSubU128(e,n){return e.add(Ze).sub(n).mod(Ze)}};function D(t,e){return Ct(t.mul(e),64,256)}function ei(t,e,n){let r=t.toTwos(n).shln(e);return r.imaskn(n+1),r.fromTwos(n)}function Ct(t,e,n){let r=t.toTwos(n).shrn(e);return r.imaskn(n-e+1),r.fromTwos(n-e)}var F=class{static sqrtPriceX64ToPrice(e,n,r){return ie.x64ToDecimal(e).pow(2).mul(W.pow(10,n-r))}static priceToSqrtPriceX64(e,n,r){return ie.decimalToX64(e.mul(W.pow(10,r-n)).sqrt())}static getNextSqrtPriceX64FromInput(e,n,r,i){if(!e.gt(re))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(re))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!0):this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!0)}static getNextSqrtPriceX64FromOutput(e,n,r,i){if(!e.gt(re))throw new Error("sqrtPriceX64 must greater than 0");if(!n.gt(re))throw new Error("liquidity must greater than 0");return i?this.getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,!1):this.getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,!1)}static getNextSqrtPriceFromTokenAmountARoundingUp(e,n,r,i){if(r.eq(re))return e;let o=n.shln(At);if(i){let s=o,a=o.add(r.mul(e));return a.gte(s)?ie.mulDivCeil(s,e,a):ie.mulDivRoundingUp(s,ke,s.div(e).add(r))}else{let s=r.mul(e);if(!o.gt(s))throw new Error("getNextSqrtPriceFromTokenAmountARoundingUp,liquidityLeftShift must gt amountMulSqrtPrice");let a=o.sub(s);return ie.mulDivCeil(o,e,a)}}static getNextSqrtPriceFromTokenAmountBRoundingDown(e,n,r,i){l