UNPKG

@cobaltx/sdk-v2

Version:

An SDK for building applications on top of CobaltX.

10 lines 87.7 kB
import{MINT_SIZE as yo,TOKEN_PROGRAM_ID as Ao,getTransferFeeConfig as xo,unpackMint as Po}from"@solana/spl-token";import{PublicKey as kn}from"@solana/web3.js";import{get as Ct,set as Pn}from"lodash";var tt=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}},Rt={},Sn={};function G(e){let t=Ct(Rt,e);if(!t){let n=Ct(Sn,e);t=new tt({name:e,logLevel:n}),Pn(Rt,e,t)}return t}var nt=G("CobaltX_accountInfo_util");async function Dt(e,t,n){let{batchRequest:r,commitment:o="confirmed",chunkCount:i=100}={batchRequest:!1,...n},s=rt(t,i),a=new Array(s.length).fill([]);if(r){let u=s.map(f=>{let p=e._buildArgs([f.map(m=>m.toBase58())],o,"base64");return{methodName:"getMultipleAccounts",args:p}}),c=rt(u,10);a=(await(await Promise.all(c.map(async f=>await e._rpcBatchRequest(f)))).flat()).map(f=>(f.error&&nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${f.error.message}`),f.result.value.map(p=>{if(p){let{data:m,executable:h,lamports:g,owner:y,rentEpoch:T}=p;return m.length!==2&&m[1]!=="base64"&&nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:h,lamports:g,owner:new kn(y),rentEpoch:T}}return null})))}else try{a=await Promise.all(s.map(u=>e.getMultipleAccountsInfo(u,o)))}catch(u){u instanceof Error&&nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}import ne from"bn.js";var me=9e15,se=1e9,ot="0123456789abcdef",De="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Me="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",it={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-me,maxE:me,crypto:!1},vt,ee,_=!0,Ke="[DecimalError] ",ie=Ke+"Invalid argument: ",Ut=Ke+"Precision limit exceeded",Ft=Ke+"crypto unavailable",Vt="[object Decimal]",j=Math.floor,U=Math.pow,_n=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Nn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ln=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Wt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,k=7,Bn=9007199254740991,En=De.length-1,st=Me.length-1,d={toStringTag:Vt};d.absoluteValue=d.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),x(e)};d.ceil=function(){return x(new this.constructor(this),this.e+1,2)};d.clampedTo=d.clamp=function(e,t){var n,r=this,o=r.constructor;if(e=new o(e),t=new o(t),!e.s||!t.s)return new o(NaN);if(e.gt(t))throw Error(ie+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new o(r)};d.comparedTo=d.cmp=function(e){var t,n,r,o,i=this,s=i.d,a=(e=new i.constructor(e)).d,u=i.s,c=e.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(i.e!==e.e)return i.e>e.e^u<0?1:-1;for(r=s.length,o=a.length,t=0,n=r<o?r:o;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^u<0?1:-1;return r===o?0:r>o^u<0?1:-1};d.cosine=d.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+k,r.rounding=1,n=In(r,Yt(r,n)),r.precision=e,r.rounding=t,x(ee==2||ee==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};d.cubeRoot=d.cbrt=function(){var e,t,n,r,o,i,s,a,u,c,l=this,f=l.constructor;if(!l.isFinite()||l.isZero())return new f(l);for(_=!1,i=l.s*U(l.s*l,1/3),!i||Math.abs(i)==1/0?(n=H(l.d),e=l.e,(i=(e-n.length+1)%3)&&(n+=i==1||i==-2?"0":"00"),i=U(n,1/3),e=j((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?n="5e"+e:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new f(n),r.s=l.s):r=new f(i.toString()),s=(e=f.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(l),r=R(c.plus(l).times(a),c.plus(u),s+2,1),H(a.d).slice(0,s)===(n=H(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!o&&n=="4999"){if(!o&&(x(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,o=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(x(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return _=!0,x(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-j(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return R(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return x(R(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 x(new this.constructor(this),this.e+1,3)};d.greaterThan=d.gt=function(e){return this.cmp(e)>0};d.greaterThanOrEqualTo=d.gte=function(e){var t=this.cmp(e);return t==1||t===0};d.hyperbolicCosine=d.cosh=function(){var e,t,n,r,o,i=this,s=i.constructor,a=new s(1);if(!i.isFinite())return new s(i.s?1/0:NaN);if(i.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(i.e,i.sd())+4,s.rounding=1,o=i.d.length,o<32?(e=Math.ceil(o/3),t=(1/Ue(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),i=de(s,1,i.times(t),new s(1),!0);for(var u,c=e,l=new s(8);c--;)u=i.times(i),i=a.minus(u.times(l.minus(u.times(l))));return x(i,s.precision=n,s.rounding=r,!0)};d.hyperbolicSine=d.sinh=function(){var e,t,n,r,o=this,i=o.constructor;if(!o.isFinite()||o.isZero())return new i(o);if(t=i.precision,n=i.rounding,i.precision=t+Math.max(o.e,o.sd())+4,i.rounding=1,r=o.d.length,r<3)o=de(i,2,o,o,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,o=o.times(1/Ue(5,e)),o=de(i,2,o,o,!0);for(var s,a=new i(5),u=new i(16),c=new i(20);e--;)s=o.times(o),o=o.times(a.plus(s.times(u.times(s).plus(c))))}return i.precision=t,i.rounding=n,x(o,t,n,!0)};d.hyperbolicTangent=d.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,R(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};d.inverseCosine=d.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),r=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?J(t,r,o):new t(0):new t(NaN):e.isZero()?J(t,r+4,o).times(.5):(t.precision=r+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=r,t.rounding=o,e.times(2))};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,_=!1,n=n.times(n).minus(1).sqrt().plus(n),_=!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,_=!1,n=n.times(n).plus(1).sqrt().plus(n),_=!0,r.precision=e,r.rounding=t,n.ln())};d.inverseHyperbolicTangent=d.atanh=function(){var e,t,n,r,o=this,i=o.constructor;return o.isFinite()?o.e>=0?new i(o.abs().eq(1)?o.s/0:o.isZero()?o:NaN):(e=i.precision,t=i.rounding,r=o.sd(),Math.max(r,e)<2*-o.e-1?x(new i(o),e,t,!0):(i.precision=n=r-o.e,o=R(o.plus(1),new i(1).minus(o),n+e,1),i.precision=e+4,i.rounding=1,o=o.ln(),i.precision=e,i.rounding=t,o.times(.5))):new i(NaN)};d.inverseSine=d.asin=function(){var e,t,n,r,o=this,i=o.constructor;return o.isZero()?new i(o):(t=o.abs().cmp(1),n=i.precision,r=i.rounding,t!==-1?t===0?(e=J(i,n+4,r).times(.5),e.s=o.s,e):new i(NaN):(i.precision=n+6,i.rounding=1,o=o.div(new i(1).minus(o.times(o)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=r,o.times(2)))};d.inverseTangent=d.atan=function(){var e,t,n,r,o,i,s,a,u,c=this,l=c.constructor,f=l.precision,p=l.rounding;if(c.isFinite()){if(c.isZero())return new l(c);if(c.abs().eq(1)&&f+4<=st)return s=J(l,f+4,p).times(.25),s.s=c.s,s}else{if(!c.s)return new l(NaN);if(f+4<=st)return s=J(l,f+4,p).times(.5),s.s=c.s,s}for(l.precision=a=f+10,l.rounding=1,n=Math.min(28,a/k+2|0),e=n;e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(_=!1,t=Math.ceil(a/k),r=1,u=c.times(c),s=new l(c),o=c;e!==-1;)if(o=o.times(u),i=s.minus(o.div(r+=2)),o=o.times(u),s=i.plus(o.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===i.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),_=!0,x(s,l.precision=f,l.rounding=p,!0)};d.isFinite=function(){return!!this.d};d.isInteger=d.isInt=function(){return!!this.d&&j(this.e/k)>this.d.length-2};d.isNaN=function(){return!this.s};d.isNegative=d.isNeg=function(){return this.s<0};d.isPositive=d.isPos=function(){return this.s>0};d.isZero=function(){return!!this.d&&this.d[0]===0};d.lessThan=d.lt=function(e){return this.cmp(e)<0};d.lessThanOrEqualTo=d.lte=function(e){return this.cmp(e)<1};d.logarithm=d.log=function(e){var t,n,r,o,i,s,a,u,c=this,l=c.constructor,f=l.precision,p=l.rounding,m=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=c.d,c.s<0||!n||!n[0]||c.eq(1))return new l(n&&!n[0]?-1/0:c.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)i=!0;else{for(o=n[0];o%10===0;)o/=10;i=o!==1}if(_=!1,a=f+m,s=oe(c,a),r=t?Oe(l,a+10):oe(e,a),u=R(s,r,a,1),Te(u.d,o=f,p))do if(a+=10,s=oe(c,a),r=t?Oe(l,a+10):oe(e,a),u=R(s,r,a,1),!i){+H(u.d).slice(o+1,o+15)+1==1e14&&(u=x(u,f+1,0));break}while(Te(u.d,o+=10,p));return _=!0,x(u,f,p)};d.minus=d.sub=function(e){var t,n,r,o,i,s,a,u,c,l,f,p,m=this,h=m.constructor;if(e=new h(e),!m.d||!e.d)return!m.s||!e.s?e=new h(NaN):m.d?e.s=-e.s:e=new h(e.d||m.s!==e.s?m:NaN),e;if(m.s!=e.s)return e.s=-e.s,m.plus(e);if(c=m.d,p=e.d,a=h.precision,u=h.rounding,!c[0]||!p[0]){if(p[0])e.s=-e.s;else if(c[0])e=new h(m);else return new h(u===3?-0:0);return _?x(e,a,u):e}if(n=j(e.e/k),l=j(m.e/k),c=c.slice(),i=l-n,i){for(f=i<0,f?(t=c,i=-i,s=p.length):(t=p,n=l,s=c.length),r=Math.max(Math.ceil(a/k),s)+2,i>r&&(i=r,t.length=1),t.reverse(),r=i;r--;)t.push(0);t.reverse()}else{for(r=c.length,s=p.length,f=r<s,f&&(s=r),r=0;r<s;r++)if(c[r]!=p[r]){f=c[r]<p[r];break}i=0}for(f&&(t=c,c=p,p=t,e.s=-e.s),s=c.length,r=p.length-s;r>0;--r)c[s++]=0;for(r=p.length;r>i;){if(c[--r]<p[r]){for(o=r;o&&c[--o]===0;)c[o]=X-1;--c[o],c[r]+=X}c[r]-=p[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(e.d=c,e.e=ve(c,n),_?x(e,a,u):e):new h(u===3?-0:0)};d.modulo=d.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?x(new r(n),r.precision,r.rounding):(_=!1,r.modulo==9?(t=R(n,e.abs(),0,3,1),t.s*=e.s):t=R(n,e,0,r.modulo,1),t=t.times(e),_=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return at(this)};d.naturalLogarithm=d.ln=function(){return oe(this)};d.negated=d.neg=function(){var e=new this.constructor(this);return e.s=-e.s,x(e)};d.plus=d.add=function(e){var t,n,r,o,i,s,a,u,c,l,f=this,p=f.constructor;if(e=new p(e),!f.d||!e.d)return!f.s||!e.s?e=new p(NaN):f.d||(e=new p(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(c=f.d,l=e.d,a=p.precision,u=p.rounding,!c[0]||!l[0])return l[0]||(e=new p(f)),_?x(e,a,u):e;if(i=j(f.e/k),r=j(e.e/k),c=c.slice(),o=i-r,o){for(o<0?(n=c,o=-o,s=l.length):(n=l,r=i,s=c.length),i=Math.ceil(a/k),s=i>s?i+1:s+1,o>s&&(o=s,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(s=c.length,o=l.length,s-o<0&&(o=s,n=l,l=c,c=n),t=0;o;)t=(c[--o]=c[o]+l[o]+t)/X|0,c[o]%=X;for(t&&(c.unshift(t),++r),s=c.length;c[--s]==0;)c.pop();return e.d=c,e.e=ve(c,r),_?x(e,a,u):e};d.precision=d.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ie+e);return n.d?(t=Ht(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};d.round=function(){var e=this,t=e.constructor;return x(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())+k,r.rounding=1,n=Rn(r,Yt(r,n)),r.precision=e,r.rounding=t,x(ee>2?n.neg():n,e,t,!0)):new r(NaN)};d.squareRoot=d.sqrt=function(){var e,t,n,r,o,i,s=this,a=s.d,u=s.e,c=s.s,l=s.constructor;if(c!==1||!a||!a[0])return new l(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(_=!1,c=Math.sqrt(+s),c==0||c==1/0?(t=H(a),(t.length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=j((u+1)/2)-(u<0||u%2),c==1/0?t="5e"+u:(t=c.toExponential(),t=t.slice(0,t.indexOf("e")+1)+u),r=new l(t)):r=new l(c.toString()),n=(u=l.precision)+3;;)if(i=r,r=i.plus(R(s,i,n+2,1)).times(.5),H(i.d).slice(0,n)===(t=H(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!o&&t=="4999"){if(!o&&(x(i,u+1,0),i.times(i).eq(s))){r=i;break}n+=4,o=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(x(r,u+1,1),e=!r.times(r).eq(s));break}return _=!0,x(r,u,l.rounding,e)};d.tangent=d.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=R(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,x(ee==2||ee==4?n.neg():n,e,t,!0)):new r(NaN)};d.times=d.mul=function(e){var t,n,r,o,i,s,a,u,c,l=this,f=l.constructor,p=l.d,m=(e=new f(e)).d;if(e.s*=l.s,!p||!p[0]||!m||!m[0])return new f(!e.s||p&&!p[0]&&!m||m&&!m[0]&&!p?NaN:!p||!m?e.s/0:e.s*0);for(n=j(l.e/k)+j(e.e/k),u=p.length,c=m.length,u<c&&(i=p,p=m,m=i,s=u,u=c,c=s),i=[],s=u+c,r=s;r--;)i.push(0);for(r=c;--r>=0;){for(t=0,o=u+r;o>r;)a=i[o]+m[r]*p[o-r-1]+t,i[o--]=a%X|0,t=a/X|0;i[o]=(i[o]+t)%X|0}for(;!i[--s];)i.pop();return t?++n:i.shift(),e.d=i,e.e=ve(i,n),_?x(e,f.precision,f.rounding):e};d.toBinary=function(e,t){return ct(this,2,e,t)};d.toDecimalPlaces=d.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(Y(e,0,se),t===void 0?t=r.rounding:Y(t,0,8),x(n,e+n.e+1,t))};d.toExponential=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=$(r,!0):(Y(e,0,se),t===void 0?t=o.rounding:Y(t,0,8),r=x(new o(r),e+1,t),n=$(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toFixed=function(e,t){var n,r,o=this,i=o.constructor;return e===void 0?n=$(o):(Y(e,0,se),t===void 0?t=i.rounding:Y(t,0,8),r=x(new i(o),e+o.e+1,t),n=$(r,!1,e+r.e+1)),o.isNeg()&&!o.isZero()?"-"+n:n};d.toFraction=function(e){var t,n,r,o,i,s,a,u,c,l,f,p,m=this,h=m.d,g=m.constructor;if(!h)return new g(m);if(c=n=new g(1),r=u=new g(0),t=new g(r),i=t.e=Ht(h)-m.e-1,s=i%k,t.d[0]=U(10,s<0?k+s:s),e==null)e=i>0?t:c;else{if(a=new g(e),!a.isInt()||a.lt(c))throw Error(ie+a);e=a.gt(t)?i>0?t:c:a}for(_=!1,a=new g(H(h)),l=g.precision,g.precision=i=h.length*k*2;f=R(a,t,0,1,1),o=n.plus(f.times(r)),o.cmp(e)!=1;)n=r,r=o,o=c,c=u.plus(f.times(o)),u=o,o=t,t=a.minus(f.times(o)),a=o;return o=R(e.minus(n),r,0,1,1),u=u.plus(o.times(c)),n=n.plus(o.times(r)),u.s=c.s=m.s,p=R(c,r,i,1).minus(m).abs().cmp(R(u,n,i,1).minus(m).abs())<1?[c,r]:[u,n],g.precision=l,_=!0,p};d.toHexadecimal=d.toHex=function(e,t){return ct(this,16,e,t)};d.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),e==null){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),t===void 0?t=r.rounding:Y(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(_=!1,n=R(n,e,0,t,1).times(e),_=!0,x(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return ct(this,8,e,t)};d.toPower=d.pow=function(e){var t,n,r,o,i,s,a=this,u=a.constructor,c=+(e=new u(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new u(U(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,i=u.rounding,e.eq(1))return x(a,r,i);if(t=j(e.e/k),t>=e.d.length-1&&(n=c<0?-c:c)<=Bn)return o=qt(u,a,n,r),e.s<0?new u(1).div(o):x(o,r,i);if(s=a.s,s<0){if(t<e.d.length-1)return new u(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=U(+a,c),t=n==0||!isFinite(n)?j(c*(Math.log("0."+H(a.d))/Math.LN10+a.e+1)):new u(n+"").e,t>u.maxE+1||t<u.minE-1?new u(t>0?s/0:0):(_=!1,u.rounding=a.s=1,n=Math.min(12,(t+"").length),o=at(e.times(oe(a,r+n)),r),o.d&&(o=x(o,r+5,1),Te(o.d,r,i)&&(t=r+10,o=x(at(e.times(oe(a,t+n)),t),t+5,1),+H(o.d).slice(r+1,r+15)+1==1e14&&(o=x(o,r+1,0)))),o.s=s,_=!0,u.rounding=i,x(o,r,i))};d.toPrecision=function(e,t){var n,r=this,o=r.constructor;return e===void 0?n=$(r,r.e<=o.toExpNeg||r.e>=o.toExpPos):(Y(e,1,se),t===void 0?t=o.rounding:Y(t,0,8),r=x(new o(r),e,t),n=$(r,e<=r.e||r.e<=o.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toSignificantDigits=d.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(Y(e,1,se),t===void 0?t=r.rounding:Y(t,0,8)),x(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 x(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 H(e){var t,n,r,o=e.length-1,i="",s=e[0];if(o>0){for(i+=s,t=1;t<o;t++)r=e[t]+"",n=k-r.length,n&&(i+=re(n)),i+=r;s=e[t],r=s+"",n=k-r.length,n&&(i+=re(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return i+s}function Y(e,t,n){if(e!==~~e||e<t||e>n)throw Error(ie+e)}function Te(e,t,n,r){var o,i,s,a;for(i=e[0];i>=10;i/=10)--t;return--t<0?(t+=k,o=0):(o=Math.ceil((t+1)/k),t%=k),i=U(10,k-t),a=e[o]%i|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==i||n>3&&a+1==i/2)&&(e[o+1]/i/100|0)==U(10,t-2)-1||(a==i/2||a==0)&&(e[o+1]/i/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==i||!r&&n>3&&a+1==i/2)&&(e[o+1]/i/1e3|0)==U(10,t-3)-1,s}function Ce(e,t,n){for(var r,o=[0],i,s=0,a=e.length;s<a;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=ot.indexOf(e.charAt(s++)),r=0;r<o.length;r++)o[r]>n-1&&(o[r+1]===void 0&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}function In(e,t){var n,r,o;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),o=(1/Ue(4,n)).toString()):(n=16,o="2.3283064365386962890625e-10"),e.precision+=n,t=de(e,1,t.times(o),new e(1));for(var i=n;i--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var R=function(){function e(r,o,i){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*o+a,r[u]=s%i|0,a=s/i|0;return a&&r.unshift(a),r}function t(r,o,i,s){var a,u;if(i!=s)u=i>s?1:-1;else for(a=u=0;a<i;a++)if(r[a]!=o[a]){u=r[a]>o[a]?1:-1;break}return u}function n(r,o,i,s){for(var a=0;i--;)r[i]-=a,a=r[i]<o[i]?1:0,r[i]=a*s+r[i]-o[i];for(;!r[0]&&r.length>1;)r.shift()}return function(r,o,i,s,a,u){var c,l,f,p,m,h,g,y,T,S,w,b,A,P,E,I,O,z,D,K,W=r.constructor,F=r.s==o.s?1:-1,v=r.d,C=o.d;if(!v||!v[0]||!C||!C[0])return new W(!r.s||!o.s||(v?C&&v[0]==C[0]:!C)?NaN:v&&v[0]==0||!C?F*0:F/0);for(u?(m=1,l=r.e-o.e):(u=X,m=k,l=j(r.e/m)-j(o.e/m)),D=C.length,O=v.length,T=new W(F),S=T.d=[],f=0;C[f]==(v[f]||0);f++);if(C[f]>(v[f]||0)&&l--,i==null?(P=i=W.precision,s=W.rounding):a?P=i+(r.e-o.e)+1:P=i,P<0)S.push(1),h=!0;else{if(P=P/m+2|0,f=0,D==1){for(p=0,C=C[0],P++;(f<O||p)&&P--;f++)E=p*u+(v[f]||0),S[f]=E/C|0,p=E%C|0;h=p||f<O}else{for(p=u/(C[0]+1)|0,p>1&&(C=e(C,p,u),v=e(v,p,u),D=C.length,O=v.length),I=D,w=v.slice(0,D),b=w.length;b<D;)w[b++]=0;K=C.slice(),K.unshift(0),z=C[0],C[1]>=u/2&&++z;do p=0,c=t(C,w,D,b),c<0?(A=w[0],D!=b&&(A=A*u+(w[1]||0)),p=A/z|0,p>1?(p>=u&&(p=u-1),g=e(C,p,u),y=g.length,b=w.length,c=t(g,w,y,b),c==1&&(p--,n(g,D<y?K:C,y,u))):(p==0&&(c=p=1),g=C.slice()),y=g.length,y<b&&g.unshift(0),n(w,g,b,u),c==-1&&(b=w.length,c=t(C,w,D,b),c<1&&(p++,n(w,D<b?K:C,b,u))),b=w.length):c===0&&(p++,w=[0]),S[f++]=p,c&&w[0]?w[b++]=v[I]||0:(w=[v[I]],b=1);while((I++<O||w[0]!==void 0)&&P--);h=w[0]!==void 0}S[0]||S.shift()}if(m==1)T.e=l,vt=h;else{for(f=1,p=S[0];p>=10;p/=10)f++;T.e=f+l*m-1,x(T,a?i+T.e+1:i,s,h)}return T}}();function x(e,t,n,r){var o,i,s,a,u,c,l,f,p,m=e.constructor;e:if(t!=null){if(f=e.d,!f)return e;for(o=1,a=f[0];a>=10;a/=10)o++;if(i=t-o,i<0)i+=k,s=t,l=f[p=0],u=l/U(10,o-s-1)%10|0;else if(p=Math.ceil((i+1)/k),a=f.length,p>=a)if(r){for(;a++<=p;)f.push(0);l=u=0,o=1,i%=k,s=i-k+1}else break e;else{for(l=a=f[p],o=1;a>=10;a/=10)o++;i%=k,s=i-k+o,u=s<0?0:l/U(10,o-s-1)%10|0}if(r=r||t<0||f[p+1]!==void 0||(s<0?l:l%U(10,o-s-1)),c=n<4?(u||r)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||r||n==6&&(i>0?s>0?l/U(10,o-s):0:f[p-1])%10&1||n==(e.s<0?8:7)),t<1||!f[0])return f.length=0,c?(t-=e.e+1,f[0]=U(10,(k-t%k)%k),e.e=-t||0):f[0]=e.e=0,e;if(i==0?(f.length=p,a=1,p--):(f.length=p+1,a=U(10,k-i),f[p]=s>0?(l/U(10,o-s)%U(10,s)|0)*a:0),c)for(;;)if(p==0){for(i=1,s=f[0];s>=10;s/=10)i++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;i!=a&&(e.e++,f[0]==X&&(f[0]=1));break}else{if(f[p]+=a,f[p]!=X)break;f[p--]=0,a=1}for(i=f.length;f[--i]===0;)f.pop()}return _&&(e.e>m.maxE?(e.d=null,e.e=NaN):e.e<m.minE&&(e.e=0,e.d=[0])),e}function $(e,t,n){if(!e.isFinite())return jt(e);var r,o=e.e,i=H(e.d),s=i.length;return t?(n&&(r=n-s)>0?i=i.charAt(0)+"."+i.slice(1)+re(r):s>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):o<0?(i="0."+re(-o-1)+i,n&&(r=n-s)>0&&(i+=re(r))):o>=s?(i+=re(o+1-s),n&&(r=n-o-1)>0&&(i=i+"."+re(r))):((r=o+1)<s&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-s)>0&&(o+1===s&&(i+="."),i+=re(r))),i}function ve(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function Oe(e,t,n){if(t>En)throw _=!0,n&&(e.precision=n),Error(Ut);return x(new e(De),t,1,!0)}function J(e,t,n){if(t>st)throw Error(Ut);return x(new e(Me),t,n,!0)}function Ht(e){var t=e.length-1,n=t*k+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 re(e){for(var t="";e--;)t+="0";return t}function qt(e,t,n,r){var o,i=new e(1),s=Math.ceil(r/k+4);for(_=!1;;){if(n%2&&(i=i.times(t),Ot(i.d,s)&&(o=!0)),n=j(n/2),n===0){n=i.d.length-1,o&&i.d[n]===0&&++i.d[n];break}t=t.times(t),Ot(t.d,s)}return _=!0,i}function Mt(e){return e.d[e.d.length-1]&1}function Gt(e,t,n){for(var r,o,i=new e(t[0]),s=0;++s<t.length;){if(o=new e(t[s]),!o.s){i=o;break}r=i.cmp(o),(r===n||r===0&&i.s===n)&&(i=o)}return i}function at(e,t){var n,r,o,i,s,a,u,c=0,l=0,f=0,p=e.constructor,m=p.rounding,h=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(_=!1,u=h):u=t,a=new p(.03125);e.e>-2;)e=e.times(a),f+=5;for(r=Math.log(U(2,f))/Math.LN10*2+5|0,u+=r,n=i=s=new p(1),p.precision=u;;){if(i=x(i.times(e),u,1),n=n.times(++l),a=s.plus(R(i,n,u,1)),H(a.d).slice(0,u)===H(s.d).slice(0,u)){for(o=f;o--;)s=x(s.times(s),u,1);if(t==null)if(c<3&&Te(s.d,u-r,m,c))p.precision=u+=10,n=i=a=new p(1),l=0,c++;else return x(s,p.precision=h,m,_=!0);else return p.precision=h,s}s=a}}function oe(e,t){var n,r,o,i,s,a,u,c,l,f,p,m=1,h=10,g=e,y=g.d,T=g.constructor,S=T.rounding,w=T.precision;if(g.s<0||!y||!y[0]||!g.e&&y[0]==1&&y.length==1)return new T(y&&!y[0]?-1/0:g.s!=1?NaN:y?0:g);if(t==null?(_=!1,l=w):l=t,T.precision=l+=h,n=H(y),r=n.charAt(0),Math.abs(i=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=H(g.d),r=n.charAt(0),m++;i=g.e,r>1?(g=new T("0."+n),i++):g=new T(r+"."+n.slice(1))}else return c=Oe(T,l+2,w).times(i+""),g=oe(new T(r+"."+n.slice(1)),l-h).plus(c),T.precision=w,t==null?x(g,w,S,_=!0):g;for(f=g,u=s=g=R(g.minus(1),g.plus(1),l,1),p=x(g.times(g),l,1),o=3;;){if(s=x(s.times(p),l,1),c=u.plus(R(s,new T(o),l,1)),H(c.d).slice(0,l)===H(u.d).slice(0,l))if(u=u.times(2),i!==0&&(u=u.plus(Oe(T,l+2,w).times(i+""))),u=R(u,new T(m),l,1),t==null)if(Te(u.d,l-h,S,a))T.precision=l+=h,c=s=g=R(f.minus(1),f.plus(1),l,1),p=x(g.times(g),l,1),o=a=1;else return x(u,T.precision=w,S,_=!0);else return T.precision=w,u;u=c,o+=2}}function jt(e){return String(e.s*e.s/0)}function Re(e,t){var n,r,o;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(o=t.length;t.charCodeAt(o-1)===48;--o);if(t=t.slice(r,o),t){if(o-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%k,n<0&&(r+=k),r<o){for(r&&e.d.push(+t.slice(0,r)),o-=k;r<o;)e.d.push(+t.slice(r,r+=k));t=t.slice(r),r=k-t.length}else r-=o;for(;r--;)t+="0";e.d.push(+t),_&&(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 Cn(e,t){var n,r,o,i,s,a,u,c,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Wt.test(t))return Re(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Nn.test(t))n=16,t=t.toLowerCase();else if(_n.test(t))n=2;else if(Ln.test(t))n=8;else throw Error(ie+t);for(i=t.search(/p/i),i>0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),i=t.indexOf("."),s=i>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,i=a-i,o=qt(r,new r(n),i,i*2)),c=Ce(t,n,X),l=c.length-1,i=l;c[i]===0;--i)c.pop();return i<0?new r(e.s*0):(e.e=ve(c,l),e.d=c,_=!1,s&&(e=R(e,o,a*4)),u&&(e=e.times(Math.abs(u)<54?U(2,u):Fe.pow(2,u))),_=!0,e)}function Rn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:de(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Ue(5,n)),t=de(e,2,t,t);for(var o,i=new e(5),s=new e(16),a=new e(20);n--;)o=t.times(t),t=t.times(i.plus(o.times(s.times(o).minus(a))));return t}function de(e,t,n,r,o){var i,s,a,u,c=1,l=e.precision,f=Math.ceil(l/k);for(_=!1,u=n.times(n),a=new e(r);;){if(s=R(a.times(u),new e(t++*t++),l,1),a=o?r.plus(s):r.minus(s),r=R(s.times(u),new e(t++*t++),l,1),s=a.plus(r),s.d[f]!==void 0){for(i=f;s.d[i]===a.d[i]&&i--;);if(i==-1)break}i=a,a=r,r=s,s=i,c++}return _=!0,s.d.length=f+1,s}function Ue(e,t){for(var n=e;--t;)n*=e;return n}function Yt(e,t){var n,r=t.s<0,o=J(e,e.precision,1),i=o.times(.5);if(t=t.abs(),t.lte(i))return ee=r?4:1,t;if(n=t.divToInt(o),n.isZero())ee=r?3:2;else{if(t=t.minus(n.times(o)),t.lte(i))return ee=Mt(n)?r?2:3:r?4:1,t;ee=Mt(n)?r?1:4:r?3:2}return t.minus(o).abs()}function ct(e,t,n,r){var o,i,s,a,u,c,l,f,p,m=e.constructor,h=n!==void 0;if(h?(Y(n,1,se),r===void 0?r=m.rounding:Y(r,0,8)):(n=m.precision,r=m.rounding),!e.isFinite())l=jt(e);else{for(l=$(e),s=l.indexOf("."),h?(o=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):o=t,s>=0&&(l=l.replace(".",""),p=new m(1),p.e=l.length-s,p.d=Ce($(p),10,o),p.e=p.d.length),f=Ce(l,10,o),i=u=f.length;f[--u]==0;)f.pop();if(!f[0])l=h?"0p+0":"0";else{if(s<0?i--:(e=new m(e),e.d=f,e.e=i,e=R(e,p,n,r,0,o),f=e.d,i=e.e,c=vt),s=f[n],a=o/2,c=c||f[n+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&f[n-1]&1||r===(e.s<0?8:7)),f.length=n,c)for(;++f[--n]>o-1;)f[n]=0,n||(++i,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,l="";s<u;s++)l+=ot.charAt(f[s]);if(h){if(u>1)if(t==16||t==8){for(s=t==16?4:3,--u;u%s;u++)l+="0";for(f=Ce(l,o,t),u=f.length;!f[u-1];--u);for(s=1,l="1.";s<u;s++)l+=ot.charAt(f[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)l="0"+l;l="0."+l}else if(++i>u)for(i-=u;i--;)l+="0";else i<u&&(l=l.slice(0,i)+"."+l.slice(i))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function Ot(e,t){if(e.length>t)return e.length=t,!0}function Dn(e){return new this(e).abs()}function Mn(e){return new this(e).acos()}function On(e){return new this(e).acosh()}function Kn(e,t){return new this(e).plus(t)}function vn(e){return new this(e).asin()}function Un(e){return new this(e).asinh()}function Fn(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,o=this.rounding,i=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=J(this,i,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?J(this,r,o):new this(0),n.s=e.s):!e.d||t.isZero()?(n=J(this,i,1).times(.5),n.s=e.s):t.s<0?(this.precision=i,this.rounding=1,n=this.atan(R(e,t,i,1)),t=J(this,i,1),this.precision=r,this.rounding=o,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(R(e,t,i,1)),n}function Hn(e){return new this(e).cbrt()}function qn(e){return x(e=new this(e),e.e+1,2)}function Gn(e,t,n){return new this(e).clamp(t,n)}function jn(e){if(!e||typeof e!="object")throw Error(Ke+"Object expected");var t,n,r,o=e.defaults===!0,i=["precision",1,se,"rounding",0,8,"toExpNeg",-me,0,"toExpPos",0,me,"maxE",0,me,"minE",-me,0,"modulo",0,9];for(t=0;t<i.length;t+=3)if(n=i[t],o&&(this[n]=it[n]),(r=e[n])!==void 0)if(j(r)===r&&r>=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(ie+n+": "+r);if(n="crypto",o&&(this[n]=it[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(Ft);else this[n]=!1;else throw Error(ie+n+": "+r);return this}function Yn(e){return new this(e).cos()}function zn(e){return new this(e).cosh()}function zt(e){var t,n,r;function o(i){var s,a,u,c=this;if(!(c instanceof o))return new o(i);if(c.constructor=o,Kt(i)){c.s=i.s,_?!i.d||i.e>o.maxE?(c.e=NaN,c.d=null):i.e<o.minE?(c.e=0,c.d=[0]):(c.e=i.e,c.d=i.d.slice()):(c.e=i.e,c.d=i.d?i.d.slice():i.d);return}if(u=typeof i,u==="number"){if(i===0){c.s=1/i<0?-1:1,c.e=0,c.d=[0];return}if(i<0?(i=-i,c.s=-1):c.s=1,i===~~i&&i<1e7){for(s=0,a=i;a>=10;a/=10)s++;_?s>o.maxE?(c.e=NaN,c.d=null):s<o.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[i]):(c.e=s,c.d=[i]);return}if(i*0!==0){i||(c.s=NaN),c.e=NaN,c.d=null;return}return Re(c,i.toString())}if(u==="string")return(a=i.charCodeAt(0))===45?(i=i.slice(1),c.s=-1):(a===43&&(i=i.slice(1)),c.s=1),Wt.test(i)?Re(c,i):Cn(c,i);if(u==="bigint")return i<0?(i=-i,c.s=-1):c.s=1,Re(c,i.toString());throw Error(ie+i)}if(o.prototype=d,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=jn,o.clone=zt,o.isDecimal=Kt,o.abs=Dn,o.acos=Mn,o.acosh=On,o.add=Kn,o.asin=vn,o.asinh=Un,o.atan=Fn,o.atanh=Vn,o.atan2=Wn,o.cbrt=Hn,o.ceil=qn,o.clamp=Gn,o.cos=Yn,o.cosh=zn,o.div=Xn,o.exp=Qn,o.floor=Zn,o.hypot=Jn,o.ln=$n,o.log=er,o.log10=nr,o.log2=tr,o.max=rr,o.min=or,o.mod=ir,o.mul=sr,o.pow=ar,o.random=cr,o.round=ur,o.sign=lr,o.sin=fr,o.sinh=pr,o.sqrt=mr,o.sub=dr,o.sum=hr,o.tan=gr,o.tanh=br,o.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 o.config(e),o}function Xn(e,t){return new this(e).div(t)}function Qn(e){return new this(e).exp()}function Zn(e){return x(e=new this(e),e.e+1,3)}function Jn(){var e,t,n=new this(0);for(_=!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 _=!0,new this(1/0);n=t}return _=!0,n.sqrt()}function Kt(e){return e instanceof Fe||e&&e.toStringTag===Vt||!1}function $n(e){return new this(e).ln()}function er(e,t){return new this(e).log(t)}function tr(e){return new this(e).log(2)}function nr(e){return new this(e).log(10)}function rr(){return Gt(this,arguments,-1)}function or(){return Gt(this,arguments,1)}function ir(e,t){return new this(e).mod(t)}function sr(e,t){return new this(e).mul(t)}function ar(e,t){return new this(e).pow(t)}function cr(e){var t,n,r,o,i=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Y(e,1,se),r=Math.ceil(e/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));i<r;)o=t[i],o>=429e7?t[i]=crypto.getRandomValues(new Uint32Array(1))[0]:a[i++]=o%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);i<r;)o=t[i]+(t[i+1]<<8)+(t[i+2]<<16)+((t[i+3]&127)<<24),o>=214e7?crypto.randomBytes(4).copy(t,i):(a.push(o%1e7),i+=4);i=r/4}else throw Error(Ft);else for(;i<r;)a[i++]=Math.random()*1e7|0;for(r=a[--i],e%=k,r&&e&&(o=U(10,k-e),a[i]=(r/o|0)*o);a[i]===0;i--)a.pop();if(i<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(r=1,o=a[0];o>=10;o/=10)r++;r<k&&(n-=k-r)}return s.e=n,s.d=a,s}function ur(e){return x(e=new this(e),e.e+1,this.rounding)}function lr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function fr(e){return new this(e).sin()}function pr(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 hr(){var e=0,t=arguments,n=new this(t[e]);for(_=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return _=!0,x(n,this.precision,this.rounding)}function gr(e){return new this(e).tan()}function br(e){return new this(e).tanh()}function Tr(e){return x(e=new this(e),e.e+1,1)}d[Symbol.for("nodejs.util.inspect.custom")]=d.toString;d[Symbol.toStringTag]="Decimal";var Fe=d.constructor=zt(it);De=new Fe(De);Me=new Fe(Me);import _r from"big.js";import zo from"bn.js";import wr from"toformat";var yr=wr,we=yr;import We from"big.js";import xr from"bn.js";import Pr from"decimal.js-light";import ye from"bn.js";var Xt=9007199254740991;function Q(e){let t=G("CobaltX_parseBigNumberish");if(e instanceof ye)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new ye(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=Xt||e<=-Xt)&&t.logWithError(`BigNumberish number overflow: ${e}`),new ye(String(e))):typeof e=="bigint"?new ye(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new ye(0))}var Ve=G("module/fraction"),ut=we(We),Ae=we(Pr),Sr={[0]:Ae.ROUND_DOWN,[1]:Ae.ROUND_HALF_UP,[2]:Ae.ROUND_UP},kr={[0]:We.roundDown,[1]:We.roundHalfUp,[2]:We.roundUp},M=class{constructor(t,n=new xr(1)){this.numerator=Q(t),this.denominator=Q(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new M(this.denominator,this.numerator)}add(t){let n=t instanceof M?t:new M(Q(t));return this.denominator.eq(n.denominator)?new M(this.numerator.add(n.numerator),this.denominator):new M(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof M?t:new M(Q(t));return this.denominator.eq(n.denominator)?new M(this.numerator.sub(n.numerator),this.denominator):new M(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof M?t:new M(Q(t));return new M(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof M?t:new M(Q(t));return new M(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Ve.logWithError(`${t} is not an integer.`),t<=0&&Ve.logWithError(`${t} is not positive.`),Ae.set({precision:t+1,rounding:Sr[r]});let o=new Ae(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return o.toFormat(o.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Ve.logWithError(`${t} is not an integer.`),t<0&&Ve.logWithError(`${t} is negative.`),ut.DP=t,ut.RM=kr[r]||1,new ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ri=G("CobaltX_amount"),oi=we(_r);import{TOKEN_PROGRAM_ID as Br}from"@solana/spl-token";import{PublicKey as li}from"@solana/web3.js";import{PublicKey as te}from"@solana/web3.js";var Lr={["sooneth"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.cobaltx.io",BASE_HOST:"https://api.cobaltx.io",OWNER_BASE_HOST:"https://api.cobaltx.io",SERVICE_BASE_HOST:"https://api.cobaltx.io",MONITOR_BASE_HOST:"https://api.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"6fa5xTGwoYJPMLMXaQ4tQFKMoYvXuvsJFLigMJ9a5QeB",CLMM_PROGRAMM_ID:"2TnjBuwqyBB9to5jURagDT7jLmBPefGRiKL2yh1zPZ4V",BONK_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",SOL_MINT_ADDRESS:"ERFzpDteGNo8LTDKW1WwVGrkRMmA2y9WZHXNHxMA6BSV",USDC_MINT_ADDRESS:"ExYxyorY2x3h8gLcuypnHFQV3F36rmMkQVn7HHV8mUy9",USDT_MINT_ADDRESS:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9",FULL_TOKEN_NAME:"Wrapped Ethereum",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:te.default.toString(),OUTPUT_MINT_ADDRESS:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9",POPULAR_TOKENS:{SOL:te.default.toString(),ETH:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC:"ExYxyorY2x3h8gLcuypnHFQV3F36rmMkQVn7HHV8KjtA",USDT:"742wcXVzkhNuEePAot7L3GvPseh93pvYFPgyHLX8mUy9"},WSOL_DECIMALS:9},["svmbnb"]:{NATIVE_TOKEN_SYMBOL:"BNB",SWAP_HOST:"https://trade-api.svmbnb.cobaltx.io",BASE_HOST:"https://api.svmbnb.cobaltx.io",OWNER_BASE_HOST:"https://api.svmbnb.cobaltx.io",SERVICE_BASE_HOST:"https://api.svmbnb.cobaltx.io",MONITOR_BASE_HOST:"https://api.svmbnb.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.svmbnb.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.svmbnb.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-tokens/main/logo/So11111111111111111111111111111111111111112.svg",LOOKUP_TABLE_CACHE:"GSR5XQGWhpzV9TTduBJR6qPNjYsepMQSGkpaqfrbrW9w",CLMM_PROGRAMM_ID:"6f1b3xyVZbnWMHXBjgW1KPwxmPAgXcRdrvKNn4Nmf1Cn",ETH_MINT_ADDRESS:"H3xpFH1yN5E1zFdAoBrC9Y7m7RfJUeQNLvkHi8kNf9Qu",USDC_MINT_ADDRESS:"5odzAHDpDETYhupMkc6kjiYen3K2nrf8oPmvqmsoNW4L",USDT_MINT_ADDRESS:"s8cRDxnp3VxjB6khRnGDdxv6QbCUPyY9Vn1bgSQQsnG",SOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",FULL_TOKEN_NAME:"Wrapped BNB",WRAPPED_TOKEN_SYMBOL:"WBNB",INPUT_MINT_ADDRESS:te.default.toBase58(),OUTPUT_MINT_ADDRESS:"ABoT7umUXnx8RtJTeRqKB6myebVjP2wdJGQuV23jVVH3",POPULAR_TOKENS:{SOL:te.default.toString(),ETH:"H3xpFH1yN5E1zFdAoBrC9Y7m7RfJUeQNLvkHi8kNf9Qu",USDC:"5odzAHDpDETYhupMkc6kjiYen3K2nrf8oPmvqmsoNW4L",USDT:"s8cRDxnp3VxjB6khRnGDdxv6QbCUPyY9Vn1bgSQQsnG"},WSOL_DECIMALS:9},["svmbnb_testnet"]:{NATIVE_TOKEN_SYMBOL:"BNB",SWAP_HOST:"https://trade-api.svmbnb.cobaltx.io",BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",OWNER_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",SERVICE_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",MONITOR_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.testnet.svmbnb.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-testnet-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbnb-testnet-tokens/main/logo/So11111111111111111111111111111111111111112.svg",LOOKUP_TABLE_CACHE:"D79gSiTNV9pyLPJyscW5yZYwdPVDrtKsamL3ZfQi6JiM",CLMM_PROGRAMM_ID:"FgycD57kcCZsjpoTAi2u67GTPxm59bPEhycL2Lw1icm1",ETH_MINT_ADDRESS:"5aLr3sV4UNVcMB6CiA3PZTWbgVBRNyMdEp1s5LNfhR95",USDC_MINT_ADDRESS:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",USDT_MINT_ADDRESS:"Ex86C4gmdjvPRNrfyvsyejbjkP6RstNaBC5g3itZw2iv",FULL_TOKEN_NAME:"Wrapped BNB",WRAPPED_TOKEN_SYMBOL:"WBNB",INPUT_MINT_ADDRESS:"bnb",OUTPUT_MINT_ADDRESS:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",POPULAR_TOKENS:{SOL:te.default.toString(),ETH:"5aLr3sV4UNVcMB6CiA3PZTWbgVBRNyMdEp1s5LNfhR95",USDC:"jrhUNRxEDpFmGV3sqaWyveS7bVtRQgtHsfBTCdjfMBw",USDT:"Ex86C4gmdjvPRNrfyvsyejbjkP6RstNaBC5g3itZw2iv"},WSOL_DECIMALS:9},["svmbase_testnet"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.testnet.svmbase.cobaltx.io",BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",OWNER_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",SERVICE_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",MONITOR_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.testnet.svmbase.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbase-testnet-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/svmbase-testnet-tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"AyPMvNmUUY2jwZ75NxhkLYPraQGNk5DssVfP4TnMcPJF",CLMM_PROGRAMM_ID:"DnZnBqJKiGSYHUHYvkXAbQmkMbwrjfgo4orR7jWyMsik",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC_MINT_ADDRESS:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",USDT_MINT_ADDRESS:"4fyX7hSmPetQC2wRS3YVAhWeFzif7WStarKwTvCXrBtD",FULL_TOKEN_NAME:"Wrapped Ethereum",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:te.default.toString(),OUTPUT_MINT_ADDRESS:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",POPULAR_TOKENS:{SOL:te.default.toString(),ETH:"So11111111111111111111111111111111111111112",USDC:"63tPXWPnYeZ9hA3dJsAY5RcQ8YbwEz8uZ5nKu3uFD1aK",USDT:"4fyX7hSmPetQC2wRS3YVAhWeFzif7WStarKwTvCXrBtD"},WSOL_DECIMALS:9},["soonbase_mainnet"]:{NATIVE_TOKEN_SYMBOL:"ETH",SWAP_HOST:"https://trade-api.soonbase.cobaltx.io",BASE_HOST:"https://api.soonbase.cobaltx.io",OWNER_BASE_HOST:"https://api.soonbase.cobaltx.io",SERVICE_BASE_HOST:"https://api.soonbase.cobaltx.io",MONITOR_BASE_HOST:"https://api.soonbase.cobaltx.io",SERVICE_1_BASE_HOST:"https://api.soonbase.cobaltx.io",ANALYTICS_BASE_HOST:"https://api.soonbase.cobaltx.io",GITHUB_TOKEN_LIST_URL:"https://raw.githubusercontent.com/cobaltx-io/soonbase-tokens/main/tokens.json",WSOL_MINT_ADDRESS:"So11111111111111111111111111111111111111112",GITHUB_LOGO_URL:"https://raw.githubusercontent.com/cobaltx-io/soonbase-tokens/main/logo/So11111111111111111111111111111111111111112.png",LOOKUP_TABLE_CACHE:"FGRusuLycV6nhSPQc9VX55YjT6DCzJFc59mvTTarSTjK",CLMM_PROGRAMM_ID:"6f1b3xyVZbnWMHXBjgW1KPwxmPAgXcRdrvKNn4Nmf1Cn",ETH_MINT_ADDRESS:"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd",USDC_MINT_ADDRESS:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",USDT_MINT_ADDRESS:"J87bysZjwfS3n6KR21cwbdPZVJWNSFcXpWF5kiChAwQH",FULL_TOKEN_NAME:"Wrapped Ethereum",WRAPPED_TOKEN_SYMBOL:"WETH",INPUT_MINT_ADDRESS:te.default.toString(),OUTPUT_MINT_ADDRESS:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",POPULAR_TOKENS:{SOL:te.default.toString(),ETH:"FkvCG5DcuYCQ1BnPH4ZzTkCdk3VzutgyDAFBec4qAjhh",USDC:"BoYN2f2gLQS4jpvMSV9dAZwfzKJiKGk4NPck5BjXfujo",USDT:"J87bysZjwfS3n6KR21cwbdPZVJWNSFcXpWF5kiChAwQH"},WSOL_DECIMALS:9}},le=e=>Lr[e];function lt(e){let t=le(e);return{chainId:101,address:t.WSOL_MINT_ADDRESS,programId:Br.toBase58(),decimals:9,symbol:t.WRAPPED_TOKEN_SYMBOL||"",name:t.FULL_TOKEN_NAME,logoURI:t.GITHUB_LOGO_URL,tags:[],priority:2,type:"cobaltx",extensions:{coingeckoId:"solana"}}}import{PublicKey as Bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Er}from"@solana/spl-token";import{PublicKey as q,SystemProgram as Qt,SYSVAR_RENT_PUBKEY as Ir}from"@solana/web3.js";function ft({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Ti=[ft({pubkey:Er,isWritable:!1}),ft({pubkey:Qt.programId,isWritable:!1}),ft({pubkey:Ir,isWritable:!1})];var wi=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yi=new q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ai=new q("SysvarRent111111111111111111111111111111111"),xi=new q("SysvarC1ock11111111111111111111111111111111"),Pi=new q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Si=new q("Sysvar1nstructions1111111111111111111111111"),ki=Qt.programId,Cr=q.default;function pe(e){let t=le(e);return{USDCMint:new q(t.USDC_MINT_ADDRESS),USDTMint:new q(t.USDT_MINT_ADDRESS),WSOLMint:new q(t.WSOL_MINT_ADDRESS),ETHMint:new q(t.ETH_MINT_ADDRESS),BONK_Mint:t.BONK_MINT_ADDRESS?new q(t.BONK_MINT_ADDRESS):q.default,SOL_Mint:t.SOL_MINT_ADDRESS?new q(t.SOL_MINT_ADDRESS):q.default,INPUT_MINT:new q(t.INPUT_MINT_ADDRESS),OUTPUT_MINT:new q(t.OUTPUT_MINT_ADDRESS)}}import Rr from"bn.js";var Fi=new M(new Rr(100));var ji=G("CobaltX_price");import{PublicKey as ls}from"@solana/web3.js";import ps from"bn.js";var Dr=new ne(0),Cs=new ne(1),Rs=new ne(2),Ds=new ne(3),Ms=new ne(5),Nr=new ne(10),Os=new ne(100),Ks=new ne(1e3),vs=new ne(1e4);function rt(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 Vr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wr}from"@solana/spl-token";import{ComputeBudgetProgram as tn,Keypair as rn,PublicKey as Mr,Transaction as on,TransactionMessage as Or,VersionedTransaction as sn}from"@solana/web3.js";var V={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"};import{TOKEN_PROGRAM_ID as Kr}from"@solana/spl-token";var nn=G("CobaltX_txUtil"),an=1644;function He(e){let t=[],n=[];return e.microLamports&&(t.push(tn.setComputeUnitPrice({microLamports:e.microLamports})),n.push(V.SetComputeUnitPrice)),e.units&&(t.push(tn.setComputeUnitLimit({units:e.units})),n.push(V.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function he(e,t){var r,o;let n=t!=null?t:"confirmed";return(o=await((r=e.getLatestBlockhash)==null?void 0:r.call(e,{commitment:n})))==null?void 0:o.blockhash}async function qe(e,t){return e.getSignatureStatuses([t]),new Promise((n,r)=>{let o=setTimeout(r,6e4);e.onSignature(t,i=>{if(clearTimeout(o),!i.err){n("");return}r(i.err.toString())},"confirmed")})}function vr(e,t){e.length<1&&nn.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&nn.logWithError(`no signers provided:, ${t.toString()}`);let n=new on;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<an}catch{return!1}}function cn(e,t){let[n,r]=Mr.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}function xe({instructions:e,payer:t,signers:n}){return vr(e,[t,...n])}function Pe({instructions:e,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=rn.generate().publicKey.toString()}){let i=new Or({payerKey:t,recentBlockhash:r,instructions:e}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new sn(i).serialize()).toString("base64").length<an}catch{return!1}}var Ur=e=>Buffer.isBuffer(e)?e:e instanceof Uint8Array?Buffer.from(e.buffer,e.byteOffset,e.byteLength):Buffer.from(e),Fr=e=>{let t=e.serialize({requireAllSignatures:!1,verifySignatures:!1});e instanceof sn&&(t=Ur(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function fe(e){let t=[];return e.forEach(n=>{n instanceof on&&(n.recentBlockhash||(n.recentBlockhash=Kr.toBase58()),n.feePayer||(n.feePayer=rn.generate().publicKey)),t.push(Fr(n))}),console.log("simulate tx string:",t),t}function Ge(e,t,n){return cn([e.toBuffer(),(n!=null?n:Wr).toBuffer(),t.toBuffer()],new Vr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as N}from"@solana/web3.js";var sa=new N("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),aa=new N("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),ca=new N("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),ua=new N("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),la=new N("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),fa=new N("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),pa=new N("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ma=new N("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),da=new N("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ha=new N("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo");var ga=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ba=new N("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Ta=new N("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),wa=new N("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ya=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Aa=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),xa=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Pa=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Sa=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ka=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),_a=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Hr=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),qr=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Gr=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Na=new N("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),jr=new N("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),La=new N("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Yr=new N("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Ba={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:Hr,CREATE_CPMM_POOL_AUTH:qr,CREATE_CPMM_POOL_FEE_ACC:Gr,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:jr,LCOK_CPMM_AUTH:Yr};import Ca from"bn.js";import{PublicKey as un,AddressLookupTableAccount as je}from"@solana/web3.js";async function pt({connection:e,address:t,network:n}){let r=await Dt(e,[...new Set(t.map(i=>i.toString()))].map(i=>new un(i))),o={};for(let i=0;i<t.length;i++){let s=r[i],a=t[i];if(!s)continue;let u=new je({key:a,state:je.deserialize(s.data)});o[a.toString()]=u,Ye(n)[a.toString()]=u}return o}function Ye(e){let t=le(e);return{[t.LOOKUP_TABLE_CACHE]:new je({key:new un(t.LOOKUP_TABLE_CACHE),state:je.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 Se,sendAndConfirmTransaction as mt,Transaction as ke,TransactionMessage as _e,VersionedTransaction as Ne}from"@solana/web3.js";import zr from"axios";var ze=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.api=t.api,this.network=t.network}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 zr.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}=He(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:o=[],endInstructionTypes:i=[],lookupTableAddress:s=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...o),this.endInstructionTypes.push(...i),this.lookupTableAddress.push(...s.filter(a=>a!==Se.default.toString())),this}async versionBuild({txVersion:t,extInfo:n}){return t===0?await this.buildV0({...n||{}}):this.build(n)}build(t){var r;let n=new ke;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(o=>o.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async o=>{var c;let{recentBlockHash:i,skipPreflight:s=!0,sendAndConfirm:a}=o||{},u=i!=null?i:await he(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),fe([n]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await mt(this.connection,n,this.signers.find(f=>f.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:s}),signedTx:n};if(this.signAllTransactions){let l=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(l[0].serialize(),{skipPreflight:s}),signedTx:l[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var c;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:o}=this.build(r),i=n.filter(l=>l.transaction.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async l=>{var T;let{sequentially:f,onTxUpdate:p,skipTxCount:m=0,recentBlockHash:h,skipPreflight:g=!0}=l||{},y=h!=null?h:await he(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(f){let S=[],w=0;for(let b of s){if(++w,w<=m)continue;let A=await mt(this.connection,b,this.signers.find(P=>P.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});S.push(A)}return{txIds:S,signedTxs:s}}return{txIds:await await Promise.all(s.map(async S=>(S.recentBlockhash=y,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:g})))),signedTxs:s}}if(this.signAllTransactions){let S=s.map((b,A)=>(b.recentBlockhash=y,a[A].length&&b.sign(...a[A]),b));fe(S);let w=await this.signAllTransactions(S);if(f){let b=0,A=[],P=async()=>{if(!w[b])return;let E=await this.connection.sendRawTransaction(w[b].serialize(),{skipPreflight:g});A.push({txId:E,status:"sent",signedTx:w[b]}),p==null||p([...A]),b++,this.connection.onSignature(E,I=>{let O=A.findIndex(z=>z.txId===E);O>-1&&(A[O].status=I.err?"error":"success"),p==null||p([...A]),I.err||P()},"processed"),this.connection.getSignatureStatus(E)};return await P(),{txIds:A.map(E=>E.txId),signedTxs:w}}else{let b=[];for(let A=0;A<w.length;A+=1){let P=await this.connection.sendRawTransaction(w[A].serialize(),{skipPreflight:g});b.push(P)}return{txIds:b,signedTxs:w}}}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{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:o,recentBlockhash:i,network:s=this.network,...a}=t||{},u={...this.cluster==="devnet"?{}:Ye(s),...n},c=Array.from(new Set([...r,...this.lookupTableAddress])),l=[];for(let y of c)u[y]===void 0&&l.push(new Se(y));let f=await pt({connection:this.connection,address:l,network:s});for(let[y,T]of Object.entries(f))u[y]=T;let p=o?Se.default.toBase58():i!=null?i:await he(this.connection,this.blockhashCommitment),m=new _e({payerKey:this.feePayer,recentBlockhash:p,instructions:[...this.allInstructions]}).compileToV0Message();((g=this.owner)==null?void 0:g.signer)&&!this.signers.some(y=>y.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let h=new Ne(m);return h.sign(this.signers),{builder:this,transaction:h,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async y=>{var w;let{skipPreflight:T=!0,sendAndConfirm:S}=y||{};if(fe([h]),(w=this.owner)!=null&&w.isKeyPair){let b=await this.connection.sendTransaction(h,{skipPreflight:T});return S&&await qe(this.connection,b),{txId:b,signedTx:h}}if(this.signAllTransactions){let b=await this.signAllTransactions([h]);return{txId:await this.connection.sendTransaction(b[0],{skipPreflight:T}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(t){var c;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:o}=await this.buildV0(r),i=n.filter(l=>l.builder.instructions.length>0),s=[o,...i.map(l=>l.transaction)],a=[this.signers,...i.map(l=>l.signers)],u=[...this.instructionTypes,...i.map(l=>l.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(l=>{l.some(f=>f.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(l,f)=>{l.sign(a[f])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async l=>{var g;let{sequentially:f,onTxUpdate:p,recentBlockHash:m,skipPreflight:h=!0}=l||{};if(m&&s.forEach(y=>y.message.recentBlockhash=m),fe(s),(g=this.owner)!=null&&g.isKeyPair){if(f){let y=[];for(let T of s){let S=await this.connection.sendTransaction(T,{skipPreflight:h});await qe(this.connection,S),y.push(S)}return{txIds:y,signedTxs:s}}return{txIds:await Promise.all(s.map(async y=>await this.connection.sendTransaction(y,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let y=await this.signAllTransactions(s);if(f){let T=0,S=[],w=async()=>{if(!y[T])return;let b=await this.connection.sendTransaction(y[T],{skipPreflight:h});S.push({txId:b,status:"sent",signedTx:y[T]}),p==null||p([...S]),T++,this.connection.onSignature(b,A=>{let P=S.findIndex(E=>E.txId===b);P>-1&&(S[P].status=A.err?"error":"success"),p==null||p([...S]),A.err||w()},"processed"),this.connection.getSignatureStatus(b)};return w(),{txIds:[],signedTxs:y}}else{let T=[];for(let S=0;S<y.length;S+=1){let w=await this.connection.sendTransaction(y[S],{skipPreflight:h});T.push(w)}return{txIds:T,signedTxs:y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var f;let{splitIns:n=[],computeBudgetConfig:r,...o}=t||{},i=r?He(r):{instructions:[],instructionTypes:[]},s=this.signers.reduce((p,m)=>({...p,[m.publicKey.toBase58()]:m}),{}),a=[],u=[],c=[],l=0;if(this.allInstructions.forEach(p=>{let m=[...c,p],h=r?[...i.instructions,...m]:m,y=[...new Set(m.map(T=>T.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(T=>new Se(T));if(p!==n[l]&&c.length<12&&(xe({instructions:h,payer:this.feePayer,signers:y})||xe({instructions:m,payer:this.feePayer,signers:y})))c.push(p);else{if(c.length===0)throw Error("item ins too big");l+=p===n[l]?1:0,xe({instructions:r?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:y})?a.push(new ke().add(...i.instructions,...c)):a.push(new ke().add(...c)),u.push(Array.from(new Set(c.map(T=>T.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat())).map(T=>s[T]).filter(T=>T!==void 0)),c=[p]}}),c.length>0){let m=[...new Set(c.map(h=>h.keys.filter(g=>g.isSigner).map(g=>g.pubkey.toString())).flat()).values()].map(h=>s[h]).filter(h=>h!==void 0);xe({instructions:r?[...i.instructions,...c]:[...c],payer:this.feePayer,signers:m.map(h=>h.publicKey)})?a.push(new ke().add(...i.instructions,...c)):a.push(new ke().add(...c)),u.push(m)}return a.forEach(p=>p.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&u.forEach(p=>{p.some(m=>m.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:this.instructionTypes,execute:async p=>{var w;let{sequentially:m,onTxUpdate:h,skipTxCount:g=0,recentBlockHash:y,skipPreflight:T=!0}=p||{},S=y!=null?y:await he(this.connection,this.blockhashCommitment);if(a.forEach(async(b,A)=>{b.recentBlockhash=S,u[A].length&&b.sign(...u[A])}),fe(a),(w=this.owner)!=null&&w.isKeyPair){if(m){let b=0,A=[];for(let P of a){if(++b,b<=g){A.push("tx skipped");continue}let E=await mt(this.connection,P,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});A.push(E)}return{txIds:A,signedTxs:a}}return{txIds:await Promise.all(a.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:T}))),signedTxs:a}}if(this.signAllTransactions){let b=await this.signAllTransactions(a.slice(g,a.length)),A=[...a.slice(0,g),...b];if(m){let P=0,E=[],I=async()=>{if(!A[P])return;P<g&&(E.push({txId:"",status:"success",signedTx:A[P]}),h==null||h([...E]),P++,I());let O=await this.connection.sendRawTransaction(A[P].serialize(),{skipPreflight:T});E.push({txId:O,status:"sent",signedTx:A[P]}),h==null||h([...E]),P++,this.connection.onSignature(O,z=>{let D=E.findIndex(K=>K.txId===O);D>-1&&(E[D].status=z.err?"error":"success"),h==null||h([...E]),z.err||I()},"processed"),this.connection.getSignatureStatus(O)};return await I(),{txIds:E.map(O=>O.txId),signedTxs:A}}else{let P=[];for(let E=0;E<A.length;E+=1){let I=await this.connection.sendRawTransaction(A[E].serialize(),{skipPreflight:T});P.push(I)}return{txIds:P,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuildV0(t){var w;let{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:o={},lookupTableAddress:i=[],network:s=this.network,...a}=t||{},u={...this.cluster==="devnet"?{}:Ye(s),...o},c=Array.from(new Set([...this.lookupTableAddress,...i])),l=[];for(let b of c)u[b]===void 0&&l.push(new Se(b));let f=await pt({connection:this.connection,address:l,network:s});for(let[b,A]of Object.entries(f))u[b]=A;let p=n?He(n):{instructions:[],instructionTypes:[]},m=await he(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,A)=>({...b,[A.publicKey.toBase58()]:A}),{}),g=[],y=[],T=[],S=0;if(this.allInstructions.forEach(b=>{let A=[...T,b],P=n?[...p.instructions,...A]:A;if(b!==r[S]&&T.length<12&&(Pe({instructions:P,payer:this.feePayer,lookupTableAddressAccount:u})||Pe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:u})))T.push(b);else{if(T.length===0)throw Error("item ins too big");S+=b===r[S]?1:0;let E={};for(let I of[...new Set(c)])u[I]!==void 0&&(E[I]=u[I]);if(n&&Pe({instructions:[...p.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:m})){let I=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...T]}).compileToV0Message(Object.values(u));g.push(new Ne(I))}else{let I=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...T]}).compileToV0Message(Object.values(u));g.push(new Ne(I))}y.push(Array.from(new Set(T.map(I=>I.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(I=>h[I]).filter(I=>I!==void 0)),T=[b]}}),T.length>0){let A=[...new Set(T.map(P=>P.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat()).values()].map(P=>h[P]).filter(P=>P!==void 0);if(n&&Pe({instructions:[...p.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:u,recentBlockhash:m})){let P=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...T]}).compileToV0Message(Object.values(u));g.push(new Ne(P))}else{let P=new _e({payerKey:this.feePayer,recentBlockhash:m,instructions:[...T]}).compileToV0Message(Object.values(u));g.push(new Ne(P))}y.push(A)}return(w=this.owner)!=null&&w.signer&&y.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),{builder:this,transactions:g,buildProps:t,signers:y,instructionTypes:this.instructionTypes,execute:async b=>{var z;let{sequentially:A,onTxUpdate:P,skipTxCount:E=0,recentBlockHash:I,skipPreflight:O=!0}=b||{};if(g.map(async(D,K)=>{y[K].length&&D.sign(y[K]),I&&(D.message.recentBlockhash=I)}),fe(g),(z=this.owner)!=null&&z.isKeyPair){if(A){let D=0,K=[];for(let W of g){if(++D,D<=E){console.log("skip tx: ",D),K.push("tx skipped");continue}let F=await this.connection.sendTransaction(W,{skipPreflight:O});await qe(this.connection,F),K.push(F)}return{txIds:K,signedTxs:g}}return{txIds:await Promise.all(g.map(async D=>await this.connection.sendTransaction(D,{skipPreflight:O}))),signedTxs:g}}if(this.signAllTransactions){let D=await this.signAllTransactions(g.slice(E,g.length)),K=[...g.slice(0,E),...D];if(A){let W=0,F=[],v=async()=>{if(!K[W])return;if(W<E){F.push({txId:"",status:"success",signedTx:K[W]}),P==null||P([...F]),W++,v();return}let C=await this.connection.sendTransaction(K[W],{skipPreflight:O});F.push({txId:C,status:"sent",signedTx:K[W]}),P==null||P([...F]),W++,this.connection.onSignature(C,Et=>{let It=F.findIndex(xn=>xn.txId===C);It>-1&&(F[It].status=Et.err?"error":"success"),P==null||P([...F]),Et.err||v()},"processed"),this.connection.getSignatureStatus(C)};return v(),{txIds:[],signedTxs:K}}else{let W=[];for(let F=0;F<K.length;F+=1){let v=await this.connection.sendTransaction(K[F],{skipPreflight:O});W.push(v)}return{txIds:W,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}};import{AccountLayout as be,createAssociatedTokenAccountInstruction as Nt,TOKEN_2022_PROGRAM_ID as ho,TOKEN_PROGRAM_ID as ue}from"@solana/spl-token";import{PublicKey as Lt,SystemProgram as go}from"@solana/web3.js";var dt=(...e)=>e.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),Le=class{constructor({scope:t,moduleName:n,network:r}){this.disabled=!1;this.scope=t,this.logger=G(n),this.network=r}createTxBuilder(t){return this.scope.checkOwner(),new ze({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions,network:this.network})}logDebug(...t){this.logger.debug(dt(t))}logInfo(...t){this.logger.info(dt(t))}logAndCreateError(...t){let n=dt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{createCloseAccountInstruction as co,createInitializeAccountInstruction as uo,createTransferInstruction as lo,TOKEN_PROGRAM_ID as ge}from"@solana/spl-token";import{PublicKey as fo,SystemProgram as po}from"@solana/web3.js";import mo from"bn.js";import{PublicKey as $r}from"@solana/web3.js";import fn,{isBN as yu}from"bn.js";import{bits as Ac,BitStructure as xc,blob as Xr,Blob as Pc,cstr as Sc,f32 as kc,f32be as _c,f64 as Nc,f64be as Lc,greedy as Bc,Layout as Qr,ns64 as Ec,ns64be as Ic,nu64 as Cc,nu64be as Rc,offset as Dc,s16 as Mc,s16be as Oc,s24 as Kc,s24be as vc,s32 as Uc,s32be as Fc,s40 as Vc,s40be as Wc,s48 as Hc,s48be as qc,s8 as Gc,seq as jc,struct as Yc,Structure as Zr,u16 as zc,u16be as Xc,u24 as Qc,u24be as Zc,u32 as Jc,u32be as $c,u40 as eu,u40be as tu,u48 as nu,u48be as ru,u8 as ou,UInt as Jr,union as iu,Union as su,unionLayoutDiscriminator as au,utf8 as cu}from"@solana/buffer-layout";var ht=Qr,ln=Zr;var gt=Jr;var bt=Xr;var Tt=class extends ht{constructor(n,r,o){super(n,o);this.blob=bt(n),this.signed=r}decode(n,r=0){let o=new fn(this.blob.decode(n,r),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(n,r,o=0){return typeof n=="number"&&(n=new fn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,o)}};function pn(e){return new gt(1,e)}function Xe(e){return new gt(4,e)}function Qe(e){return new Tt(8,!1,e)}var wt=class extends ht{constructor(n,r,o,i){super(n.span,i);this.layout=n,this.decoder=r,this.encoder=o}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,o){return this.layout.encode(this.encoder(n),r,o)}getSpan(n,r){return this.layout.getSpan(n,r)}};function Be(e){return new wt(bt(32),t=>new $r(t),t=>t.toBuffer(),e)}var yt=class extends ln{decode(t,n){return super.decode(t,n)}};function mn(e,t,n){return new yt(e,t,n)}var Ee=mn([Be("mint"),Be("owner"),Qe("amount"),Xe("delegateOption"),Be("delegate"),pn("state"),Xe("isNativeOption"),Qe("isNative"),Qe("delegatedAmount"),Xe("closeAuthorityOption"),Be("closeAuthority")]);function eo(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function At(e,...t){if(!eo(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function xt(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function dn(e,t){At(e);let n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Je(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Z(e,t){return e<<32-t|e>>>t}function to(e){if(typeof e!="string")throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function Pt(e){return typeof e=="string"&&(e=to(e)),At(e),e}var Ze=class{clone(){return this._cloneInto()}};function hn(e){let t=r=>e().update(Pt(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function no(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);let o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),u=r?4:0,c=r?0:4;e.setUint32(t+u,s,r),e.setUint32(t+c,a,r)}function gn(e,t,n){return e&t^~e&n}function bn(e,t,n){return e&t^e&n^t&n}var $e=class extends Ze{constructor(t,n,r,o){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Je(this.buffer)}update(t){xt(this);let{view:n,buffer:r,blockLen:o}=this;t=Pt(t);let i=t.length;for(let s=0;s<i;){let a=Math.min(o-this.pos,i-s);if(a===o){let u=Je(t);for(;o<=i-s;s+=o)this.process(u,s);continue}r.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){xt(this),dn(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:i}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let f=s;f<o;f++)n[f]=0;no(r,o-8,BigInt(this.length*8),i),this.process(r,0);let a=Je(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=u/4,l=this.get();if(c>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<c;f++)a.setUint32(4*f,l[f],i)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:i,destroyed:s,pos:a}=this;return t.length=o,t.pos=a,t.finished=i,t.destroyed=s,o%n&&t.buffer.set(r),t}};var ro=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ae=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ce=new Uint32Array(64),St=class extends $e{constructor(){super(64,32,8,!1),this.A=ae[0]|0,this.B=ae[1]|0,this.C=ae[2]|0,this.D=ae[3]|0,this.E=ae[4]|0,this.F=ae[5]|0,this.G=ae[6]|0,this.H=ae[7]|0}get(){let{A:t,B:n,C:r,D:o,E:i,F:s,G:a,H:u}=this;return[t,n,r,o,i,s,a,u]}set(t,n,r,o,i,s,a,u){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=u|0}process(t,n){for(let f=0;f<16;f++,n+=4)ce[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){let p=ce[f-15],m=ce[f-2],h=Z(p,7)^Z(p,18)^p>>>3,g=Z(m,17)^Z(m,19)^m>>>10;ce[f]=g+ce[f-7]+h+ce[f-16]|0}let{A:r,B:o,C:i,D:s,E:a,F:u,G:c,H:l}=this;for(let f=0;f<64;f++){let p=Z(a,6)^Z(a,11)^Z(a,25),m=l+p+gn(a,u,c)+ro[f]+ce[f]|0,g=(Z(r,2)^Z(r,13)^Z(r,22))+bn(r,o,i)|0;l=c,c=u,u=a,a=s+m|0,s=i,i=o,o=r,r=m+g|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,u=u+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(r,o,i,s,a,u,c,l)}roundClean(){ce.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Tn=hn(()=>new St);import{TOKEN_PROGRAM_ID as oo}from"@solana/spl-token";import{Keypair as io,PublicKey as wn}from"@solana/web3.js";import so from"bn.js";var qu=G("CobaltX_Util");function yn({owner:e,solAccountResp:t,tokenAccountResp:n}){let r=[],o=[];for(let{pubkey:i,account:s}of n.value){let a=Ee.decode(s.data),{mint:u,amount:c}=a;r.push({publicKey:i,mint:u,amount:c,isAssociated:Ge(e,u,s.owner).publicKey.equals(i),isNative:!1,programId:s.owner}),o.push({pubkey:i,accountInfo:a,programId:s.owner})}return t&&r.push({mint:wn.default,amount:new so(String(t.lamports)),isNative:!0,programId:t.owner}),{tokenAccounts:r,tokenAccountRawInfos:o}}function et({fromPublicKey:e,programId:t=oo,assignSeed:n}){let r=n?btoa(n).slice(0,32):io.generate().publicKey.toBase58().slice(0,32);return{publicKey:ao(e,r,t),seed:r}}function ao(e,t,n){let r=Buffer.concat([e.toBuffer(),Buffer.from(t),n.toBuffer()]),o=Tn(r);return new wn(o)}function kt(e){let{mint:t,tokenAccount:n,owner:r,programId:o=ge}=e;return uo(n,t,r,o)}function Ie(e){let{tokenAccount:t,payer:n,multiSigners:r=[],owner:o,programId:i=ge}=e;return co(t,n,o,r,i)}async function _t(e){let{connection:t,amount:n,commitment:r,payer:o,owner:i,skipCloseAccount:s,network:a}=e,u=await t.getMinimumBalanceForRentExemption(Ee.span,r),c=Q(n).add(new mo(u)),l=et({fromPublicKey:o,programId:ge});return{addresses:{newAccount:l.publicKey},signers:[],instructions:[po.createAccountWithSeed({fromPubkey:o,basePubkey:o,seed:l.seed,newAccountPubkey:l.publicKey,lamports:c.toNumber(),space:Ee.span,programId:ge}),kt({mint:new fo(lt(a).address),tokenAccount:l.publicKey,owner:i,programId:ge})],instructionTypes:[V.CreateAccount,V.InitAccount],endInstructionTypes:s?[]:[V.CloseAccount],endInstructions:s?[]:[Ie({tokenAccount:l.publicKey,payer:o,owner:i})]}}function An({source:e,destination:t,owner:n,amount:r,multiSigners:o=[],tokenProgram:i=ge}){return lo(e,t,n,BigInt(String(r)),o,i)}var Bt=class extends Le{constructor(n){super(n);this._tokenAccounts=[];this._tokenAccountRawInfos=[];this._accountListener=[];this._clientOwnedToken=!1;this._notSubscribeAccountChange=!1;this._accountFetchTime=0;let{tokenAccounts:r,tokenAccountRawInfos:o,notSubscribeAccountChange:i,network:s}=n;this._tokenAccounts=r||[],this._tokenAccountRawInfos=o||[],this._notSubscribeAccountChange=i!=null?i:!0,this._clientOwnedToken=!!(r||o),this._network=s}get tokenAccounts(){return this._tokenAccounts}get tokenAccountRawInfos(){return this._tokenAccountRawInfos}set notSubscribeAccountChange(n){this._notSubscribeAccountChange=n}updateTokenAccount({tokenAccounts:n,tokenAccountRawInfos:r}){return n&&(this._tokenAccounts=n),r&&(this._tokenAccountRawInfos=r),this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=void 0,this._clientOwnedToken=!0,this}addAccountChangeListener(n){return this._accountListener.push(n),this}removeAccountChangeListener(n){return this._accountListener=this._accountListener.filter(r=>r!==n),this}getAssociatedTokenAccount(n,r){return Ge(this.scope.ownerPubKey,n,r).publicKey}resetTokenAccounts(){this._clientOwnedToken||(this._tokenAccounts=[],this._tokenAccountRawInfos=[])}async fetchWalletTokenAccounts(n){if(this._clientOwnedToken||!(n!=null&&n.forceUpdate)&&this._tokenAccounts.length&&Date.now()-this._accountFetchTime<(this._notSubscribeAccountChange?1e3*5:1e3*60*3))return{tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos};this.scope.checkOwner();let o={...{},...n},[i,s,a]=await Promise.all([this.scope.connection.getAccountInfo(this.scope.ownerPubKey,o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:ue},o.commitment),this.scope.connection.getTokenAccountsByOwner(this.scope.ownerPubKey,{programId:ho},o.commitment)]),{tokenAccounts:u,tokenAccountRawInfos:c}=yn({owner:this.scope.ownerPubKey,solAccountResp:i,tokenAccountResp:{context:s.context,value:[...s.value,...a.value]}});return this._tokenAccounts=u,this._tokenAccountRawInfos=c,this._accountFetchTime=Date.now(),this._notSubscribeAccountChange||(this._accountChangeListenerId&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId),this._accountChangeListenerId=this.scope.connection.onAccountChange(this.scope.ownerPubKey,()=>{this.fetchWalletTokenAccounts({forceUpdate:!0}),this._accountListener.forEach(l=>l({tokenAccounts:this._tokenAccounts,tokenAccountRawInfos:this._tokenAccountRawInfos}))},{commitment:n==null?void 0:n.commitment})),{tokenAccounts:u,tokenAccountRawInfos:c}}clearAccountChangeCkb(){this._accountChangeListenerId!==void 0&&this.scope.connection.removeAccountChangeListener(this._accountChangeListenerId)}async getCreatedTokenAccount({mint:n,programId:r=ue,associatedOnly:o=!0}){await this.fetchWalletTokenAccounts();let i=this._tokenAccounts.filter(({mint:a})=>a==null?void 0:a.equals(n)).sort((a,u)=>a.amount.lt(u.amount)?1:-1),s=this.getAssociatedTokenAccount(n,r);for(let a of i){let{publicKey:u}=a;if(u&&(!o||o&&s.equals(u)))return u}}async getOrCreateTokenAccount(n){var g,y,T,S;await this.fetchWalletTokenAccounts();let{mint:r,createInfo:o,associatedOnly:i,owner:s,notUseTokenAccount:a=!1,skipCloseAccount:u=!1,checkCreateATAOwner:c=!1,assignSeed:l}=n,f=new Lt(n.tokenProgram||ue),p=this.getAssociatedTokenAccount(r,new Lt(f)),m=(a?[]:this.tokenAccountRawInfos).filter(w=>w.accountInfo.mint.equals(r)&&(!i||w.pubkey.equals(p))).sort((w,b)=>w.accountInfo.amount.lt(b.accountInfo.amount)?1:-1);if(o===void 0||m.length>0)return m.length>0?{account:m[0].pubkey}:{};let h={instructions:[],endInstructions:[],signers:[],instructionTypes:[],endInstructionTypes:[]};if(i){let w=Nt(s,p,s,r,f);if(c){let b=await this.scope.connection.getAccountInfo(p);if(b===null)(g=h.instructions)==null||g.push(w),h.instructionTypes.push(V.CreateATA);else if(!(b.owner.equals(f)&&be.decode(b.data).mint.equals(r)&&be.decode(b.data).owner.equals(s)))throw Error(`create ata check error -> mint: ${r.toString()}, ata: ${p.toString()}`)}else h.instructions.push(w),h.instructionTypes.push(V.CreateATA);if(r.equals(pe(this._network).WSOLMint)&&o.amount){let b=await _t({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:o.payer||this.scope.ownerPubKey,amount:(y=o.amount)!=null?y:0,skipCloseAccount:u,network:this._network});h.instructions.push(...b.instructions||[]),h.endInstructions.push(...b.endInstructions||[]),h.instructionTypes.push(...b.instructionTypes||[]),h.endInstructionTypes.push(...b.endInstructionTypes||[]),o.amount&&(h.instructions.push(An({source:b.addresses.newAccount,destination:p,owner:this.scope.ownerPubKey,amount:o.amount,tokenProgram:ue})),h.instructionTypes.push(V.TransferAmount))}return u||(h.endInstructions.push(Ie({owner:s,payer:o.payer||s,tokenAccount:p,programId:f})),h.endInstructionTypes.push(V.CloseAccount)),{account:p,instructionParams:h}}else{let w=et({fromPublicKey:s,programId:f,assignSeed:l}),b=await this.scope.connection.getMinimumBalanceForRentExemption(be.span),A=go.createAccountWithSeed({fromPubkey:s,basePubkey:s,seed:w.seed,newAccountPubkey:w.publicKey,lamports:b+Number((S=(T=o.amount)==null?void 0:T.toString())!=null?S:0),space:be.span,programId:f});return h.instructions.push(A,kt({mint:r,tokenAccount:w.publicKey,owner:this.scope.ownerPubKey,programId:f})),h.instructionTypes.push(V.CreateAccount),h.instructionTypes.push(V.InitAccount),u||(h.endInstructions.push(Ie({owner:s,payer:o.payer||s,tokenAccount:w.publicKey,programId:f})),h.endInstructionTypes.push(V.CloseAccount)),{account:w.publicKey,instructionParams:h}}}async checkOrCreateAta({mint:n,programId:r=ue,autoUnwrapWSOLToSOL:o}){var u;await this.fetchWalletTokenAccounts();let i=(u=this.scope.account.tokenAccounts.find(({mint:c})=>(c==null?void 0:c.toBase58())===n.toBase58()))==null?void 0:u.publicKey,s=this.scope.ownerPubKey,a={};if(!i){let c=this.getAssociatedTokenAccount(n,r),l=await Nt(s,c,s,n,r);a.instructions=[l],a.instructionTypes=[V.CreateATA],i=c}return o&&pe(this._network).WSOLMint.toBase58()===n.toBase58()&&(a.endInstructions=[Ie({owner:s,payer:s,tokenAccount:i,programId:r})],a.endInstructionTypes=[V.CloseAccount]),{pubKey:i,newInstructions:a}}async handleTokenAccount(n){let{side:r,amount:o,mint:i,programId:s=ue,tokenAccount:a,payer:u=this.scope.ownerPubKey,bypassAssociatedCheck:c,skipCloseAccount:l,checkCreateATAOwner:f}=n,p=this.getAssociatedTokenAccount(i,s);if(new Lt(pe(this._network).WSOLMint).equals(i)){let m=await _t({connection:this.scope.connection,owner:this.scope.ownerPubKey,payer:u,amount:o,skipCloseAccount:l,network:this._network});return{tokenAccount:m.addresses.newAccount,...m}}else if(!a||r==="out"&&!p.equals(a)&&!c){let m=[],h=Nt(this.scope.ownerPubKey,p,this.scope.ownerPubKey,i,s);if(f){let g=await this.scope.connection.getAccountInfo(p);if(g===null)m.push(h);else if(!(g.owner.equals(ue)&&be.decode(g.data).mint.equals(i)&&be.decode(g.data).owner.equals(this.scope.ownerPubKey)))throw Error(`create ata check error -> mint: ${i.toString()}, ata: ${p.toString()}`)}else m.push(h);return{tokenAccount:p,instructions:m,instructionTypes:[V.CreateATA]}}return{tokenAccount:a}}async processTokenAccount(n){let{mint:r,programId:o=ue,amount:i,useSOLBalance:s,handleTokenAccount:a}=n,u,c=this.createTxBuilder();if(r.equals(pe(this._network).WSOLMint)&&s){let{tokenAccount:l,...f}=await this.handleTokenAccount({side:"in",amount:i||0,mint:r,bypassAssociatedCheck:!0,programId:o});u=l,c.addInstruction(f)}else if(u=await this.getCreatedTokenAccount({mint:r,associatedOnly:!1,programId:o}),!u&&a){let{tokenAccount:l,...f}=await this.scope.account.handleTokenAccount({side:"in",amount:0,mint:r,bypassAssociatedCheck:!0,programId:o});u=l,c.addInstruction(f)}return{tokenAccount:u,...c.AllTxData}}};export{Bt as default};
/*!
 *  decimal.js v10.5.0
 *  An arbitrary-precision Decimal type for JavaScript.
 *  https://github.com/MikeMcl/decimal.js
 *  Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
 *  MIT Licence
 */
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
//# sourceMappingURL=account.mjs.map