UNPKG

@cobaltx/sdk-v2

Version:

An SDK for building applications on top of CobaltX.

9 lines 68.4 kB
import{PublicKey as vn}from"@solana/web3.js";import Et,{isBN as _t}from"bn.js";import{bits as Hr,BitStructure as zr,blob as Rn,Blob as Yr,cstr as jr,f32 as Zr,f32be as Qr,f64 as Jr,f64be as $r,greedy as eo,Layout as Mn,ns64 as to,ns64be as no,nu64 as io,nu64be as ro,offset as oo,s16 as so,s16be as ao,s24 as uo,s24be as co,s32 as On,s32be as lo,s40 as mo,s40be as po,s48 as fo,s48be as bo,s8 as yo,seq as En,struct as go,Structure as _n,u16 as Fn,u16be as wo,u24 as Po,u24be as Ao,u32 as ko,u32be as To,u40 as ho,u40be as Bo,u48 as xo,u48be as Io,u8 as Dn,UInt as Wn,union as So,Union as Co,unionLayoutDiscriminator as Ko,utf8 as No}from"@solana/buffer-layout";var at=Mn,Rt=_n;var ut=Wn;var Mt=Dn,ue=Fn;var J=On;var Ot=En;var V=Rn;var be=class extends at{constructor(n,i,r){super(n,r);this.blob=V(n),this.signed=i}decode(n,i=0){let r=new Et(this.blob.decode(n,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(n,i,r=0){return typeof n=="number"&&(n=new Et(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,r)}};function O(e){return new ut(1,e)}function $(e){return new ut(4,e)}function y(e){return new be(8,!1,e)}function _(e){return new be(16,!1,e)}function Ft(e){return new be(8,!0,e)}function Dt(e){return new be(16,!0,e)}var Fe=class extends at{constructor(n,i,r,o){super(n.span,o);this.layout=n,this.decoder=i,this.encoder=r}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,r){return this.layout.encode(this.encoder(n),i,r)}getSpan(n,i){return this.layout.getSpan(n,i)}};function h(e){return new Fe(V(32),t=>new vn(t),t=>t.toBuffer(),e)}function ce(e){return new Fe(Mt(),Vn,qn,e)}function Vn(e){if(e===0)return!1;if(e===1)return!0;throw new Error("Invalid bool: "+e)}function qn(e){return e?1:0}var ct=class extends Rt{decode(t,n){return super.decode(t,n)}};function C(e,t,n){return new ct(e,t,n)}function N(e,t,n){let i,r=typeof t=="number"?t:_t(t)?t.toNumber():new Proxy(t,{get(o,s){if(!i){let a=Reflect.get(o,"count");i=_t(a)?a.toNumber():a,Reflect.set(o,"count",i)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(i=a),Reflect.set(o,s,a)}});return Ot(e,r,n)}var Xo=C([V(8),O("bump"),ce("disableCreatePool"),ue("index"),y("tradeFeeRate"),y("protocolFeeRate"),y("fundFeeRate"),y("createPoolFee"),h("protocolOwner"),h("fundOwner"),N(y(),16)]),Ho=C([V(8),h("configId"),h("poolCreator"),h("vaultA"),h("vaultB"),h("mintLp"),h("mintA"),h("mintB"),h("mintProgramA"),h("mintProgramB"),h("observationId"),O("bump"),O("status"),O("lpDecimals"),O("mintDecimalA"),O("mintDecimalB"),y("lpAmount"),y("protocolFeesMintA"),y("protocolFeesMintB"),y("fundFeesMintA"),y("fundFeesMintB"),y("openTime"),N(y(),32)]);import{MINT_SIZE as Qo,TOKEN_PROGRAM_ID as Jo,getTransferFeeConfig as $o,unpackMint as es}from"@solana/spl-token";import{PublicKey as os}from"@solana/web3.js";import{get as Wt,set as Un}from"lodash";var lt=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(i=>typeof i=="object"?JSON.stringify(i):i).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}},vt={},Gn={};function D(e){let t=Wt(vt,e);if(!t){let n=Wt(Gn,e);t=new lt({name:e,logLevel:n}),Un(vt,e,t)}return t}var us=D("CobaltX_accountInfo_util");import ne from"bn.js";var ye=9e15,se=1e9,mt="0123456789abcdef",ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ve="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",dt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-ye,maxE:ye,crypto:!1},Xt,ee,T=!0,Ue="[DecimalError] ",oe=Ue+"Invalid argument: ",Ht=Ue+"Precision limit exceeded",zt=Ue+"crypto unavailable",Yt="[object Decimal]",q=Math.floor,F=Math.pow,Hn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,zn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Yn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,jt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Y=1e7,k=7,jn=9007199254740991,Zn=ve.length-1,pt=Ve.length-1,p={toStringTag:Yt};p.absoluteValue=p.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),P(e)};p.ceil=function(){return P(new this.constructor(this),this.e+1,2)};p.clampedTo=p.clamp=function(e,t){var n,i=this,r=i.constructor;if(e=new r(e),t=new r(t),!e.s||!t.s)return new r(NaN);if(e.gt(t))throw Error(oe+t);return n=i.cmp(e),n<0?e:i.cmp(t)>0?t:new r(i)};p.comparedTo=p.cmp=function(e){var t,n,i,r,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(i=s.length,r=a.length,t=0,n=i<r?i:r;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return i===r?0:i>r^c<0?1:-1};p.cosine=p.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=Qn(i,en(i,n)),i.precision=e,i.rounding=t,P(ee==2||ee==3?n.neg():n,e,t,!0)):new i(1):new i(NaN)};p.cubeRoot=p.cbrt=function(){var e,t,n,i,r,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(T=!1,o=l.s*F(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=W(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=F(n,1/3),e=q((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),i=new m(n),i.s=l.s):i=new m(o.toString()),s=(e=m.precision)+3;;)if(a=i,c=a.times(a).times(a),u=c.plus(l),i=L(u.plus(l).times(a),u.plus(c),s+2,1),W(a.d).slice(0,s)===(n=W(i.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!r&&n=="4999"){if(!r&&(P(a,e+1,0),a.times(a).times(a).eq(l))){i=a;break}s+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(P(i,e+1,1),t=!i.times(i).times(i).eq(l));break}return T=!0,P(i,e,m.rounding,t)};p.decimalPlaces=p.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-q(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};p.dividedBy=p.div=function(e){return L(this,new this.constructor(e))};p.dividedToIntegerBy=p.divToInt=function(e){var t=this,n=t.constructor;return P(L(t,new n(e),0,1,1),n.precision,n.rounding)};p.equals=p.eq=function(e){return this.cmp(e)===0};p.floor=function(){return P(new this.constructor(this),this.e+1,3)};p.greaterThan=p.gt=function(e){return this.cmp(e)>0};p.greaterThanOrEqualTo=p.gte=function(e){var t=this.cmp(e);return t==1||t===0};p.hyperbolicCosine=p.cosh=function(){var e,t,n,i,r,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,i=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(e=Math.ceil(r/3),t=(1/Xe(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=ge(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 P(o,s.precision=n,s.rounding=i,!0)};p.hyperbolicSine=p.sinh=function(){var e,t,n,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=ge(o,2,r,r,!0);else{e=1.4*Math.sqrt(i),e=e>16?16:e|0,r=r.times(1/Xe(5,e)),r=ge(o,2,r,r,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=r.times(r),r=r.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,P(r,t,n,!0)};p.hyperbolicTangent=p.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,L(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)};p.inverseCosine=p.acos=function(){var e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,r=t.rounding;return n!==-1?n===0?e.isNeg()?j(t,i,r):new t(0):new t(NaN):e.isZero()?j(t,i+4,r).times(.5):(t.precision=i+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=i,t.rounding=r,e.times(2))};p.inverseHyperbolicCosine=p.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,T=!1,n=n.times(n).minus(1).sqrt().plus(n),T=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)};p.inverseHyperbolicSine=p.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,T=!1,n=n.times(n).plus(1).sqrt().plus(n),T=!0,i.precision=e,i.rounding=t,n.ln())};p.inverseHyperbolicTangent=p.atanh=function(){var e,t,n,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=o.precision,t=o.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?P(new o(r),e,t,!0):(o.precision=n=i-r.e,r=L(r.plus(1),new o(1).minus(r),n+e,1),o.precision=e+4,o.rounding=1,r=r.ln(),o.precision=e,o.rounding=t,r.times(.5))):new o(NaN)};p.inverseSine=p.asin=function(){var e,t,n,i,r=this,o=r.constructor;return r.isZero()?new o(r):(t=r.abs().cmp(1),n=o.precision,i=o.rounding,t!==-1?t===0?(e=j(o,n+4,i).times(.5),e.s=r.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=i,r.times(2)))};p.inverseTangent=p.atan=function(){var e,t,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=pt)return s=j(l,m+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=pt)return s=j(l,m+4,d).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,n=Math.min(28,a/k+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(T=!1,t=Math.ceil(a/k),i=1,c=u.times(u),s=new l(u),r=u;e!==-1;)if(r=r.times(c),o=s.minus(r.div(i+=2)),r=r.times(c),s=o.plus(r.div(i+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),T=!0,P(s,l.precision=m,l.rounding=d,!0)};p.isFinite=function(){return!!this.d};p.isInteger=p.isInt=function(){return!!this.d&&q(this.e/k)>this.d.length-2};p.isNaN=function(){return!this.s};p.isNegative=p.isNeg=function(){return this.s<0};p.isPositive=p.isPos=function(){return this.s>0};p.isZero=function(){return!!this.d&&this.d[0]===0};p.lessThan=p.lt=function(e){return this.cmp(e)<0};p.lessThanOrEqualTo=p.lte=function(e){return this.cmp(e)<1};p.logarithm=p.log=function(e){var t,n,i,r,o,s,a,c,u=this,l=u.constructor,m=l.precision,d=l.rounding,f=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(r=n[0];r%10===0;)r/=10;o=r!==1}if(T=!1,a=m+f,s=re(u,a),i=t?qe(l,a+10):re(e,a),c=L(s,i,a,1),he(c.d,r=m,d))do if(a+=10,s=re(u,a),i=t?qe(l,a+10):re(e,a),c=L(s,i,a,1),!o){+W(c.d).slice(r+1,r+15)+1==1e14&&(c=P(c,m+1,0));break}while(he(c.d,r+=10,d));return T=!0,P(c,m,d)};p.minus=p.sub=function(e){var t,n,i,r,o,s,a,c,u,l,m,d,f=this,A=f.constructor;if(e=new A(e),!f.d||!e.d)return!f.s||!e.s?e=new A(NaN):f.d?e.s=-e.s:e=new A(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=A.precision,c=A.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new A(f);else return new A(c===3?-0:0);return T?P(e,a,c):e}if(n=q(e.e/k),l=q(f.e/k),u=u.slice(),o=l-n,o){for(m=o<0,m?(t=u,o=-o,s=d.length):(t=d,n=l,s=u.length),i=Math.max(Math.ceil(a/k),s)+2,o>i&&(o=i,t.length=1),t.reverse(),i=o;i--;)t.push(0);t.reverse()}else{for(i=u.length,s=d.length,m=i<s,m&&(s=i),i=0;i<s;i++)if(u[i]!=d[i]){m=u[i]<d[i];break}o=0}for(m&&(t=u,u=d,d=t,e.s=-e.s),s=u.length,i=d.length-s;i>0;--i)u[s++]=0;for(i=d.length;i>o;){if(u[--i]<d[i]){for(r=i;r&&u[--r]===0;)u[r]=Y-1;--u[r],u[i]+=Y}u[i]-=d[i]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=Ge(u,n),T?P(e,a,c):e):new A(c===3?-0:0)};p.modulo=p.mod=function(e){var t,n=this,i=n.constructor;return e=new i(e),!n.d||!e.s||e.d&&!e.d[0]?new i(NaN):!e.d||n.d&&!n.d[0]?P(new i(n),i.precision,i.rounding):(T=!1,i.modulo==9?(t=L(n,e.abs(),0,3,1),t.s*=e.s):t=L(n,e,0,i.modulo,1),t=t.times(e),T=!0,n.minus(t))};p.naturalExponential=p.exp=function(){return ft(this)};p.naturalLogarithm=p.ln=function(){return re(this)};p.negated=p.neg=function(){var e=new this.constructor(this);return e.s=-e.s,P(e)};p.plus=p.add=function(e){var t,n,i,r,o,s,a,c,u,l,m=this,d=m.constructor;if(e=new d(e),!m.d||!e.d)return!m.s||!e.s?e=new d(NaN):m.d||(e=new d(e.d||m.s===e.s?m:NaN)),e;if(m.s!=e.s)return e.s=-e.s,m.minus(e);if(u=m.d,l=e.d,a=d.precision,c=d.rounding,!u[0]||!l[0])return l[0]||(e=new d(m)),T?P(e,a,c):e;if(o=q(m.e/k),i=q(e.e/k),u=u.slice(),r=o-i,r){for(r<0?(n=u,r=-r,s=l.length):(n=l,i=o,s=u.length),o=Math.ceil(a/k),s=o>s?o+1:s+1,r>s&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(s=u.length,r=l.length,s-r<0&&(r=s,n=l,l=u,u=n),t=0;r;)t=(u[--r]=u[r]+l[r]+t)/Y|0,u[r]%=Y;for(t&&(u.unshift(t),++i),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Ge(u,i),T?P(e,a,c):e};p.precision=p.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(oe+e);return n.d?(t=Zt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};p.round=function(){var e=this,t=e.constructor;return P(new t(e),e.e+1,t.rounding)};p.sine=p.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+k,i.rounding=1,n=$n(i,en(i,n)),i.precision=e,i.rounding=t,P(ee>2?n.neg():n,e,t,!0)):new i(NaN)};p.squareRoot=p.sqrt=function(){var e,t,n,i,r,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(T=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=W(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=q((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),i=new l(t)):i=new l(u.toString()),n=(c=l.precision)+3;;)if(o=i,i=o.plus(L(s,o,n+2,1)).times(.5),W(o.d).slice(0,n)===(t=W(i.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!r&&t=="4999"){if(!r&&(P(o,c+1,0),o.times(o).eq(s))){i=o;break}n+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(P(i,c+1,1),e=!i.times(i).eq(s));break}return T=!0,P(i,c,l.rounding,e)};p.tangent=p.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,n=n.sin(),n.s=1,n=L(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,P(ee==2||ee==4?n.neg():n,e,t,!0)):new i(NaN)};p.times=p.mul=function(e){var t,n,i,r,o,s,a,c,u,l=this,m=l.constructor,d=l.d,f=(e=new m(e)).d;if(e.s*=l.s,!d||!d[0]||!f||!f[0])return new m(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(n=q(l.e/k)+q(e.e/k),c=d.length,u=f.length,c<u&&(o=d,d=f,f=o,s=c,c=u,u=s),o=[],s=c+u,i=s;i--;)o.push(0);for(i=u;--i>=0;){for(t=0,r=c+i;r>i;)a=o[r]+f[i]*d[r-i-1]+t,o[r--]=a%Y|0,t=a/Y|0;o[r]=(o[r]+t)%Y|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Ge(o,n),T?P(e,m.precision,m.rounding):e};p.toBinary=function(e,t){return bt(this,2,e,t)};p.toDecimalPlaces=p.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),e===void 0?n:(U(e,0,se),t===void 0?t=i.rounding:U(t,0,8),P(n,e+n.e+1,t))};p.toExponential=function(e,t){var n,i=this,r=i.constructor;return e===void 0?n=Z(i,!0):(U(e,0,se),t===void 0?t=r.rounding:U(t,0,8),i=P(new r(i),e+1,t),n=Z(i,!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toFixed=function(e,t){var n,i,r=this,o=r.constructor;return e===void 0?n=Z(r):(U(e,0,se),t===void 0?t=o.rounding:U(t,0,8),i=P(new o(r),e+r.e+1,t),n=Z(i,!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};p.toFraction=function(e){var t,n,i,r,o,s,a,c,u,l,m,d,f=this,A=f.d,b=f.constructor;if(!A)return new b(f);if(u=n=new b(1),i=c=new b(0),t=new b(i),o=t.e=Zt(A)-f.e-1,s=o%k,t.d[0]=F(10,s<0?k+s:s),e==null)e=o>0?t:u;else{if(a=new b(e),!a.isInt()||a.lt(u))throw Error(oe+a);e=a.gt(t)?o>0?t:u:a}for(T=!1,a=new b(W(A)),l=b.precision,b.precision=o=A.length*k*2;m=L(a,t,0,1,1),r=n.plus(m.times(i)),r.cmp(e)!=1;)n=i,i=r,r=u,u=c.plus(m.times(r)),c=r,r=t,t=a.minus(m.times(r)),a=r;return r=L(e.minus(n),i,0,1,1),c=c.plus(r.times(u)),n=n.plus(r.times(i)),c.s=u.s=f.s,d=L(u,i,o,1).minus(f).abs().cmp(L(c,n,o,1).minus(f).abs())<1?[u,i]:[c,n],b.precision=l,T=!0,d};p.toHexadecimal=p.toHex=function(e,t){return bt(this,16,e,t)};p.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),e==null){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),t===void 0?t=i.rounding:U(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]?(T=!1,n=L(n,e,0,t,1).times(e),T=!0,P(n)):(e.s=n.s,n=e),n};p.toNumber=function(){return+this};p.toOctal=function(e,t){return bt(this,8,e,t)};p.toPower=p.pow=function(e){var t,n,i,r,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(F(+a,u));if(a=new c(a),a.eq(1))return a;if(i=c.precision,o=c.rounding,e.eq(1))return P(a,i,o);if(t=q(e.e/k),t>=e.d.length-1&&(n=u<0?-u:u)<=jn)return r=Qt(c,a,n,i),e.s<0?new c(1).div(r):P(r,i,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=F(+a,u),t=n==0||!isFinite(n)?q(u*(Math.log("0."+W(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):(T=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),r=ft(e.times(re(a,i+n)),i),r.d&&(r=P(r,i+5,1),he(r.d,i,o)&&(t=i+10,r=P(ft(e.times(re(a,t+n)),t),t+5,1),+W(r.d).slice(i+1,i+15)+1==1e14&&(r=P(r,i+1,0)))),r.s=s,T=!0,c.rounding=o,P(r,i,o))};p.toPrecision=function(e,t){var n,i=this,r=i.constructor;return e===void 0?n=Z(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(U(e,1,se),t===void 0?t=r.rounding:U(t,0,8),i=P(new r(i),e,t),n=Z(i,e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n};p.toSignificantDigits=p.toSD=function(e,t){var n=this,i=n.constructor;return e===void 0?(e=i.precision,t=i.rounding):(U(e,1,se),t===void 0?t=i.rounding:U(t,0,8)),P(new i(n),e,t)};p.toString=function(){var e=this,t=e.constructor,n=Z(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};p.truncated=p.trunc=function(){return P(new this.constructor(this),this.e+1,1)};p.valueOf=p.toJSON=function(){var e=this,t=e.constructor,n=Z(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function W(e){var t,n,i,r=e.length-1,o="",s=e[0];if(r>0){for(o+=s,t=1;t<r;t++)i=e[t]+"",n=k-i.length,n&&(o+=ie(n)),o+=i;s=e[t],i=s+"",n=k-i.length,n&&(o+=ie(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function U(e,t,n){if(e!==~~e||e<t||e>n)throw Error(oe+e)}function he(e,t,n,i){var r,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,r=0):(r=Math.ceil((t+1)/k),t%=k),o=F(10,k-t),a=e[r]%o|0,i==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[r+1]/o/100|0)==F(10,t-2)-1||(a==o/2||a==0)&&(e[r+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=(i||n<4)&&a==9999||!i&&n>3&&a==4999):s=((i||n<4)&&a+1==o||!i&&n>3&&a+1==o/2)&&(e[r+1]/o/1e3|0)==F(10,t-3)-1,s}function De(e,t,n){for(var i,r=[0],o,s=0,a=e.length;s<a;){for(o=r.length;o--;)r[o]*=t;for(r[0]+=mt.indexOf(e.charAt(s++)),i=0;i<r.length;i++)r[i]>n-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/n|0,r[i]%=n)}return r.reverse()}function Qn(e,t){var n,i,r;if(t.isZero())return t;i=t.d.length,i<32?(n=Math.ceil(i/3),r=(1/Xe(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=ge(e,1,t.times(r),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 L=function(){function e(i,r,o){var s,a=0,c=i.length;for(i=i.slice();c--;)s=i[c]*r+a,i[c]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function t(i,r,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(i[a]!=r[a]){c=i[a]>r[a]?1:-1;break}return c}function n(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,c){var u,l,m,d,f,A,b,I,B,K,S,M,pe,H,fe,Oe,Te,ot,z,Ee,_e=i.constructor,st=i.s==r.s?1:-1,v=i.d,R=r.d;if(!v||!v[0]||!R||!R[0])return new _e(!i.s||!r.s||(v?R&&v[0]==R[0]:!R)?NaN:v&&v[0]==0||!R?st*0:st/0);for(c?(f=1,l=i.e-r.e):(c=Y,f=k,l=q(i.e/f)-q(r.e/f)),z=R.length,Te=v.length,B=new _e(st),K=B.d=[],m=0;R[m]==(v[m]||0);m++);if(R[m]>(v[m]||0)&&l--,o==null?(H=o=_e.precision,s=_e.rounding):a?H=o+(i.e-r.e)+1:H=o,H<0)K.push(1),A=!0;else{if(H=H/f+2|0,m=0,z==1){for(d=0,R=R[0],H++;(m<Te||d)&&H--;m++)fe=d*c+(v[m]||0),K[m]=fe/R|0,d=fe%R|0;A=d||m<Te}else{for(d=c/(R[0]+1)|0,d>1&&(R=e(R,d,c),v=e(v,d,c),z=R.length,Te=v.length),Oe=z,S=v.slice(0,z),M=S.length;M<z;)S[M++]=0;Ee=R.slice(),Ee.unshift(0),ot=R[0],R[1]>=c/2&&++ot;do d=0,u=t(R,S,z,M),u<0?(pe=S[0],z!=M&&(pe=pe*c+(S[1]||0)),d=pe/ot|0,d>1?(d>=c&&(d=c-1),b=e(R,d,c),I=b.length,M=S.length,u=t(b,S,I,M),u==1&&(d--,n(b,z<I?Ee:R,I,c))):(d==0&&(u=d=1),b=R.slice()),I=b.length,I<M&&b.unshift(0),n(S,b,M,c),u==-1&&(M=S.length,u=t(R,S,z,M),u<1&&(d++,n(S,z<M?Ee:R,M,c))),M=S.length):u===0&&(d++,S=[0]),K[m++]=d,u&&S[0]?S[M++]=v[Oe]||0:(S=[v[Oe]],M=1);while((Oe++<Te||S[0]!==void 0)&&H--);A=S[0]!==void 0}K[0]||K.shift()}if(f==1)B.e=l,Xt=A;else{for(m=1,d=K[0];d>=10;d/=10)m++;B.e=m+l*f-1,P(B,a?o+B.e+1:o,s,A)}return B}}();function P(e,t,n,i){var r,o,s,a,c,u,l,m,d,f=e.constructor;e:if(t!=null){if(m=e.d,!m)return e;for(r=1,a=m[0];a>=10;a/=10)r++;if(o=t-r,o<0)o+=k,s=t,l=m[d=0],c=l/F(10,r-s-1)%10|0;else if(d=Math.ceil((o+1)/k),a=m.length,d>=a)if(i){for(;a++<=d;)m.push(0);l=c=0,r=1,o%=k,s=o-k+1}else break e;else{for(l=a=m[d],r=1;a>=10;a/=10)r++;o%=k,s=o-k+r,c=s<0?0:l/F(10,r-s-1)%10|0}if(i=i||t<0||m[d+1]!==void 0||(s<0?l:l%F(10,r-s-1)),u=n<4?(c||i)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||i||n==6&&(o>0?s>0?l/F(10,r-s):0:m[d-1])%10&1||n==(e.s<0?8:7)),t<1||!m[0])return m.length=0,u?(t-=e.e+1,m[0]=F(10,(k-t%k)%k),e.e=-t||0):m[0]=e.e=0,e;if(o==0?(m.length=d,a=1,d--):(m.length=d+1,a=F(10,k-o),m[d]=s>0?(l/F(10,r-s)%F(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=m[0];s>=10;s/=10)o++;for(s=m[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,m[0]==Y&&(m[0]=1));break}else{if(m[d]+=a,m[d]!=Y)break;m[d--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return T&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e<f.minE&&(e.e=0,e.d=[0])),e}function Z(e,t,n){if(!e.isFinite())return $t(e);var i,r=e.e,o=W(e.d),s=o.length;return t?(n&&(i=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ie(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):r<0?(o="0."+ie(-r-1)+o,n&&(i=n-s)>0&&(o+=ie(i))):r>=s?(o+=ie(r+1-s),n&&(i=n-r-1)>0&&(o=o+"."+ie(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),n&&(i=n-s)>0&&(r+1===s&&(o+="."),o+=ie(i))),o}function Ge(e,t){var n=e[0];for(t*=k;n>=10;n/=10)t++;return t}function qe(e,t,n){if(t>Zn)throw T=!0,n&&(e.precision=n),Error(Ht);return P(new e(ve),t,1,!0)}function j(e,t,n){if(t>pt)throw Error(Ht);return P(new e(Ve),t,n,!0)}function Zt(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 ie(e){for(var t="";e--;)t+="0";return t}function Qt(e,t,n,i){var r,o=new e(1),s=Math.ceil(i/k+4);for(T=!1;;){if(n%2&&(o=o.times(t),Ut(o.d,s)&&(r=!0)),n=q(n/2),n===0){n=o.d.length-1,r&&o.d[n]===0&&++o.d[n];break}t=t.times(t),Ut(t.d,s)}return T=!0,o}function qt(e){return e.d[e.d.length-1]&1}function Jt(e,t,n){for(var i,r,o=new e(t[0]),s=0;++s<t.length;){if(r=new e(t[s]),!r.s){o=r;break}i=o.cmp(r),(i===n||i===0&&o.s===n)&&(o=r)}return o}function ft(e,t){var n,i,r,o,s,a,c,u=0,l=0,m=0,d=e.constructor,f=d.rounding,A=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:0/0);for(t==null?(T=!1,c=A):c=t,a=new d(.03125);e.e>-2;)e=e.times(a),m+=5;for(i=Math.log(F(2,m))/Math.LN10*2+5|0,c+=i,n=o=s=new d(1),d.precision=c;;){if(o=P(o.times(e),c,1),n=n.times(++l),a=s.plus(L(o,n,c,1)),W(a.d).slice(0,c)===W(s.d).slice(0,c)){for(r=m;r--;)s=P(s.times(s),c,1);if(t==null)if(u<3&&he(s.d,c-i,f,u))d.precision=c+=10,n=o=a=new d(1),l=0,u++;else return P(s,d.precision=A,f,T=!0);else return d.precision=A,s}s=a}}function re(e,t){var n,i,r,o,s,a,c,u,l,m,d,f=1,A=10,b=e,I=b.d,B=b.constructor,K=B.rounding,S=B.precision;if(b.s<0||!I||!I[0]||!b.e&&I[0]==1&&I.length==1)return new B(I&&!I[0]?-1/0:b.s!=1?NaN:I?0:b);if(t==null?(T=!1,l=S):l=t,B.precision=l+=A,n=W(I),i=n.charAt(0),Math.abs(o=b.e)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)b=b.times(e),n=W(b.d),i=n.charAt(0),f++;o=b.e,i>1?(b=new B("0."+n),o++):b=new B(i+"."+n.slice(1))}else return u=qe(B,l+2,S).times(o+""),b=re(new B(i+"."+n.slice(1)),l-A).plus(u),B.precision=S,t==null?P(b,S,K,T=!0):b;for(m=b,c=s=b=L(b.minus(1),b.plus(1),l,1),d=P(b.times(b),l,1),r=3;;){if(s=P(s.times(d),l,1),u=c.plus(L(s,new B(r),l,1)),W(u.d).slice(0,l)===W(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(qe(B,l+2,S).times(o+""))),c=L(c,new B(f),l,1),t==null)if(he(c.d,l-A,K,a))B.precision=l+=A,u=s=b=L(m.minus(1),m.plus(1),l,1),d=P(b.times(b),l,1),r=a=1;else return P(c,B.precision=S,K,T=!0);else return B.precision=S,c;c=u,r+=2}}function $t(e){return String(e.s*e.s/0)}function We(e,t){var n,i,r;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(i=t.search(/e/i))>0?(n<0&&(n=i),n+=+t.slice(i+1),t=t.substring(0,i)):n<0&&(n=t.length),i=0;t.charCodeAt(i)===48;i++);for(r=t.length;t.charCodeAt(r-1)===48;--r);if(t=t.slice(i,r),t){if(r-=i,e.e=n=n-i-1,e.d=[],i=(n+1)%k,n<0&&(i+=k),i<r){for(i&&e.d.push(+t.slice(0,i)),r-=k;i<r;)e.d.push(+t.slice(i,i+=k));t=t.slice(i),i=k-t.length}else i-=r;for(;i--;)t+="0";e.d.push(+t),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 Jn(e,t){var n,i,r,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),jt.test(t))return We(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(zn.test(t))n=16,t=t.toLowerCase();else if(Hn.test(t))n=2;else if(Yn.test(t))n=8;else throw Error(oe+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,i=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,r=Qt(i,new i(n),o,o*2)),u=De(t,n,Y),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new i(e.s*0):(e.e=Ge(u,l),e.d=u,T=!1,s&&(e=L(e,r,a*4)),c&&(e=e.times(Math.abs(c)<54?F(2,c):He.pow(2,c))),T=!0,e)}function $n(e,t){var n,i=t.d.length;if(i<3)return t.isZero()?t:ge(e,2,t,t);n=1.4*Math.sqrt(i),n=n>16?16:n|0,t=t.times(1/Xe(5,n)),t=ge(e,2,t,t);for(var r,o=new e(5),s=new e(16),a=new e(20);n--;)r=t.times(t),t=t.times(o.plus(r.times(s.times(r).minus(a))));return t}function ge(e,t,n,i,r){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/k);for(T=!1,c=n.times(n),a=new e(i);;){if(s=L(a.times(c),new e(t++*t++),l,1),a=r?i.plus(s):i.minus(s),i=L(s.times(c),new e(t++*t++),l,1),s=a.plus(i),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,u++}return T=!0,s.d.length=m+1,s}function Xe(e,t){for(var n=e;--t;)n*=e;return n}function en(e,t){var n,i=t.s<0,r=j(e,e.precision,1),o=r.times(.5);if(t=t.abs(),t.lte(o))return ee=i?4:1,t;if(n=t.divToInt(r),n.isZero())ee=i?3:2;else{if(t=t.minus(n.times(r)),t.lte(o))return ee=qt(n)?i?2:3:i?4:1,t;ee=qt(n)?i?1:4:i?3:2}return t.minus(r).abs()}function bt(e,t,n,i){var r,o,s,a,c,u,l,m,d,f=e.constructor,A=n!==void 0;if(A?(U(n,1,se),i===void 0?i=f.rounding:U(i,0,8)):(n=f.precision,i=f.rounding),!e.isFinite())l=$t(e);else{for(l=Z(e),s=l.indexOf("."),A?(r=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):r=t,s>=0&&(l=l.replace(".",""),d=new f(1),d.e=l.length-s,d.d=De(Z(d),10,r),d.e=d.d.length),m=De(l,10,r),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=A?"0p+0":"0";else{if(s<0?o--:(e=new f(e),e.d=m,e.e=o,e=L(e,d,n,i,0,r),m=e.d,o=e.e,u=Xt),s=m[n],a=r/2,u=u||m[n+1]!==void 0,u=i<4?(s!==void 0||u)&&(i===0||i===(e.s<0?3:2)):s>a||s===a&&(i===4||u||i===6&&m[n-1]&1||i===(e.s<0?8:7)),m.length=n,u)for(;++m[--n]>r-1;)m[n]=0,n||(++o,m.unshift(1));for(c=m.length;!m[c-1];--c);for(s=0,l="";s<c;s++)l+=mt.charAt(m[s]);if(A){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(m=De(l,r,t),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=mt.charAt(m[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 Ut(e,t){if(e.length>t)return e.length=t,!0}function ei(e){return new this(e).abs()}function ti(e){return new this(e).acos()}function ni(e){return new this(e).acosh()}function ii(e,t){return new this(e).plus(t)}function ri(e){return new this(e).asin()}function oi(e){return new this(e).asinh()}function si(e){return new this(e).atan()}function ai(e){return new this(e).atanh()}function ui(e,t){e=new this(e),t=new this(t);var n,i=this.precision,r=this.rounding,o=i+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=j(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?j(this,i,r):new this(0),n.s=e.s):!e.d||t.isZero()?(n=j(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(L(e,t,o,1)),t=j(this,o,1),this.precision=i,this.rounding=r,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(L(e,t,o,1)),n}function ci(e){return new this(e).cbrt()}function li(e){return P(e=new this(e),e.e+1,2)}function mi(e,t,n){return new this(e).clamp(t,n)}function di(e){if(!e||typeof e!="object")throw Error(Ue+"Object expected");var t,n,i,r=e.defaults===!0,o=["precision",1,se,"rounding",0,8,"toExpNeg",-ye,0,"toExpPos",0,ye,"maxE",0,ye,"minE",-ye,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],r&&(this[n]=dt[n]),(i=e[n])!==void 0)if(q(i)===i&&i>=o[t+1]&&i<=o[t+2])this[n]=i;else throw Error(oe+n+": "+i);if(n="crypto",r&&(this[n]=dt[n]),(i=e[n])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[n]=!0;else throw Error(zt);else this[n]=!1;else throw Error(oe+n+": "+i);return this}function pi(e){return new this(e).cos()}function fi(e){return new this(e).cosh()}function tn(e){var t,n,i;function r(o){var s,a,c,u=this;if(!(u instanceof r))return new r(o);if(u.constructor=r,Gt(o)){u.s=o.s,T?!o.d||o.e>r.maxE?(u.e=NaN,u.d=null):o.e<r.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++;T?s>r.maxE?(u.e=NaN,u.d=null):s<r.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return We(u,o.toString())}if(c==="string")return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),jt.test(o)?We(u,o):Jn(u,o);if(c==="bigint")return o<0?(o=-o,u.s=-1):u.s=1,We(u,o.toString());throw Error(oe+o)}if(r.prototype=p,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=di,r.clone=tn,r.isDecimal=Gt,r.abs=ei,r.acos=ti,r.acosh=ni,r.add=ii,r.asin=ri,r.asinh=oi,r.atan=si,r.atanh=ai,r.atan2=ui,r.cbrt=ci,r.ceil=li,r.clamp=mi,r.cos=pi,r.cosh=fi,r.div=bi,r.exp=yi,r.floor=gi,r.hypot=wi,r.ln=Pi,r.log=Ai,r.log10=Ti,r.log2=ki,r.max=hi,r.min=Bi,r.mod=xi,r.mul=Ii,r.pow=Si,r.random=Ci,r.round=Ki,r.sign=Ni,r.sin=Li,r.sinh=Ri,r.sqrt=Mi,r.sub=Oi,r.sum=Ei,r.tan=_i,r.tanh=Fi,r.trunc=Di,e===void 0&&(e={}),e&&e.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<i.length;)e.hasOwnProperty(n=i[t++])||(e[n]=this[n]);return r.config(e),r}function bi(e,t){return new this(e).div(t)}function yi(e){return new this(e).exp()}function gi(e){return P(e=new this(e),e.e+1,3)}function wi(){var e,t,n=new this(0);for(T=!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 T=!0,new this(1/0);n=t}return T=!0,n.sqrt()}function Gt(e){return e instanceof He||e&&e.toStringTag===Yt||!1}function Pi(e){return new this(e).ln()}function Ai(e,t){return new this(e).log(t)}function ki(e){return new this(e).log(2)}function Ti(e){return new this(e).log(10)}function hi(){return Jt(this,arguments,-1)}function Bi(){return Jt(this,arguments,1)}function xi(e,t){return new this(e).mod(t)}function Ii(e,t){return new this(e).mul(t)}function Si(e,t){return new this(e).pow(t)}function Ci(e){var t,n,i,r,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:U(e,1,se),i=Math.ceil(e/k),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(i));o<i;)r=t[o],r>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(i*=4);o<i;)r=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(zt);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],e%=k,i&&e&&(r=F(10,k-e),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=k)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<k&&(n-=k-i)}return s.e=n,s.d=a,s}function Ki(e){return P(e=new this(e),e.e+1,this.rounding)}function Ni(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Li(e){return new this(e).sin()}function Ri(e){return new this(e).sinh()}function Mi(e){return new this(e).sqrt()}function Oi(e,t){return new this(e).sub(t)}function Ei(){var e=0,t=arguments,n=new this(t[e]);for(T=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return T=!0,P(n,this.precision,this.rounding)}function _i(e){return new this(e).tan()}function Fi(e){return new this(e).tanh()}function Di(e){return P(e=new this(e),e.e+1,1)}p[Symbol.for("nodejs.util.inspect.custom")]=p.toString;p[Symbol.toStringTag]="Decimal";var He=p.constructor=tn(dt);ve=new He(ve);Ve=new He(Ve);import Hi from"big.js";import Ss from"bn.js";import Wi from"toformat";var vi=Wi,Be=vi;import Ye from"big.js";import qi from"bn.js";import Ui from"decimal.js-light";import xe from"bn.js";var nn=9007199254740991;function Q(e){let t=D("CobaltX_parseBigNumberish");if(e instanceof xe)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new xe(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=nn||e<=-nn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new xe(String(e))):typeof e=="bigint"?new xe(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new xe(0))}var ze=D("module/fraction"),yt=Be(Ye),Ie=Be(Ui),Gi={[0]:Ie.ROUND_DOWN,[1]:Ie.ROUND_HALF_UP,[2]:Ie.ROUND_UP},Xi={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},E=class{constructor(t,n=new qi(1)){this.numerator=Q(t),this.denominator=Q(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new E(this.denominator,this.numerator)}add(t){let n=t instanceof E?t:new E(Q(t));return this.denominator.eq(n.denominator)?new E(this.numerator.add(n.numerator),this.denominator):new E(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof E?t:new E(Q(t));return this.denominator.eq(n.denominator)?new E(this.numerator.sub(n.numerator),this.denominator):new E(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof E?t:new E(Q(t));return new E(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof E?t:new E(Q(t));return new E(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||ze.logWithError(`${t} is not an integer.`),t<=0&&ze.logWithError(`${t} is not positive.`),Ie.set({precision:t+1,rounding:Gi[i]});let r=new Ie(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return r.toFormat(r.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||ze.logWithError(`${t} is not an integer.`),t<0&&ze.logWithError(`${t} is negative.`),yt.DP=t,yt.RM=Xi[i]||1,new yt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var _s=D("CobaltX_amount"),Fs=Be(Hi);import{TOKEN_PROGRAM_ID as Us}from"@solana/spl-token";import{PublicKey as Xs}from"@solana/web3.js";import{PublicKey as te}from"@solana/web3.js";var vs={["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}};import{PublicKey as oa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yi}from"@solana/spl-token";import{PublicKey as le,SystemProgram as rn,SYSVAR_RENT_PUBKEY as ji}from"@solana/web3.js";function wt({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var $s=[wt({pubkey:Yi,isWritable:!1}),wt({pubkey:rn.programId,isWritable:!1}),wt({pubkey:ji,isWritable:!1})];var Zi=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),je=new le("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ze=new le("SysvarRent111111111111111111111111111111111"),ea=new le("SysvarC1ock11111111111111111111111111111111"),we=new le("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ta=new le("Sysvar1nstructions1111111111111111111111111"),on=rn.programId,Qi=le.default;import $i from"bn.js";var ba=new E(new $i(100));var ka=D("CobaltX_price");import{PublicKey as Wa}from"@solana/web3.js";import Va from"bn.js";var er=new ne(0),su=new ne(1),au=new ne(2),uu=new ne(3),cu=new ne(5),zi=new ne(10),lu=new ne(100),mu=new ne(1e3),du=new ne(1e4);import{PublicKey as nr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ir}from"@solana/spl-token";import{ComputeBudgetProgram as Au,Keypair as hu,PublicKey as tr,Transaction as xu,TransactionMessage as Su,VersionedTransaction as Cu}from"@solana/web3.js";var Ce={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 Ru}from"@solana/spl-token";var Mu=D("CobaltX_txUtil");function G(e,t){let[n,i]=tr.findProgramAddressSync(e,t);return{publicKey:n,nonce:i}}function Pe(e,t,n){return G([e.toBuffer(),(n!=null?n:ir).toBuffer(),t.toBuffer()],new nr("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as x}from"@solana/web3.js";var Vu=new x("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),qu=new x("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Uu=new x("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Gu=new x("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Xu=new x("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Hu=new x("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),zu=new x("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Yu=new x("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ju=new x("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Zu=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo");var rr=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),or=new x("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Qu=new x("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ju=new x("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),$u=new x("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ec=new x("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),tc=new x("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),nc=new x("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),an=new x("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),un=new x("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ic=new x("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),sr=new x("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),ar=new x("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),ur=new x("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),rc=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),cr=new x("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),oc=new x("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),lr=new x("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var sc={SERUM_MARKET:x.default,OPENBOOK_MARKET:new x("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:x.default,FarmV3:new x("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new x("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new x("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new x("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new x("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new x("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new x("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new x("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new x("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:sr,CREATE_CPMM_POOL_AUTH:ar,CREATE_CPMM_POOL_FEE_ACC:ur,FEE_DESTINATION_ID:new x("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:cr,LCOK_CPMM_AUTH:lr};import cn from"bn.js";function kt(e,t){let{div:n,mod:i}=e.divmod(t);return i.gt(new cn(0))?n.add(new cn(1)):n}import{PublicKey as dc,AddressLookupTableAccount as pc}from"@solana/web3.js";import{PublicKey as Kc,sendAndConfirmTransaction as Nc,Transaction as Rc,TransactionMessage as Oc,VersionedTransaction as Ec}from"@solana/web3.js";import Fc from"axios";import{ASSOCIATED_TOKEN_PROGRAM_ID as Sn,TOKEN_2022_PROGRAM_ID as Kt,TOKEN_PROGRAM_ID as ae}from"@solana/spl-token";import{Keypair as Wr,PublicKey as Re,SystemProgram as vr,TransactionInstruction as me}from"@solana/web3.js";var dr=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),pr=Buffer.from("amm_config","utf8"),fr=Buffer.from("pool","utf8"),br=Buffer.from("pool_lp_mint","utf8"),yr=Buffer.from("pool_vault","utf8"),gr=Buffer.from("observation","utf8");function wr(e){return G([dr],e)}function ul(e,t){return G([pr,kr(t)],e)}function Tt(e,t,n,i){return G([fr,t.toBuffer(),n.toBuffer(),i.toBuffer()],e)}function Pr(e,t){return G([br,t.toBuffer()],e)}function mn(e,t,n){return G([yr,t.toBuffer(),n.toBuffer()],e)}function Ar(e,t){return G([gr,t.toBuffer()],e)}function kr(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e,!1),new Uint8Array(t)}function cl({poolId:e,programId:t,configId:n,mintA:i,mintB:r}){let o=wr(t).publicKey,s=e||Tt(t,n,i,r).publicKey,a=Pr(t,s).publicKey,c=mn(t,s,i).publicKey,u=mn(t,s,r).publicKey,l=Ar(t,s).publicKey;return{poolId:s,configId:n,authority:o,lpMint:a,vaultA:c,vaultB:u,observationId:l}}var Tr=Buffer.from("locked_liquidity","utf8");function dn(e,t){return G([Tr,t.toBuffer()],e)}import{AccountLayout as wp,TOKEN_2022_PROGRAM_ID as Pp,TOKEN_PROGRAM_ID as Ap}from"@solana/spl-token";import{PublicKey as Tp}from"@solana/web3.js";import Bp from"bn.js";var gl=C([$("mintAuthorityOption"),h("mintAuthority"),y("supply"),O("decimals"),O("isInitialized"),$("freezeAuthorityOption"),h("freezeAuthority")]);import{PublicKey as kl}from"@solana/web3.js";import{MintLayout as hl,TOKEN_PROGRAM_ID as xl}from"@solana/spl-token";import{ASSOCIATED_TOKEN_PROGRAM_ID as qd,TOKEN_2022_PROGRAM_ID as Ud,TOKEN_PROGRAM_ID as Gd}from"@solana/spl-token";import{Keypair as zd,PublicKey as Yd,SystemProgram as Zd,TransactionInstruction as Qd}from"@solana/web3.js";import $d from"bn.js";import Ad from"bn.js";import X from"bn.js";var pn=new X(0),fn=new X(1),bn=new X(-1),$e=new X(1).shln(64),yn=new X(1).shln(128),hr=$e.sub(fn);var Br=yn.subn(1),Ae=-443636,Ke=-Ae,ht=new X("4295048016"),Bt=new X("79226673521066979257578248091"),Fl=new X("4295048017"),Dl=new X("79226673521066979257578248090");var xr=new X(10).pow(new X(6));var Wl=new X("18446744073700000000");import sd from"bn.js";var Hl=Buffer.from("amm_config","utf8"),zl=Buffer.from("pool","utf8"),Yl=Buffer.from("pool_vault","utf8"),jl=Buffer.from("pool_reward_vault","utf8"),Zl=Buffer.from("position","utf8"),Ql=Buffer.from("tick_array","utf8"),Jl=Buffer.from("operation","utf8"),$l=Buffer.from("pool_tick_array_bitmap_extension","utf8"),em=Buffer.from("observation","utf8");function xt(e){return G([Buffer.from("metadata","utf8"),we.toBuffer(),e.toBuffer()],we)}var tm=Buffer.from("locked_position","utf8");import{TOKEN_2022_PROGRAM_ID as Rm}from"@solana/spl-token";import{PublicKey as _m}from"@solana/web3.js";import Dm from"bn.js";import rm from"bn.js";var Ct=14;var et=60;var Nr=C([V(8),O("bump"),ue("index"),h(""),$("protocolFeeRate"),$("tradeFeeRate"),ue("tickSpacing"),N(y(),8,"")]),Lr=C([$("blockTimestamp"),Ft("tickCumulative"),N(y(),4)]),In=C([V(8),ce("initialized"),y("recentEpoch"),ue("observationIndex"),h("poolId"),N(Lr,100,"observations"),N(y(),4)]),Rr=C([O("rewardState"),y("openTime"),y("endTime"),y("lastUpdateTime"),_("emissionsPerSecondX64"),y("rewardTotalEmissioned"),y("rewardClaimed"),h("tokenMint"),h("tokenVault"),h("creator"),_("rewardGrowthGlobalX64")]),hn=C([V(8),O("bump"),h("ammConfig"),h("creator"),h("mintA"),h("mintB"),h("vaultA"),h("vaultB"),h("observationId"),O("mintDecimalsA"),O("mintDecimalsB"),ue("tickSpacing"),_("liquidity"),_("sqrtPriceX64"),J("tickCurrent"),$(),_("feeGrowthGlobalX64A"),_("feeGrowthGlobalX64B"),y("protocolFeesTokenA"),y("protocolFeesTokenB"),_("swapInAmountTokenA"),_("swapOutAmountTokenB"),_("swapInAmountTokenB"),_("swapOutAmountTokenA"),O("status"),N(O(),7,""),N(Rr,3,"rewardInfos"),N(y(),16,"tickArrayBitmap"),y("totalFeesTokenA"),y("totalFeesClaimedTokenA"),y("totalFeesTokenB"),y("totalFeesClaimedTokenB"),y("fundFeesTokenA"),y("fundFeesTokenB"),y("startTime"),N(y(),15*4-3,"padding")]),Mr=C([_("growthInsideLastX64"),y("rewardAmountOwed")]),Bn=C([V(8),O("bump"),h("nftMint"),h("poolId"),J("tickLower"),J("tickUpper"),_("liquidity"),_("feeGrowthInsideLastX64A"),_("feeGrowthInsideLastX64B"),y("tokenFeesOwedA"),y("tokenFeesOwedB"),N(Mr,3,"rewardInfos"),N(y(),8,"")]),Nd=C([V(8),O("bump"),h("poolId"),J("tickLowerIndex"),J("tickUpperIndex"),_("liquidity"),_("feeGrowthInsideLastX64A"),_("feeGrowthInsideLastX64B"),y("tokenFeesOwedA"),y("tokenFeesOwedB"),N(_(),3,"rewardGrowthInside"),N(y(),8,"")]),Or=C([J("tick"),Dt("liquidityNet"),_("liquidityGross"),_("feeGrowthOutsideX64A"),_("feeGrowthOutsideX64B"),N(_(),3,"rewardGrowthsOutsideX64"),N($(),13,"")]),An=C([V(8),h("poolId"),J("startTickIndex"),N(Or,et,"ticks"),O("initializedTickCount"),N(O(),115,"")]),Er=C([V(329),N(h(),100,"whitelistMints")]),Kr=C([V(8),h("poolId"),N(N(y(),8),Ct,"positiveTickArrayBitmap"),N(N(y(),8),Ct,"negativeTickArrayBitmap")]),Ld=C([y(),O("bump"),h("owner"),h("poolId"),h("positionId"),h("nftAccount"),N(y(),8)]),Rd=C([V(8),O("bump"),h("lockOwner"),h("poolId"),h("positionId"),h("nftAccount"),h("lockNftMint"),y("recentEpoch"),N(y(),8)]);In.span;var op=D("CobaltX_Clmm");var Vr=D("CobaltX_cpmm"),de={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133]};function yf(e,t,n,i,r,o,s,a,c,u,l,m,d,f,A,b,I,B,K,S){let M=C([y("amountMaxA"),y("amountMaxB"),y("openTime")]),pe=Tt(e,n,o,s).publicKey,H=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!r.equals(pe),isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:I,isSigner:!1,isWritable:!0},{pubkey:ae,isSigner:!1,isWritable:!1},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:Sn,isSigner:!1,isWritable:!1},{pubkey:on,isSigner:!1,isWritable:!1},{pubkey:Ze,isSigner:!1,isWritable:!1}],fe=Buffer.alloc(M.span);return M.encode({amountMaxA:B,amountMaxB:K,openTime:S},fe),new me({keys:H,programId:e,data:Buffer.from([...de.initialize,...fe])})}function gf(e,t,n,i,r,o,s,a,c,u,l,m,d,f,A){let b=C([y("lpAmount"),y("amountMaxA"),y("amountMaxB")]),I=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:ae,isSigner:!1,isWritable:!1},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0}],B=Buffer.alloc(b.span);return Vr.debug("cpmm deposit data",{lpAmount:d.toString(),amountMaxA:f.toString(),amountMaxB:A.toString()}),b.encode({lpAmount:d,amountMaxA:f,amountMaxB:A},B),new me({keys:I,programId:e,data:Buffer.from([...de.deposit,...B])})}function wf(e,t,n,i,r,o,s,a,c,u,l,m,d,f,A){let b=C([y("lpAmount"),y("amountMinA"),y("amountMinB")]),I=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:ae,isSigner:!1,isWritable:!1},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:je,isSigner:!1,isWritable:!1}],B=Buffer.alloc(b.span);return b.encode({lpAmount:d,amountMinA:f,amountMinB:A},B),new me({keys:I,programId:e,data:Buffer.from([...de.withdraw,...B])})}function Pf(e,t,n,i,r,o,s,a,c,u,l,m,d,f,A,b){let I=C([y("amountIn"),y("amounOutMin")]),B=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0}],K=Buffer.alloc(I.span);return I.encode({amountIn:A,amounOutMin:b},K),new me({keys:B,programId:e,data:Buffer.from([...de.swapBaseInput,...K])})}function Af(e,t,n,i,r,o,s,a,c,u,l,m,d,f,A,b){let I=C([y("amountInMax"),y("amountOut")]),B=[{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!1},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0}],K=Buffer.alloc(I.span);return I.encode({amountInMax:A,amountOut:b},K),new me({keys:B,programId:e,data:Buffer.from([...de.swapBaseOutput,...K])})}async function kf(e){var b;let{ownerInfo:t,poolInfo:n,poolKeys:i,getEphemeralSigners:r}=e,o=[],[s,a]=[new Re(n.id),new Re(n.lpMint.address)],c;if(r)c=new Re((await r(1))[0]);else{let I=Wr.generate();o.push(I),c=I.publicKey}let{publicKey:u}=Pe(t.feePayer,c,ae),{publicKey:l}=xt(c),{publicKey:m}=dn(e.lockProgram,c),{publicKey:d}=Pe(t.feePayer,a,ae),{publicKey:f}=Pe(e.lockAuthProgram,a,ae),A=qr({programId:e.lockProgram,auth:e.lockAuthProgram,payer:t.feePayer,nftOwner:t.feePayer,liquidityOwner:t.feePayer,nftMint:c,nftAccount:u,poolId:s,lockPda:m,mintLp:a,userLpVault:d,lockLpVault:f,poolVaultA:new Re(i.vault.A),poolVaultB:new Re(i.vault.B),metadataAccount:l,lpAmount:e.lpAmount,withMetadata:(b=e.withMetadata)!=null?b:!0});return{address:{nftMint:c,nftAccount:u,metadataAccount:l,lockPda:m,userLpVault:d,lockLpVault:f},instructions:[A],signers:o,instructionTypes:[Ce.CpmmLockLp],lookupTableAddress:[]}}function qr({programId:e,auth:t,payer:n,liquidityOwner:i,nftOwner:r,nftMint:o,nftAccount:s,poolId:a,lockPda:c,mintLp:u,userLpVault:l,lockLpVault:m,poolVaultA:d,poolVaultB:f,metadataAccount:A,lpAmount:b,withMetadata:I}){let B=[{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!0},{pubkey:Ze,isSigner:!1,isWritable:!1},{pubkey:vr.programId,isSigner:!1,isWritable:!1},{pubkey:ae,isSigner:!1,isWritable:!1},{pubkey:Sn,isSigner:!1,isWritable:!1},{pubkey:we,isSigner:!1,isWritable:!1}],K=C([y("lpAmount"),ce("withMetadata")]),S=Buffer.alloc(K.span);K.encode({lpAmount:b,withMetadata:I},S);let M=Buffer.from([...de.lockCpLiquidity,...S]);return new me({keys:B,programId:e,data:M})}function Tf({programId:e,nftOwner:t,auth:n,nftAccount:i,lockPda:r,poolId:o,mintLp:s,userVaultA:a,userVaultB:c,poolVaultA:u,poolVaultB:l,mintA:m,mintB:d,lockLpVault:f,lpFeeAmount:A,cpmmProgram:b,cpmmAuthProgram:I}){let B=[{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:b!=null?b:an,isSigner:!1,isWritable:!1},{pubkey:I!=null?I:un,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!1},{pubkey:f,isSigner:!1,isWritable:!0},{pubkey:ae,isSigner:!1,isWritable:!1},{pubkey:Kt,isSigner:!1,isWritable:!1},{pubkey:je,isSigner:!1,isWritable:!1}],K=C([y("lpFeeAmount")]),S=Buffer.alloc(K.span);K.encode({lpFeeAmount:A},S);let M=Buffer.from([...de.collectCpFee,...S]);return new me({keys:B,programId:e,data:M})}import Lt from"bn.js";import rt from"decimal.js-light";import Me from"bn.js";function tt(e,t){if(t.isZero())throw Error("divisor is zero");return e.mod(t)}function Ur(e,t){if(t.isZero())throw Error("rhs is zero");let n=e.div(t);if(n.isZero())throw Error("quotient is zero");let i=tt(e,t);return i.gt(ke)&&(n=n.add(new Me(1)),t=e.div(n),i=tt(e,n),i.gt(ke)&&(t=t.add(new Me(1)))),[n,t]}var ke=new Me(0),nt=class{static swapWithoutFees(t,n,i){let r=n.mul(i),o=n.add(t),[s,a]=Ur(r,o),c=a.sub(n),u=i.sub(s);if(u.isZero())throw Error("destinationAmountSwapped is zero");return{sourceAmountSwapped:c,destinationAmountSwapped:u}}static lpTokensToTradingTokens(t,n,i,r,o){let s=t.mul(i).div(n),a=t.mul(r).div(n);if(o===0)return{tokenAmount0:s,tokenAmount1:a};if(o===1)return tt(t.mul(i),n).gt(ke)&&s.gt(ke)&&(s=s.add(new Me(1))),tt(t.mul(r),n).gt(ke)&&a.gt(ke)&&(a=a.add(new Me(1))),{tokenAmount0:s,tokenAmount1:a};throw Error("roundDirection value error")}};import Nn from"bn.js";var Nt=new Nn(1e6);function Gr(e,t,n){return e.mul(t).add(n).sub(new Nn(1)).div(n)}function Kn(e,t,n){return e.mul(t).div(n)}var it=class{static tradingFee(t,n){return Gr(t,n,Nt)}static protocolFee(t,n){return Kn(t,n,Nt)}static fundFee(t,n){return Kn(t,n,Nt)}};var Cn=(n=>(n[n.Floor=0]="Floor",n[n.Ceiling=1]="Ceiling",n))(Cn||{}),Ln=class{static validate_supply(t,n){if(t.isZero())throw Error("tokenAmount0 is zero");if(n.isZero())throw Error("tokenAmount1 is zero")}static swap(t,n,i,r){let o=it.tradingFee(t,r),s=t.sub(o),{sourceAmountSwapped:a,destinationAmountSwapped:c}=nt.swapWithoutFees(s,n,i),u=a.add(o);return{newSwapSourceAmount:n.add(u),newSwapDestinationAmount:i.sub(c),sourceAmountSwapped:u,destinationAmountSwapped:c,tradeFee:o}}static swapBaseOut({poolMintA:t,poolMintB:n,tradeFeeRate:i,baseReserve:r,quoteReserve:o,outputMint:s,outputAmount:a}){let[c,u,l,m,d]=n.address===s.toString()?[r,o,t.decimals,n.decimals,t.address]:[o,r,n.decimals,t.decimals,n.address],f=new rt(u.toString()).div(10**m).div(new rt(c.toString()).div(10**l)),A=a.gte(u)?u.sub(new Lt(1)):a,b=u.sub(A),I=kt(c.mul(A),b),B=kt(I.mul(new Lt(1e6)),new Lt(1e6).sub(i)),K=B.sub(I),S=new rt(A.toString()).div(10**m).div(new rt(B.toString()).div(10**l)),M=f.isZero()?0:S.sub(f).div(f).abs().toNumber();return{amountRealOut:A,amountIn:B,amountInWithoutFee:I,tradeFee:K,priceImpact:M}}};export{nt as ConstantProductCurve,Xo as CpmmConfigInfoLayout,it as CpmmFee,Ho as CpmmPoolInfoLayout,Ln as CurveCalculator,Nt as FEE_RATE_DENOMINATOR_VALUE,Tr as LOCK_LIQUIDITY_SEED,Cn as RoundDirection,Gr as ceilDiv,Tf as collectCpFeeInstruction,qr as cpmmLockPositionInstruction,Kn as floorDiv,dn as getCpLockPda,ul as getCpmmPdaAmmConfigId,Tt as getCpmmPdaPoolId,cl as getCreatePoolKeys,Pr as getPdaLpMint,Ar as getPdaObservationId,wr as getPdaPoolAuthority,mn as getPdaVault,kf as makeCpmmLockInstruction,yf as makeCreateCpmmPoolInInstruction,gf as makeDepositCpmmInInstruction,Pf as makeSwapCpmmBaseInInInstruction,Af as makeSwapCpmmBaseOutInInstruction,wf as makeWithdrawCpmmInInstruction};
/*!
 *  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
 */
//# sourceMappingURL=index.mjs.map