@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
3 lines • 85.5 kB
JavaScript
var Un=Object.defineProperty,qn=Object.defineProperties;var Gn=Object.getOwnPropertyDescriptors;var We=Object.getOwnPropertySymbols;var jt=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable;var Ht=(e,t,n)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,q=(e,t)=>{for(var n in t||(t={}))jt.call(t,n)&&Ht(e,n,t[n]);if(We)for(var n of We(t))zt.call(t,n)&&Ht(e,n,t[n]);return e},ie=(e,t)=>qn(e,Gn(t));var ge=(e,t)=>{var n={};for(var r in e)jt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&We)for(var r of We(e))t.indexOf(r)<0&&zt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as pt,SystemProgram as vo}from"@solana/web3.js";import{PublicKey as zn}from"@solana/web3.js";import{get as Zt,set as Hn}from"lodash";var mt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},Yt={},jn={};function z(e){let t=Zt(Yt,e);if(!t){let n=Zt(jn,e);t=new mt({name:e,logLevel:n}),Hn(Yt,e,t)}return t}import{MINT_SIZE as Zo,TOKEN_PROGRAM_ID as Yo,getTransferFeeConfig as Jo,unpackMint as Xo}from"@solana/spl-token";var dt=z("Raydium_accountInfo_util");async function Jt(e,t,n){let{batchRequest:r,commitment:o="confirmed",chunkCount:i=100}=q({batchRequest:!1},n),s=ht(t,i),a=new Array(s.length).fill([]);if(r){let u=s.map(f=>{let p=e._buildArgs([f.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:p}}),c=ht(u,10);a=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(p=>{if(p){let{data:m,executable:h,lamports:g,owner:w,rentEpoch:P}=p;return m.length!==2&&m[1]!=="base64"&&dt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:h,lamports:g,owner:new zn(w),rentEpoch:P}}return null})))}else try{a=await Promise.all(s.map(u=>e.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&dt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}import oe from"bn.js";var we=9e15,le=1e9,gt="0123456789abcdef",qe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ge="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",bt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-we,maxE:we,crypto:!1},en,ne,C=!0,je="[DecimalError] ",ue=je+"Invalid argument: ",tn=je+"Precision limit exceeded",nn=je+"crypto unavailable",rn="[object Decimal]",Z=Math.floor,H=Math.pow,Zn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Yn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Jn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,on=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,S=7,Xn=9007199254740991,Qn=qe.length-1,yt=Ge.length-1,d={toStringTag:rn};d.absoluteValue=d.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),k(e)};d.ceil=function(){return k(new this.constructor(this),this.e+1,2)};d.clampedTo=d.clamp=function(e,t){var n,r=this,o=r.constructor;if(e=new o(e),t=new o(t),!e.s||!t.s)return new o(NaN);if(e.gt(t))throw Error(ue+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new o(r)};d.comparedTo=d.cmp=function(e){var t,n,r,o,i=this,s=i.d,a=(e=new i.constructor(e)).d,u=i.s,c=e.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(i.e!==e.e)return i.e>e.e^u<0?1:-1;for(r=s.length,o=a.length,t=0,n=r<o?r:o;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===o?0:r>o^u<0?1:-1};d.cosine=d.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+S,r.rounding=1,n=$n(r,ln(r,n)),r.precision=e,r.rounding=t,k(ne==2||ne==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};d.cubeRoot=d.cbrt=function(){var e,t,n,r,o,i,s,a,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(C=!1,i=l.s*H(l.s*l,1/3),!i||Math.abs(i)==1/0?(n=j(l.d),e=l.e,(i=(e-n.length+1)%3)&&(n+=i==1||i==-2?"0":"00"),i=H(n,1/3),e=Z((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?n="5e"+e:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new f(n),r.s=l.s):r=new f(i.toString()),s=(e=f.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(l),r=F(c.plus(l).times(a),c.plus(u),s+2,1),j(a.d).slice(0,s)===(n=j(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!o&&n=="4999"){if(!o&&(k(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,o=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(k(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return C=!0,k(r,e,f.rounding,t)};d.decimalPlaces=d.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-Z(this.e/S))*S,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return F(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return k(F(t,new n(e),0,1,1),n.precision,n.rounding)};d.equals=d.eq=function(e){return this.cmp(e)===0};d.floor=function(){return k(new this.constructor(this),this.e+1,3)};d.greaterThan=d.gt=function(e){return this.cmp(e)>0};d.greaterThanOrEqualTo=d.gte=function(e){var t=this.cmp(e);return t==1||t===0};d.hyperbolicCosine=d.cosh=function(){var e,t,n,r,o,i=this,s=i.constructor,a=new s(1);if(!i.isFinite())return new s(i.s?1/0:NaN);if(i.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(i.e,i.sd())+4,s.rounding=1,o=i.d.length,o<32?(e=Math.ceil(o/3),t=(1/Ze(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=Te(s,1,i.times(t),new s(1),!0);for(var u,c=e,l=new s(8);c--;)u=i.times(i),i=a.minus(u.times(l.minus(u.times(l))));return k(i,s.precision=n,s.rounding=r,!0)};d.hyperbolicSine=d.sinh=function(){var e,t,n,r,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,n=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,r=o.d.length,r<3)o=Te(i,2,o,o,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,o=o.times(1/Ze(5,e)),o=Te(i,2,o,o,!0);for(var s,a=new i(5),u=new i(16),c=new i(20);e--;)s=o.times(o),o=o.times(a.plus(s.times(u.times(s).plus(c))))}return i.precision=t,i.rounding=n,k(o,t,n,!0)};d.hyperbolicTangent=d.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,F(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};d.inverseCosine=d.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),o=n.precision,i=n.rounding;return r!==-1?r===0?t.isNeg()?J(n,o,i):new n(0):new n(NaN):t.isZero()?J(n,o+4,i).times(.5):(n.precision=o+6,n.rounding=1,t=t.asin(),e=J(n,o+4,i).times(.5),n.precision=o,n.rounding=i,e.minus(t))};d.inverseHyperbolicCosine=d.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,C=!1,n=n.times(n).minus(1).sqrt().plus(n),C=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};d.inverseHyperbolicSine=d.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,C=!1,n=n.times(n).plus(1).sqrt().plus(n),C=!0,r.precision=e,r.rounding=t,n.ln())};d.inverseHyperbolicTangent=d.atanh=function(){var e,t,n,r,o=this,i=o.constructor;return o.isFinite()?o.e>=0?new i(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(e=i.precision,t=i.rounding,r=o.sd(),Math.max(r,e)<2*-o.e-1?k(new i(o),e,t,!0):(i.precision=n=r-o.e,o=F(o.plus(1),new i(1).minus(o),n+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)};d.inverseSine=d.asin=function(){var e,t,n,r,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),n=i.precision,r=i.rounding,t!==-1?t===0?(e=J(i,n+4,r).times(.5),e.s=o.s,e):new i(NaN):(i.precision=n+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=r,o.times(2)))};d.inverseTangent=d.atan=function(){var e,t,n,r,o,i,s,a,u,c=this,l=c.constructor,f=l.precision,p=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=yt)return s=J(l,f+4,p).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=yt)return s=J(l,f+4,p).times(.5),s.s=c.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/S+2|0),e=n;e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/S),r=1,u=c.times(c),s=new l(c),o=c;e!==-1;)if(o=o.times(u),i=s.minus(o.div(r+=2)),o=o.times(u),s=i.plus(o.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===i.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),C=!0,k(s,l.precision=f,l.rounding=p,!0)};d.isFinite=function(){return!!this.d};d.isInteger=d.isInt=function(){return!!this.d&&Z(this.e/S)>this.d.length-2};d.isNaN=function(){return!this.s};d.isNegative=d.isNeg=function(){return this.s<0};d.isPositive=d.isPos=function(){return this.s>0};d.isZero=function(){return!!this.d&&this.d[0]===0};d.lessThan=d.lt=function(e){return this.cmp(e)<0};d.lessThanOrEqualTo=d.lte=function(e){return this.cmp(e)<1};d.logarithm=d.log=function(e){var t,n,r,o,i,s,a,u,c=this,l=c.constructor,f=l.precision,p=l.rounding,m=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=c.d,c.s<0||!n||!n[0]||c.eq(1))return new l(n&&!n[0]?-1/0:c.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)i=!0;else{for(o=n[0];o%10===0;)o/=10;i=o!==1}if(C=!1,a=f+m,s=ce(c,a),r=t?He(l,a+10):ce(e,a),u=F(s,r,a,1),Ie(u.d,o=f,p))do if(a+=10,s=ce(c,a),r=t?He(l,a+10):ce(e,a),u=F(s,r,a,1),!i){+j(u.d).slice(o+1,o+15)+1==1e14&&(u=k(u,f+1,0));break}while(Ie(u.d,o+=10,p));return C=!0,k(u,f,p)};d.minus=d.sub=function(e){var t,n,r,o,i,s,a,u,c,l,f,p,m=this,h=m.constructor;if(e=new h(e),!m.d||!e.d)return!m.s||!e.s?e=new h(NaN):m.d?e.s=-e.s:e=new h(e.d||m.s!==e.s?m:NaN),e;if(m.s!=e.s)return e.s=-e.s,m.plus(e);if(c=m.d,p=e.d,a=h.precision,u=h.rounding,!c[0]||!p[0]){if(p[0])e.s=-e.s;else if(c[0])e=new h(m);else return new h(u===3?-0:0);return C?k(e,a,u):e}if(n=Z(e.e/S),l=Z(m.e/S),c=c.slice(),i=l-n,i){for(f=i<0,f?(t=c,i=-i,s=p.length):(t=p,n=l,s=c.length),r=Math.max(Math.ceil(a/S),s)+2,i>r&&(i=r,t.length=1),t.reverse(),r=i;r--;)t.push(0);t.reverse()}else{for(r=c.length,s=p.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(c[r]!=p[r]){f=c[r]<p[r];break}i=0}for(f&&(t=c,c=p,p=t,e.s=-e.s),s=c.length,r=p.length-s;r>0;--r)c[s++]=0;for(r=p.length;r>i;){if(c[--r]<p[r]){for(o=r;o&&c[--o]===0;)c[o]=X-1;--c[o],c[r]+=X}c[r]-=p[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(e.d=c,e.e=ze(c,n),C?k(e,a,u):e):new h(u===3?-0:0)};d.modulo=d.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?k(new r(n),r.precision,r.rounding):(C=!1,r.modulo==9?(t=F(n,e.abs(),0,3,1),t.s*=e.s):t=F(n,e,0,r.modulo,1),t=t.times(e),C=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return wt(this)};d.naturalLogarithm=d.ln=function(){return ce(this)};d.negated=d.neg=function(){var e=new this.constructor(this);return e.s=-e.s,k(e)};d.plus=d.add=function(e){var t,n,r,o,i,s,a,u,c,l,f=this,p=f.constructor;if(e=new p(e),!f.d||!e.d)return!f.s||!e.s?e=new p(NaN):f.d||(e=new p(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(c=f.d,l=e.d,a=p.precision,u=p.rounding,!c[0]||!l[0])return l[0]||(e=new p(f)),C?k(e,a,u):e;if(i=Z(f.e/S),r=Z(e.e/S),c=c.slice(),o=i-r,o){for(o<0?(n=c,o=-o,s=l.length):(n=l,r=i,s=c.length),i=Math.ceil(a/S),s=i>s?i+1:s+1,o>s&&(o=s,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(s=c.length,o=l.length,s-o<0&&(o=s,n=l,l=c,c=n),t=0;o;)t=(c[--o]=c[o]+l[o]+t)/X|0,c[o]%=X;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return e.d=c,e.e=ze(c,r),C?k(e,a,u):e};d.precision=d.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ue+e);return n.d?(t=sn(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};d.round=function(){var e=this,t=e.constructor;return k(new t(e),e.e+1,t.rounding)};d.sine=d.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+S,r.rounding=1,n=tr(r,ln(r,n)),r.precision=e,r.rounding=t,k(ne>2?n.neg():n,e,t,!0)):new r(NaN)};d.squareRoot=d.sqrt=function(){var e,t,n,r,o,i,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(c!==1||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(C=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=j(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=Z((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new l(t)):r=new l(c.toString()),n=(u=l.precision)+3;;)if(i=r,r=i.plus(F(s,i,n+2,1)).times(.5),j(i.d).slice(0,n)===(t=j(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!o&&t=="4999"){if(!o&&(k(i,u+1,0),i.times(i).eq(s))){r=i;break}n+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(k(r,u+1,1),e=!r.times(r).eq(s));break}return C=!0,k(r,u,l.rounding,e)};d.tangent=d.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=F(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,k(ne==2||ne==4?n.neg():n,e,t,!0)):new r(NaN)};d.times=d.mul=function(e){var t,n,r,o,i,s,a,u,c,l=this,f=l.constructor,p=l.d,m=(e=new f(e)).d;if(e.s*=l.s,!p||!p[0]||!m||!m[0])return new f(!e.s||p&&!p[0]&&!m||m&&!m[0]&&!p?NaN:!p||!m?e.s/0:e.s*0);for(n=Z(l.e/S)+Z(e.e/S),u=p.length,c=m.length,u<c&&(i=p,p=m,m=i,s=u,u=c,c=s),i=[],s=u+c,r=s;r--;)i.push(0);for(r=c;--r>=0;){for(t=0,o=u+r;o>r;)a=i[o]+m[r]*p[o-r-1]+t,i[o--]=a%X|0,t=a/X|0;i[o]=(i[o]+t)%X|0}for(;!i[--s];)i.pop();return t?++n:i.shift(),e.d=i,e.e=ze(i,n),C?k(e,f.precision,f.rounding):e};d.toBinary=function(e,t){return xt(this,2,e,t)};d.toDecimalPlaces=d.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(Y(e,0,le),t===void 0?t=r.rounding:Y(t,0,8),k(n,e+n.e+1,t))};d.toExponential=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=ee(r,!0):(Y(e,0,le),t===void 0?t=o.rounding:Y(t,0,8),r=k(new o(r),e+1,t),n=ee(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toFixed=function(e,t){var n,r,o=this,i=o.constructor;return e===void 0?n=ee(o):(Y(e,0,le),t===void 0?t=i.rounding:Y(t,0,8),r=k(new i(o),e+o.e+1,t),n=ee(r,!1,e+r.e+1)),o.isNeg()&&!o.isZero()?"-"+n:n};d.toFraction=function(e){var t,n,r,o,i,s,a,u,c,l,f,p,m=this,h=m.d,g=m.constructor;if(!h)return new g(m);if(c=n=new g(1),r=u=new g(0),t=new g(r),i=t.e=sn(h)-m.e-1,s=i%S,t.d[0]=H(10,s<0?S+s:s),e==null)e=i>0?t:c;else{if(a=new g(e),!a.isInt()||a.lt(c))throw Error(ue+a);e=a.gt(t)?i>0?t:c:a}for(C=!1,a=new g(j(h)),l=g.precision,g.precision=i=h.length*S*2;f=F(a,t,0,1,1),o=n.plus(f.times(r)),o.cmp(e)!=1;)n=r,r=o,o=c,c=u.plus(f.times(o)),u=o,o=t,t=a.minus(f.times(o)),a=o;return o=F(e.minus(n),r,0,1,1),u=u.plus(o.times(c)),n=n.plus(o.times(r)),u.s=c.s=m.s,p=F(c,r,i,1).minus(m).abs().cmp(F(u,n,i,1).minus(m).abs())<1?[c,r]:[u,n],g.precision=l,C=!0,p};d.toHexadecimal=d.toHex=function(e,t){return xt(this,16,e,t)};d.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:Y(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(C=!1,n=F(n,e,0,t,1).times(e),C=!0,k(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return xt(this,8,e,t)};d.toPower=d.pow=function(e){var t,n,r,o,i,s,a=this,u=a.constructor,c=+(e=new u(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new u(H(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,i=u.rounding,e.eq(1))return k(a,r,i);if(t=Z(e.e/S),t>=e.d.length-1&&(n=c<0?-c:c)<=Xn)return o=an(u,a,n,r),e.s<0?new u(1).div(o):k(o,r,i);if(s=a.s,s<0){if(t<e.d.length-1)return new u(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=H(+a,c),t=n==0||!isFinite(n)?Z(c*(Math.log("0."+j(a.d))/Math.LN10+a.e+1)):new u(n+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(C=!1,u.rounding=a.s=1,n=Math.min(12,(t+"").length),o=wt(e.times(ce(a,r+n)),r),o.d&&(o=k(o,r+5,1),Ie(o.d,r,i)&&(t=r+10,o=k(wt(e.times(ce(a,t+n)),t),t+5,1),+j(o.d).slice(r+1,r+15)+1==1e14&&(o=k(o,r+1,0)))),o.s=s,C=!0,u.rounding=i,k(o,r,i))};d.toPrecision=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=ee(r,r.e<=o.toExpNeg||r.e>=o.toExpPos):(Y(e,1,le),t===void 0?t=o.rounding:Y(t,0,8),r=k(new o(r),e,t),n=ee(r,e<=r.e||r.e<=o.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toSignificantDigits=d.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(Y(e,1,le),t===void 0?t=r.rounding:Y(t,0,8)),k(new r(n),e,t)};d.toString=function(){var e=this,t=e.constructor,n=ee(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};d.truncated=d.trunc=function(){return k(new this.constructor(this),this.e+1,1)};d.valueOf=d.toJSON=function(){var e=this,t=e.constructor,n=ee(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function j(e){var t,n,r,o=e.length-1,i="",s=e[0];if(o>0){for(i+=s,t=1;t<o;t++)r=e[t]+"",n=S-r.length,n&&(i+=ae(n)),i+=r;s=e[t],r=s+"",n=S-r.length,n&&(i+=ae(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return i+s}function Y(e,t,n){if(e!==~~e||e<t||e>n)throw Error(ue+e)}function Ie(e,t,n,r){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=S,o=0):(o=Math.ceil((t+1)/S),t%=S),i=H(10,S-t),a=e[o]%i|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==i||n>3&&a+1==i/2)&&(e[o+1]/i/100|0)==H(10,t-2)-1||(a==i/2||a==0)&&(e[o+1]/i/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==i||!r&&n>3&&a+1==i/2)&&(e[o+1]/i/1e3|0)==H(10,t-3)-1,s}function Ue(e,t,n){for(var r,o=[0],i,s=0,a=e.length;s<a;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=gt.indexOf(e.charAt(s++)),r=0;r<o.length;r++)o[r]>n-1&&(o[r+1]===void 0&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}function $n(e,t){var n,r,o;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),o=(1/Ze(4,n)).toString()):(n=16,o="2.3283064365386962890625e-10"),e.precision+=n,t=Te(e,1,t.times(o),new e(1));for(var i=n;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var F=function(){function e(r,o,i){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*o+a,r[u]=s%i|0,a=s/i|0;return a&&r.unshift(a),r}function t(r,o,i,s){var a,u;if(i!=s)u=i>s?1:-1;else for(a=u=0;a<i;a++)if(r[a]!=o[a]){u=r[a]>o[a]?1:-1;break}return u}function n(r,o,i,s){for(var a=0;i--;)r[i]-=a,a=r[i]<o[i]?1:0,r[i]=a*s+r[i]-o[i];for(;!r[0]&&r.length>1;)r.shift()}return function(r,o,i,s,a,u){var c,l,f,p,m,h,g,w,P,A,b,y,T,x,L,I,E,O,D,M,v=r.constructor,V=r.s==o.s?1:-1,K=r.d,B=o.d;if(!K||!K[0]||!B||!B[0])return new v(!r.s||!o.s||(K?B&&K[0]==B[0]:!B)?NaN:K&&K[0]==0||!B?V*0:V/0);for(u?(m=1,l=r.e-o.e):(u=X,m=S,l=Z(r.e/m)-Z(o.e/m)),D=B.length,E=K.length,P=new v(V),A=P.d=[],f=0;B[f]==(K[f]||0);f++);if(B[f]>(K[f]||0)&&l--,i==null?(x=i=v.precision,s=v.rounding):a?x=i+(r.e-o.e)+1:x=i,x<0)A.push(1),h=!0;else{if(x=x/m+2|0,f=0,D==1){for(p=0,B=B[0],x++;(f<E||p)&&x--;f++)L=p*u+(K[f]||0),A[f]=L/B|0,p=L%B|0;h=p||f<E}else{for(p=u/(B[0]+1)|0,p>1&&(B=e(B,p,u),K=e(K,p,u),D=B.length,E=K.length),I=D,b=K.slice(0,D),y=b.length;y<D;)b[y++]=0;M=B.slice(),M.unshift(0),O=B[0],B[1]>=u/2&&++O;do p=0,c=t(B,b,D,y),c<0?(T=b[0],D!=y&&(T=T*u+(b[1]||0)),p=T/O|0,p>1?(p>=u&&(p=u-1),g=e(B,p,u),w=g.length,y=b.length,c=t(g,b,w,y),c==1&&(p--,n(g,D<w?M:B,w,u))):(p==0&&(c=p=1),g=B.slice()),w=g.length,w<y&&g.unshift(0),n(b,g,y,u),c==-1&&(y=b.length,c=t(B,b,D,y),c<1&&(p++,n(b,D<y?M:B,y,u))),y=b.length):c===0&&(p++,b=[0]),A[f++]=p,c&&b[0]?b[y++]=K[I]||0:(b=[K[I]],y=1);while((I++<E||b[0]!==void 0)&&x--);h=b[0]!==void 0}A[0]||A.shift()}if(m==1)P.e=l,en=h;else{for(f=1,p=A[0];p>=10;p/=10)f++;P.e=f+l*m-1,k(P,a?i+P.e+1:i,s,h)}return P}}();function k(e,t,n,r){var o,i,s,a,u,c,l,f,p,m=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(o=1,a=f[0];a>=10;a/=10)o++;if(i=t-o,i<0)i+=S,s=t,l=f[p=0],u=l/H(10,o-s-1)%10|0;else if(p=Math.ceil((i+1)/S),a=f.length,p>=a)if(r){for(;a++<=p;)f.push(0);l=u=0,o=1,i%=S,s=i-S+1}else break e;else{for(l=a=f[p],o=1;a>=10;a/=10)o++;i%=S,s=i-S+o,u=s<0?0:l/H(10,o-s-1)%10|0}if(r=r||t<0||f[p+1]!==void 0||(s<0?l:l%H(10,o-s-1)),c=n<4?(u||r)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||r||n==6&&(i>0?s>0?l/H(10,o-s):0:f[p-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,c?(t-=e.e+1,f[0]=H(10,(S-t%S)%S),e.e=-t||0):f[0]=e.e=0,e;if(i==0?(f.length=p,a=1,p--):(f.length=p+1,a=H(10,S-i),f[p]=s>0?(l/H(10,o-s)%H(10,s)|0)*a:0),c)for(;;)if(p==0){for(i=1,s=f[0];s>=10;s/=10)i++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;i!=a&&(e.e++,f[0]==X&&(f[0]=1));break}else{if(f[p]+=a,f[p]!=X)break;f[p--]=0,a=1}for(i=f.length;f[--i]===0;)f.pop()}return C&&(e.e>m.maxE?(e.d=null,e.e=NaN):e.e<m.minE&&(e.e=0,e.d=[0])),e}function ee(e,t,n){if(!e.isFinite())return un(e);var r,o=e.e,i=j(e.d),s=i.length;return t?(n&&(r=n-s)>0?i=i.charAt(0)+"."+i.slice(1)+ae(r):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+ae(-o-1)+i,n&&(r=n-s)>0&&(i+=ae(r))):o>=s?(i+=ae(o+1-s),n&&(r=n-o-1)>0&&(i=i+"."+ae(r))):((r=o+1)<s&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-s)>0&&(o+1===s&&(i+="."),i+=ae(r))),i}function ze(e,t){var n=e[0];for(t*=S;n>=10;n/=10)t++;return t}function He(e,t,n){if(t>Qn)throw C=!0,n&&(e.precision=n),Error(tn);return k(new e(qe),t,1,!0)}function J(e,t,n){if(t>yt)throw Error(tn);return k(new e(Ge),t,n,!0)}function sn(e){var t=e.length-1,n=t*S+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function ae(e){for(var t="";e--;)t+="0";return t}function an(e,t,n,r){var o,i=new e(1),s=Math.ceil(r/S+4);for(C=!1;;){if(n%2&&(i=i.times(t),Qt(i.d,s)&&(o=!0)),n=Z(n/2),n===0){n=i.d.length-1,o&&i.d[n]===0&&++i.d[n];break}t=t.times(t),Qt(t.d,s)}return C=!0,i}function Xt(e){return e.d[e.d.length-1]&1}function cn(e,t,n){for(var r,o=new e(t[0]),i=0;++i<t.length;)if(r=new e(t[i]),r.s)o[n](r)&&(o=r);else{o=r;break}return o}function wt(e,t){var n,r,o,i,s,a,u,c=0,l=0,f=0,p=e.constructor,m=p.rounding,h=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(C=!1,u=h):u=t,a=new p(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(H(2,f))/Math.LN10*2+5|0,u+=r,n=i=s=new p(1),p.precision=u;;){if(i=k(i.times(e),u,1),n=n.times(++l),a=s.plus(F(i,n,u,1)),j(a.d).slice(0,u)===j(s.d).slice(0,u)){for(o=f;o--;)s=k(s.times(s),u,1);if(t==null)if(c<3&&Ie(s.d,u-r,m,c))p.precision=u+=10,n=i=a=new p(1),l=0,c++;else return k(s,p.precision=h,m,C=!0);else return p.precision=h,s}s=a}}function ce(e,t){var n,r,o,i,s,a,u,c,l,f,p,m=1,h=10,g=e,w=g.d,P=g.constructor,A=P.rounding,b=P.precision;if(g.s<0||!w||!w[0]||!g.e&&w[0]==1&&w.length==1)return new P(w&&!w[0]?-1/0:g.s!=1?NaN:w?0:g);if(t==null?(C=!1,l=b):l=t,P.precision=l+=h,n=j(w),r=n.charAt(0),Math.abs(i=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=j(g.d),r=n.charAt(0),m++;i=g.e,r>1?(g=new P("0."+n),i++):g=new P(r+"."+n.slice(1))}else return c=He(P,l+2,b).times(i+""),g=ce(new P(r+"."+n.slice(1)),l-h).plus(c),P.precision=b,t==null?k(g,b,A,C=!0):g;for(f=g,u=s=g=F(g.minus(1),g.plus(1),l,1),p=k(g.times(g),l,1),o=3;;){if(s=k(s.times(p),l,1),c=u.plus(F(s,new P(o),l,1)),j(c.d).slice(0,l)===j(u.d).slice(0,l))if(u=u.times(2),i!==0&&(u=u.plus(He(P,l+2,b).times(i+""))),u=F(u,new P(m),l,1),t==null)if(Ie(u.d,l-h,A,a))P.precision=l+=h,c=s=g=F(f.minus(1),f.plus(1),l,1),p=k(g.times(g),l,1),o=a=1;else return k(u,P.precision=b,A,C=!0);else return P.precision=b,u;u=c,o+=2}}function un(e){return String(e.s*e.s/0)}function Tt(e,t){var n,r,o;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(o=t.length;t.charCodeAt(o-1)===48;--o);if(t=t.slice(r,o),t){if(o-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%S,n<0&&(r+=S),r<o){for(r&&e.d.push(+t.slice(0,r)),o-=S;r<o;)e.d.push(+t.slice(r,r+=S));t=t.slice(r),r=S-t.length}else r-=o;for(;r--;)t+="0";e.d.push(+t),C&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function er(e,t){var n,r,o,i,s,a,u,c,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),on.test(t))return Tt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Yn.test(t))n=16,t=t.toLowerCase();else if(Zn.test(t))n=2;else if(Jn.test(t))n=8;else throw Error(ue+t);for(i=t.search(/p/i),i>0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),i=t.indexOf("."),s=i>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,i=a-i,o=an(r,new r(n),i,i*2)),c=Ue(t,n,X),l=c.length-1,i=l;c[i]===0;--i)c.pop();return i<0?new r(e.s*0):(e.e=ze(c,l),e.d=c,C=!1,s&&(e=F(e,o,a*4)),u&&(e=e.times(Math.abs(u)<54?H(2,u):Ye.pow(2,u))),C=!0,e)}function tr(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:Te(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ze(5,n)),t=Te(e,2,t,t);for(var o,i=new e(5),s=new e(16),a=new e(20);n--;)o=t.times(t),t=t.times(i.plus(o.times(s.times(o).minus(a))));return t}function Te(e,t,n,r,o){var i,s,a,u,c=1,l=e.precision,f=Math.ceil(l/S);for(C=!1,u=n.times(n),a=new e(r);;){if(s=F(a.times(u),new e(t++*t++),l,1),a=o?r.plus(s):r.minus(s),r=F(s.times(u),new e(t++*t++),l,1),s=a.plus(r),s.d[f]!==void 0){for(i=f;s.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=r,r=s,s=i,c++}return C=!0,s.d.length=f+1,s}function Ze(e,t){for(var n=e;--t;)n*=e;return n}function ln(e,t){var n,r=t.s<0,o=J(e,e.precision,1),i=o.times(.5);if(t=t.abs(),t.lte(i))return ne=r?4:1,t;if(n=t.divToInt(o),n.isZero())ne=r?3:2;else{if(t=t.minus(n.times(o)),t.lte(i))return ne=Xt(n)?r?2:3:r?4:1,t;ne=Xt(n)?r?1:4:r?3:2}return t.minus(o).abs()}function xt(e,t,n,r){var o,i,s,a,u,c,l,f,p,m=e.constructor,h=n!==void 0;if(h?(Y(n,1,le),r===void 0?r=m.rounding:Y(r,0,8)):(n=m.precision,r=m.rounding),!e.isFinite())l=un(e);else{for(l=ee(e),s=l.indexOf("."),h?(o=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):o=t,s>=0&&(l=l.replace(".",""),p=new m(1),p.e=l.length-s,p.d=Ue(ee(p),10,o),p.e=p.d.length),f=Ue(l,10,o),i=u=f.length;f[--u]==0;)f.pop();if(!f[0])l=h?"0p+0":"0";else{if(s<0?i--:(e=new m(e),e.d=f,e.e=i,e=F(e,p,n,r,0,o),f=e.d,i=e.e,c=en),s=f[n],a=o/2,c=c||f[n+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,c)for(;++f[--n]>o-1;)f[n]=0,n||(++i,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,l="";s<u;s++)l+=gt.charAt(f[s]);if(h){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)l+="0";for(f=Ue(l,o,t),u=f.length;!f[u-1];--u);for(s=1,l="1.";s<u;s++)l+=gt.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)l="0"+l;l="0."+l}else if(++i>u)for(i-=u;i--;)l+="0";else i<u&&(l=l.slice(0,i)+"."+l.slice(i))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function Qt(e,t){if(e.length>t)return e.length=t,!0}function nr(e){return new this(e).abs()}function rr(e){return new this(e).acos()}function or(e){return new this(e).acosh()}function ir(e,t){return new this(e).plus(t)}function sr(e){return new this(e).asin()}function ar(e){return new this(e).asinh()}function cr(e){return new this(e).atan()}function ur(e){return new this(e).atanh()}function lr(e,t){e=new this(e),t=new this(t);var n,r=this.precision,o=this.rounding,i=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=J(this,i,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?J(this,r,o):new this(0),n.s=e.s):!e.d||t.isZero()?(n=J(this,i,1).times(.5),n.s=e.s):t.s<0?(this.precision=i,this.rounding=1,n=this.atan(F(e,t,i,1)),t=J(this,i,1),this.precision=r,this.rounding=o,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(F(e,t,i,1)),n}function fr(e){return new this(e).cbrt()}function pr(e){return k(e=new this(e),e.e+1,2)}function mr(e,t,n){return new this(e).clamp(t,n)}function dr(e){if(!e||typeof e!="object")throw Error(je+"Object expected");var t,n,r,o=e.defaults===!0,i=["precision",1,le,"rounding",0,8,"toExpNeg",-we,0,"toExpPos",0,we,"maxE",0,we,"minE",-we,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(n=i[t],o&&(this[n]=bt[n]),(r=e[n])!==void 0)if(Z(r)===r&&r>=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(ue+n+": "+r);if(n="crypto",o&&(this[n]=bt[n]),(r=e[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(nn);else this[n]=!1;else throw Error(ue+n+": "+r);return this}function hr(e){return new this(e).cos()}function gr(e){return new this(e).cosh()}function fn(e){var t,n,r;function o(i){var s,a,u,c=this;if(!(c instanceof o))return new o(i);if(c.constructor=o,$t(i)){c.s=i.s,C?!i.d||i.e>o.maxE?(c.e=NaN,c.d=null):i.e<o.minE?(c.e=0,c.d=[0]):(c.e=i.e,c.d=i.d.slice()):(c.e=i.e,c.d=i.d?i.d.slice():i.d);return}if(u=typeof i,u==="number"){if(i===0){c.s=1/i<0?-1:1,c.e=0,c.d=[0];return}if(i<0?(i=-i,c.s=-1):c.s=1,i===~~i&&i<1e7){for(s=0,a=i;a>=10;a/=10)s++;C?s>o.maxE?(c.e=NaN,c.d=null):s<o.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[i]):(c.e=s,c.d=[i]);return}else if(i*0!==0){i||(c.s=NaN),c.e=NaN,c.d=null;return}return Tt(c,i.toString())}else if(u!=="string")throw Error(ue+i);return(a=i.charCodeAt(0))===45?(i=i.slice(1),c.s=-1):(a===43&&(i=i.slice(1)),c.s=1),on.test(i)?Tt(c,i):er(c,i)}if(o.prototype=d,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=dr,o.clone=fn,o.isDecimal=$t,o.abs=nr,o.acos=rr,o.acosh=or,o.add=ir,o.asin=sr,o.asinh=ar,o.atan=cr,o.atanh=ur,o.atan2=lr,o.cbrt=fr,o.ceil=pr,o.clamp=mr,o.cos=hr,o.cosh=gr,o.div=br,o.exp=yr,o.floor=wr,o.hypot=Tr,o.ln=xr,o.log=Pr,o.log10=kr,o.log2=Ar,o.max=Sr,o.min=Ir,o.mod=Cr,o.mul=Br,o.pow=Lr,o.random=Nr,o.round=_r,o.sign=Rr,o.sin=Er,o.sinh=Mr,o.sqrt=Dr,o.sub=vr,o.sum=Or,o.tan=Kr,o.tanh=Fr,o.trunc=Vr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return o.config(e),o}function br(e,t){return new this(e).div(t)}function yr(e){return new this(e).exp()}function wr(e){return k(e=new this(e),e.e+1,3)}function Tr(){var e,t,n=new this(0);for(C=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return C=!0,new this(1/0);n=t}return C=!0,n.sqrt()}function $t(e){return e instanceof Ye||e&&e.toStringTag===rn||!1}function xr(e){return new this(e).ln()}function Pr(e,t){return new this(e).log(t)}function Ar(e){return new this(e).log(2)}function kr(e){return new this(e).log(10)}function Sr(){return cn(this,arguments,"lt")}function Ir(){return cn(this,arguments,"gt")}function Cr(e,t){return new this(e).mod(t)}function Br(e,t){return new this(e).mul(t)}function Lr(e,t){return new this(e).pow(t)}function Nr(e){var t,n,r,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Y(e,1,le),r=Math.ceil(e/S),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));i<r;)o=t[i],o>=429e7?t[i]=crypto.getRandomValues(new Uint32Array(1))[0]:a[i++]=o%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);i<r;)o=t[i]+(t[i+1]<<8)+(t[i+2]<<16)+((t[i+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(t,i):(a.push(o%1e7),i+=4);i=r/4}else throw Error(nn);else for(;i<r;)a[i++]=Math.random()*1e7|0;for(r=a[--i],e%=S,r&&e&&(o=H(10,S-e),a[i]=(r/o|0)*o);a[i]===0;i--)a.pop();if(i<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=S)a.shift();for(r=1,o=a[0];o>=10;o/=10)r++;r<S&&(n-=S-r)}return s.e=n,s.d=a,s}function _r(e){return k(e=new this(e),e.e+1,this.rounding)}function Rr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Er(e){return new this(e).sin()}function Mr(e){return new this(e).sinh()}function Dr(e){return new this(e).sqrt()}function vr(e,t){return new this(e).sub(t)}function Or(){var e=0,t=arguments,n=new this(t[e]);for(C=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return C=!0,k(n,this.precision,this.rounding)}function Kr(e){return new this(e).tan()}function Fr(e){return new this(e).tanh()}function Vr(e){return k(e=new this(e),e.e+1,1)}d[Symbol.for("nodejs.util.inspect.custom")]=d.toString;d[Symbol.toStringTag]="Decimal";var Ye=d.constructor=fn(bt);qe=new Ye(qe);Ge=new Ye(Ge);import Zr from"big.js";import gi from"bn.js";import Wr from"toformat";var Ur=Wr,Ce=Ur;import Xe from"big.js";import Gr from"bn.js";import Hr from"decimal.js-light";import Be from"bn.js";var pn=9007199254740991;function Q(e){let t=z("Raydium_parseBigNumberish");if(e instanceof Be)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Be(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=pn||e<=-pn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Be(String(e))):typeof e=="bigint"?new Be(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Be(0))}var Je=z("module/fraction"),Pt=Ce(Xe),Le=Ce(Hr),jr={[0]:Le.ROUND_DOWN,[1]:Le.ROUND_HALF_UP,[2]:Le.ROUND_UP},zr={[0]:Xe.roundDown,[1]:Xe.roundHalfUp,[2]:Xe.roundUp},W=class{constructor(t,n=new Gr(1)){this.numerator=Q(t),this.denominator=Q(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let n=t instanceof W?t:new W(Q(t));return this.denominator.eq(n.denominator)?new W(this.numerator.add(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof W?t:new W(Q(t));return this.denominator.eq(n.denominator)?new W(this.numerator.sub(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof W?t:new W(Q(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(Q(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Je.logWithError(`${t} is not an integer.`),t<=0&&Je.logWithError(`${t} is not positive.`),Le.set({precision:t+1,rounding:jr[r]});let o=new Le(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return o.toFormat(o.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Je.logWithError(`${t} is not an integer.`),t<0&&Je.logWithError(`${t} is negative.`),Pt.DP=t,Pt.RM=zr[r]||1,new Pt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Si=z("Raydium_amount"),Ii=Ce(Zr);import{PublicKey as Jr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mn}from"@solana/spl-token";var dn={chainId:101,address:Jr.default.toBase58(),programId:mn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},re={chainId:101,address:"So11111111111111111111111111111111111111112",programId:mn.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 kt}from"@solana/web3.js";import{PublicKey as U,SystemProgram as hn,SYSVAR_RENT_PUBKEY as Xr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qr}from"@solana/spl-token";function At({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Mi=[At({pubkey:Qr,isWritable:!1}),At({pubkey:hn.programId,isWritable:!1}),At({pubkey:Xr,isWritable:!1})];function gn({publicKey:e,transformSol:t}){let n=bn(e.toString());if(n instanceof U)return t&&n.equals(Ne)?se:n;if(t&&n.toString()===Ne.toBase58())return se;if(typeof n=="string"){if(n===U.default.toBase58())return U.default;try{return new U(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bn(e){try{return new U(e)}catch{return e}}var Di=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),vi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oi=new U("SysvarRent111111111111111111111111111111111"),Ki=new U("SysvarC1ock11111111111111111111111111111111"),Fi=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Vi=new U("Sysvar1nstructions1111111111111111111111111"),Wi=hn.programId,Ui=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qi=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Gi=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Hi=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ji=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),zi=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zi=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Yi=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ji=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Xi=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Qi=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),se=new U("So11111111111111111111111111111111111111112"),Ne=U.default;var St=class{constructor({mint:t,decimals:n,symbol:r,name:o,skipMint:i=!1,isToken2022:s=!1}){if(t===Ne.toBase58()||t instanceof kt&&Ne.equals(t)){this.decimals=re.decimals,this.symbol=re.symbol,this.name=re.name,this.mint=new kt(re.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=o||t.toString().substring(0,6),this.mint=i?kt.default:gn({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},xe=St;xe.WSOL=new St(ie(q({},re),{mint:re.address}));var It=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},Qe=It;Qe.SOL=new It(dn);import $r from"bn.js";var ls=new W(new $r(100));var gs=z("Raydium_price");import{PublicKey as Es}from"@solana/web3.js";import Ds from"bn.js";var eo=new oe(0),ea=new oe(1),ta=new oe(2),na=new oe(3),ra=new oe(5),Yr=new oe(10),oa=new oe(100),ia=new oe(1e3),sa=new oe(1e4);function ht(e,t=1,n=[]){let r=[...e];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as ao}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as co}from"@solana/spl-token";import{ComputeBudgetProgram as xn,Keypair as An,PublicKey as to,Transaction as kn,TransactionMessage as no,VersionedTransaction as Sn}from"@solana/web3.js";var G={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as ro}from"@solana/spl-token";var Pn=z("Raydium_txUtil"),In=1644;function $e(e){let t=[],n=[];return e.microLamports&&(t.push(xn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(G.SetComputeUnitPrice)),e.units&&(t.push(xn.setComputeUnitLimit({units:e.units})),n.push(G.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Pe(e,t){var r,o;let n=t!=null?t:"confirmed";return(o=await((r=e.getLatestBlockhash)==null?void 0:r.call(e,{commitment:n})))==null?void 0:o.blockhash}async function et(e,t){return e.getSignatureStatuses([t]),new Promise((n,r)=>{let o=setTimeout(r,6e4);e.onSignature(t,i=>{if(clearTimeout(o),!i.err){n("");return}r(Object.assign(i.err,{txId:t}))},"confirmed")})}function oo(e,t){e.length<1&&Pn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&Pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<In}catch{return!1}}function Cn(e,t){let[n,r]=to.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function _e({instructions:e,payer:t,signers:n}){return oo(e,[t,...n])}function Re({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=An.generate().publicKey.toString()}){let i=new no({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Sn(i).serialize()).toString("base64").length<In}catch{return!1}}var io=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),so=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof Sn&&(t=io(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function be(e){let t=[];return e.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=ro.toBase58()),n.feePayer||(n.feePayer=An.generate().publicKey)),t.push(so(n))}),console.log("simulate tx string:",t),t}function tt(e,t,n){return Cn([e.toBuffer(),(n!=null?n:co).toBuffer(),t.toBuffer()],new ao("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as N}from"@solana/web3.js";var Ca=new N("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Ba=new N("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),La=new N("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Na=new N("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),_a=new N("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ra=new N("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ea=new N("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Ma=new N("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Da=new N("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),va=new N("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Oa=new N("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ka=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fa=new N("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Va=new N("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Wa=new N("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ua=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),qa=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ga=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ha=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ja=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),za=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Za=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),uo=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),lo=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),fo=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Ya=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),po=new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Ja=new N("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),mo=new N("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Xa={SERUM_MARKET:N.default,OPENBOOK_MARKET:new N("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:N.default,FarmV3:new N("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new N("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new N("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new N("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new N("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new N("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new N("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new N("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:uo,CREATE_CPMM_POOL_AUTH:lo,CREATE_CPMM_POOL_FEE_ACC:fo,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:po,LCOK_CPMM_AUTH:mo};import ec from"bn.js";import{PublicKey as Bn,AddressLookupTableAccount as nt}from"@solana/web3.js";async function Ct({connection:e,address:t}){let n=await Jt(e,[...new Set(t.map(o=>o.toString()))].map(o=>new Bn(o))),r={};for(let o=0;o<t.length;o++){let i=n[o],s=t[o];if(!i)continue;let a=new nt({key:s,state:nt.deserialize(i.data)});r[s.toString()]=a,rt[s.toString()]=a}return r}var rt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new nt({key:new Bn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:nt.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 Ae,sendAndConfirmTransaction as Bt,SystemProgram as ho,Transaction as Ee,TransactionMessage as Me,VersionedTransaction as De}from"@solana/web3.js";import go from"axios";var ot=2e3,it=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await go.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=$e(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){return t?(this.endInstructions.push(ho.transfer({fromPubkey:this.owner.publicKey,toPubkey:new Ae(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(G.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(a=>a!==Ae.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(q({},n||{})):this.build(n)}build(t){var r;let n=new Ee;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var c;let{recentBlockHash:i,skipPreflight:s=!0,sendAndConfirm:a}=o||{},u=i!=null?i:await Pe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),be([n]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await Bt(this.connection,n,this.signers.find(f=>f.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:s}),signedTx:n};if(this.signAllTransactions){let l=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(l[0].serialize(),{skipPreflight:s}),signedTx:l[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:o}=this.build(r),i=n.filter(l=>l.transaction.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async l=>{var P;let{sequentially:f,onTxUpdate:p,skipTxCount:m=0,recentBlockHash:h,skipPreflight:g=!0}=l||{},w=h!=null?h:await Pe(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(f){let A=[],b=0;for(let y of s){if(++b,b<=m)continue;let T=await Bt(this.connection,y,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});A.push(T)}return{txIds:A,signedTxs:s}}return{txIds:await await Promise.all(s.map(async A=>(A.recentBlockhash=w,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let A=s.map((y,T)=>(y.recentBlockhash=w,a[T].length&&y.sign(...a[T]),y));be(A);let b=await this.signAllTransactions(A);if(f){let y=0,T=[],x=async()=>{if(!b[y])return;let L=await this.connection.sendRawTransaction(b[y].serialize(),{skipPreflight:g});T.push({txId:L,status:"sent",signedTx:b[y]}),p==null||p([...T]),y++;let I=!1,E=null,O=null,D=M=>{E!==null&&clearInterval(E),O!==null&&this.connection.removeSignatureListener(O);let v=T.findIndex(V=>V.txId===L);if(v>-1){if(T[v].status==="error"||T[v].status==="success")return;T[v].status=M.err?"error":"success"}p==null||p([...T]),M.err||x()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var M;if(I){clearInterval(E);return}try{let v=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(I=!0,clearInterval(E),D({err:((M=v.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",L))}catch(v){I=!0,clearInterval(E),console.error("getTransaction timeout:",v,L)}},ot)),O=this.connection.onSignature(L,M=>{if(I){this.connection.removeSignatureListener(O);return}I=!0,D(M)},"confirmed"),this.connection.getSignatureStatus(L)};return await x(),{txIds:T.map(L=>L.txId),signedTxs:b}}else{let y=[];for(let T=0;T<b.length;T+=1){let x=await this.connection.sendRawTransaction(b[T].serialize(),{skipPreflight:g});y.push(x)}return{txIds:y,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var g;let h=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:o,recentBlockhash:i}=h,s=ge(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=q(q({},this.cluster==="devnet"?{}:rt),n),u=Array.from(new Set([...r,...this.lookupTableAddress])),c=[];for(let w of u)a[w]===void 0&&c.push(new Ae(w));let l=await Ct({connection:this.connection,address:c});for(let[w,P]of Object.entries(l))a[w]=P;let f=o?Ae.default.toBase58():i!=null?i:await Pe(this.connection,this.blockhashCommitment),p=new Me({payerKey:this.feePayer,recentBlockhash:f,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(w=>w.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new De(p);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async w=>{var b;let{skipPreflight:P=!0,sendAndConfirm:A}=w||{};if(be([m]),(b=this.owner)!=null&&b.isKeyPair){let y=await this.connection.sendTransaction(m,{skipPreflight:P});return A&&await et(this.connection,y),{txId:y,signedTx:m}}if(this.signAllTransactions){let y=await this.signAllTransactions([m]);return{txId:await this.connection.sendTransaction(y[0],{skipPreflight:P}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(t){var c;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:o}=await this.buildV0(r),i=n.filter(l=>l.builder.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,f)=>{l.sign(a[f])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async l=>{var g;let{sequentially:f,onTxUpdate:p,recentBlockHash:m,skipPreflight:h=!0}=l||{};if(m&&s.forEach(w=>w.message.recentBlockhash=m),be(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let w=[];for(let P of s){let A=await this.connection.sendTransaction(P,{skipPreflight:h});await et(this.connection,A),w.push(A)}return{txIds:w,signedTxs:s}}return{txIds:await Promise.all(s.map(async w=>await this.connection.sendTransaction(w,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let w=await this.signAllTransactions(s);if(f){let P=0,A=[],b=async()=>{if(!w[P])return;let y=await this.connection.sendTransaction(w[P],{skipPreflight:h});A.push({txId:y,status:"sent",signedTx:w[P]}),p==null||p([...A]),P++;let T=!1,x=null,L=null,I=E=>{x!==null&&clearInterval(x),L!==null&&this.connection.removeSignatureListener(L);let O=A.findIndex(D=>D.txId===y);if(O>-1){if(A[O].status==="error"||A[O].status==="success")return;A[O].status=E.err?"error":"success"}p==null||p([...A]),E.err||b()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var E;if(T){clearInterval(x);return}try{let O=await this.connection.getTransaction(y,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(T=!0,clearInterval(x),I({err:((E=O.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",y))}catch(O){T=!0,clearInterval(x),console.error("getTransaction timeout:",O,y)}},ot)),L=this.connection.onSignature(y,E=>{if(T){this.connection.removeSignatureListener(L);return}T=!0,I(E)},"confirmed"),this.connection.getSignatureStatus(y)};return b(),{txIds:[],signedTxs:w}}else{let P=[];for(let A=0;A<w.length;A+=1){let b=await this.connection.sendTransaction(w[A],{skipPreflight:h});P.push(b)}return{txIds:P,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var p;let f=t||{},{splitIns:n=[],computeBudgetConfig:r}=f,o=ge(f,["splitIns","computeBudgetConfig"]),i=r?$e(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((m,h)=>ie(q({},m),{[h.publicKey.toBase58()]:h}),{}),a=[],u=[],c=[],l=0;if(this.allInstructions.forEach(m=>{let h=[...c,m],g=r?[...i.instructions,...h]:h,P=[...new Set(h.map(A=>A.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(A=>new Ae(A));if(m!==n[l]&&c.length<12&&(_e({instructions:g,payer:this.feePayer,signers:P})||_e({instructions:h,payer:this.feePayer,signers:P})))c.push(m);else{if(c.length===0)throw Error("item ins too big");l+=m===n[l]?1:0,_e({instructions:r?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:P})?a.push(new Ee().add(...i.instructions,...c)):a.push(new Ee().add(...c)),u.push(Array.from(new Set(c.map(A=>A.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat())).map(A=>s[A]).filter(A=>A!==void 0)),c=[m]}}),c.length>0){let h=[...new Set(c.map(g=>g.keys.filter(w=>w.isSigner).map(w=>w.pubkey.toString())).flat()).values()].map(g=>s[g]).filter(g=>g!==void 0);_e({instructions:r?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:h.map(g=>g.publicKey)})?a.push(new Ee().add(...i.instructions,...c)):a.push(new Ee().add(...c)),u.push(h)}return a.forEach(m=>m.feePayer=this.feePayer),(p=this.owner)!=null&&p.signer&&u.forEach(m=>{m.some(h=>h.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:this.instructionTypes,execute:async m=>{var y;let{sequentially:h,onTxUpdate:g,skipTxCount:w=0,recentBlockHash:P,skipPreflight:A=!0}=m||{},b=P!=null?P:await Pe(this.connection,this.blockhashCommitment);if(a.forEach(async(T,x)=>{T.recentBlockhash=b,u[x].length&&T.sign(...u[x])}),be(a),(y=this.owner)!=null&&y.isKeyPair){if(h){let T=0,x=[];for(let L of a){if(++T,T<=w){x.push("tx skipped");continue}let I=await Bt(this.connection,L,this.signers.find(E=>E.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});x.push(I)}return{txIds:x,signedTxs:a}}return{txIds:await Promise.all(a.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let T=await this.signAllTransactions(a.slice(w,a.length)),x=[...a.slice(0,w),...T];if(h){let L=0,I=[],E=async()=>{if(!x[L])return;L<w&&(I.push({txId:"",status:"success",signedTx:x[L]}),g==null||g([...I]),L++,E());let O=await this.connection.sendRawTransaction(x[L].serialize(),{skipPreflight:A});I.push({txId:O,status:"sent",signedTx:x[L]}),g==null||g([...I]),L++;let D=!1,M=null,v=null,V=K=>{M!==null&&clearInterval(M),v!==null&&this.connection.removeSignatureListener(v);let B=I.findIndex(de=>de.txId===O);if(B>-1){if(I[B].status==="error"||I[B].status==="success")return;I[B].status=K.err?"error":"success"}g==null||g([...I]),K.err||E()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var K;if(D){clearInterval(M);return}try{let B=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});B&&(D=!0,clearInterval(M),V({err:((K=B.meta)==null?void 0:K.err)||null}),console.log("tx status from getTransaction:",O))}catch(B){D=!0,clearInterval(M),console.error("getTransaction timeout:",B,O)}},ot)),v=this.connection.onSignature(O,K=>{if(D){this.connection.removeSignatureListener(v);return}D=!0,V(K)},"confirmed"),this.connection.getSignatureStatus(O)};return await E(),{txIds:I.map(O=>O.txId),signedTxs:x}}else{let L=[];for(let I=0;I<x.length;I+=1){let E=await this.connection.sendRawTransaction(x[I].serialize(),{skipPreflight:A});L.push(E)}return{txIds:L,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(t){var b;let A=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:o={},lookupTableAddress:i=[]}=A,s=ge(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=q(q({},this.cluster==="devnet"?{}:rt),o),u=Array.from(new Set([...this.lookupTableAddress,...i])),c=[];for(let y of u)a[y]===void 0&&c.push(new Ae(y));let l=await Ct({connection:this.connection,address:c});for(let[y,T]of Object.entries(l))a[y]=T;let f=n?$e(n):{instructions:[],instructionTypes:[]},p=await Pe(this.connection,this.blockhashCommitment),m=this.signers.reduce((y,T)=>ie(q({},y),{[T.publicKey.toBase58()]:T}),{}),h=[],g=[],w=[],P=0;if(this.allInstructions.forEach(y=>{let T=[...w,y],x=n?[...f.instructions,...T]:T;if(y!==r[P]&&w.length<12&&(Re({instructions:x,payer:this.feePayer,lookupTableAddressAccount:a})||Re({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})))w.push(y);else{if(w.length===0)throw Error("item ins too big");P+=y===r[P]?1:0;let L={};for(let I of[...new Set(u)])a[I]!==void 0&&(L[I]=a[I]);if(n&&Re({instructions:[...f.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:p})){let I=new Me({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...w]}).compileToV0Message(Object.values(a));h.push(new De(I))}else{let I=new Me({payerKey:this.feePayer,recentBlockhash:p,instructions:[...w]}).compileToV0Message(Object.values(a));h.push(new De(I))}g.push(Array.from(new Set(w.map(I=>I.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(I=>m[I]).filter(I=>I!==void 0)),w=[y]}}),w.length>0){let T=[...new Set(w.map(x=>x.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(x=>m[x]).filter(x=>x!==void 0);if(n&&Re({instructions:[...f.instructions,...w],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:p})){let x=new Me({payerKey:this.feePayer,recentBlockhash:p,instructions:[...f.instructions,...w]}).compileToV0Message(Object.values(a));h.push(new De(x))}else{let x=new Me({payerKey:this.feePayer,recentBlockhash:p,instructions:[...w]}).compileToV0Message(Object.values(a));h.push(new De(x))}g.push(T)}return(b=this.owner)!=null&&b.signer&&g.forEach(y=>{y.some(T=>T.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),{builder:this,transactions:h,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var O;let{sequentially:T,onTxUpdate:x,skipTxCount:L=0,recentBlockHash:I,skipPreflight:E=!0}=y||{};if(h.map(async(D,M)=>{g[M].length&&D.sign(g[M]),I&&(D.message.recentBlockhash=I)}),be(h),(O=this.owner)!=null&&O.isKeyPair){if(T){let D=0,M=[];for(let v of h){if(++D,D<=L){console.log("skip tx: ",D),M.push("tx skipped");continue}let V=await this.connection.sendTransaction(v,{skipPreflight:E});await et(this.connection,V),M.push(V)}return{txIds:M,signedTxs:h}}return{txIds:await Promise.all(h.map(async D=>await this.connection.sendTransaction(D,{skipPreflight:E}))),signedTxs:h}}if(this.signAllTransactions){let D=await this.signAllTransactions(h.slice(L,h.length)),M=[...h.slice(0,L),...D];if(T){let v=0,V=[],K=async()=>{if(!M[v])return;if(v<L){V.push({txId:"",status:"success",signedTx:M[v]}),x==null||x([...V]),v++,K();return}let B=await this.connection.sendTransaction(M[v],{skipPreflight:E});V.push({txId:B,status:"sent",signedTx:M[v]}),x==null||x([...V]),v++;let de=!1,ye=null,Ve=null,Gt=he=>{ye!==null&&clearInterval(ye),Ve!==null&&this.connection.removeSignatureListener(Ve);let te=V.findIndex(Wn=>Wn.txId===B);if(te>-1){if(V[te].status==="error"||V[te].status==="success")return;V[te].status=he.err?"error":"success"}x==null||x([...V]),he.err||K()};this.loopMultiTxStatus&&(ye=setInterval(async()=>{var he;if(de){clearInterval(ye);return}try{let te=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(de=!0,clearInterval(ye),Gt({err:((he=te.meta)==null?void 0:he.err)||null}),console.log("tx status from getTransaction:",B))}catch(te){de=!0,clearInterval(ye),console.error("getTransaction timeout:",te,B)}},ot)),Ve=this.connection.onSignature(B,he=>{if(de){this.connection.removeSignatureListener(Ve);return}de=!0,Gt(he)},"confirmed"),this.connection.getSignatureStatus(B)};return K(),{txIds:[],signedTxs:M}}else{let v=[];for(let V=0;V<M.length;V+=1){let K=await this.connection.sendTransaction(M[V],{skipPreflight:E});v.push(K)}return{txIds:v,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{AccountLayout as Se,createAssociatedTokenAccountInstruction as Ut,TOKEN_PROGRAM_ID as me,TOKEN_2022_PROGRAM_ID as Oo}from"@solana/spl-token";var Lt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ve=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=z(n)}createTxBuilder(t){return this.scope.checkOwner(),new it({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Lt(t))}logInfo(...t){this.logger.info(Lt(t))}logAndCreateError(...t){let n=Lt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as No,SystemProgram as _o}from"@solana/web3.js";import Ro from"bn.js";import{createCloseAccountInstruction as Eo,createInitializeAccountInstruction as Mo,createTransferInstruction as Do,TOKEN_PROGRAM_ID as ke}from"@solana/spl-token";import{Keypair as Io,PublicKey as Kn}from"@solana/web3.js";import Co from"bn.js";import{TOKEN_PROGRAM_ID as Bo}from"@solana/spl-token";function bo(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Nt(e,...t){if(!bo(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function _t(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ln(e,t){Nt(e);let n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var at=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),$=(e,t)=>e<<32-t|e>>>t;var qc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function yo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Rt(e){return typeof e=="string"&&(e=yo(e)),Nt(e),e}var st=class{clone(){return this._cloneInto()}},Gc={}.toString;function Nn(e){let t=r=>e().update(Rt(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function wo(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);let o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),u=r?4:0,c=r?0:4;e.setUint32(t+u,s,r),e.setUint32(t+c,a,r)}var _n=(e,t,n)=>e&t^~e&n,Rn=(e,t,n)=>e&t^e&n^t&n,ct=class extends st{constructor(t,n,r,o){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=at(this.buffer)}update(t){_t(this);let{view:n,buffer:r,blockLen:o}=this;t=Rt(t);let i=t.length;for(let s=0;s<i;){let a=Math.min(o-this.pos,i-s);if(a===o){let u=at(t);for(;o<=i-s;s+=o)this.process(u,s);continue}r.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){_t(this),Ln(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:i}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let f=s;f<o;f++)n[f]=0;wo(r,o-8,BigInt(this.length*8),i),this.process(r,0);let a=at(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=u/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<c;f++)a.setUint32(4*f,l[f],i)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:a}=this;return t.length=o,t.pos=a,t.finished=i,t.destroyed=s,o%n&&t.buffer.set(r),t}};var To=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),fe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),pe=new Uint32Array(64),Et=class extends ct{constructor(){super(64,32,8,!1),this.A=fe[0]|0,this.B=fe[1]|0,this.C=fe[2]|0,this.D=fe[3]|0,this.E=fe[4]|0,this.F=fe[5]|0,this.G=fe[6]|0,this.H=fe[7]|0}get(){let{A:t,B:n,C:r,D:o,E:i,F:s,G:a,H:u}=this;return[t,n,r,o,i,s,a,u]}set(t,n,r,o,i,s,a,u){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=u|0}process(t,n){for(let f=0;f<16;f++,n+=4)pe[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){let p=pe[f-15],m=pe[f-2],h=$(p,7)^$(p,18)^p>>>3,g=$(m,17)^$(m,19)^m>>>10;pe[f]=g+pe[f-7]+h+pe[f-16]|0}let{A:r,B:o,C:i,D:s,E:a,F:u,G:c,H:l}=this;for(let f=0;f<64;f++){let p=$(a,6)^$(a,11)^$(a,25),m=l+p+_n(a,u,c)+To[f]+pe[f]|0,g=($(r,2)^$(r,13)^$(r,22))+Rn(r,o,i)|0;l=c,c=u,u=a,a=s+m|0,s=i,i=o,o=r,r=m+g|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,u=u+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(r,o,i,s,a,u,c,l)}roundClean(){pe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var En=Nn(()=>new Et);import{PublicKey as So}from"@solana/web3.js";import Dn,{isBN as Qu}from"bn.js";import{bits as $c,BitStructure as eu,blob as xo,Blob as tu,cstr as nu,f32 as ru,f32be as ou,f64 as iu,f64be as su,greedy as au,Layout as Po,ns64 as cu,ns64be as uu,nu64 as lu,nu64be as fu,offset as pu,s16 as mu,s16be as du,s24 as hu,s24be as gu,s32 as bu,s32be as yu,s40 as wu,s40be as Tu,s48 as xu,s48be as Pu,s8 as Au,seq as ku,struct as Su,Structure as Ao,u16 as Iu,u16be as Cu,u24 as Bu,u24be as Lu,u32 as Nu,u32be as _u,u40 as Ru,u40be as Eu,u48 as Mu,u48be as Du,u8 as vu,UInt as ko,union as Ou,Union as Ku,unionLayoutDiscriminator as Fu,utf8 as Vu}from"@solana/buffer-layout";var Mt=Po,Mn=Ao;var Dt=ko;var vt=xo;var Ot=class extends Mt{constructor(n,r,o){super(n,o);this.blob=vt(n),this.signed=r}decode(n,r=0){let o=new Dn(this.blob.decode(n,r),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(n,r,o=0){return typeof n=="number"&&(n=new Dn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,o)}};function vn(e){return new Dt(1,e)}function ut(e){return new Dt(4,e)}function lt(e){return new Ot(8,!1,e)}var Kt=class extends Mt{constructor(n,r,o,i){super(n.span,i);this.layout=n,this.decoder=r,this.encoder=o}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,o){return this.layout.encode(this.encoder(n),r,o)}getSpan(n,r){return this.layout.getSpan(n,r)}};function Oe(e){return new Kt(vt(32),t=>new So(t),t=>t.toBuffer(),e)}var Ft=class extends Mn{decode(t,n){return super.decode(t,n)}};function On(e,t,n){return new Ft(e,t,n)}var Ke=On([Oe("mint"),Oe("owner"),lt("amount"),ut("delegateOption"),Oe("delegate"),vn("state"),ut("isNativeOption"),lt("isNative"),lt("delegatedAmount"),ut("closeAuthorityOption"),Oe("closeAuthority")]);var ml=z("Raydium_Util");function Fn({owner:e,solAccountResp:t,tokenAccountResp:n}){let r=[],o=[];for(let{pubkey:i,account:s}of n.value){let a=Ke.decode(s.data),{mint:u,amount:c}=a;r.push({publicKey:i,mint:u,amount:c,isAssociated:tt(e,u,s.owner).publicKey.equals(i),isNative:!1,programId:s.owner}),o.push({pubkey:i,accountInfo:a,programId:s.owner})}return t&&r.push({mint:Kn.default,amount:new Co(String(t.lamports)),isNative:!0,programId:t.owner}),{tokenAccounts:r,tokenAccountRawInfos:o}}function ft({fromPublicKey:e,programId:t=Bo,assignSeed:n}){let r=n?btoa(n).slice(0,32):Io.generate().publicKey.toBase58().slice(0,32);return{publicKey:Lo(e,r,t),seed:r}}function Lo(e,t,n){let r=Buffer.concat([e.toBuffer(),Buffer.from(t),n.toBuffer()]),o=En(r);return new Kn(o)}function Vt(e){let{mint:t,tokenAccount:n,owner:r,programId:o=ke}=e;return Mo(n,t,r,o)}function Fe(e){let{tokenAccount:t,payer:n,multiSigners:r=[],owner:o,programId:i=ke}=e;return Eo(t,n,o,r,i)}async function Wt(e){let{connection:t,amount:n,commitment:r,payer:o,owner:i,skipCloseAccount:s}=e,a=await t.getMinimumBalanceForRentExemption(Ke.span,r),u=Q(n).add(new Ro(a)),c=ft({fromPublicKey:o,programId:ke});return{addresses:{newAccount:c.publicKey},signers:[],instructions:[_o.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:c.seed,newAccountPubkey:c.publicKey,lamports:u.toNumber(),space:Ke.span,programId:ke}),Vt({mint:new No(re.address),tokenAccount:c.publicKey,owner:i,programId:ke})],instructionTypes:[G.CreateAccount,G.InitAccount],endInstructionTypes:s?[]:[G.CloseAccount],endInstructions:s?[]:[Fe({tokenAccount:c.publicKey,payer:o,owner:i})]}}function Vn({source:e,destination:t,owner:n,amount:r,multiSigners:o=[],tokenProgram:i=ke}){return Do(e,t,n,BigInt(String(r)),o,i)}var qt=class extends ve{constructor(n){super(n);this._tokenAccounts=[];this._tokenAccountRawInfos=[];this._accountListener=[];this._clientOwnedToken=!1;this._notSubscribeAccountChange=!1;this._accountFetchTime=0;let{tokenAccounts:r,tokenAccountRawInfos:o,notSubscribeAccountChange:i}=n;this._tokenAccounts=r||[],this._tokenAccountRawInfos=o||[],this._notSubscribeAccountChange=i!=null?i:!0,this._clientOwnedToken=!!(r||o)}get tokenAccounts(){return this._tokenAccounts}get tokenAccountRawInfos(){return this._tokenAccountRawInfos}set notSubscribeAccountChange(n){this._notSubscribeAccountChange=n}updateTokenAccount({tokenAccounts:n,tokenAccountRawInfos:r}){return n&&(this._tokenAccounts=n),r&&(this._tokenAccountRawInfos=r),this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=void 0,this._clientOwnedToken=!0,this}addAccountChangeListener(n){return this._accountListener.push(n),this}removeAccountChangeListener(n){return this._accountListener=this._accountListener.filter(r=>r!==n),this}getAssociatedTokenAccount(n,r){return tt(this.scope.ownerPubKey,n,r).publicKey}resetTokenAccounts(){this._clientOwnedToken||(this._tokenAccounts=[],this._tokenAccountRawInfos=[])}async fetchWalletTokenAccounts(n){if(this._clientOwnedToken||!(n!=null&&n.forceUpdate)&&this._tokenAccounts.length&&Date.now()-this._accountFetchTime<(this._notSubscribeAccountChange?1e3*5:1e3*60*3))return{tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos};this.scope.checkOwner();let o=q(q({},{}),n),[i,s,a]=await Promise.all([this.scope.connection.getAccountInfo(this.scope.ownerPubKey,o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:me},o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:Oo},o.commitment)]),{tokenAccounts:u,tokenAccountRawInfos:c}=Fn({owner:this.scope.ownerPubKey,solAccountResp:i,tokenAccountResp:{context:s.context,value:[...s.value,...a.value]}});return this._tokenAccounts=u,this._tokenAccountRawInfos=c,this._accountFetchTime=Date.now(),this._notSubscribeAccountChange||(this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=this.scope.connection.onAccountChange(this.scope.ownerPubKey,()=>{this.fetchWalletTokenAccounts({forceUpdate:!0}),this._accountListener.forEach(l=>l({tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos}))},{commitment:n==null?void 0:n.commitment})),{tokenAccounts:u,tokenAccountRawInfos:c}}clearAccountChangeCkb(){this._accountChangeListenerId!==void 0&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId)}async getCreatedTokenAccount({mint:n,programId:r=me,associatedOnly:o=!0}){await this.fetchWalletTokenAccounts();let i=this._tokenAccounts.filter(({mint:a})=>a==null?void 0:a.equals(n)).sort((a,u)=>a.amount.lt(u.amount)?1:-1),s=this.getAssociatedTokenAccount(n,r);for(let a of i){let{publicKey:u}=a;if(u&&(!o||o&&s.equals(u)))return u}}async getOrCreateTokenAccount(n){var g,w,P,A;await this.fetchWalletTokenAccounts();let{mint:r,createInfo:o,associatedOnly:i,owner:s,notUseTokenAccount:a=!1,skipCloseAccount:u=!1,checkCreateATAOwner:c=!1,assignSeed:l}=n,f=new pt(n.tokenProgram||me),p=this.getAssociatedTokenAccount(r,new pt(f)),m=(a?[]:this.tokenAccountRawInfos).filter(b=>b.accountInfo.mint.equals(r)&&(!i||b.pubkey.equals(p))).sort((b,y)=>b.accountInfo.amount.lt(y.accountInfo.amount)?1:-1);if(o===void 0||m.length>0)return m.length>0?{account:m[0].pubkey}:{};let h={instructions:[],endInstructions:[],signers:[],instructionTypes:[],endInstructionTypes:[]};if(i){let b=Ut(s,p,s,r,f),y=this.tokenAccountRawInfos.find(T=>T.pubkey.equals(p));if(c){let T=await this.scope.connection.getAccountInfo(p);if(T===null)(g=h.instructions)==null||g.push(b),h.instructionTypes.push(G.CreateATA);else if(!(T.owner.equals(f)&&Se.decode(T.data).mint.equals(r)&&Se.decode(T.data).owner.equals(s)))throw Error(`create ata check error -> mint: ${r.toString()}, ata: ${p.toString()}`)}else y===void 0&&(h.instructions.push(b),h.instructionTypes.push(G.CreateATA));if(r.equals(se)&&o.amount){let T=await Wt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(w=o.amount)!=null?w:0,skipCloseAccount:u});h.instructions.push(...T.instructions||[]),h.endInstructions.push(...T.endInstructions||[]),h.instructionTypes.push(...T.instructionTypes||[]),h.endInstructionTypes.push(...T.endInstructionTypes||[]),o.amount&&(h.instructions.push(Vn({source:T.addresses.newAccount,destination:p,owner:this.scope.ownerPubKey,amount:o.amount,tokenProgram:me})),h.instructionTypes.push(G.TransferAmount))}return!u&&y===void 0&&(h.endInstructions.push(Fe({owner:s,payer:o.payer||s,tokenAccount:p,programId:f})),h.endInstructionTypes.push(G.CloseAccount)),{account:p,instructionParams:h}}else{let b=ft({fromPublicKey:s,programId:f,assignSeed:l}),y=await this.scope.connection.getMinimumBalanceForRentExemption(Se.span),T=vo.createAccountWithSeed({fromPubkey:s,basePubkey:s,seed:b.seed,newAccountPubkey:b.publicKey,lamports:y+Number((A=(P=o.amount)==null?void 0:P.toString())!=null?A:0),space:Se.span,programId:f});return h.instructions.push(T,Vt({mint:r,tokenAccount:b.publicKey,owner:this.scope.ownerPubKey,programId:f})),h.instructionTypes.push(G.CreateAccount),h.instructionTypes.push(G.InitAccount),u||(h.endInstructions.push(Fe({owner:s,payer:o.payer||s,tokenAccount:b.publicKey,programId:f})),h.endInstructionTypes.push(G.CloseAccount)),{account:b.publicKey,instructionParams:h}}}async checkOrCreateAta({mint:n,programId:r=me,autoUnwrapWSOLToSOL:o}){var u;await this.fetchWalletTokenAccounts();let i=(u=this.scope.account.tokenAccounts.find(({mint:c})=>(c==null?void 0:c.toBase58())===n.toBase58()))==null?void 0:u.publicKey,s=this.scope.ownerPubKey,a={};if(!i){let c=this.getAssociatedTokenAccount(n,r),l=await Ut(s,c,s,n,r);a.instructions=[l],a.instructionTypes=[G.CreateATA],i=c}return o&&se.toBase58()===n.toBase58()&&(a.endInstructions=[Fe({owner:s,payer:s,tokenAccount:i,programId:r})],a.endInstructionTypes=[G.CloseAccount]),{pubKey:i,newInstructions:a}}async handleTokenAccount(n){let{side:r,amount:o,mint:i,programId:s=me,tokenAccount:a,payer:u=this.scope.ownerPubKey,bypassAssociatedCheck:c,skipCloseAccount:l,checkCreateATAOwner:f}=n,p=this.getAssociatedTokenAccount(i,s);if(new pt(se).equals(i)){let m=await Wt({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:u,amount:o,skipCloseAccount:l});return q({tokenAccount:m.addresses.newAccount},m)}else if(!a||r==="out"&&!p.equals(a)&&!c){let m=[],h=Ut(this.scope.ownerPubKey,p,this.scope.ownerPubKey,i,s);if(f){let g=await this.scope.connection.getAccountInfo(p);if(g===null)m.push(h);else if(!(g.owner.equals(me)&&Se.decode(g.data).mint.equals(i)&&Se.decode(g.data).owner.equals(this.scope.ownerPubKey)))throw Error(`create ata check error -> mint: ${i.toString()}, ata: ${p.toString()}`)}else m.push(h);return{tokenAccount:p,instructions:m,instructionTypes:[G.CreateATA]}}return{tokenAccount:a}}async processTokenAccount(n){let{mint:r,programId:o=me,amount:i,useSOLBalance:s,handleTokenAccount:a}=n,u,c=this.createTxBuilder();if(r.equals(new pt(se))&&s){let l=await this.handleTokenAccount({side:"in",amount:i||0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=l,m=ge(l,["tokenAccount"]);u=p,c.addInstruction(m)}else if(u=await this.getCreatedTokenAccount({mint:r,associatedOnly:!1,programId:o}),!u&&a){let f=await this.scope.account.handleTokenAccount({side:"in",amount:0,mint:r,bypassAssociatedCheck:!0,programId:o}),{tokenAccount:p}=f,m=ge(f,["tokenAccount"]);u=p,c.addInstruction(m)}return q({tokenAccount:u},c.AllTxData)}};export{qt as default};
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=account.mjs.map