UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 75.6 kB
var wn=Object.defineProperty,Tn=Object.defineProperties;var xn=Object.getOwnPropertyDescriptors;var Fe=Object.getOwnPropertySymbols;var Et=Object.prototype.hasOwnProperty,Mt=Object.prototype.propertyIsEnumerable;var Nt=(e,t,n)=>t in e?wn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,z=(e,t)=>{for(var n in t||(t={}))Et.call(t,n)&&Nt(e,n,t[n]);if(Fe)for(var n of Fe(t))Mt.call(t,n)&&Nt(e,n,t[n]);return e},se=(e,t)=>Tn(e,xn(t));var Ke=(e,t)=>{var n={};for(var r in e)Et.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Fe)for(var r of Fe(e))t.indexOf(r)<0&&Mt.call(e,r)&&(n[r]=e[r]);return n};import{PublicKey as Jr,Transaction as kt,TransactionInstruction as Qr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xr}from"@solana/spl-token";import bn from"bn.js";import{PublicKey as Sn}from"@solana/web3.js";import{get as Rt,set as Pn}from"lodash";var ot=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}},Dt={},An={};function Y(e){let t=Rt(Dt,e);if(!t){let n=Rt(An,e);t=new ot({name:e,logLevel:n}),Pn(Dt,e,t)}return t}import{MINT_SIZE as ci,TOKEN_PROGRAM_ID as li,getTransferFeeConfig as fi,unpackMint as mi}from"@solana/spl-token";var st=Y("Raydium_accountInfo_util");async function Ve(e,t,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=z({batchRequest:!1},n),s=at(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=at(c,10);a=(await(await Promise.all(u.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&st.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"&&st.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(p[0],"base64"),executable:h,lamports:g,owner:new Sn(b),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(c=>e.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&st.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,ct="0123456789abcdef",Ue="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",lt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-be,maxE:be,crypto:!1},Ft,re,C=!0,He="[DecimalError] ",ce=He+"Invalid argument: ",Kt=He+"Precision limit exceeded",Vt=He+"crypto unavailable",Wt="[object Decimal]",H=Math.floor,q=Math.pow,Ln=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Bn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Cn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ut=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,B=7,kn=9007199254740991,In=Ue.length-1,ft=qe.length-1,d={toStringTag:Wt};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())+B,r.rounding=1,n=Nn(r,zt(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(C=!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=K(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 C=!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/B))*B,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return K(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return L(K(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/ze(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/ze(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,K(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()?Q(n,i,o):new n(0):new n(NaN):t.isZero()?Q(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=Q(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,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,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=K(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=Q(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<=ft)return s=Q(l,f+4,m).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(f+4<=ft)return s=Q(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/B+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(C=!1,t=Math.ceil(a/B),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)),C=!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/B)>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(C=!1,a=f+p,s=ue(u,a),r=t?Ge(l,a+10):ue(e,a),c=K(s,r,a,1),Se(c.d,i=f,m))do if(a+=10,s=ue(u,a),r=t?Ge(l,a+10):ue(e,a),c=K(s,r,a,1),!o){+G(c.d).slice(i+1,i+15)+1==1e14&&(c=L(c,f+1,0));break}while(Se(c.d,i+=10,m));return C=!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 C?L(e,a,c):e}if(n=H(e.e/B),l=H(p.e/B),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/B),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]=X-1;--u[i],u[r]+=X}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=je(u,n),C?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):(C=!1,r.modulo==9?(t=K(n,e.abs(),0,3,1),t.s*=e.s):t=K(n,e,0,r.modulo,1),t=t.times(e),C=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return mt(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)),C?L(e,a,c):e;if(o=H(f.e/B),r=H(e.e/B),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/B),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)/X|0,u[i]%=X;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=je(u,r),C?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=qt(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())+B,r.rounding=1,n=Mn(r,zt(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(C=!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(K(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 C=!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=K(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/B)+H(e.e/B),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%X|0,t=a/X|0;o[i]=(o[i]+t)%X|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=je(o,n),C?L(e,f.precision,f.rounding):e};d.toBinary=function(e,t){return pt(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=qt(h)-p.e-1,s=o%B,t.d[0]=q(10,s<0?B+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(C=!1,a=new g(G(h)),l=g.precision,g.precision=o=h.length*B*2;f=K(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=K(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=K(u,r,o,1).minus(p).abs().cmp(K(c,n,o,1).minus(p).abs())<1?[u,r]:[c,n],g.precision=l,C=!0,m};d.toHexadecimal=d.toHex=function(e,t){return pt(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]?(C=!1,n=K(n,e,0,t,1).times(e),C=!0,L(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return pt(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/B),t>=e.d.length-1&&(n=u<0?-u:u)<=kn)return i=Gt(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):(C=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=mt(e.times(ue(a,r+n)),r),i.d&&(i=L(i,r+5,1),Se(i.d,r,o)&&(t=r+10,i=L(mt(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,C=!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=B-r.length,n&&(o+=ae(n)),o+=r;s=e[t],r=s+"",n=B-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 Se(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=B,i=0):(i=Math.ceil((t+1)/B),t%=B),o=q(10,B-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 We(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]+=ct.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 Nn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/ze(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 K=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,P,T,y,A,w,k,S,E,v,R,M,D=r.constructor,V=r.s==i.s?1:-1,F=r.d,I=i.d;if(!F||!F[0]||!I||!I[0])return new D(!r.s||!i.s||(F?I&&F[0]==I[0]:!I)?NaN:F&&F[0]==0||!I?V*0:V/0);for(c?(p=1,l=r.e-i.e):(c=X,p=B,l=H(r.e/p)-H(i.e/p)),R=I.length,E=F.length,x=new D(V),P=x.d=[],f=0;I[f]==(F[f]||0);f++);if(I[f]>(F[f]||0)&&l--,o==null?(w=o=D.precision,s=D.rounding):a?w=o+(r.e-i.e)+1:w=o,w<0)P.push(1),h=!0;else{if(w=w/p+2|0,f=0,R==1){for(m=0,I=I[0],w++;(f<E||m)&&w--;f++)k=m*c+(F[f]||0),P[f]=k/I|0,m=k%I|0;h=m||f<E}else{for(m=c/(I[0]+1)|0,m>1&&(I=e(I,m,c),F=e(F,m,c),R=I.length,E=F.length),S=R,T=F.slice(0,R),y=T.length;y<R;)T[y++]=0;M=I.slice(),M.unshift(0),v=I[0],I[1]>=c/2&&++v;do m=0,u=t(I,T,R,y),u<0?(A=T[0],R!=y&&(A=A*c+(T[1]||0)),m=A/v|0,m>1?(m>=c&&(m=c-1),g=e(I,m,c),b=g.length,y=T.length,u=t(g,T,b,y),u==1&&(m--,n(g,R<b?M:I,b,c))):(m==0&&(u=m=1),g=I.slice()),b=g.length,b<y&&g.unshift(0),n(T,g,y,c),u==-1&&(y=T.length,u=t(I,T,R,y),u<1&&(m++,n(T,R<y?M:I,y,c))),y=T.length):u===0&&(m++,T=[0]),P[f++]=m,u&&T[0]?T[y++]=F[S]||0:(T=[F[S]],y=1);while((S++<E||T[0]!==void 0)&&w--);h=T[0]!==void 0}P[0]||P.shift()}if(p==1)x.e=l,Ft=h;else{for(f=1,m=P[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+=B,s=t,l=f[m=0],c=l/q(10,i-s-1)%10|0;else if(m=Math.ceil((o+1)/B),a=f.length,m>=a)if(r){for(;a++<=m;)f.push(0);l=c=0,i=1,o%=B,s=o-B+1}else break e;else{for(l=a=f[m],i=1;a>=10;a/=10)i++;o%=B,s=o-B+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,(B-t%B)%B),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,B-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]==X&&(f[0]=1));break}else{if(f[m]+=a,f[m]!=X)break;f[m--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return C&&(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 je(e,t){var n=e[0];for(t*=B;n>=10;n/=10)t++;return t}function Ge(e,t,n){if(t>In)throw C=!0,n&&(e.precision=n),Error(Kt);return L(new e(Ue),t,1,!0)}function Q(e,t,n){if(t>ft)throw Error(Kt);return L(new e(qe),t,n,!0)}function qt(e){var t=e.length-1,n=t*B+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 Gt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/B+4);for(C=!1;;){if(n%2&&(o=o.times(t),_t(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),_t(t.d,s)}return C=!0,o}function Ot(e){return e.d[e.d.length-1]&1}function Ht(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 mt(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?(C=!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(K(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&&Se(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,C=!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,P=x.rounding,T=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?(C=!1,l=T):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=Ge(x,l+2,T).times(o+""),g=ue(new x(r+"."+n.slice(1)),l-h).plus(u),x.precision=T,t==null?L(g,T,P,C=!0):g;for(f=g,c=s=g=K(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(K(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(Ge(x,l+2,T).times(o+""))),c=K(c,new x(p),l,1),t==null)if(Se(c.d,l-h,P,a))x.precision=l+=h,u=s=g=K(f.minus(1),f.plus(1),l,1),m=L(g.times(g),l,1),i=a=1;else return L(c,x.precision=T,P,C=!0);else return x.precision=T,c;c=u,i+=2}}function jt(e){return String(e.s*e.s/0)}function dt(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)%B,n<0&&(r+=B),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=B;r<i;)e.d.push(+t.slice(r,r+=B));t=t.slice(r),r=B-t.length}else r-=i;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 En(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Ut.test(t))return dt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Bn.test(t))n=16,t=t.toLowerCase();else if(Ln.test(t))n=2;else if(Cn.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=Gt(r,new r(n),o,o*2)),u=We(t,n,X),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=je(u,l),e.d=u,C=!1,s&&(e=K(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?q(2,c):Ye.pow(2,c))),C=!0,e)}function Mn(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/ze(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/B);for(C=!1,c=n.times(n),a=new e(r);;){if(s=K(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=K(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 C=!0,s.d.length=f+1,s}function ze(e,t){for(var n=e;--t;)n*=e;return n}function zt(e,t){var n,r=t.s<0,i=Q(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=Ot(n)?r?2:3:r?4:1,t;re=Ot(n)?r?1:4:r?3:2}return t.minus(i).abs()}function pt(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=We($(m),10,i),m.e=m.d.length),f=We(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=K(e,m,n,r,0,i),f=e.d,o=e.e,u=Ft),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+=ct.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=We(l,i,t),c=f.length;!f[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ct.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 _t(e,t){if(e.length>t)return e.length=t,!0}function Rn(e){return new this(e).abs()}function Dn(e){return new this(e).acos()}function On(e){return new this(e).acosh()}function _n(e,t){return new this(e).plus(t)}function vn(e){return new this(e).asin()}function Fn(e){return new this(e).asinh()}function Kn(e){return new this(e).atan()}function Vn(e){return new this(e).atanh()}function Wn(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=Q(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Q(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Q(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(K(e,t,o,1)),t=Q(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(K(e,t,o,1)),n}function Un(e){return new this(e).cbrt()}function qn(e){return L(e=new this(e),e.e+1,2)}function Gn(e,t,n){return new this(e).clamp(t,n)}function Hn(e){if(!e||typeof e!="object")throw Error(He+"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]=lt[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]=lt[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(Vt);else this[n]=!1;else throw Error(ce+n+": "+r);return this}function jn(e){return new this(e).cos()}function zn(e){return new this(e).cosh()}function Yt(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,vt(o)){u.s=o.s,C?!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++;C?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 dt(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),Ut.test(o)?dt(u,o):En(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=Hn,i.clone=Yt,i.isDecimal=vt,i.abs=Rn,i.acos=Dn,i.acosh=On,i.add=_n,i.asin=vn,i.asinh=Fn,i.atan=Kn,i.atanh=Vn,i.atan2=Wn,i.cbrt=Un,i.ceil=qn,i.clamp=Gn,i.cos=jn,i.cosh=zn,i.div=Yn,i.exp=Zn,i.floor=Jn,i.hypot=Qn,i.ln=Xn,i.log=$n,i.log10=tr,i.log2=er,i.max=nr,i.min=rr,i.mod=ir,i.mul=or,i.pow=sr,i.random=ar,i.round=ur,i.sign=cr,i.sin=lr,i.sinh=fr,i.sqrt=mr,i.sub=dr,i.sum=pr,i.tan=gr,i.tanh=hr,i.trunc=br,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 Yn(e,t){return new this(e).div(t)}function Zn(e){return new this(e).exp()}function Jn(e){return L(e=new this(e),e.e+1,3)}function Qn(){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 vt(e){return e instanceof Ye||e&&e.toStringTag===Wt||!1}function Xn(e){return new this(e).ln()}function $n(e,t){return new this(e).log(t)}function er(e){return new this(e).log(2)}function tr(e){return new this(e).log(10)}function nr(){return Ht(this,arguments,"lt")}function rr(){return Ht(this,arguments,"gt")}function ir(e,t){return new this(e).mod(t)}function or(e,t){return new this(e).mul(t)}function sr(e,t){return new this(e).pow(t)}function ar(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/B),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(Vt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=B,r&&e&&(i=q(10,B-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-=B)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<B&&(n-=B-r)}return s.e=n,s.d=a,s}function ur(e){return L(e=new this(e),e.e+1,this.rounding)}function cr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function lr(e){return new this(e).sin()}function fr(e){return new this(e).sinh()}function mr(e){return new this(e).sqrt()}function dr(e,t){return new this(e).sub(t)}function pr(){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,L(n,this.precision,this.rounding)}function gr(e){return new this(e).tan()}function hr(e){return new this(e).tanh()}function br(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 Ye=d.constructor=Yt(lt);Ue=new Ye(Ue);qe=new Ye(qe);import Lr from"big.js";import Ei from"bn.js";import yr from"toformat";var wr=yr,Le=wr;import Je from"big.js";import xr from"bn.js";import Pr from"decimal.js-light";import Be from"bn.js";var Zt=9007199254740991;function ie(e){let t=Y("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>=Zt||e<=-Zt)&&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 Ze=Y("module/fraction"),gt=Le(Je),Ce=Le(Pr),Ar={[0]:Ce.ROUND_DOWN,[1]:Ce.ROUND_HALF_UP,[2]:Ce.ROUND_UP},Sr={[0]:Je.roundDown,[1]:Je.roundHalfUp,[2]:Je.roundUp},W=class{constructor(t,n=new xr(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)||Ze.logWithError(`${t} is not an integer.`),t<=0&&Ze.logWithError(`${t} is not positive.`),Ce.set({precision:t+1,rounding:Ar[r]});let i=new Ce(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)||Ze.logWithError(`${t} is not an integer.`),t<0&&Ze.logWithError(`${t} is negative.`),gt.DP=t,gt.RM=Sr[r]||1,new gt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Vi=Y("Raydium_amount"),Wi=Le(Lr);import{PublicKey as Cr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jt}from"@solana/spl-token";var Qt={chainId:101,address:Cr.default.toBase58(),programId:Jt.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:Jt.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 bt}from"@solana/web3.js";import{PublicKey as U,SystemProgram as Xt,SYSVAR_RENT_PUBKEY as kr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ir}from"@solana/spl-token";function ht({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Zi=[ht({pubkey:Ir,isWritable:!1}),ht({pubkey:Xt.programId,isWritable:!1}),ht({pubkey:kr,isWritable:!1})];function $t({publicKey:e,transformSol:t}){let n=en(e.toString());if(n instanceof U)return t&&n.equals(ke)?ut:n;if(t&&n.toString()===ke.toBase58())return ut;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 en(e){try{return new U(e)}catch{return e}}var Ji=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qi=new U("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xi=new U("SysvarRent111111111111111111111111111111111"),$i=new U("SysvarC1ock11111111111111111111111111111111"),eo=new U("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),to=new U("Sysvar1nstructions1111111111111111111111111"),no=Xt.programId,ro=new U("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),io=new U("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),oo=new U("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),so=new U("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ao=new U("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),uo=new U("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),co=new U("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),lo=new U("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),fo=new U("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),mo=new U("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),po=new U("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ut=new U("So11111111111111111111111111111111111111112"),ke=U.default;var yt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===ke.toBase58()||t instanceof bt&&ke.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new bt(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?bt.default:$t({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=yt;J.WSOL=new yt(se(z({},de),{mint:de.address}));var wt=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=wt;Qe.SOL=new wt(Qt);import Nr from"bn.js";var Bo=new W(new Nr(100));var Mo=Y("Raydium_price");import{PublicKey as Zo}from"@solana/web3.js";import Qo from"bn.js";var Er=new oe(0),hs=new oe(1),bs=new oe(2),ys=new oe(3),ws=new oe(5),Br=new oe(10),Ts=new oe(100),xs=new oe(1e3),Ps=new oe(1e4);function at(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 Ks}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ws}from"@solana/spl-token";import{ComputeBudgetProgram as on,Keypair as an,PublicKey as Mr,Transaction as un,TransactionMessage as Rr,VersionedTransaction as cn}from"@solana/web3.js";var Ie={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 Dr}from"@solana/spl-token";var sn=Y("Raydium_txUtil"),ln=1644;function Xe(e){let t=[],n=[];return e.microLamports&&(t.push(on.setComputeUnitPrice({microLamports:e.microLamports})),n.push(Ie.SetComputeUnitPrice)),e.units&&(t.push(on.setComputeUnitLimit({units:e.units})),n.push(Ie.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 $e(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 Tt(e,t){e.length<1&&sn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&sn.logWithError(`no signers provided:, ${t.toString()}`);let n=new un;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<ln}catch{return!1}}function et(e,t){let[n,r]=Mr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function Ne({instructions:e,payer:t,signers:n}){return Tt(e,[t,...n])}function Ee({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=an.generate().publicKey.toString()}){let o=new Rr({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new cn(o).serialize()).toString("base64").length<ln}catch{return!1}}var Or=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),_r=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof cn&&(t=Or(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 un&&(n.recentBlockhash||(n.recentBlockhash=Dr.toBase58()),n.feePayer||(n.feePayer=an.generate().publicKey)),t.push(_r(n))}),console.log("simulate tx string:",t),t}import{PublicKey as N}from"@solana/web3.js";var Hs=new N("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),js=new N("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),zs=new N("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ys=new N("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Zs=new N("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Js=new N("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qs=new N("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xs=new N("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$s=new N("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ea=new N("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ta=new N("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),na=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ra=new N("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ia=new N("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),oa=new N("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),sa=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),aa=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ua=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ca=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),la=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),fa=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ma=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),vr=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Fr=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Kr=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),da=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vr=new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),pa=new N("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Wr=new N("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var ga={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:vr,CREATE_CPMM_POOL_AUTH:Fr,CREATE_CPMM_POOL_FEE_ACC:Kr,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Vr,LCOK_CPMM_AUTH:Wr};import ya from"bn.js";import{PublicKey as fn,AddressLookupTableAccount as tt}from"@solana/web3.js";async function xt({connection:e,address:t}){let n=await Ve(e,[...new Set(t.map(i=>i.toString()))].map(i=>new fn(i))),r={};for(let i=0;i<t.length;i++){let o=n[i],s=t[i];if(!o)continue;let a=new tt({key:s,state:tt.deserialize(o.data)});r[s.toString()]=a,nt[s.toString()]=a}return r}var nt={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new tt({key:new fn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:tt.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 Te,sendAndConfirmTransaction as Pt,SystemProgram as Ur,Transaction as Me,TransactionMessage as Re,VersionedTransaction as De}from"@solana/web3.js";import qr from"axios";var rt=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 qr.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}=Xe(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){return t?(this.endInstructions.push(Ur.transfer({fromPubkey:this.owner.publicKey,toPubkey:new Te(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Ie.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!==Te.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 Me;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 u;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},c=o!=null?o:await we(this.connection,this.blockhashCommitment);if(n.recentBlockhash=c,this.signers.length&&n.sign(...this.signers),pe([n]),(u=this.owner)!=null&&u.isKeyPair)return{txId:a?await Pt(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 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 P=[],T=0;for(let y of s){if(++T,T<=p)continue;let A=await Pt(this.connection,y,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});P.push(A)}return{txIds:P,signedTxs:s}}return{txIds:await await Promise.all(s.map(async P=>(P.recentBlockhash=b,await this.connection.sendRawTransaction(P.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let P=s.map((y,A)=>(y.recentBlockhash=b,a[A].length&&y.sign(...a[A]),y));pe(P);let T=await this.signAllTransactions(P);if(f){let y=0,A=[],w=async()=>{if(!T[y])return;let k=await this.connection.sendRawTransaction(T[y].serialize(),{skipPreflight:g});A.push({txId:k,status:"sent",signedTx:T[y]}),m==null||m([...A]),y++;let S=!1,E=null,v=null,R=M=>{E!==null&&clearInterval(E),v!==null&&this.connection.removeSignatureListener(v);let D=A.findIndex(V=>V.txId===k);if(D>-1){if(A[D].status==="error"||A[D].status==="success")return;A[D].status=M.err?"error":"success"}m==null||m([...A]),M.err||w()};this.loopMultiTxStatus&&(E=setInterval(async()=>{var M;if(S){clearInterval(E);return}try{let D=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});D&&(S=!0,clearInterval(E),R({err:((M=D.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",k))}catch(D){S=!0,clearInterval(E),console.error("getTransaction timeout:",D,k)}},rt)),v=this.connection.onSignature(k,M=>{if(S){this.connection.removeSignatureListener(v);return}S=!0,R(M)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:A.map(k=>k.txId),signedTxs:T}}else{let y=[];for(let A=0;A<T.length;A+=1){let w=await this.connection.sendRawTransaction(T[A].serialize(),{skipPreflight:g});y.push(w)}return{txIds:y,signedTxs:T}}}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=Ke(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),a=z(z({},this.cluster==="devnet"?{}:nt),n),c=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let b of c)a[b]===void 0&&u.push(new Te(b));let l=await xt({connection:this.connection,address:u});for(let[b,x]of Object.entries(l))a[b]=x;let f=i?Te.default.toBase58():o!=null?o:await we(this.connection,this.blockhashCommitment),m=new Re({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 De(m);return p.sign(this.signers),{builder:this,transaction:p,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var T;let{skipPreflight:x=!0,sendAndConfirm:P}=b||{};if(pe([p]),(T=this.owner)!=null&&T.isKeyPair){let y=await this.connection.sendTransaction(p,{skipPreflight:x});return P&&await $e(this.connection,y),{txId:y,signedTx:p}}if(this.signAllTransactions){let y=await this.signAllTransactions([p]);return{txId:await this.connection.sendTransaction(y[0],{skipPreflight:x}),signedTx:y[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 P=await this.connection.sendTransaction(x,{skipPreflight:h});await $e(this.connection,P),b.push(P)}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,P=[],T=async()=>{if(!b[x])return;let y=await this.connection.sendTransaction(b[x],{skipPreflight:h});P.push({txId:y,status:"sent",signedTx:b[x]}),m==null||m([...P]),x++;let A=!1,w=null,k=null,S=E=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let v=P.findIndex(R=>R.txId===y);if(v>-1){if(P[v].status==="error"||P[v].status==="success")return;P[v].status=E.err?"error":"success"}m==null||m([...P]),E.err||T()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var E;if(A){clearInterval(w);return}try{let v=await this.connection.getTransaction(y,{commitment:"confirmed",maxSupportedTransactionVersion:0});v&&(A=!0,clearInterval(w),S({err:((E=v.meta)==null?void 0:E.err)||null}),console.log("tx status from getTransaction:",y))}catch(v){A=!0,clearInterval(w),console.error("getTransaction timeout:",v,y)}},rt)),k=this.connection.onSignature(y,E=>{if(A){this.connection.removeSignatureListener(k);return}A=!0,S(E)},"confirmed"),this.connection.getSignatureStatus(y)};return T(),{txIds:[],signedTxs:b}}else{let x=[];for(let P=0;P<b.length;P+=1){let T=await this.connection.sendTransaction(b[P],{skipPreflight:h});x.push(T)}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=Ke(f,["splitIns","computeBudgetConfig"]),o=r?Xe(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(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>new Te(P));if(p!==n[l]&&u.length<12&&(Ne({instructions:g,payer:this.feePayer,signers:x})||Ne({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,Ne({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:x})?a.push(new Me().add(...o.instructions,...u)):a.push(new Me().add(...u)),c.push(Array.from(new Set(u.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat())).map(P=>s[P]).filter(P=>P!==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);Ne({instructions:r?[...o.instructions,...u]:[...u],payer:this.feePayer,signers:h.map(g=>g.publicKey)})?a.push(new Me().add(...o.instructions,...u)):a.push(new Me().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:P=!0}=p||{},T=x!=null?x:await we(this.connection,this.blockhashCommitment);if(a.forEach(async(A,w)=>{A.recentBlockhash=T,c[w].length&&A.sign(...c[w])}),pe(a),(y=this.owner)!=null&&y.isKeyPair){if(h){let A=0,w=[];for(let k of a){if(++A,A<=b){w.push("tx skipped");continue}let S=await Pt(this.connection,k,this.signers.find(E=>E.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});w.push(S)}return{txIds:w,signedTxs:a}}return{txIds:await Promise.all(a.map(async A=>await this.connection.sendRawTransaction(A.serialize(),{skipPreflight:P}))),signedTxs:a}}if(this.signAllTransactions){let A=await this.signAllTransactions(a.slice(b,a.length)),w=[...a.slice(0,b),...A];if(h){let k=0,S=[],E=async()=>{if(!w[k])return;k<b&&(S.push({txId:"",status:"success",signedTx:w[k]}),g==null||g([...S]),k++,E());let v=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:P});S.push({txId:v,status:"sent",signedTx:w[k]}),g==null||g([...S]),k++;let R=!1,M=null,D=null,V=F=>{M!==null&&clearInterval(M),D!==null&&this.connection.removeSignatureListener(D);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||E()};this.loopMultiTxStatus&&(M=setInterval(async()=>{var F;if(R){clearInterval(M);return}try{let I=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});I&&(R=!0,clearInterval(M),V({err:((F=I.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",v))}catch(I){R=!0,clearInterval(M),console.error("getTransaction timeout:",I,v)}},rt)),D=this.connection.onSignature(v,F=>{if(R){this.connection.removeSignatureListener(D);return}R=!0,V(F)},"confirmed"),this.connection.getSignatureStatus(v)};return await E(),{txIds:S.map(v=>v.txId),signedTxs:w}}else{let k=[];for(let S=0;S<w.length;S+=1){let E=await this.connection.sendRawTransaction(w[S].serialize(),{skipPreflight:P});k.push(E)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(t){var T;let P=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:i={},lookupTableAddress:o=[]}=P,s=Ke(P,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress"]),a=z(z({},this.cluster==="devnet"?{}:nt),i),c=Array.from(new Set([...this.lookupTableAddress,...o])),u=[];for(let y of c)a[y]===void 0&&u.push(new Te(y));let l=await xt({connection:this.connection,address:u});for(let[y,A]of Object.entries(l))a[y]=A;let f=n?Xe(n):{instructions:[],instructionTypes:[]},m=await we(this.connection,this.blockhashCommitment),p=this.signers.reduce((y,A)=>se(z({},y),{[A.publicKey.toBase58()]:A}),{}),h=[],g=[],b=[],x=0;if(this.allInstructions.forEach(y=>{let A=[...b,y],w=n?[...f.instructions,...A]:A;if(y!==r[x]&&b.length<12&&(Ee({instructions:w,payer:this.feePayer,lookupTableAddressAccount:a})||Ee({instructions:A,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 k={};for(let S of[...new Set(c)])a[S]!==void 0&&(k[S]=a[S]);if(n&&Ee({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let S=new Re({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new De(S))}else{let S=new Re({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new De(S))}g.push(Array.from(new Set(b.map(S=>S.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(S=>p[S]).filter(S=>S!==void 0)),b=[y]}}),b.length>0){let A=[...new Set(b.map(w=>w.keys.filter(k=>k.isSigner).map(k=>k.pubkey.toString())).flat()).values()].map(w=>p[w]).filter(w=>w!==void 0);if(n&&Ee({instructions:[...f.instructions,...b],payer:this.feePayer,lookupTableAddressAccount:a,recentBlockhash:m})){let w=new Re({payerKey:this.feePayer,recentBlockhash:m,instructions:[...f.instructions,...b]}).compileToV0Message(Object.values(a));h.push(new De(w))}else{let w=new Re({payerKey:this.feePayer,recentBlockhash:m,instructions:[...b]}).compileToV0Message(Object.values(a));h.push(new De(w))}g.push(A)}return(T=this.owner)!=null&&T.signer&&g.forEach(y=>{y.some(A=>A.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 v;let{sequentially:A,onTxUpdate:w,skipTxCount:k=0,recentBlockHash:S,skipPreflight:E=!0}=y||{};if(h.map(async(R,M)=>{g[M].length&&R.sign(g[M]),S&&(R.message.recentBlockhash=S)}),pe(h),(v=this.owner)!=null&&v.isKeyPair){if(A){let R=0,M=[];for(let D of h){if(++R,R<=k){console.log("skip tx: ",R),M.push("tx skipped");continue}let V=await this.connection.sendTransaction(D,{skipPreflight:E});await $e(this.connection,V),M.push(V)}return{txIds:M,signedTxs:h}}return{txIds:await Promise.all(h.map(async R=>await this.connection.sendTransaction(R,{skipPreflight:E}))),signedTxs:h}}if(this.signAllTransactions){let R=await this.signAllTransactions(h.slice(k,h.length)),M=[...h.slice(0,k),...R];if(A){let D=0,V=[],F=async()=>{if(!M[D])return;if(D<k){V.push({txId:"",status:"success",signedTx:M[D]}),w==null||w([...V]),D++,F();return}let I=await this.connection.sendTransaction(M[D],{skipPreflight:E});V.push({txId:I,status:"sent",signedTx:M[D]}),w==null||w([...V]),D++;let fe=!1,he=null,ve=null,It=me=>{he!==null&&clearInterval(he),ve!==null&&this.connection.removeSignatureListener(ve);let ne=V.findIndex(yn=>yn.txId===I);if(ne>-1){if(V[ne].status==="error"||V[ne].status==="success")return;V[ne].status=me.err?"error":"success"}w==null||w([...V]),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),It({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)}},rt)),ve=this.connection.onSignature(I,me=>{if(fe){this.connection.removeSignatureListener(ve);return}fe=!0,It(me)},"confirmed"),this.connection.getSignatureStatus(I)};return F(),{txIds:[],signedTxs:M}}else{let D=[];for(let V=0;V<M.length;V+=1){let F=await this.connection.sendTransaction(M[V],{skipPreflight:E});D.push(F)}return{txIds:D,signedTxs:M}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as Zr}from"@solana/web3.js";import gn,{isBN as hn}from"bn.js";import{bits as nu,BitStructure as ru,blob as Gr,Blob as iu,cstr as ou,f32 as su,f32be as au,f64 as uu,f64be as cu,greedy as lu,Layout as Hr,ns64 as fu,ns64be as mu,nu64 as du,nu64be as pu,offset as gu,s16 as hu,s16be as bu,s24 as yu,s24be as wu,s32 as Tu,s32be as xu,s40 as Pu,s40be as Au,s48 as Su,s48be as Lu,s8 as Bu,seq as jr,struct as Cu,Structure as zr,u16 as ku,u16be as Iu,u24 as Nu,u24be as Eu,u32 as Mu,u32be as Ru,u40 as Du,u40be as Ou,u48 as _u,u48be as vu,u8 as Fu,UInt as Yr,union as Ku,Union as Vu,unionLayoutDiscriminator as Wu,utf8 as Uu}from"@solana/buffer-layout";var At=Hr,mn=zr;var dn=Yr;var pn=jr;var xe=Gr;var St=class extends At{constructor(n,r,i){super(n,i);this.blob=xe(n),this.signed=r}decode(n,r=0){let i=new gn(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 gn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function Pe(e){return new dn(1,e)}function ee(e){return new St(8,!1,e)}var Lt=class extends At{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 Lt(xe(32),t=>new Zr(t),t=>t.toBuffer(),e)}var Bt=class extends mn{decode(t,n){return super.decode(t,n)}};function Ae(e,t,n){return new Bt(e,t,n)}function Oe(e,t,n){let r,i=typeof t=="number"?t:hn(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=hn(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 pn(e,i,n)}var Ct=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),_e=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=Y(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(Ct(t))}logInfo(...t){this.logger.info(Ct(t))}logAndCreateError(...t){let n=Ct(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var j=class extends _e{static getPdaPoolId(t,n){return et([j.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,i){return et([j.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new bn(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 Ve(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),P=j.OWNER_LAYOUT.decode(b.data),T=x.openTime.toNumber(),y=x.endTime.toNumber(),A=P.tokenInfo.map(S=>S.debtAmount.gt(new bn(0))).filter(S=>!S).length!==3,w=o>T&&o<y&&x.status===1,k=A&&w;u.push({programId:n,poolId:p,ammId:x.ammId,ownerAccountId:h,snapshotLpAmount:P.lpAmount,project:j.VERSION_PROJECT[f],openTime:T,endTime:y,canClaim:k,canClaimErrorType:A?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:x.tokenInfo.map((S,E)=>({mintAddress:S.mintAddress,mintVault:S.mintVault,mintDecimals:S.mintDecimals,perLpLoss:S.perLpLoss,debtAmount:P.tokenInfo[E].debtAmount.add(P.tokenInfo[E].claimedAmount)}))})}return u}async makeClaimTransaction({poolInfo:t,ownerInfo:n}){n.wallet||this.scope.checkOwner();let r=this.createTxBuilder(),i=n.wallet||this.scope.ownerPubKey,o=[];for(let c of t.tokenInfo){let{account:u,instructionParams:l}=await this.scope.account.getOrCreateTokenAccount({mint:c.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:c.mintAddress.equals(J.WSOL.mint),createInfo:{payer:i,amount:0},skipCloseAccount:!c.mintAddress.equals(J.WSOL.mint),associatedOnly:c.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});l&&r.addInstruction(l),o.push(u)}r.addInstruction({instructions:[j.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:i,ownerPda:t.ownerAccountId,claimAddress:o}})]});let{transaction:s,signers:a}=r.build();return[{transaction:s,signer:a}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n}){let r=this.createTxBuilder(),i=n.wallet||this.scope.ownerPubKey,o={};for(let u of t){let l=[];for(let f of u.tokenInfo){let{account:m,instructionParams:p}=await this.scope.account.getOrCreateTokenAccount({mint:f.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:f.mintAddress.equals(J.WSOL.mint),createInfo:{payer:i,amount:0},skipCloseAccount:!f.mintAddress.equals(J.WSOL.mint),associatedOnly:f.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});p&&r.addInstruction(p),m&&(o[f.mintAddress.toString()]=m,l.push(m))}r.addInstruction({instructions:[j.makeClaimInstruction({programId:u.programId,poolInfo:u,ownerInfo:{wallet:i,ownerPda:u.ownerAccountId,claimAddress:l}})]})}let{transaction:s,signers:a}=r.build(),c=r.allInstructions;return Tt(c,[i,...a.map(u=>u.publicKey)])?[{transaction:s,signer:a}]:[{transaction:new kt().add(...c.slice(0,r.AllTxData.instructions.length-1)),signer:a},{transaction:new kt().add(...c.slice(r.AllTxData.instructions.length-1)),signer:[]},{transaction:new kt().add(...r.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let i=Ae([]),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 Qr({keys:o,programId:t,data:a})}},te=j;te.CLAIMED_NUM=3,te.POOL_LAYOUT=Ae([xe(8),Pe("bump"),Pe("status"),ee("openTime"),ee("endTime"),ge("ammId"),Oe(Ae([Pe("mintDecimals"),ge("mintAddress"),ge("mintVault"),ee("perLpLoss"),ee("totalClaimedAmount")]),j.CLAIMED_NUM,"tokenInfo"),Oe(ee(),10,"padding")]),te.OWNER_LAYOUT=Ae([xe(8),Pe("bump"),Pe("version"),ge("poolId"),ge("owner"),ee("lpAmount"),Oe(Ae([ge("mintAddress"),ee("debtAmount"),ee("claimedAmount")]),j.CLAIMED_NUM,"tokenInfo"),Oe(ee(),4,"padding")]),te.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Jr(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