UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 76.1 kB
var Pn=Object.defineProperty,An=Object.defineProperties;var Sn=Object.getOwnPropertyDescriptors;var We=Object.getOwnPropertySymbols;var _t=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var Dt=(e,t,n)=>t in e?Pn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))_t.call(t,n)&&Dt(e,n,t[n]);if(We)for(var n of We(t))Ot.call(t,n)&&Dt(e,n,t[n]);return e},se=(e,t)=>An(e,Sn(t));var Ue=(e,t)=>{var n={};for(var r in e)_t.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&&Ot.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as Zr,Transaction as Et,TransactionInstruction as Jr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xr}from"@solana/spl-token";import Tn from"bn.js";import{PublicKey as Nn}from"@solana/web3.js";import{get as vt,set as Ln}from"lodash";var st=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}},Ft={},Bn={};function Y(e){let t=vt(Ft,e);if(!t){let n=vt(Bn,e);t=new st({name:e,logLevel:n}),Ln(Ft,e,t)}return t}import{MINT_SIZE as ui,TOKEN_PROGRAM_ID as ci,getTransferFeeConfig as li,unpackMint as fi}from"@solana/spl-token";var at=Y("Raydium_accountInfo_util");async function qe(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=z({batchRequest:!1},n),s=ut(t,o),a=new Array(s.length).fill([]);if(r){let c=s.map(f=>{let m=e._buildArgs([f.map(p=>p.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:m}}),u=ut(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&at.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(m=>{if(m){let{data:p,executable:h,lamports:g,owner:b,rentEpoch:x}=m;return p.length!==2&&p[1]!=="base64"&&at.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:h,lamports:g,owner:new Nn(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&at.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return a.flat()}import oe from"bn.js";var be=9e15,le=1e9,lt="0123456789abcdef",He="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",je="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ft={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-be,maxE:be,crypto:!1},Ut,re,k=!0,Ye="[DecimalError] ",ce=Ye+"Invalid argument: ",qt=Ye+"Precision limit exceeded",Gt=Ye+"crypto unavailable",Ht="[object Decimal]",H=Math.floor,q=Math.pow,kn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Cn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,In=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,jt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,N=7,Rn=9007199254740991,En=He.length-1,mt=je.length-1,d={toStringTag:Ht};d.absoluteValue=d.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),L(e)};d.ceil=function(){return L(new this.constructor(this),this.e+1,2)};d.clampedTo=d.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(ce+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};d.comparedTo=d.cmp=function(e){var t,n,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.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!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,t=0,n=r<i?r:i;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===i?0:r>i^c<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())+N,r.rounding=1,n=Mn(r,Xt(r,n)),r.precision=e,r.rounding=t,L(re==2||re==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};d.cubeRoot=d.cbrt=function(){var e,t,n,r,i,o,s,a,c,u,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(k=!1,o=l.s*q(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=G(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=q(n,1/3),e=H((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?n="5e"+e:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new f(n),r.s=l.s):r=new f(o.toString()),s=(e=f.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=V(u.plus(l).times(a),u.plus(c),s+2,1),G(a.d).slice(0,s)===(n=G(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(L(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(L(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return k=!0,L(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-H(this.e/N))*N,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return V(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return L(V(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 L(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,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?(e=Math.ceil(i/3),t=(1/Je(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=ye(s,1,o.times(t),new s(1),!0);for(var c,u=e,l=new s(8);u--;)c=o.times(o),o=a.minus(c.times(l.minus(c.times(l))));return L(o,s.precision=n,s.rounding=r,!0)};d.hyperbolicSine=d.sinh=function(){var e,t,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=ye(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Je(5,e)),i=ye(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,L(i,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,V(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),i=n.precision,o=n.rounding;return r!==-1?r===0?t.isNeg()?X(n,i,o):new n(0):new n(NaN):t.isZero()?X(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=X(n,i+4,o).times(.5),n.precision=i,n.rounding=o,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,k=!1,n=n.times(n).minus(1).sqrt().plus(n),k=!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,k=!1,n=n.times(n).plus(1).sqrt().plus(n),k=!0,r.precision=e,r.rounding=t,n.ln())};d.inverseHyperbolicTangent=d.atanh=function(){var e,t,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):(e=o.precision,t=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?L(new o(i),e,t,!0):(o.precision=n=r-i.e,i=V(i.plus(1),new o(1).minus(i),n+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};d.inverseSine=d.asin=function(){var e,t,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),n=o.precision,r=o.rounding,t!==-1?t===0?(e=X(o,n+4,r).times(.5),e.s=i.s,e):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)))};d.inverseTangent=d.atan=function(){var e,t,n,r,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&f+4<=mt)return s=X(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=mt)return s=X(l,f+4,m).times(.5),s.s=u.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/N+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(k=!1,t=Math.ceil(a/N),r=1,c=u.times(u),s=new l(u),i=u;e!==-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[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),k=!0,L(s,l.precision=f,l.rounding=m,!0)};d.isFinite=function(){return!!this.d};d.isInteger=d.isInt=function(){return!!this.d&&H(this.e/N)>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,i,o,s,a,c,u=this,l=u.constructor,f=l.precision,m=l.rounding,p=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=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(k=!1,a=f+p,s=ue(u,a),r=t?ze(l,a+10):ue(e,a),c=V(s,r,a,1),Ne(c.d,i=f,m))do if(a+=10,s=ue(u,a),r=t?ze(l,a+10):ue(e,a),c=V(s,r,a,1),!o){+G(c.d).slice(i+1,i+15)+1==1e14&&(c=L(c,f+1,0));break}while(Ne(c.d,i+=10,m));return k=!0,L(c,f,m)};d.minus=d.sub=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,p=this,h=p.constructor;if(e=new h(e),!p.d||!e.d)return!p.s||!e.s?e=new h(NaN):p.d?e.s=-e.s:e=new h(e.d||p.s!==e.s?p:NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(u=p.d,m=e.d,a=h.precision,c=h.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else if(u[0])e=new h(p);else return new h(c===3?-0:0);return k?L(e,a,c):e}if(n=H(e.e/N),l=H(p.e/N),u=u.slice(),o=l-n,o){for(f=o<0,f?(t=u,o=-o,s=m.length):(t=m,n=l,s=u.length),r=Math.max(Math.ceil(a/N),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=u.length,s=m.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(u[r]!=m[r]){f=u[r]<m[r];break}o=0}for(f&&(t=u,u=m,m=t,e.s=-e.s),s=u.length,r=m.length-s;r>0;--r)u[s++]=0;for(r=m.length;r>o;){if(u[--r]<m[r]){for(i=r;i&&u[--i]===0;)u[i]=Q-1;--u[i],u[r]+=Q}u[r]-=m[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=Ze(u,n),k?L(e,a,c):e):new h(c===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]?L(new r(n),r.precision,r.rounding):(k=!1,r.modulo==9?(t=V(n,e.abs(),0,3,1),t.s*=e.s):t=V(n,e,0,r.modulo,1),t=t.times(e),k=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return dt(this)};d.naturalLogarithm=d.ln=function(){return ue(this)};d.negated=d.neg=function(){var e=new this.constructor(this);return e.s=-e.s,L(e)};d.plus=d.add=function(e){var t,n,r,i,o,s,a,c,u,l,f=this,m=f.constructor;if(e=new m(e),!f.d||!e.d)return!f.s||!e.s?e=new m(NaN):f.d||(e=new m(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(u=f.d,l=e.d,a=m.precision,c=m.rounding,!u[0]||!l[0])return l[0]||(e=new m(f)),k?L(e,a,c):e;if(o=H(f.e/N),r=H(e.e/N),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=l.length):(n=l,r=o,s=u.length),o=Math.ceil(a/N),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=l.length,s-i<0&&(i=s,n=l,l=u,u=n),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/Q|0,u[i]%=Q;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Ze(u,r),k?L(e,a,c):e};d.precision=d.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ce+e);return n.d?(t=zt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};d.round=function(){var e=this,t=e.constructor;return L(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())+N,r.rounding=1,n=_n(r,Xt(r,n)),r.precision=e,r.rounding=t,L(re>2?n.neg():n,e,t,!0)):new r(NaN)};d.squareRoot=d.sqrt=function(){var e,t,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(k=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=G(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=H((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new l(t)):r=new l(u.toString()),n=(c=l.precision)+3;;)if(o=r,r=o.plus(V(s,o,n+2,1)).times(.5),G(o.d).slice(0,n)===(t=G(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!i&&t=="4999"){if(!i&&(L(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(L(r,c+1,1),e=!r.times(r).eq(s));break}return k=!0,L(r,c,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=V(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,L(re==2||re==4?n.neg():n,e,t,!0)):new r(NaN)};d.times=d.mul=function(e){var t,n,r,i,o,s,a,c,u,l=this,f=l.constructor,m=l.d,p=(e=new f(e)).d;if(e.s*=l.s,!m||!m[0]||!p||!p[0])return new f(!e.s||m&&!m[0]&&!p||p&&!p[0]&&!m?NaN:!m||!p?e.s/0:e.s*0);for(n=H(l.e/N)+H(e.e/N),c=m.length,u=p.length,c<u&&(o=m,m=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(t=0,i=c+r;i>r;)a=o[i]+p[r]*m[i-r-1]+t,o[i--]=a%Q|0,t=a/Q|0;o[i]=(o[i]+t)%Q|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Ze(o,n),k?L(e,f.precision,f.rounding):e};d.toBinary=function(e,t){return gt(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:(Z(e,0,le),t===void 0?t=r.rounding:Z(t,0,8),L(n,e+n.e+1,t))};d.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=$(r,!0):(Z(e,0,le),t===void 0?t=i.rounding:Z(t,0,8),r=L(new i(r),e+1,t),n=$(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=$(i):(Z(e,0,le),t===void 0?t=o.rounding:Z(t,0,8),r=L(new o(i),e+i.e+1,t),n=$(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};d.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,f,m,p=this,h=p.d,g=p.constructor;if(!h)return new g(p);if(u=n=new g(1),r=c=new g(0),t=new g(r),o=t.e=zt(h)-p.e-1,s=o%N,t.d[0]=q(10,s<0?N+s:s),e==null)e=o>0?t:u;else{if(a=new g(e),!a.isInt()||a.lt(u))throw Error(ce+a);e=a.gt(t)?o>0?t:u:a}for(k=!1,a=new g(G(h)),l=g.precision,g.precision=o=h.length*N*2;f=V(a,t,0,1,1),i=n.plus(f.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(f.times(i)),c=i,i=t,t=a.minus(f.times(i)),a=i;return i=V(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=p.s,m=V(u,r,o,1).minus(p).abs().cmp(V(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],g.precision=l,k=!0,m};d.toHexadecimal=d.toHex=function(e,t){return gt(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:Z(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]?(k=!1,n=V(n,e,0,t,1).times(e),k=!0,L(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return gt(this,8,e,t)};d.toPower=d.pow=function(e){var t,n,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(q(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return L(a,r,o);if(t=H(e.e/N),t>=e.d.length-1&&(n=u<0?-u:u)<=Rn)return i=Yt(c,a,n,r),e.s<0?new c(1).div(i):L(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(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=q(+a,u),t=n==0||!isFinite(n)?H(u*(Math.log("0."+G(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(k=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=dt(e.times(ue(a,r+n)),r),i.d&&(i=L(i,r+5,1),Ne(i.d,r,o)&&(t=r+10,i=L(dt(e.times(ue(a,t+n)),t),t+5,1),+G(i.d).slice(r+1,r+15)+1==1e14&&(i=L(i,r+1,0)))),i.s=s,k=!0,c.rounding=o,L(i,r,o))};d.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=$(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(Z(e,1,le),t===void 0?t=i.rounding:Z(t,0,8),r=L(new i(r),e,t),n=$(r,e<=r.e||r.e<=i.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):(Z(e,1,le),t===void 0?t=r.rounding:Z(t,0,8)),L(new r(n),e,t)};d.toString=function(){var e=this,t=e.constructor,n=$(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};d.truncated=d.trunc=function(){return L(new this.constructor(this),this.e+1,1)};d.valueOf=d.toJSON=function(){var e=this,t=e.constructor,n=$(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function G(e){var t,n,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)r=e[t]+"",n=N-r.length,n&&(o+=ae(n)),o+=r;s=e[t],r=s+"",n=N-r.length,n&&(o+=ae(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Z(e,t,n){if(e!==~~e||e<t||e>n)throw Error(ce+e)}function Ne(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=N,i=0):(i=Math.ceil((t+1)/N),t%=N),o=q(10,N-t),a=e[i]%o|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==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==q(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==q(10,t-3)-1,s}function Ge(e,t,n){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=lt.indexOf(e.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 Mn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Je(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=ye(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var V=function(){function e(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 t(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,l,f,m,p,h,g,b,x,A,P,y,w,T,C,S,R,v,M,E,O=r.constructor,K=r.s==i.s?1:-1,F=r.d,I=i.d;if(!F||!F[0]||!I||!I[0])return new O(!r.s||!i.s||(F?I&&F[0]==I[0]:!I)?NaN:F&&F[0]==0||!I?K*0:K/0);for(c?(p=1,l=r.e-i.e):(c=Q,p=N,l=H(r.e/p)-H(i.e/p)),M=I.length,R=F.length,x=new O(K),A=x.d=[],f=0;I[f]==(F[f]||0);f++);if(I[f]>(F[f]||0)&&l--,o==null?(T=o=O.precision,s=O.rounding):a?T=o+(r.e-i.e)+1:T=o,T<0)A.push(1),h=!0;else{if(T=T/p+2|0,f=0,M==1){for(m=0,I=I[0],T++;(f<R||m)&&T--;f++)C=m*c+(F[f]||0),A[f]=C/I|0,m=C%I|0;h=m||f<R}else{for(m=c/(I[0]+1)|0,m>1&&(I=e(I,m,c),F=e(F,m,c),M=I.length,R=F.length),S=M,P=F.slice(0,M),y=P.length;y<M;)P[y++]=0;E=I.slice(),E.unshift(0),v=I[0],I[1]>=c/2&&++v;do m=0,u=t(I,P,M,y),u<0?(w=P[0],M!=y&&(w=w*c+(P[1]||0)),m=w/v|0,m>1?(m>=c&&(m=c-1),g=e(I,m,c),b=g.length,y=P.length,u=t(g,P,b,y),u==1&&(m--,n(g,M<b?E:I,b,c))):(m==0&&(u=m=1),g=I.slice()),b=g.length,b<y&&g.unshift(0),n(P,g,y,c),u==-1&&(y=P.length,u=t(I,P,M,y),u<1&&(m++,n(P,M<y?E:I,y,c))),y=P.length):u===0&&(m++,P=[0]),A[f++]=m,u&&P[0]?P[y++]=F[S]||0:(P=[F[S]],y=1);while((S++<R||P[0]!==void 0)&&T--);h=P[0]!==void 0}A[0]||A.shift()}if(p==1)x.e=l,Ut=h;else{for(f=1,m=A[0];m>=10;m/=10)f++;x.e=f+l*p-1,L(x,a?o+x.e+1:o,s,h)}return x}}();function L(e,t,n,r){var i,o,s,a,c,u,l,f,m,p=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(i=1,a=f[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=N,s=t,l=f[m=0],c=l/q(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/N),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=N,s=o-N+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=N,s=o-N+i,c=s<0?0:l/q(10,i-s-1)%10|0}if(r=r||t<0||f[m+1]!==void 0||(s<0?l:l%q(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/q(10,i-s):0:f[m-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,u?(t-=e.e+1,f[0]=q(10,(N-t%N)%N),e.e=-t||0):f[0]=e.e=0,e;if(o==0?(f.length=m,a=1,m--):(f.length=m+1,a=q(10,N-o),f[m]=s>0?(l/q(10,i-s)%q(10,s)|0)*a:0),u)for(;;)if(m==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==Q&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=Q)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return k&&(e.e>p.maxE?(e.d=null,e.e=NaN):e.e<p.minE&&(e.e=0,e.d=[0])),e}function $(e,t,n){if(!e.isFinite())return Jt(e);var r,i=e.e,o=G(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ae(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+ae(-i-1)+o,n&&(r=n-s)>0&&(o+=ae(r))):i>=s?(o+=ae(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+ae(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=ae(r))),o}function Ze(e,t){var n=e[0];for(t*=N;n>=10;n/=10)t++;return t}function ze(e,t,n){if(t>En)throw k=!0,n&&(e.precision=n),Error(qt);return L(new e(He),t,1,!0)}function X(e,t,n){if(t>mt)throw Error(qt);return L(new e(je),t,n,!0)}function zt(e){var t=e.length-1,n=t*N+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 Yt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/N+4);for(k=!1;;){if(n%2&&(o=o.times(t),Kt(o.d,s)&&(i=!0)),n=H(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),Kt(t.d,s)}return k=!0,o}function Vt(e){return e.d[e.d.length-1]&1}function Zt(e,t,n){for(var r,i=new e(t[0]),o=0;++o<t.length;)if(r=new e(t[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function dt(e,t){var n,r,i,o,s,a,c,u=0,l=0,f=0,m=e.constructor,p=m.rounding,h=m.precision;if(!e.d||!e.d[0]||e.e>17)return new m(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(k=!1,c=h):c=t,a=new m(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(q(2,f))/Math.LN10*2+5|0,c+=r,n=o=s=new m(1),m.precision=c;;){if(o=L(o.times(e),c,1),n=n.times(++l),a=s.plus(V(o,n,c,1)),G(a.d).slice(0,c)===G(s.d).slice(0,c)){for(i=f;i--;)s=L(s.times(s),c,1);if(t==null)if(u<3&&Ne(s.d,c-r,p,u))m.precision=c+=10,n=o=a=new m(1),l=0,u++;else return L(s,m.precision=h,p,k=!0);else return m.precision=h,s}s=a}}function ue(e,t){var n,r,i,o,s,a,c,u,l,f,m,p=1,h=10,g=e,b=g.d,x=g.constructor,A=x.rounding,P=x.precision;if(g.s<0||!b||!b[0]||!g.e&&b[0]==1&&b.length==1)return new x(b&&!b[0]?-1/0:g.s!=1?NaN:b?0:g);if(t==null?(k=!1,l=P):l=t,x.precision=l+=h,n=G(b),r=n.charAt(0),Math.abs(o=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=G(g.d),r=n.charAt(0),p++;o=g.e,r>1?(g=new x("0."+n),o++):g=new x(r+"."+n.slice(1))}else return u=ze(x,l+2,P).times(o+""),g=ue(new x(r+"."+n.slice(1)),l-h).plus(u),x.precision=P,t==null?L(g,P,A,k=!0):g;for(f=g,c=s=g=V(g.minus(1),g.plus(1),l,1),m=L(g.times(g),l,1),i=3;;){if(s=L(s.times(m),l,1),u=c.plus(V(s,new x(i),l,1)),G(u.d).slice(0,l)===G(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(ze(x,l+2,P).times(o+""))),c=V(c,new x(p),l,1),t==null)if(Ne(c.d,l-h,A,a))x.precision=l+=h,u=s=g=V(f.minus(1),f.plus(1),l,1),m=L(g.times(g),l,1),i=a=1;else return L(c,x.precision=P,A,k=!0);else return x.precision=P,c;c=u,i+=2}}function Jt(e){return String(e.s*e.s/0)}function pt(e,t){var n,r,i;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(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%N,n<0&&(r+=N),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=N;r<i;)e.d.push(+t.slice(r,r+=N));t=t.slice(r),r=N-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),k&&(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 Dn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),jt.test(t))return pt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Cn.test(t))n=16,t=t.toLowerCase();else if(kn.test(t))n=2;else if(In.test(t))n=8;else throw Error(ce+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Yt(r,new r(n),o,o*2)),u=Ge(t,n,Q),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Ze(u,l),e.d=u,k=!1,s&&(e=V(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):Xe.pow(2,c))),k=!0,e)}function _n(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:ye(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Je(5,n)),t=ye(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);n--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function ye(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,f=Math.ceil(l/N);for(k=!1,c=n.times(n),a=new e(r);;){if(s=V(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=V(s.times(c),new e(t++*t++),l,1),s=a.plus(r),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return k=!0,s.d.length=f+1,s}function Je(e,t){for(var n=e;--t;)n*=e;return n}function Xt(e,t){var n,r=t.s<0,i=X(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return re=r?4:1,t;if(n=t.divToInt(i),n.isZero())re=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return re=Vt(n)?r?2:3:r?4:1,t;re=Vt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function gt(e,t,n,r){var i,o,s,a,c,u,l,f,m,p=e.constructor,h=n!==void 0;if(h?(Z(n,1,le),r===void 0?r=p.rounding:Z(r,0,8)):(n=p.precision,r=p.rounding),!e.isFinite())l=Jt(e);else{for(l=$(e),s=l.indexOf("."),h?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,s>=0&&(l=l.replace(".",""),m=new p(1),m.e=l.length-s,m.d=Ge($(m),10,i),m.e=m.d.length),f=Ge(l,10,i),o=c=f.length;f[--c]==0;)f.pop();if(!f[0])l=h?"0p+0":"0";else{if(s<0?o--:(e=new p(e),e.d=f,e.e=o,e=V(e,m,n,r,0,i),f=e.d,o=e.e,u=Ut),s=f[n],a=i/2,u=u||f[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,u)for(;++f[--n]>i-1;)f[n]=0,n||(++o,f.unshift(1));for(c=f.length;!f[c-1];--c);for(s=0,l="";s<c;s++)l+=lt.charAt(f[s]);if(h){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(f=Ge(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=lt.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function Kt(e,t){if(e.length>t)return e.length=t,!0}function On(e){return new this(e).abs()}function vn(e){return new this(e).acos()}function Fn(e){return new this(e).acosh()}function Vn(e,t){return new this(e).plus(t)}function Kn(e){return new this(e).asin()}function Wn(e){return new this(e).asinh()}function Un(e){return new this(e).atan()}function qn(e){return new this(e).atanh()}function Gn(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,o=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=X(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?X(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=X(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(V(e,t,o,1)),t=X(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(V(e,t,o,1)),n}function Hn(e){return new this(e).cbrt()}function jn(e){return L(e=new this(e),e.e+1,2)}function zn(e,t,n){return new this(e).clamp(t,n)}function Yn(e){if(!e||typeof e!="object")throw Error(Ye+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,le,"rounding",0,8,"toExpNeg",-be,0,"toExpPos",0,be,"maxE",0,be,"minE",-be,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=ft[n]),(r=e[n])!==void 0)if(H(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(ce+n+": "+r);if(n="crypto",i&&(this[n]=ft[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(Gt);else this[n]=!1;else throw Error(ce+n+": "+r);return this}function Zn(e){return new this(e).cos()}function Jn(e){return new this(e).cosh()}function Qt(e){var t,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Wt(o)){u.s=o.s,k?!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++;k?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 pt(u,o.toString())}else if(c!=="string")throw Error(ce+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),jt.test(o)?pt(u,o):Dn(u,o)}if(i.prototype=d,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=Yn,i.clone=Qt,i.isDecimal=Wt,i.abs=On,i.acos=vn,i.acosh=Fn,i.add=Vn,i.asin=Kn,i.asinh=Wn,i.atan=Un,i.atanh=qn,i.atan2=Gn,i.cbrt=Hn,i.ceil=jn,i.clamp=zn,i.cos=Zn,i.cosh=Jn,i.div=Xn,i.exp=Qn,i.floor=$n,i.hypot=er,i.ln=tr,i.log=nr,i.log10=ir,i.log2=rr,i.max=or,i.min=sr,i.mod=ar,i.mul=ur,i.pow=cr,i.random=lr,i.round=fr,i.sign=mr,i.sin=dr,i.sinh=pr,i.sqrt=gr,i.sub=hr,i.sum=br,i.tan=yr,i.tanh=wr,i.trunc=Tr,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 i.config(e),i}function Xn(e,t){return new this(e).div(t)}function Qn(e){return new this(e).exp()}function $n(e){return L(e=new this(e),e.e+1,3)}function er(){var e,t,n=new this(0);for(k=!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 k=!0,new this(1/0);n=t}return k=!0,n.sqrt()}function Wt(e){return e instanceof Xe||e&&e.toStringTag===Ht||!1}function tr(e){return new this(e).ln()}function nr(e,t){return new this(e).log(t)}function rr(e){return new this(e).log(2)}function ir(e){return new this(e).log(10)}function or(){return Zt(this,arguments,"lt")}function sr(){return Zt(this,arguments,"gt")}function ar(e,t){return new this(e).mod(t)}function ur(e,t){return new this(e).mul(t)}function cr(e,t){return new this(e).pow(t)}function lr(e){var t,n,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Z(e,1,le),r=Math.ceil(e/N),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Gt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=N,r&&e&&(i=q(10,N-e),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-=N)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<N&&(n-=N-r)}return s.e=n,s.d=a,s}function fr(e){return L(e=new this(e),e.e+1,this.rounding)}function mr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function dr(e){return new this(e).sin()}function pr(e){return new this(e).sinh()}function gr(e){return new this(e).sqrt()}function hr(e,t){return new this(e).sub(t)}function br(){var e=0,t=arguments,n=new this(t[e]);for(k=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return k=!0,L(n,this.precision,this.rounding)}function yr(e){return new this(e).tan()}function wr(e){return new this(e).tanh()}function Tr(e){return L(e=new this(e),e.e+1,1)}d[Symbol.for("nodejs.util.inspect.custom")]=d.toString;d[Symbol.toStringTag]="Decimal";var Xe=d.constructor=Qt(ft);He=new Xe(He);je=new Xe(je);import kr from"big.js";import Ii from"bn.js";import xr from"toformat";var Pr=xr,ke=Pr;import $e from"big.js";import Sr from"bn.js";import Lr from"decimal.js-light";import Ce from"bn.js";var $t=9007199254740991;function ie(e){let t=Y("Raydium_parseBigNumberish");if(e instanceof Ce)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Ce(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=$t||e<=-$t)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Ce(String(e))):typeof e=="bigint"?new Ce(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Ce(0))}var Qe=Y("module/fraction"),ht=ke($e),Ie=ke(Lr),Br={[0]:Ie.ROUND_DOWN,[1]:Ie.ROUND_HALF_UP,[2]:Ie.ROUND_UP},Nr={[0]:$e.roundDown,[1]:$e.roundHalfUp,[2]:$e.roundUp},W=class{constructor(t,n=new Sr(1)){this.numerator=ie(t),this.denominator=ie(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(ie(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(ie(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(ie(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(ie(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<=0&&Qe.logWithError(`${t} is not positive.`),Ie.set({precision:t+1,rounding:Br[r]});let i=new Ie(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<0&&Qe.logWithError(`${t} is negative.`),ht.DP=t,ht.RM=Nr[r]||1,new ht(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Vi=Y("Raydium_amount"),Ki=ke(kr);import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as en}from"@solana/spl-token";var tn={chainId:101,address:Ir.default.toBase58(),programId:en.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:en.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 yt}from"@solana/web3.js";import{PublicKey as U,SystemProgram as nn,SYSVAR_RENT_PUBKEY as Rr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Er}from"@solana/spl-token";function bt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Yi=[bt({pubkey:Er,isWritable:!1}),bt({pubkey:nn.programId,isWritable:!1}),bt({pubkey:Rr,isWritable:!1})];function rn({publicKey:e,transformSol:t}){let n=on(e.toString());if(n instanceof U)return t&&n.equals(Re)?ct:n;if(t&&n.toString()===Re.toBase58())return ct;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 on(e){try{return new U(e)}catch{return e}}var Zi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ji=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xi=new U("SysvarRent111111111111111111111111111111111"),Qi=new U("SysvarC1ock11111111111111111111111111111111"),$i=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),eo=new U("Sysvar1nstructions1111111111111111111111111"),to=nn.programId,no=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ro=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),io=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),oo=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),so=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ao=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),uo=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),co=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),lo=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),fo=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),mo=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ct=new U("So11111111111111111111111111111111111111112"),Re=U.default;var wt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Re.toBase58()||t instanceof yt&&Re.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new yt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?yt.default:rn({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=wt;J.WSOL=new wt(se(z({},de),{mint:de.address}));var Tt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},et=Tt;et.SOL=new Tt(tn);import Mr from"bn.js";var Lo=new W(new Mr(100));var Ro=Y("Raydium_price");var Dr=new oe(0),ss=new oe(1),as=new oe(2),us=new oe(3),cs=new oe(5),Cr=new oe(10),ls=new oe(100),fs=new oe(1e3),ms=new oe(1e4);function ut(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 Cs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Rs}from"@solana/spl-token";import{ComputeBudgetProgram as cn,Keypair as fn,PublicKey as _r,Transaction as mn,TransactionMessage as Or,VersionedTransaction as dn}from"@solana/web3.js";var Ee={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 vr}from"@solana/spl-token";var ln=Y("Raydium_txUtil"),pn=1644;function tt(e){let t=[],n=[];return e.microLamports&&(t.push(cn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Ee.SetComputeUnitPrice)),e.units&&(t.push(cn.setComputeUnitLimit({units:e.units})),n.push(Ee.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function we(e,t){var r,i;let n=t!=null?t:"confirmed";return(i=await((r=e.getLatestBlockhash)==null?void 0:r.call(e,{commitment:n})))==null?void 0:i.blockhash}async function nt(e,t){return e.getSignatureStatuses([t]),new Promise((n,r)=>{let i=setTimeout(r,6e4);e.onSignature(t,o=>{if(clearTimeout(i),!o.err){n("");return}r(Object.assign(o.err,{txId:t}))},"confirmed")})}function xt(e,t){e.length<1&&ln.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new mn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<pn}catch{return!1}}function rt(e,t){let[n,r]=_r.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Me({instructions:e,payer:t,signers:n}){return xt(e,[t,...n])}function De({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let o=new Or({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new dn(o).serialize()).toString("base64").length<pn}catch{return!1}}var Fr=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Vr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof dn&&(t=Fr(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function pe(e){let t=[];return e.forEach(n=>{n instanceof mn&&(n.recentBlockhash||(n.recentBlockhash=vr.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(Vr(n))}),console.log("simulate tx string:",t),t}import{PublicKey as B}from"@solana/web3.js";var _s=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Os=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vs=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Fs=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Vs=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Ks=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ws=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Us=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),qs=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Gs=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hs=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),js=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),zs=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ys=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Zs=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Js=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xs=new B("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Qs=new B("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),$s=new B("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ea=new B("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ta=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),na=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ra=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ia=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oa=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),sa=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),aa=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ua=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ca=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),la=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),fa=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ma={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import ga from"bn.js";import{PublicKey as Pt,AddressLookupTableAccount as Pe}from"@solana/web3.js";async function At({connection:e,address:t,cluster:n="mainnet"}){let r=await qe(e,[...new Set(t.map(o=>o.toString()))].map(o=>new Pt(o))),i={};for(let o=0;o<t.length;o++){let s=r[o],a=t[o];if(!s)continue;let c=new Pe({key:a,state:Pe.deserialize(s.data)});i[a.toString()]=c,n==="devnet"?xe[a.toString()]=c:Te[a.toString()]=c}return i}var Te={},St=async e=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Te[t])return Te;let n=new Pt(t),r=await e.getAccountInfo(n);return r&&(Te[t]=new Pe({key:n,state:Pe.deserialize(r.data)})),Te},xe={},Lt=async e=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Pt(t),r=await e.getAccountInfo(n);return r&&(xe[t]=new Pe({key:n,state:Pe.deserialize(r.data)})),xe};import{PublicKey as Ae,sendAndConfirmTransaction as Bt,SystemProgram as Kr,Transaction as _e,TransactionMessage as Oe,VersionedTransaction as ve}from"@solana/web3.js";import Wr from"axios";var it=2e3,ot=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 Wr.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}=tt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Kr.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ae(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Ee.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:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ae.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0(z({},n||{})):this.build(n)}build(t){var r;let n=new _e;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var l;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a,notSendToRpc:c}=i||{},u=o!=null?o:await we(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),pe([n]),(l=this.owner)!=null&&l.isKeyPair)return{txId:a?await Bt(this.connection,n,this.signers.find(m=>m.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 f=await this.signAllTransactions([n]);if(this.signers.length)for(let m of f)try{m.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(f[0].serialize(),{skipPreflight:s}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var u;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:i}=this.build(r),o=n.filter(l=>l.transaction.instructions.length>0),s=[i,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.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:c,execute:async l=>{var x;let{sequentially:f,onTxUpdate:m,skipTxCount:p=0,recentBlockHash:h,skipPreflight:g=!0}=l||{},b=h!=null?h:await we(this.connection,this.blockhashCommitment);if((x=this.owner)!=null&&x.isKeyPair){if(f){let A=[],P=0;for(let y of s){if(++P,P<=p)continue;let w=await Bt(this.connection,y,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});A.push(w)}return{txIds:A,signedTxs:s}}return{txIds:await await Promise.all(s.map(async A=>(A.recentBlockhash=b,await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let A=s.map((y,w)=>(y.recentBlockhash=b,a[w].length&&y.sign(...a[w]),y));pe(A);let P=await this.signAllTransactions(A);if(f){let y=0,w=[],T=async()=>{if(!P[y])return;let C=await this.connection.sendRawTransaction(P[y].serialize(),{skipPreflight:g});w.push({txId:C,status:"sent",signedTx:P[y]}),m==null||m([...w]),y++;let S=!1,R=null,v=null,M=E=>{R!==null&&clearInterval(R),v!==null&&this.connection.removeSignatureListener(v);let O=w.findIndex(K=>K.txId===C);if(O>-1){if(w[O].status==="error"||w[O].status==="success")return;w[O].status=E.err?"error":"success"}m==null||m([...w]),E.err||T()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var E;if(S){clearInterval(R);return}try{let O=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});O&&(S=!0,clearInterval(R),M({err:((E=O.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",C))}catch(O){S=!0,clearInterval(R),console.error("getTransaction timeout:",O,C)}},it)),v=this.connection.onSignature(C,E=>{if(S){this.connection.removeSignatureListener(v);return}S=!0,M(E)},"confirmed"),this.connection.getSignatureStatus(C)};return await T(),{txIds:w.map(C=>C.txId),signedTxs:P}}else{let y=[];for(let w=0;w<P.length;w+=1){let T=await this.connection.sendRawTransaction(P[w].serialize(),{skipPreflight:g});y.push(T)}return{txIds:y,signedTxs:P}}}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:i,recentBlockhash:o}=h,s=Ue(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=z(z({},this.cluster==="devnet"?await Lt(this.connection):await St(this.connection)),n),c=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Ae(b));let l=await At({connection:this.connection,address:u});for(let[b,x]of Object.entries(l))a[b]=x;let f=i?Ae.default.toBase58():o!=null?o:await we(this.connection,this.blockhashCommitment),m=new Oe({payerKey:this.feePayer,recentBlockhash:f,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(a));((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let p=new ve(m);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var y;let{skipPreflight:x=!0,sendAndConfirm:A,notSendToRpc:P}=b||{};if(pe([p]),(y=this.owner)!=null&&y.isKeyPair){let w=await this.connection.sendTransaction(p,{skipPreflight:x});return A&&await nt(this.connection,w),{txId:w,signedTx:p}}if(this.signAllTransactions){let w=await this.signAllTransactions([p]);if(this.signers.length)for(let T of w)try{T.sign(this.signers)}catch{}return{txId:P?"":await this.connection.sendTransaction(w[0],{skipPreflight:x}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(t){var u;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:i}=await this.buildV0(r),o=n.filter(l=>l.builder.instructions.length>0),s=[i,...o.map(l=>l.transaction)],a=[this.signers,...o.map(l=>l.signers)],c=[...this.instructionTypes,...o.map(l=>l.instructionTypes).flat()];return(u=this.owner)!=null&&u.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:c,buildProps:r,execute:async l=>{var g;let{sequentially:f,onTxUpdate:m,recentBlockHash:p,skipPreflight:h=!0}=l||{};if(p&&s.forEach(b=>b.message.recentBlockhash=p),pe(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let b=[];for(let x of s){let A=await this.connection.sendTransaction(x,{skipPreflight:h});await nt(this.connection,A),b.push(A)}return{txIds:b,signedTxs:s}}return{txIds:await Promise.all(s.map(async b=>await this.connection.sendTransaction(b,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let b=await this.signAllTransactions(s);if(f){let x=0,A=[],P=async()=>{if(!b[x])return;let y=await this.connection.sendTransaction(b[x],{skipPreflight:h});A.push({txId:y,status:"sent",signedTx:b[x]}),m==null||m([...A]),x++;let w=!1,T=null,C=null,S=R=>{T!==null&&clearInterval(T),C!==null&&this.connection.removeSignatureListener(C);let v=A.findIndex(M=>M.txId===y);if(v>-1){if(A[v].status==="error"||A[v].status==="success")return;A[v].status=R.err?"error":"success"}m==null||m([...A]),R.err||P()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var R;if(w){clearInterval(T);return}try{let v=await this.connection.getTransaction(y,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(w=!0,clearInterval(T),S({err:((R=v.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",y))}catch(v){w=!0,clearInterval(T),console.error("getTransaction timeout:",v,y)}},it)),C=this.connection.onSignature(y,R=>{if(w){this.connection.removeSignatureListener(C);return}w=!0,S(R)},"confirmed"),this.connection.getSignatureStatus(y)};return P(),{txIds:[],signedTxs:b}}else{let x=[];for(let A=0;A<b.length;A+=1){let P=await this.connection.sendTransaction(b[A],{skipPreflight:h});x.push(P)}return{txIds:x,signedTxs:b}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var m;let f=t||{},{splitIns:n=[],computeBudgetConfig:r}=f,i=Ue(f,["splitIns","computeBudgetConfig"]),o=r?tt(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,h)=>se(z({},p),{[h.publicKey.toBase58()]:h}),{}),a=[],c=[],u=[],l=0;if(this.allInstructions.forEach(p=>{let h=[...u,p],g=r?[...o.instructions,...h]:h,x=[...new Set(h.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(A=>new Ae(A));if(p!==n[l]&&u.length<12&&(Me({instructions:g,payer:this.feePayer,signers:x})||Me({instructions:h,payer:this.feePayer,signers:x})))u.push(p);else{if(u.length===0)throw Error("item ins too big");l+=p===n[l]?1:0,Me({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:x})?a.push(new _e().add(...o.instructions,...u)):a.push(new _e().add(...u)),c.push(Array.from(new Set(u.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat())).map(A=>s[A]).filter(A=>A!==void 0)),u=[p]}}),u.length>0){let h=[...new Set(u.map(g=>g.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(g=>s[g]).filter(g=>g!==void 0);Me({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:h.map(g=>g.publicKey)})?a.push(new _e().add(...o.instructions,...u)):a.push(new _e().add(...u)),c.push(h)}return a.forEach(p=>p.feePayer=this.feePayer),(m=this.owner)!=null&&m.signer&&c.forEach(p=>{p.some(h=>h.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:c,instructionTypes:this.instructionTypes,execute:async p=>{var y;let{sequentially:h,onTxUpdate:g,skipTxCount:b=0,recentBlockHash:x,skipPreflight:A=!0}=p||{},P=x!=null?x:await we(this.connection,this.blockhashCommitment);if(a.forEach(async(w,T)=>{w.recentBlockhash=P,c[T].length&&w.sign(...c[T])}),pe(a),(y=this.owner)!=null&&y.isKeyPair){if(h){let w=0,T=[];for(let C of a){if(++w,w<=b){T.push("tx skipped");continue}let S=await Bt(this.connection,C,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});T.push(S)}return{txIds:T,signedTxs:a}}return{txIds:await Promise.all(a.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:A}))),signedTxs:a}}if(this.signAllTransactions){let w=await this.signAllTransactions(a.slice(b,a.length)),T=[...a.slice(0,b),...w];if(h){let C=0,S=[],R=async()=>{if(!T[C])return;C<b&&(S.push({txId:"",status:"success",signedTx:T[C]}),g==null||g([...S]),C++,R());let v=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:A});S.push({txId:v,status:"sent",signedTx:T[C]}),g==null||g([...S]),C++;let M=!1,E=null,O=null,K=F=>{E!==null&&clearInterval(E),O!==null&&this.connection.removeSignatureListener(O);let I=S.findIndex(fe=>fe.txId===v);if(I>-1){if(S[I].status==="error"||S[I].status==="success")return;S[I].status=F.err?"error":"success"}g==null||g([...S]),F.err||R()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var F;if(M){clearInterval(E);return}try{let I=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});I&&(M=!0,clearInterval(E),K({err:((F=I.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",v))}catch(I){M=!0,clearInterval(E),console.error("getTransaction timeout:",I,v)}},it)),O=this.connection.onSignature(v,F=>{if(M){this.connection.removeSignatureListener(O);return}M=!0,K(F)},"confirmed"),this.connection.getSignatureStatus(v)};return await R(),{txIds:S.map(v=>v.txId),signedTxs:T}}else{let C=[];for(let S=0;S<T.length;S+=1){let R=await this.connection.sendRawTransaction(T[S].serialize(),{skipPreflight:A});C.push(R)}return{txIds:C,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(t){var P;let A=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:i={},lookupTableAddress:o=[]}=A,s=Ue(A,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=z(z({},this.cluster==="devnet"?await Lt(this.connection):await St(this.connection)),i),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let y of c)a[y]===void 0&&u.push(new Ae(y));let l=await At({connection:this.connection,address:u});for(let[y,w]of Object.entries(l))a[y]=w;let f=n?tt(n):{instructions:[],instructionTypes:[]},m=await we(this.connection,this.blockhashCommitment),p=this.signers.reduce((y,w)=>se(z({},y),{[w.publicKey.toBase58()]:w}),{}),h=[],g=[],b=[],x=0;if(this.allInstructions.forEach(y=>{let w=[...b,y],T=n?[...f.instructions,...w]:w;if(y!==r[x]&&b.length<12&&(De({instructions:T,payer:this.feePayer,lookupTableAddressAccount:a})||De({instructions:w,payer:this.feePayer,lookupTableAddressAccount:a})))b.push(y);else{if(b.length===0)throw Error("item ins too big");x+=y===r[x]?1:0;let C={};for(let S of[...new Set(c)])a[S]!==void 0&&(C[S]=a[S]);if(n&&De({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let S=new Oe({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new ve(S))}else{let S=new Oe({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new ve(S))}g.push(Array.from(new Set(b.map(S=>S.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(S=>p[S]).filter(S=>S!==void 0)),b=[y]}}),b.length>0){let w=[...new Set(b.map(T=>T.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(T=>p[T]).filter(T=>T!==void 0);if(n&&De({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let T=new Oe({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new ve(T))}else{let T=new Oe({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new ve(T))}g.push(w)}return(P=this.owner)!=null&&P.signer&&g.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),h.forEach((y,w)=>{y.sign(g[w])}),{builder:this,transactions:h,buildProps:t,signers:g,instructionTypes:this.instructionTypes,execute:async y=>{var v;let{sequentially:w,onTxUpdate:T,skipTxCount:C=0,recentBlockHash:S,skipPreflight:R=!0}=y||{};if(h.map(async(M,E)=>{g[E].length&&M.sign(g[E]),S&&(M.message.recentBlockhash=S)}),pe(h),(v=this.owner)!=null&&v.isKeyPair){if(w){let M=0,E=[];for(let O of h){if(++M,M<=C){console.log("skip tx: ",M),E.push("tx skipped");continue}let K=await this.connection.sendTransaction(O,{skipPreflight:R});await nt(this.connection,K),E.push(K)}return{txIds:E,signedTxs:h}}return{txIds:await Promise.all(h.map(async M=>await this.connection.sendTransaction(M,{skipPreflight:R}))),signedTxs:h}}if(this.signAllTransactions){let M=await this.signAllTransactions(h.slice(C,h.length)),E=[...h.slice(0,C),...M];if(w){let O=0,K=[],F=async()=>{if(!E[O])return;if(O<C){K.push({txId:"",status:"success",signedTx:E[O]}),T==null||T([...K]),O++,F();return}let I=await this.connection.sendTransaction(E[O],{skipPreflight:R});K.push({txId:I,status:"sent",signedTx:E[O]}),T==null||T([...K]),O++;let fe=!1,he=null,Ke=null,Mt=me=>{he!==null&&clearInterval(he),Ke!==null&&this.connection.removeSignatureListener(Ke);let ne=K.findIndex(xn=>xn.txId===I);if(ne>-1){if(K[ne].status==="error"||K[ne].status==="success")return;K[ne].status=me.err?"error":"success"}T==null||T([...K]),me.err||F()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var me;if(fe){clearInterval(he);return}try{let ne=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(fe=!0,clearInterval(he),Mt({err:((me=ne.meta)==null?void 0:me.err)||null}),console.log("tx status from getTransaction:",I))}catch(ne){fe=!0,clearInterval(he),console.error("getTransaction timeout:",ne,I)}},it)),Ke=this.connection.onSignature(I,me=>{if(fe){this.connection.removeSignatureListener(Ke);return}fe=!0,Mt(me)},"confirmed"),this.connection.getSignatureStatus(I)};return F(),{txIds:[],signedTxs:E}}else{let O=[];for(let K=0;K<E.length;K+=1){let F=await this.connection.sendTransaction(E[K],{skipPreflight:R});O.push(F)}return{txIds:O,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as _a}from"@solana/web3.js";import va from"bn.js";import Ur from"bn.js";var Ua=new Ur(1e6);import{PublicKey as Yr}from"@solana/web3.js";import yn,{isBN as wn}from"bn.js";import{bits as lu,BitStructure as fu,blob as qr,Blob as mu,cstr as du,f32 as pu,f32be as gu,f64 as hu,f64be as bu,greedy as yu,Layout as Gr,ns64 as wu,ns64be as Tu,nu64 as xu,nu64be as Pu,offset as Au,s16 as Su,s16be as Lu,s24 as Bu,s24be as Nu,s32 as ku,s32be as Cu,s40 as Iu,s40be as Ru,s48 as Eu,s48be as Mu,s8 as Du,seq as Hr,struct as _u,Structure as jr,u16 as Ou,u16be as vu,u24 as Fu,u24be as Vu,u32 as Ku,u32be as Wu,u40 as Uu,u40be as qu,u48 as Gu,u48be as Hu,u8 as ju,UInt as zr,union as zu,Union as Yu,unionLayoutDiscriminator as Zu,utf8 as Ju}from"@solana/buffer-layout";var Nt=Gr,gn=jr;var hn=zr;var bn=Hr;var Se=qr;var kt=class extends Nt{constructor(n,r,i){super(n,i);this.blob=Se(n),this.signed=r}decode(n,r=0){let i=new yn(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 yn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function Le(e){return new hn(1,e)}function ee(e){return new kt(8,!1,e)}var Ct=class extends Nt{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 ge(e){return new Ct(Se(32),t=>new Yr(t),t=>t.toBuffer(),e)}var It=class extends gn{decode(t,n){return super.decode(t,n)}};function Be(e,t,n){return new It(e,t,n)}function Fe(e,t,n){let r,i=typeof t=="number"?t:wn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=wn(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 bn(e,i,n)}var Rt=(...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=Y(n)}createTxBuilder(t){return this.scope.checkOwner(),new ot({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(Rt(t))}logInfo(...t){this.logger.info(Rt(t))}logAndCreateError(...t){let n=Rt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var j=class extends Ve{static getPdaPoolId(t,n){return rt([j.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,i){return rt([j.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new Tn(i).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:i,chainTime:o}){if(r.length===0)return[];let s=r.map(l=>j.getPdaPoolId(n,l).publicKey),a=[];for(let l=0;l<j.VERSION_PROJECT.length;l++)a.push(...s.map(f=>j.getPdaOwnerId(n,f,i,l).publicKey));let c=await qe(t,[...s,...a]),u=[];for(let l=0;l<c.length;l++){let f=Math.floor(l/r.length),m=l%r.length,p=s[m],h=a[l],g=c[m],b=c[r.length+l];if(!(g&&b)||g.data.length!==j.POOL_LAYOUT.span||b.data.length!==j.OWNER_LAYOUT.span)continue;let x=j.POOL_LAYOUT.decode(g.data),A=j.OWNER_LAYOUT.decode(b.data),P=x.openTime.toNumber(),y=x.endTime.toNumber(),w=A.tokenInfo.map(S=>S.debtAmount.gt(new Tn(0))).filter(S=>!S).length!==3,T=o>P&&o<y&&x.status===1,C=w&&T;u.push({programId:n,poolId:p,ammId:x.ammId,ownerAccountId:h,snapshotLpAmount:A.lpAmount,project:j.VERSION_PROJECT[f],openTime:P,endTime:y,canClaim:C,canClaimErrorType:w?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:x.tokenInfo.map((S,R)=>({mintAddress:S.mintAddress,mintVault:S.mintVault,mintDecimals:S.mintDecimals,perLpLoss:S.perLpLoss,debtAmount:A.tokenInfo[R].debtAmount.add(A.tokenInfo[R].claimedAmount)}))})}return u}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let i=this.createTxBuilder(r),o=n.wallet||this.scope.ownerPubKey,s=[];for(let u of t.tokenInfo){let{account:l,instructionParams:f}=await this.scope.account.getOrCreateTokenAccount({mint:u.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:u.mintAddress.equals(J.WSOL.mint),createInfo:{payer:o,amount:0},skipCloseAccount:!u.mintAddress.equals(J.WSOL.mint),associatedOnly:u.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});f&&i.addInstruction(f),s.push(l)}i.addInstruction({instructions:[j.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:o,ownerPda:t.ownerAccountId,claimAddress:s}})]});let{transaction:a,signers:c}=i.build();return[{transaction:a,signer:c}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let i=this.createTxBuilder(r),o=n.wallet||this.scope.ownerPubKey,s={};for(let l of t){let f=[];for(let m of l.tokenInfo){let{account:p,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({mint:m.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:m.mintAddress.equals(J.WSOL.mint),createInfo:{payer:o,amount:0},skipCloseAccount:!m.mintAddress.equals(J.WSOL.mint),associatedOnly:m.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});h&&i.addInstruction(h),p&&(s[m.mintAddress.toString()]=p,f.push(p))}i.addInstruction({instructions:[j.makeClaimInstruction({programId:l.programId,poolInfo:l,ownerInfo:{wallet:o,ownerPda:l.ownerAccountId,claimAddress:f}})]})}let{transaction:a,signers:c}=i.build(),u=i.allInstructions;return xt(u,[o,...c.map(l=>l.publicKey)])?[{transaction:a,signer:c}]:[{transaction:new Et().add(...u.slice(0,i.AllTxData.instructions.length-1)),signer:c},{transaction:new Et().add(...u.slice(i.AllTxData.instructions.length-1)),signer:[]},{transaction:new Et().add(...i.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let i=Be([]),o=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(c=>({pubkey:c,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:c})=>({pubkey:c,isSigner:!1,isWritable:!0})),{pubkey:Xr,isSigner:!1,isWritable:!1}],s=Buffer.alloc(i.span);i.encode({},s);let a=Buffer.from([10,66,208,184,161,6,191,98,...s]);return new Jr({keys:o,programId:t,data:a})}},te=j;te.CLAIMED_NUM=3,te.POOL_LAYOUT=Be([Se(8),Le("bump"),Le("status"),ee("openTime"),ee("endTime"),ge("ammId"),Fe(Be([Le("mintDecimals"),ge("mintAddress"),ge("mintVault"),ee("perLpLoss"),ee("totalClaimedAmount")]),j.CLAIMED_NUM,"tokenInfo"),Fe(ee(),10,"padding")]),te.OWNER_LAYOUT=Be([Se(8),Le("bump"),Le("version"),ge("poolId"),ge("owner"),ee("lpAmount"),Fe(Be([ge("mintAddress"),ee("debtAmount"),ee("claimedAmount")]),j.CLAIMED_NUM,"tokenInfo"),Fe(ee(),4,"padding")]),te.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Zr(t)),te.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},te.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];export{te as default};
//# sourceMappingURL=index.mjs.map