UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 72.6 kB
var Sn=Object.defineProperty,In=Object.defineProperties;var Bn=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Kt=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable;var Rt=(e,t,n)=>t in e?Sn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,H=(e,t)=>{for(var n in t||(t={}))Kt.call(t,n)&&Rt(e,n,t[n]);if(Oe)for(var n of Oe(t))vt.call(t,n)&&Rt(e,n,t[n]);return e},Z=(e,t)=>In(e,Bn(t));var tt=(e,t)=>{var n={};for(var r in e)Kt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Oe)for(var r of Oe(e))t.indexOf(r)<0&&vt.call(e,r)&&(n[r]=e[r]);return n};import Dt from"bn.js";var Ni=new Dt(25),Ci=new Dt(1e4),Ln={4:3,5:3};import{PublicKey as Rn}from"@solana/web3.js";import Wt,{isBN as qt}from"bn.js";import{bits as _i,BitStructure as Ri,blob as Nn,Blob as Ki,cstr as vi,f32 as Di,f32be as Oi,f64 as Vi,f64be as Fi,greedy as Wi,Layout as Cn,ns64 as qi,ns64be as Ui,nu64 as Gi,nu64be as Hi,offset as zi,s16 as ji,s16be as Yi,s24 as Qi,s24be as Zi,s32 as Xi,s32be as Ji,s40 as $i,s40be as eo,s48 as to,s48be as no,s8 as ro,seq as Mn,struct as io,Structure as En,u16 as oo,u16be as so,u24 as ao,u24be as uo,u32 as co,u32be as lo,u40 as mo,u40be as po,u48 as fo,u48be as go,u8 as bo,UInt as _n,union as ho,Union as yo,unionLayoutDiscriminator as wo,utf8 as To}from"@solana/buffer-layout";var nt=Cn,Ot=En;var Vt=_n;var Ft=Mn;var rt=Nn;var Ve=class extends nt{constructor(n,r,i){super(n,i);this.blob=rt(n),this.signed=r}decode(n,r=0){let i=new Wt(this.blob.decode(n,r),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(n,r,i=0){return typeof n=="number"&&(n=new Wt(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function W(e){return new Vt(1,e)}function g(e){return new Ve(8,!1,e)}function $(e){return new Ve(16,!1,e)}var it=class extends nt{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function E(e){return new it(rt(32),t=>new Rn(t),t=>t.toBuffer(),e)}var ot=class extends Ot{decode(t,n){return super.decode(t,n)}};function D(e,t,n){return new ot(e,t,n)}function Le(e,t,n){let r,i=typeof t=="number"?t:qt(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=qt(a)?a.toNumber():a,Reflect.set(o,"count",r)}return Reflect.get(o,s)},set(o,s,a){return s==="count"&&(r=a),Reflect.set(o,s,a)}});return Ft(e,i,n)}var st=D([W("instruction"),g("amountIn"),g("minAmountOut")]),at=D([W("instruction"),g("maxAmountIn"),g("amountOut")]),vo=D([W("instruction"),W("nonce")]),ut=D([W("instruction"),W("nonce"),g("startTime")]),Kn=D([g("status"),g("nonce"),g("maxOrder"),g("depth"),g("baseDecimal"),g("quoteDecimal"),g("state"),g("resetFlag"),g("minSize"),g("volMaxCutRatio"),g("amountWaveRatio"),g("baseLotSize"),g("quoteLotSize"),g("minPriceMultiplier"),g("maxPriceMultiplier"),g("systemDecimalValue"),g("minSeparateNumerator"),g("minSeparateDenominator"),g("tradeFeeNumerator"),g("tradeFeeDenominator"),g("pnlNumerator"),g("pnlDenominator"),g("swapFeeNumerator"),g("swapFeeDenominator"),g("baseNeedTakePnl"),g("quoteNeedTakePnl"),g("quoteTotalPnl"),g("baseTotalPnl"),g("poolOpenTime"),g("punishPcAmount"),g("punishCoinAmount"),g("orderbookToInitTime"),$("swapBaseInAmount"),$("swapQuoteOutAmount"),g("swapBase2QuoteFee"),$("swapQuoteInAmount"),$("swapBaseOutAmount"),g("swapQuote2BaseFee"),E("baseVault"),E("quoteVault"),E("baseMint"),E("quoteMint"),E("lpMint"),E("openOrders"),E("marketId"),E("marketProgramId"),E("targetOrders"),E("withdrawQueue"),E("lpVault"),E("owner"),g("lpReserve"),Le(g(),3,"padding")]),vn=D([g("accountType"),g("status"),g("nonce"),g("maxOrder"),g("depth"),g("baseDecimal"),g("quoteDecimal"),g("state"),g("resetFlag"),g("minSize"),g("volMaxCutRatio"),g("amountWaveRatio"),g("baseLotSize"),g("quoteLotSize"),g("minPriceMultiplier"),g("maxPriceMultiplier"),g("systemDecimalsValue"),g("abortTradeFactor"),g("priceTickMultiplier"),g("priceTick"),g("minSeparateNumerator"),g("minSeparateDenominator"),g("tradeFeeNumerator"),g("tradeFeeDenominator"),g("pnlNumerator"),g("pnlDenominator"),g("swapFeeNumerator"),g("swapFeeDenominator"),g("baseNeedTakePnl"),g("quoteNeedTakePnl"),g("quoteTotalPnl"),g("baseTotalPnl"),g("poolOpenTime"),g("punishPcAmount"),g("punishCoinAmount"),g("orderbookToInitTime"),$("swapBaseInAmount"),$("swapQuoteOutAmount"),$("swapQuoteInAmount"),$("swapBaseOutAmount"),g("swapQuote2BaseFee"),g("swapBase2QuoteFee"),E("baseVault"),E("quoteVault"),E("baseMint"),E("quoteMint"),E("lpMint"),E("modelDataAccount"),E("openOrders"),E("marketId"),E("marketProgramId"),E("targetOrders"),E("owner"),Le(g(),64,"padding")]),ct=D([W("instruction"),g("baseAmountIn"),g("quoteAmountIn"),g("fixedSide"),g("otherAmountMin")]),lt=D([W("instruction"),g("lpAmount"),g("baseAmountMin"),g("quoteAmountMin")]),Do={4:Kn,5:vn},Oo=D([g("fee")]);import{PublicKey as Ai}from"@solana/web3.js";import Ke from"bn.js";var Te=9e15,ce=1e9,mt="0123456789abcdef",We="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",pt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Te,maxE:Te,crypto:!1},zt,ee,x=!0,Ge="[DecimalError] ",ue=Ge+"Invalid argument: ",jt=Ge+"Precision limit exceeded",Yt=Ge+"crypto unavailable",Qt="[object Decimal]",q=Math.floor,K=Math.pow,Dn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,On=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Vn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Zt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Q=1e7,w=7,Fn=9007199254740991,Wn=We.length-1,ft=qe.length-1,d={toStringTag:Qt};d.absoluteValue=d.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};d.ceil=function(){return y(new this.constructor(this),this.e+1,2)};d.clampedTo=d.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(ue+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};d.comparedTo=d.cmp=function(e){var t,n,r,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,c=o.s,u=e.s;if(!s||!a)return!c||!u?NaN:c!==u?c:s===a?0:!s^c<0?1:-1;if(!s[0]||!a[0])return s[0]?c:a[0]?-u:0;if(c!==u)return c;if(o.e!==e.e)return o.e>e.e^c<0?1:-1;for(r=s.length,i=a.length,t=0,n=r<i?r:i;t<n;++t)if(s[t]!==a[t])return s[t]>a[t]^c<0?1:-1;return r===i?0:r>i^c<0?1:-1};d.cosine=d.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+w,r.rounding=1,n=qn(r,tn(r,n)),r.precision=e,r.rounding=t,y(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,i,o,s,a,c,u,l=this,m=l.constructor;if(!l.isFinite()||l.isZero())return new m(l);for(x=!1,o=l.s*K(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=O(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=K(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),r=new m(n),r.s=l.s):r=new m(o.toString()),s=(e=m.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=N(u.plus(l).times(a),u.plus(c),s+2,1),O(a.d).slice(0,s)===(n=O(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(l))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(y(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return x=!0,y(r,e,m.rounding,t)};d.decimalPlaces=d.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-q(this.e/w))*w,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return N(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return y(N(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 y(new this.constructor(this),this.e+1,3)};d.greaterThan=d.gt=function(e){return this.cmp(e)>0};d.greaterThanOrEqualTo=d.gte=function(e){var t=this.cmp(e);return t==1||t===0};d.hyperbolicCosine=d.cosh=function(){var e,t,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/ze(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=xe(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 y(o,s.precision=n,s.rounding=r,!0)};d.hyperbolicSine=d.sinh=function(){var e,t,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/ze(5,e)),i=xe(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,y(i,t,n,!0)};d.hyperbolicTangent=d.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};d.inverseCosine=d.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?t.isNeg()?Y(n,i,o):new n(0):new n(NaN):t.isZero()?Y(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=Y(n,i+4,o).times(.5),n.precision=i,n.rounding=o,e.minus(t))};d.inverseHyperbolicCosine=d.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,x=!1,n=n.times(n).minus(1).sqrt().plus(n),x=!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,x=!1,n=n.times(n).plus(1).sqrt().plus(n),x=!0,r.precision=e,r.rounding=t,n.ln())};d.inverseHyperbolicTangent=d.atanh=function(){var e,t,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?y(new o(i),e,t,!0):(o.precision=n=r-i.e,i=N(i.plus(1),new o(1).minus(i),n+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};d.inverseSine=d.asin=function(){var e,t,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),n=o.precision,r=o.rounding,t!==-1?t===0?(e=Y(o,n+4,r).times(.5),e.s=i.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))};d.inverseTangent=d.atan=function(){var e,t,n,r,i,o,s,a,c,u=this,l=u.constructor,m=l.precision,p=l.rounding;if(u.isFinite()){if(u.isZero())return new l(u);if(u.abs().eq(1)&&m+4<=ft)return s=Y(l,m+4,p).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=ft)return s=Y(l,m+4,p).times(.5),s.s=u.s,s}for(l.precision=a=m+10,l.rounding=1,n=Math.min(28,a/w+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(x=!1,t=Math.ceil(a/w),r=1,c=u.times(u),s=new l(u),i=u;e!==-1;)if(i=i.times(c),o=s.minus(i.div(r+=2)),i=i.times(c),s=o.plus(i.div(r+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<<n-1)),x=!0,y(s,l.precision=m,l.rounding=p,!0)};d.isFinite=function(){return!!this.d};d.isInteger=d.isInt=function(){return!!this.d&&q(this.e/w)>this.d.length-2};d.isNaN=function(){return!this.s};d.isNegative=d.isNeg=function(){return this.s<0};d.isPositive=d.isPos=function(){return this.s>0};d.isZero=function(){return!!this.d&&this.d[0]===0};d.lessThan=d.lt=function(e){return this.cmp(e)<0};d.lessThanOrEqualTo=d.lte=function(e){return this.cmp(e)<1};d.logarithm=d.log=function(e){var t,n,r,i,o,s,a,c,u=this,l=u.constructor,m=l.precision,p=l.rounding,b=5;if(e==null)e=new l(10),t=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new l(n&&!n[0]?-1/0:u.s!=1?NaN:n?0:1/0);if(t)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(x=!1,a=m+b,s=ae(u,a),r=t?Ue(l,a+10):ae(e,a),c=N(s,r,a,1),Ne(c.d,i=m,p))do if(a+=10,s=ae(u,a),r=t?Ue(l,a+10):ae(e,a),c=N(s,r,a,1),!o){+O(c.d).slice(i+1,i+15)+1==1e14&&(c=y(c,m+1,0));break}while(Ne(c.d,i+=10,p));return x=!0,y(c,m,p)};d.minus=d.sub=function(e){var t,n,r,i,o,s,a,c,u,l,m,p,b=this,T=b.constructor;if(e=new T(e),!b.d||!e.d)return!b.s||!e.s?e=new T(NaN):b.d?e.s=-e.s:e=new T(e.d||b.s!==e.s?b:NaN),e;if(b.s!=e.s)return e.s=-e.s,b.plus(e);if(u=b.d,p=e.d,a=T.precision,c=T.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else if(u[0])e=new T(b);else return new T(c===3?-0:0);return x?y(e,a,c):e}if(n=q(e.e/w),l=q(b.e/w),u=u.slice(),o=l-n,o){for(m=o<0,m?(t=u,o=-o,s=p.length):(t=p,n=l,s=u.length),r=Math.max(Math.ceil(a/w),s)+2,o>r&&(o=r,t.length=1),t.reverse(),r=o;r--;)t.push(0);t.reverse()}else{for(r=u.length,s=p.length,m=r<s,m&&(s=r),r=0;r<s;r++)if(u[r]!=p[r]){m=u[r]<p[r];break}o=0}for(m&&(t=u,u=p,p=t,e.s=-e.s),s=u.length,r=p.length-s;r>0;--r)u[s++]=0;for(r=p.length;r>o;){if(u[--r]<p[r]){for(i=r;i&&u[--i]===0;)u[i]=Q-1;--u[i],u[r]+=Q}u[r]-=p[r]}for(;u[--s]===0;)u.pop();for(;u[0]===0;u.shift())--n;return u[0]?(e.d=u,e.e=He(u,n),x?y(e,a,c):e):new T(c===3?-0:0)};d.modulo=d.mod=function(e){var t,n=this,r=n.constructor;return e=new r(e),!n.d||!e.s||e.d&&!e.d[0]?new r(NaN):!e.d||n.d&&!n.d[0]?y(new r(n),r.precision,r.rounding):(x=!1,r.modulo==9?(t=N(n,e.abs(),0,3,1),t.s*=e.s):t=N(n,e,0,r.modulo,1),t=t.times(e),x=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return dt(this)};d.naturalLogarithm=d.ln=function(){return ae(this)};d.negated=d.neg=function(){var e=new this.constructor(this);return e.s=-e.s,y(e)};d.plus=d.add=function(e){var t,n,r,i,o,s,a,c,u,l,m=this,p=m.constructor;if(e=new p(e),!m.d||!e.d)return!m.s||!e.s?e=new p(NaN):m.d||(e=new p(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=p.precision,c=p.rounding,!u[0]||!l[0])return l[0]||(e=new p(m)),x?y(e,a,c):e;if(o=q(m.e/w),r=q(e.e/w),u=u.slice(),i=o-r,i){for(i<0?(n=u,i=-i,s=l.length):(n=l,r=o,s=u.length),o=Math.ceil(a/w),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=u.length,i=l.length,s-i<0&&(i=s,n=l,l=u,u=n),t=0;i;)t=(u[--i]=u[i]+l[i]+t)/Q|0,u[i]%=Q;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=He(u,r),x?y(e,a,c):e};d.precision=d.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ue+e);return n.d?(t=Xt(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};d.round=function(){var e=this,t=e.constructor;return y(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())+w,r.rounding=1,n=Gn(r,tn(r,n)),r.precision=e,r.rounding=t,y(ee>2?n.neg():n,e,t,!0)):new r(NaN)};d.squareRoot=d.sqrt=function(){var e,t,n,r,i,o,s=this,a=s.d,c=s.e,u=s.s,l=s.constructor;if(u!==1||!a||!a[0])return new l(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(x=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=O(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),r=new l(t)):r=new l(u.toString()),n=(c=l.precision)+3;;)if(o=r,r=o.plus(N(s,o,n+2,1)).times(.5),O(o.d).slice(0,n)===(t=O(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!i&&t=="4999"){if(!i&&(y(o,c+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(y(r,c+1,1),e=!r.times(r).eq(s));break}return x=!0,y(r,c,l.rounding,e)};d.tangent=d.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,y(ee==2||ee==4?n.neg():n,e,t,!0)):new r(NaN)};d.times=d.mul=function(e){var t,n,r,i,o,s,a,c,u,l=this,m=l.constructor,p=l.d,b=(e=new m(e)).d;if(e.s*=l.s,!p||!p[0]||!b||!b[0])return new m(!e.s||p&&!p[0]&&!b||b&&!b[0]&&!p?NaN:!p||!b?e.s/0:e.s*0);for(n=q(l.e/w)+q(e.e/w),c=p.length,u=b.length,c<u&&(o=p,p=b,b=o,s=c,c=u,u=s),o=[],s=c+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,i=c+r;i>r;)a=o[i]+b[r]*p[i-r-1]+t,o[i--]=a%Q|0,t=a/Q|0;o[i]=(o[i]+t)%Q|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=He(o,n),x?y(e,m.precision,m.rounding):e};d.toBinary=function(e,t){return bt(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:(G(e,0,ce),t===void 0?t=r.rounding:G(t,0,8),y(n,e+n.e+1,t))};d.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=X(r,!0):(G(e,0,ce),t===void 0?t=i.rounding:G(t,0,8),r=y(new i(r),e+1,t),n=X(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=X(i):(G(e,0,ce),t===void 0?t=o.rounding:G(t,0,8),r=y(new o(i),e+i.e+1,t),n=X(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};d.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,m,p,b=this,T=b.d,h=b.constructor;if(!T)return new h(b);if(u=n=new h(1),r=c=new h(0),t=new h(r),o=t.e=Xt(T)-b.e-1,s=o%w,t.d[0]=K(10,s<0?w+s:s),e==null)e=o>0?t:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(ue+a);e=a.gt(t)?o>0?t:u:a}for(x=!1,a=new h(O(T)),l=h.precision,h.precision=o=T.length*w*2;m=N(a,t,0,1,1),i=n.plus(m.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(m.times(i)),c=i,i=t,t=a.minus(m.times(i)),a=i;return i=N(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=b.s,p=N(u,r,o,1).minus(b).abs().cmp(N(c,n,o,1).minus(b).abs())<1?[u,r]:[c,n],h.precision=l,x=!0,p};d.toHexadecimal=d.toHex=function(e,t){return bt(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:G(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]?(x=!1,n=N(n,e,0,t,1).times(e),x=!0,y(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return bt(this,8,e,t)};d.toPower=d.pow=function(e){var t,n,r,i,o,s,a=this,c=a.constructor,u=+(e=new c(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new c(K(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return y(a,r,o);if(t=q(e.e/w),t>=e.d.length-1&&(n=u<0?-u:u)<=Fn)return i=Jt(c,a,n,r),e.s<0?new c(1).div(i):y(i,r,o);if(s=a.s,s<0){if(t<e.d.length-1)return new c(NaN);if((e.d[t]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=K(+a,u),t=n==0||!isFinite(n)?q(u*(Math.log("0."+O(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):(x=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=dt(e.times(ae(a,r+n)),r),i.d&&(i=y(i,r+5,1),Ne(i.d,r,o)&&(t=r+10,i=y(dt(e.times(ae(a,t+n)),t),t+5,1),+O(i.d).slice(r+1,r+15)+1==1e14&&(i=y(i,r+1,0)))),i.s=s,x=!0,c.rounding=o,y(i,r,o))};d.toPrecision=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=X(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(G(e,1,ce),t===void 0?t=i.rounding:G(t,0,8),r=y(new i(r),e,t),n=X(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};d.toSignificantDigits=d.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(G(e,1,ce),t===void 0?t=r.rounding:G(t,0,8)),y(new r(n),e,t)};d.toString=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n};d.truncated=d.trunc=function(){return y(new this.constructor(this),this.e+1,1)};d.valueOf=d.toJSON=function(){var e=this,t=e.constructor,n=X(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function O(e){var t,n,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)r=e[t]+"",n=w-r.length,n&&(o+=se(n)),o+=r;s=e[t],r=s+"",n=w-r.length,n&&(o+=se(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function G(e,t,n){if(e!==~~e||e<t||e>n)throw Error(ue+e)}function Ne(e,t,n,r){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=w,i=0):(i=Math.ceil((t+1)/w),t%=w),o=K(10,w-t),a=e[i]%o|0,r==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=n<4&&a==99999||n>3&&a==49999||a==5e4||a==0):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(e[i+1]/o/100|0)==K(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(r||n<4)&&a==9999||!r&&n>3&&a==4999):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==K(10,t-3)-1,s}function Fe(e,t,n){for(var r,i=[0],o,s=0,a=e.length;s<a;){for(o=i.length;o--;)i[o]*=t;for(i[0]+=mt.indexOf(e.charAt(s++)),r=0;r<i.length;r++)i[r]>n-1&&(i[r+1]===void 0&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function qn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/ze(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=xe(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var N=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,l,m,p,b,T,h,R,L,U,S,v,ye,z,Be,pe,fe,we,j,ve,De=r.constructor,et=r.s==i.s?1:-1,F=r.d,C=i.d;if(!F||!F[0]||!C||!C[0])return new De(!r.s||!i.s||(F?C&&F[0]==C[0]:!C)?NaN:F&&F[0]==0||!C?et*0:et/0);for(c?(b=1,l=r.e-i.e):(c=Q,b=w,l=q(r.e/b)-q(i.e/b)),j=C.length,fe=F.length,L=new De(et),U=L.d=[],m=0;C[m]==(F[m]||0);m++);if(C[m]>(F[m]||0)&&l--,o==null?(z=o=De.precision,s=De.rounding):a?z=o+(r.e-i.e)+1:z=o,z<0)U.push(1),T=!0;else{if(z=z/b+2|0,m=0,j==1){for(p=0,C=C[0],z++;(m<fe||p)&&z--;m++)Be=p*c+(F[m]||0),U[m]=Be/C|0,p=Be%C|0;T=p||m<fe}else{for(p=c/(C[0]+1)|0,p>1&&(C=e(C,p,c),F=e(F,p,c),j=C.length,fe=F.length),pe=j,S=F.slice(0,j),v=S.length;v<j;)S[v++]=0;ve=C.slice(),ve.unshift(0),we=C[0],C[1]>=c/2&&++we;do p=0,u=t(C,S,j,v),u<0?(ye=S[0],j!=v&&(ye=ye*c+(S[1]||0)),p=ye/we|0,p>1?(p>=c&&(p=c-1),h=e(C,p,c),R=h.length,v=S.length,u=t(h,S,R,v),u==1&&(p--,n(h,j<R?ve:C,R,c))):(p==0&&(u=p=1),h=C.slice()),R=h.length,R<v&&h.unshift(0),n(S,h,v,c),u==-1&&(v=S.length,u=t(C,S,j,v),u<1&&(p++,n(S,j<v?ve:C,v,c))),v=S.length):u===0&&(p++,S=[0]),U[m++]=p,u&&S[0]?S[v++]=F[pe]||0:(S=[F[pe]],v=1);while((pe++<fe||S[0]!==void 0)&&z--);T=S[0]!==void 0}U[0]||U.shift()}if(b==1)L.e=l,zt=T;else{for(m=1,p=U[0];p>=10;p/=10)m++;L.e=m+l*b-1,y(L,a?o+L.e+1:o,s,T)}return L}}();function y(e,t,n,r){var i,o,s,a,c,u,l,m,p,b=e.constructor;e:if(t!=null){if(m=e.d,!m)return e;for(i=1,a=m[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=w,s=t,l=m[p=0],c=l/K(10,i-s-1)%10|0;else if(p=Math.ceil((o+1)/w),a=m.length,p>=a)if(r){for(;a++<=p;)m.push(0);l=c=0,i=1,o%=w,s=o-w+1}else break e;else{for(l=a=m[p],i=1;a>=10;a/=10)i++;o%=w,s=o-w+i,c=s<0?0:l/K(10,i-s-1)%10|0}if(r=r||t<0||m[p+1]!==void 0||(s<0?l:l%K(10,i-s-1)),u=n<4?(c||r)&&(n==0||n==(e.s<0?3:2)):c>5||c==5&&(n==4||r||n==6&&(o>0?s>0?l/K(10,i-s):0:m[p-1])%10&1||n==(e.s<0?8:7)),t<1||!m[0])return m.length=0,u?(t-=e.e+1,m[0]=K(10,(w-t%w)%w),e.e=-t||0):m[0]=e.e=0,e;if(o==0?(m.length=p,a=1,p--):(m.length=p+1,a=K(10,w-o),m[p]=s>0?(l/K(10,i-s)%K(10,s)|0)*a:0),u)for(;;)if(p==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]==Q&&(m[0]=1));break}else{if(m[p]+=a,m[p]!=Q)break;m[p--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return x&&(e.e>b.maxE?(e.d=null,e.e=NaN):e.e<b.minE&&(e.e=0,e.d=[0])),e}function X(e,t,n){if(!e.isFinite())return en(e);var r,i=e.e,o=O(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+se(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+se(-i-1)+o,n&&(r=n-s)>0&&(o+=se(r))):i>=s?(o+=se(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+se(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=se(r))),o}function He(e,t){var n=e[0];for(t*=w;n>=10;n/=10)t++;return t}function Ue(e,t,n){if(t>Wn)throw x=!0,n&&(e.precision=n),Error(jt);return y(new e(We),t,1,!0)}function Y(e,t,n){if(t>ft)throw Error(jt);return y(new e(qe),t,n,!0)}function Xt(e){var t=e.length-1,n=t*w+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 se(e){for(var t="";e--;)t+="0";return t}function Jt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/w+4);for(x=!1;;){if(n%2&&(o=o.times(t),Gt(o.d,s)&&(i=!0)),n=q(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),Gt(t.d,s)}return x=!0,o}function Ut(e){return e.d[e.d.length-1]&1}function $t(e,t,n){for(var r,i=new e(t[0]),o=0;++o<t.length;)if(r=new e(t[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function dt(e,t){var n,r,i,o,s,a,c,u=0,l=0,m=0,p=e.constructor,b=p.rounding,T=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?(x=!1,c=T):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(r=Math.log(K(2,m))/Math.LN10*2+5|0,c+=r,n=o=s=new p(1),p.precision=c;;){if(o=y(o.times(e),c,1),n=n.times(++l),a=s.plus(N(o,n,c,1)),O(a.d).slice(0,c)===O(s.d).slice(0,c)){for(i=m;i--;)s=y(s.times(s),c,1);if(t==null)if(u<3&&Ne(s.d,c-r,b,u))p.precision=c+=10,n=o=a=new p(1),l=0,u++;else return y(s,p.precision=T,b,x=!0);else return p.precision=T,s}s=a}}function ae(e,t){var n,r,i,o,s,a,c,u,l,m,p,b=1,T=10,h=e,R=h.d,L=h.constructor,U=L.rounding,S=L.precision;if(h.s<0||!R||!R[0]||!h.e&&R[0]==1&&R.length==1)return new L(R&&!R[0]?-1/0:h.s!=1?NaN:R?0:h);if(t==null?(x=!1,l=S):l=t,L.precision=l+=T,n=O(R),r=n.charAt(0),Math.abs(o=h.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)h=h.times(e),n=O(h.d),r=n.charAt(0),b++;o=h.e,r>1?(h=new L("0."+n),o++):h=new L(r+"."+n.slice(1))}else return u=Ue(L,l+2,S).times(o+""),h=ae(new L(r+"."+n.slice(1)),l-T).plus(u),L.precision=S,t==null?y(h,S,U,x=!0):h;for(m=h,c=s=h=N(h.minus(1),h.plus(1),l,1),p=y(h.times(h),l,1),i=3;;){if(s=y(s.times(p),l,1),u=c.plus(N(s,new L(i),l,1)),O(u.d).slice(0,l)===O(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(Ue(L,l+2,S).times(o+""))),c=N(c,new L(b),l,1),t==null)if(Ne(c.d,l-T,U,a))L.precision=l+=T,u=s=h=N(m.minus(1),m.plus(1),l,1),p=y(h.times(h),l,1),i=a=1;else return y(c,L.precision=S,U,x=!0);else return L.precision=S,c;c=u,i+=2}}function en(e){return String(e.s*e.s/0)}function gt(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;r++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(r,i),t){if(i-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%w,n<0&&(r+=w),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=w;r<i;)e.d.push(+t.slice(r,r+=w));t=t.slice(r),r=w-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),x&&(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 Un(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Zt.test(t))return gt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(On.test(t))n=16,t=t.toLowerCase();else if(Dn.test(t))n=2;else if(Vn.test(t))n=8;else throw Error(ue+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Jt(r,new r(n),o,o*2)),u=Fe(t,n,Q),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=He(u,l),e.d=u,x=!1,s&&(e=N(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?K(2,c):Ce.pow(2,c))),x=!0,e)}function Gn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:xe(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/ze(5,n)),t=xe(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);n--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function xe(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/w);for(x=!1,c=n.times(n),a=new e(r);;){if(s=N(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new e(t++*t++),l,1),s=a.plus(r),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return x=!0,s.d.length=m+1,s}function ze(e,t){for(var n=e;--t;)n*=e;return n}function tn(e,t){var n,r=t.s<0,i=Y(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return ee=r?4:1,t;if(n=t.divToInt(i),n.isZero())ee=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return ee=Ut(n)?r?2:3:r?4:1,t;ee=Ut(n)?r?1:4:r?3:2}return t.minus(i).abs()}function bt(e,t,n,r){var i,o,s,a,c,u,l,m,p,b=e.constructor,T=n!==void 0;if(T?(G(n,1,ce),r===void 0?r=b.rounding:G(r,0,8)):(n=b.precision,r=b.rounding),!e.isFinite())l=en(e);else{for(l=X(e),s=l.indexOf("."),T?(i=2,t==16?n=n*4-3:t==8&&(n=n*3-2)):i=t,s>=0&&(l=l.replace(".",""),p=new b(1),p.e=l.length-s,p.d=Fe(X(p),10,i),p.e=p.d.length),m=Fe(l,10,i),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=T?"0p+0":"0";else{if(s<0?o--:(e=new b(e),e.d=m,e.e=o,e=N(e,p,n,r,0,i),m=e.d,o=e.e,u=zt),s=m[n],a=i/2,u=u||m[n+1]!==void 0,u=r<4?(s!==void 0||u)&&(r===0||r===(e.s<0?3:2)):s>a||s===a&&(r===4||u||r===6&&m[n-1]&1||r===(e.s<0?8:7)),m.length=n,u)for(;++m[--n]>i-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(T){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(m=Fe(l,i,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 Gt(e,t){if(e.length>t)return e.length=t,!0}function Hn(e){return new this(e).abs()}function zn(e){return new this(e).acos()}function jn(e){return new this(e).acosh()}function Yn(e,t){return new this(e).plus(t)}function Qn(e){return new this(e).asin()}function Zn(e){return new this(e).asinh()}function Xn(e){return new this(e).atan()}function Jn(e){return new this(e).atanh()}function $n(e,t){e=new this(e),t=new this(t);var n,r=this.precision,i=this.rounding,o=r+4;return!e.s||!t.s?n=new this(NaN):!e.d&&!t.d?(n=Y(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Y(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Y(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(e,t,o,1)),t=Y(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(N(e,t,o,1)),n}function er(e){return new this(e).cbrt()}function tr(e){return y(e=new this(e),e.e+1,2)}function nr(e,t,n){return new this(e).clamp(t,n)}function rr(e){if(!e||typeof e!="object")throw Error(Ge+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,ce,"rounding",0,8,"toExpNeg",-Te,0,"toExpPos",0,Te,"maxE",0,Te,"minE",-Te,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=pt[n]),(r=e[n])!==void 0)if(q(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(ue+n+": "+r);if(n="crypto",i&&(this[n]=pt[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(Yt);else this[n]=!1;else throw Error(ue+n+": "+r);return this}function ir(e){return new this(e).cos()}function or(e){return new this(e).cosh()}function nn(e){var t,n,r;function i(o){var s,a,c,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Ht(o)){u.s=o.s,x?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e<i.minE?(u.e=0,u.d=[0]):(u.e=o.e,u.d=o.d.slice()):(u.e=o.e,u.d=o.d?o.d.slice():o.d);return}if(c=typeof o,c==="number"){if(o===0){u.s=1/o<0?-1:1,u.e=0,u.d=[0];return}if(o<0?(o=-o,u.s=-1):u.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;x?s>i.maxE?(u.e=NaN,u.d=null):s<i.minE?(u.e=0,u.d=[0]):(u.e=s,u.d=[o]):(u.e=s,u.d=[o]);return}else if(o*0!==0){o||(u.s=NaN),u.e=NaN,u.d=null;return}return gt(u,o.toString())}else if(c!=="string")throw Error(ue+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),Zt.test(o)?gt(u,o):Un(u,o)}if(i.prototype=d,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=rr,i.clone=nn,i.isDecimal=Ht,i.abs=Hn,i.acos=zn,i.acosh=jn,i.add=Yn,i.asin=Qn,i.asinh=Zn,i.atan=Xn,i.atanh=Jn,i.atan2=$n,i.cbrt=er,i.ceil=tr,i.clamp=nr,i.cos=ir,i.cosh=or,i.div=sr,i.exp=ar,i.floor=ur,i.hypot=cr,i.ln=lr,i.log=mr,i.log10=fr,i.log2=pr,i.max=dr,i.min=gr,i.mod=br,i.mul=hr,i.pow=yr,i.random=wr,i.round=Tr,i.sign=xr,i.sin=Pr,i.sinh=Ar,i.sqrt=kr,i.sub=Sr,i.sum=Ir,i.tan=Br,i.tanh=Lr,i.trunc=Nr,e===void 0&&(e={}),e&&e.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function sr(e,t){return new this(e).div(t)}function ar(e){return new this(e).exp()}function ur(e){return y(e=new this(e),e.e+1,3)}function cr(){var e,t,n=new this(0);for(x=!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 x=!0,new this(1/0);n=t}return x=!0,n.sqrt()}function Ht(e){return e instanceof Ce||e&&e.toStringTag===Qt||!1}function lr(e){return new this(e).ln()}function mr(e,t){return new this(e).log(t)}function pr(e){return new this(e).log(2)}function fr(e){return new this(e).log(10)}function dr(){return $t(this,arguments,"lt")}function gr(){return $t(this,arguments,"gt")}function br(e,t){return new this(e).mod(t)}function hr(e,t){return new this(e).mul(t)}function yr(e,t){return new this(e).pow(t)}function wr(e){var t,n,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:G(e,1,ce),r=Math.ceil(e/w),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(r));o<r;)i=t[o],i>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(r*=4);o<r;)i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((t[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Yt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=w,r&&e&&(i=K(10,w-e),a[o]=(r/i|0)*i);a[o]===0;o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;a[0]===0;n-=w)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<w&&(n-=w-r)}return s.e=n,s.d=a,s}function Tr(e){return y(e=new this(e),e.e+1,this.rounding)}function xr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Pr(e){return new this(e).sin()}function Ar(e){return new this(e).sinh()}function kr(e){return new this(e).sqrt()}function Sr(e,t){return new this(e).sub(t)}function Ir(){var e=0,t=arguments,n=new this(t[e]);for(x=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return x=!0,y(n,this.precision,this.rounding)}function Br(e){return new this(e).tan()}function Lr(e){return new this(e).tanh()}function Nr(e){return y(e=new this(e),e.e+1,1)}d[Symbol.for("nodejs.util.inspect.custom")]=d.toString;d[Symbol.toStringTag]="Decimal";var Ce=d.constructor=nn(pt);We=new Ce(We);qe=new Ce(qe);var Pe=Ce;import{TOKEN_PROGRAM_ID as ki}from"@solana/spl-token";import{ComputeBudgetProgram as zo,Keypair as Qo,PublicKey as sn,Transaction as yt,TransactionMessage as Jo,VersionedTransaction as $o}from"@solana/web3.js";import{get as rn,set as Cr}from"lodash";var ht=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}},on={},Mr={};function V(e){let t=rn(on,e);if(!t){let n=rn(Mr,e);t=new ht({name:e,logLevel:n}),Cr(on,e,t)}return t}var je={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as rs}from"@solana/spl-token";var te=V("Raydium_txUtil"),Er=1644;function _r(e,t){e.length<1&&te.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&te.logWithError(`no signers provided:, ${t.toString()}`);let n=new yt;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Er}catch{return!1}}async function an(e,t,n,r=!0){let i=new sn("RaydiumSimuLateTransaction11111111111111111"),o=[],s=new yt;s.feePayer=i;for(let u of t)_r([...s.instructions,u],[i])||(o.push(s),s=new yt,s.feePayer=i),s.add(u);s.instructions.length>0&&o.push(s);let a=[];try{if(a=await Rr(e,o,r),a.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&te.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of a)if(te.debug("simulate result:",u),u.logs){let l=u.logs.filter(m=>m&&m.includes(n));te.debug("filteredLog:",c),l.length||te.logWithError("simulate log not match keyword","keyword",n),c.push(...l)}return c}function un(e,t){let n=e.match(/{["\w:,]+}/g);return!n||n.length!==1?te.logWithError(`simulate log fail to match json, keyword: ${t}`):n[0]}function ne(e,t){let r=new RegExp(`"${t}":(\\d+)`,"g").exec(e);return!r||r.length!==2?te.logWithError(`simulate log fail to match key", key: ${t}`):r[1]}function Ae(e,t){let[n,r]=sn.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}async function Rr(e,t,n){let r=[];if(n){let i=await e.getLatestBlockhash(),o=[];for(let u of t){u.recentBlockhash=i.blockhash,u.lastValidBlockHeight=i.lastValidBlockHeight;let m=u._compile().serialize(),b=u._serialize(m).toString("base64");o.push(b)}let s=o.map(u=>{let l=e._buildArgs([u],void 0,"base64");return{methodName:"simulateTransaction",args:l}}),a=[],c=20;for(let u=0;u<Math.ceil(s.length/c);u++)a.push(s.slice(u*c,(u+1)*c));r=await(await Promise.all(a.map(async u=>(await e._rpcBatchRequest(u)).map(l=>l.result.value)))).flat()}else try{r=await Promise.all(t.map(async i=>await(await e.simulateTransaction(i)).value))}catch(i){i instanceof Error&&te.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:i.message})}return r}import{PublicKey as Jc}from"@solana/web3.js";import{MintLayout as el,TOKEN_PROGRAM_ID as nl}from"@solana/spl-token";import ni from"big.js";import Xe from"bn.js";import ie from"bn.js";import{PublicKey as Kr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var wt={chainId:101,address:Kr.default.toBase58(),programId:cn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:cn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as kt}from"@solana/web3.js";import{PublicKey as _,SystemProgram as ln,SYSVAR_RENT_PUBKEY as vr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dr}from"@solana/spl-token";function f({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var ms=[f({pubkey:Dr,isWritable:!1}),f({pubkey:ln.programId,isWritable:!1}),f({pubkey:vr,isWritable:!1})];function xt({publicKey:e,transformSol:t}){let n=Pt(e.toString());if(n instanceof _)return t&&n.equals(Me)?Tt:n;if(t&&n.toString()===Me.toBase58())return Tt;if(typeof n=="string"){if(n===_.default.toBase58())return _.default;try{return new _(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pt(e){try{return new _(e)}catch{return e}}var ps=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),fs=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),mn=new _("SysvarRent111111111111111111111111111111111"),ds=new _("SysvarC1ock11111111111111111111111111111111"),gs=new _("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bs=new _("Sysvar1nstructions1111111111111111111111111"),hs=ln.programId,ys=new _("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ws=new _("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ts=new _("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),xs=new _("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ps=new _("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),As=new _("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ks=new _("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ss=new _("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Is=new _("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bs=new _("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ls=new _("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Tt=new _("So11111111111111111111111111111111111111112"),Me=_.default;function At(e){return xt({publicKey:e,transformSol:!0})}var St=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Me.toBase58()||t instanceof kt&&Me.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new kt(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=i||t.toString().substring(0,6),this.mint=o?kt.default:xt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=St;me.WSOL=new St(Z(H({},le),{mint:le.address}));var It=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},Ye=It;Ye.SOL=new It(wt);import Ze from"big.js";import Wr from"bn.js";import qr from"decimal.js-light";import Ee from"bn.js";var pn=9007199254740991;function M(e){let t=V("Raydium_parseBigNumberish");if(e instanceof Ee)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new Ee(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=pn||e<=-pn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new Ee(String(e))):typeof e=="bigint"?new Ee(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new Ee(0))}import Or from"toformat";var Vr=Or,_e=Vr;var Qe=V("module/fraction"),Bt=_e(Ze),Re=_e(qr),Ur={[0]:Re.ROUND_DOWN,[1]:Re.ROUND_HALF_UP,[2]:Re.ROUND_UP},Gr={[0]:Ze.roundDown,[1]:Ze.roundHalfUp,[2]:Ze.roundUp},I=class{constructor(t,n=new Wr(1)){this.numerator=M(t),this.denominator=M(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new I(this.denominator,this.numerator)}add(t){let n=t instanceof I?t:new I(M(t));return this.denominator.eq(n.denominator)?new I(this.numerator.add(n.numerator),this.denominator):new I(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof I?t:new I(M(t));return this.denominator.eq(n.denominator)?new I(this.numerator.sub(n.numerator),this.denominator):new I(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof I?t:new I(M(t));return new I(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof I?t:new I(M(t));return new I(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<=0&&Qe.logWithError(`${t} is not positive.`),Re.set({precision:t+1,rounding:Ur[r]});let i=new Re(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return i.toFormat(i.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||Qe.logWithError(`${t} is not an integer.`),t<0&&Qe.logWithError(`${t} is negative.`),Bt.DP=t,Bt.RM=Gr[r]||1,new Bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Hr from"bn.js";var fn=new I(new Hr(100)),ke=class extends I{toSignificant(t=5,n,r){return this.mul(fn).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(fn).toFixed(t,n,r)}};var zr=V("Raydium_price"),re=class extends I{constructor(n){let{baseToken:r,quoteToken:i,numerator:o,denominator:s}=n;super(o,s);this.baseToken=r,this.quoteToken=i,this.scalar=new I(Lt(r.decimals),Lt(i.decimals))}get raw(){return new I(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new re({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&zr.logWithError("mul token not equals");let r=super.mul(n);return new re({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:r.denominator,numerator:r.numerator})}toSignificant(n=this.quoteToken.decimals,r,i){return this.adjusted.toSignificant(n,r,i)}toFixed(n=this.quoteToken.decimals,r,i){return this.adjusted.toFixed(n,r,i)}};import{PublicKey as jr}from"@solana/web3.js";import Yr from"bn.js";function dn(e){return typeof e=="object"&&e!==null&&![me,J,jr,I,Yr,re,ke].some(t=>typeof t=="object"&&e instanceof t)}function de(e){return typeof e=="string"?Pt(e):Array.isArray(e)?e.map(t=>de(t)):dn(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,de(n)])):e}var Nt=new ie(0),gn=new ie(1),Ba=new ie(2),La=new ie(3),Na=new ie(5),Ct=new ie(10),Ca=new ie(100),Ma=new ie(1e3),Ea=new ie(1e4);function Lt(e){return Ct.pow(M(e))}import{PublicKey as Va}from"@solana/web3.js";import{MINT_SIZE as Ua,TOKEN_PROGRAM_ID as Ga,getTransferFeeConfig as Ha,unpackMint as za}from"@solana/spl-token";var ja=V("Raydium_accountInfo_util");import{PublicKey as eu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nu}from"@solana/spl-token";import{PublicKey as P}from"@solana/web3.js";var su=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),au=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),uu=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),cu=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),lu=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mu=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),pu=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),fu=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),du=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),gu=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bu=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hu=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yu=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),wu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Tu=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),xu=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Pu=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Au=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ku=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Su=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Iu=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Qr=new P("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Zr=new P("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Xr=new P("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Lu=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Jr=new P("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Nu=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),$r=new P("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Cu={SERUM_MARKET:P.default,OPENBOOK_MARKET:new P("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:P.default,FarmV3:new P("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new P("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new P("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new P("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new P("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new P("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),CLMM_LOCK_PROGRAM_ID:new P("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),CLMM_LOCK_AUTH_ID:new P("8qmHNvu2Kr2C7U8mJL4Vz1vTDxMhVuXKREwU7TNoaVEo"),Router:new P("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:Qr,CREATE_CPMM_POOL_AUTH:Zr,CREATE_CPMM_POOL_FEE_ACC:Xr,FEE_DESTINATION_ID:new P("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR"),LOCK_CPMM_PROGRAM:Jr,LCOK_CPMM_AUTH:$r};import _u from"bn.js";import{PublicKey as ei,AddressLookupTableAccount as bn}from"@solana/web3.js";var ti={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new bn({key:new ei("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:bn.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 Xu,sendAndConfirmTransaction as Ju,SystemProgram as tc,Transaction as nc,TransactionMessage as ic,VersionedTransaction as oc}from"@solana/web3.js";import ac from"axios";var ri=V("Raydium_amount"),hn=_e(ni);function ii(e,t){let n="0",r="0";if(e.includes(".")){let i=e.split(".");i.length===2?([n,r]=i,r=r.padEnd(t,"0")):ri.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var J=class extends I{constructor(n,r,i=!0,o){let s=new Xe(0),a=Ct.pow(new Xe(n.decimals));if(i)s=M(r);else{let c=new Xe(0),u=new Xe(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,m]=ii(r.toString(),n.decimals);c=M(l),u=M(m)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=V(o||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new J(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new J(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,r,i=0){return super.toSignificant(n,r,i)}toFixed(n=this.token.decimals,r,i=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,r,i)}toExact(n={groupSeparator:""}){return hn.DP=this.token.decimals,new hn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};var Je=i=>{var o=i,{address:e,programId:t,decimals:n}=o,r=tt(o,["address","programId","decimals"]);return H({chainId:101,address:At(e).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:n,tags:[],extensions:r.extensions||{}},r)};import{PublicKey as B,SystemProgram as xn,SYSVAR_RENT_PUBKEY as hi,TransactionInstruction as oe}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as yi,TOKEN_PROGRAM_ID as Ie}from"@solana/spl-token";import{PublicKey as oi}from"@solana/web3.js";var Se=new oi("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),be=5e4,si=D([g("x"),g("y"),g("price")]),ai=D([g("accountType"),g("status"),g("multiplier"),g("validDataCount"),Le(si,be,"DataElement")]);function ui(e,t){return[0,be-2]}function ci(e){return[0,be-2]}function li(e){return[0,be-2]}function mi(e,t,n){let[r,i]=ui(t,n),o=r,s=i,a=0,c=t*e.multiplier/n;for(;o<=s;){if(a=Math.floor((s+o)/2),a===0||a>=be-2)return[a,a,!1];let u=e.DataElement[a].x*e.multiplier/e.DataElement[a].y,l=e.DataElement[a-1].x*e.multiplier/e.DataElement[a-1].y,m=e.DataElement[a+1].x*e.multiplier/e.DataElement[a+1].y;if(c===u)return[a,a,!0];if(c===l)return[a-1,a-1,!0];if(c===m)return[a+1,a+1,!0];if(c<l)s=a-1;else{if(c>l&&c<u)return[a-1,a,!0];if(c>u&&c<m)return[a,a+1,!0];o=a+1}}return[a,a,!1]}function Mt(e,t,n){let[r,i,o]=mi(e,t,n);if(!o)return 0;if(r===i){let s=e.DataElement[r].x;return t*e.multiplier/s}else{let s=e.DataElement[r].x,a=e.DataElement[r].y,c=e.DataElement[i].x,u=e.DataElement[i].y,l=n*(c*a-s*u),m=s*l,p=(c-s)*(t*a-s*n)*u,b=m+p;return t*e.multiplier*l/b}}function ge(e,t,n){return t*e.multiplier/n}function yn(e,t,n){return t*n/e.multiplier}function pi(e,t){let[n,r]=ci(t),i=n,o=r,s=0,a=t;for(;i<o;){if(s=Math.floor((o+i)/2),s<=0||s>be-2)return[s,s,!1];let c=e.DataElement[s].x,u=e.DataElement[s-1].x,l=e.DataElement[s+1].x;if(a===c)return[s,s,!0];if(a===u)return[s-1,s-1,!0];if(a===l)return[s+1,s+1,!0];if(a<u)o=s-1;else{if(a>u&&a<c)return[s-1,s,!0];if(a>c&&a<l)return[s,s+1,!0];i=s+1}}return[s,s,!1]}function fi(e,t){let[n,r]=li(t),i=n,o=r,s=0,a=t;for(;i<=o;){if(s=Math.floor((o+i)/2),s<=0||s>=be-2)return[s,s,!1];let c=e.DataElement[s].y,u=e.DataElement[s-1].y,l=e.DataElement[s+1].y;if(a===c)return[s,s,!0];if(a===u)return[s-1,s-1,!0];if(a===l)return[s+1,s+1,!0];if(a<l)i=s+1;else{if(a<u&&a>c)return[s-1,s,!0];if(a<c&&a>l)return[s,s+1,!0];o=s-1}}return[s,s,!1]}function wn(e,t,n,r){let i=r?t+n:t-n,[o,s,a]=pi(e,i);if(!a)return[0,0,!1,a];if(o===s)return[e.DataElement[s].price,e.DataElement[s].y,!1,a];{let c=e.DataElement[o].x,u=e.DataElement[s].x,l=e.DataElement[o].price,m=e.DataElement[s].price,p=e.DataElement[o].y,b=e.DataElement[s].y;if(t>=c&&t<=u)return r?[m,b,!0,a]:[l,p,!0,a];{let T,h;return r?(T=l+(m-l)*(t-c)/(u-c),h=p-(i-c)*e.multiplier/m):(T=l+(m-l)*(t-c)/(u-c),h=b+(u-i)*e.multiplier/l),[T,h,!1,a]}}}function di(e,t,n,r){let i=r?t-n:t+n,[o,s,a]=fi(e,i);if(!a)return[0,0,!1,a];if(o===s)return[e.DataElement[s].price,e.DataElement[s].x,!1,a];{let c=e.DataElement[o].x,u=e.DataElement[s].x,l=e.DataElement[o].price,m=e.DataElement[s].price,p=e.DataElement[o].y,b=e.DataElement[s].y;if(t>=b&&t<=p)return r?[m,u,!0,a]:[l,c,!0,a];{let T,h;return r?(T=l+(m-l)*(p-t)/(p-b),h=c+m*(p-i)/e.multiplier):(T=l+(m-l)*(p-t)/(p-b),h=u-l*(i-b)/e.multiplier),[T,h,!1,a]}}}function gi(e,t){let n=wn(e,t,0,!1);return n[3]?n[0]:0}function ml(e,t,n,r){let i=Mt(e,t,n),o=ge(e,t,i),s=ge(e,n,i),a=ge(e,r,i),c=!0,[u,l,m,p]=wn(e,o,a,c);if(!p)return 0;if(m)return r*e.multiplier/u;{let b=s-l;return yn(e,b,i)}}function pl(e,t,n,r){let i=Mt(e,t,n),o=ge(e,t,i),s=ge(e,n,i),a=ge(e,r,i),c=!1,[u,l,m,p]=di(e,s,a,c);if(!p)return 0;if(m)return r*u/e.multiplier;{let b=o-l;return yn(e,b,i)}}function bi(e){let t=ai.decode(e);return{accountType:t.accountType.toNumber(),status:t.status.toNumber(),multiplier:t.multiplier.toNumber(),validDataCount:t.validDataCount.toNumber(),DataElement:t.DataElement.map(n=>({x:n.x.toNumber(),y:n.y.toNumber(),price:n.price.toNumber()}))}}function fl(e,t,n,r){let i=gi(e,ge(e,t,Mt(e,t,n)))/e.multiplier;return r?i:1/i}var $e=class{constructor({connection:t}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=t}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let t=await this.connection.getAccountInfo(Se);t&&(this._layoutData=bi(t==null?void 0:t.data))}}};var Tn=V("Raydium_liquidity_instruction");function Sl(e){let{poolInfo:t,poolKeys:n,userKeys:r,baseAmountIn:i,quoteAmountIn:o,fixedSide:s,otherAmountMin:a}=e,c=Buffer.alloc(ct.span);ct.encode({instruction:3,baseAmountIn:M(i),quoteAmountIn:M(o),otherAmountMin:M(a),fixedSide:s==="base"?Nt:gn},c);let u=[f({pubkey:Ie,isWritable:!1}),f({pubkey:new B(t.id)}),f({pubkey:new B(n.authority),isWritable:!1}),f({pubkey:new B(n.openOrders),isWritable:!1}),f({pubkey:new B(n.targetOrders)}),f({pubkey:new B(t.lpMint.address)}),f({pubkey:new B(n.vault.A)}),f({pubkey:new B(n.vault.B)})];return t.pooltype.includes("StablePool")&&u.push(f({pubkey:Se})),u.push(f({pubkey:new B(t.marketId),isWritable:!1}),f({pubkey:r.baseTokenAccount}),f({pubkey:r.quoteTokenAccount}),f({pubkey:r.lpTokenAccount}),f({pubkey:r.owner,isWritable:!1,isSigner:!0}),f({pubkey:new B(n.marketEventQueue),isWritable:!1})),new oe({programId:new B(t.programId),keys:u,data:c})}function Il(e){let{poolInfo:t,poolKeys:n,userKeys:r,lpAmount:i,baseAmountMin:o,quoteAmountMin:s}=e,a=de(n),c=4;if(t.pooltype.includes("StablePool")&&(c=5),c===4||c===5){let u=Buffer.alloc(lt.span);lt.encode({instruction:4,lpAmount:M(i),baseAmountMin:M(o),quoteAmountMin:M(s)},u);let l=[f({pubkey:Ie,isWritable:!1}),f({pubkey:a.id}),f({pubkey:a.authority,isWritable:!1}),f({pubkey:a.openOrders}),f({pubkey:a.targetOrders}),f({pubkey:a.mintLp.address}),f({pubkey:a.vault.A}),f({pubkey:a.vault.B})];return c===5?l.push(f({pubkey:Se})):(l.push(f({pubkey:a.id})),l.push(f({pubkey:a.id}))),l.push(f({pubkey:a.marketProgramId,isWritable:!1}),f({pubkey:a.marketId}),f({pubkey:a.marketBaseVault}),f({pubkey:a.marketQuoteVault}),f({pubkey:a.marketAuthority,isWritable:!1}),f({pubkey:r.lpTokenAccount}),f({pubkey:r.baseTokenAccount}),f({pubkey:r.quoteTokenAccount}),f({pubkey:r.owner,isWritable:!1,isSigner:!0}),f({pubkey:a.marketEventQueue}),f({pubkey:a.marketBids}),f({pubkey:a.marketAsks})),new oe({programId:a.programId,keys:l,data:u})}return new oe({programId:a.programId,keys:[]})}function Bl({programId:e,ammId:t,ammAuthority:n,ammOpenOrders:r,lpMint:i,coinMint:o,pcMint:s,coinVault:a,pcVault:c,withdrawQueue:u,ammTargetOrders:l,poolTempLp:m,marketProgramId:p,marketId:b,userWallet:T,userCoinVault:h,userPcVault:R,userLpVault:L,nonce:U,openTime:S,coinAmount:v,pcAmount:ye,ammConfigId:z,feeDestinationId:Be}){let pe=D([W("instruction"),W("nonce"),g("openTime"),g("pcAmount"),g("coinAmount")]),fe=[{pubkey:Ie,isSigner:!1,isWritable:!1},{pubkey:yi,isSigner:!1,isWritable:!1},{pubkey:xn.programId,isSigner:!1,isWritable:!1},{pubkey:mn,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,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:l,isSigner:!1,isWritable:!0},{pubkey:z,isSigner:!1,isWritable:!1},{pubkey:Be,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:T,isSigner:!0,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:R,isSigner:!1,isWritable:!0},{pubkey:L,isSigner:!1,isWritable:!0}],we=Buffer.alloc(pe.span);return pe.encode({instruction:1,nonce:U,openTime:S,coinAmount:v,pcAmount:ye},we),{instruction:new oe({keys:fe,programId:e,data:we}),instructionType:je.AmmV4CreatePool}}function Ll(e){let t=D([W("instruction"),W("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);let r=[f({pubkey:new B(e.id),isWritable:!1}),f({pubkey:new B(e.authority),isWritable:!1}),f({pubkey:new B(e.openOrders),isWritable:!1}),f({pubkey:new B(e.vault.A),isWritable:!1}),f({pubkey:new B(e.vault.B),isWritable:!1}),f({pubkey:new B(e.mintLp.address),isWritable:!1}),f({pubkey:new B(e.marketId),isWritable:!1}),f({pubkey:new B(e.marketEventQueue),isWritable:!1})];return new oe({programId:new B(e.programId),keys:r,data:n})}function wi({poolKeys:e,userKeys:t,amountIn:n,minAmountOut:r},i){let o=de(e),s=Buffer.alloc(st.span);st.encode({instruction:9,amountIn:M(n),minAmountOut:M(r)},s);let a=[f({pubkey:Ie,isWritable:!1}),f({pubkey:o.id}),f({pubkey:o.authority,isWritable:!1}),f({pubkey:o.openOrders})];return i===4&&a.push(f({pubkey:o.targetOrders})),a.push(f({pubkey:o.vault.A}),f({pubkey:o.vault.B})),i===5&&a.push(f({pubkey:Se})),a.push(f({pubkey:o.marketProgramId,isWritable:!1}),f({pubkey:o.marketId}),f({pubkey:o.marketBids}),f({pubkey:o.marketAsks}),f({pubkey:o.marketEventQueue}),f({pubkey:o.marketBaseVault}),f({pubkey:o.marketQuoteVault}),f({pubkey:o.marketAuthority,isWritable:!1}),f({pubkey:t.tokenAccountIn}),f({pubkey:t.tokenAccountOut}),f({pubkey:t.owner,isWritable:!1,isSigner:!0})),new oe({programId:o.programId,keys:a,data:s})}function Ti({poolKeys:e,userKeys:t,maxAmountIn:n,amountOut:r},i){let o=de(e),s=Buffer.alloc(at.span);at.encode({instruction:11,maxAmountIn:M(n),amountOut:M(r)},s);let a=[f({pubkey:Ie,isWritable:!1}),f({pubkey:o.id}),f({pubkey:o.authority,isWritable:!1}),f({pubkey:o.openOrders}),f({pubkey:o.targetOrders}),f({pubkey:o.vault.A}),f({pubkey:o.vault.B})];return i===5&&a.push(f({pubkey:Se})),a.push(f({pubkey:o.marketProgramId,isWritable:!1}),f({pubkey:o.marketId}),f({pubkey:o.marketBids}),f({pubkey:o.marketAsks}),f({pubkey:o.marketEventQueue}),f({pubkey:o.marketBaseVault}),f({pubkey:o.marketQuoteVault}),f({pubkey:o.marketAuthority,isWritable:!1}),f({pubkey:t.tokenAccountIn}),f({pubkey:t.tokenAccountOut}),f({pubkey:t.owner,isWritable:!1,isSigner:!0})),new oe({programId:o.programId,keys:a,data:s})}function Nl(e){let{poolKeys:t,version:n,userKeys:r,amountIn:i,amountOut:o,fixedSide:s}=e;if(n===4||n===5){let a={poolKeys:t,userKeys:r};if(s==="in")return wi(Z(H({},a),{amountIn:i,minAmountOut:o}),n);if(s==="out")return Ti(Z(H({},a),{maxAmountIn:i,amountOut:o}),n);Tn.logWithError("invalid params","params",e)}throw Tn.logWithError("invalid version","poolKeys.version",n),new Error("invalid version")}function Cl({poolKeys:e,userKeys:t,startTime:n}){let r=Buffer.alloc(ut.span);ut.encode({instruction:0,nonce:5,startTime:M(n)},r);let i=de(e),o=[f({pubkey:Ie,isWritable:!1}),f({pubkey:xn.programId,isWritable:!1}),f({pubkey:hi,isWritable:!1}),f({pubkey:i.id}),f({pubkey:i.authority,isWritable:!1}),f({pubkey:i.openOrders}),f({pubkey:i.mintLp.address}),f({pubkey:i.mintA.address,isWritable:!1}),f({pubkey:i.mintB.address,isWritable:!1}),f({pubkey:i.vault.A,isWritable:!1}),f({pubkey:i.vault.B,isWritable:!1}),f({pubkey:i.id}),f({pubkey:i.targetOrders}),f({pubkey:t.lpTokenAccount}),f({pubkey:i.id,isWritable:!1}),f({pubkey:i.marketProgramId,isWritable:!1}),f({pubkey:i.marketId,isWritable:!1}),f({pubkey:t.payer,isSigner:!0})];return new oe({programId:i.programId,keys:o,data:r})}function Pn({poolKeys:e}){let t=D([W("instruction"),W("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);let r=[f({pubkey:new B(e.id),isWritable:!1}),f({pubkey:new B(e.authority),isWritable:!1}),f({pubkey:new B(e.openOrders),isWritable:!1}),f({pubkey:new B(e.vault.A),isWritable:!1}),f({pubkey:new B(e.vault.B),isWritable:!1}),f({pubkey:new B(e.mintLp.address),isWritable:!1}),f({pubkey:new B(e.marketId),isWritable:!1}),f({pubkey:new B(e.marketEventQueue),isWritable:!1})];return{instruction:new oe({programId:new B(e.programId),keys:r,data:n})}}import{PublicKey as xi}from"@solana/web3.js";var Pi=V("Raydium_liquidity_serum");function An({programId:e,marketId:t}){let n=[t.toBuffer()],r=0,i;for(;r<100;){try{let o=n.concat(Buffer.from([r]),Buffer.alloc(7));i=xi.createProgramAddressSync(o,e)}catch(o){if(o instanceof TypeError)throw o;r++;continue}return{publicKey:i,nonce:r}}throw Pi.logWithError("unable to find a viable program address nonce","params",{programId:e,marketId:t}),new Error("unable to find a viable program address nonce")}function kn({programId:e}){let{publicKey:t}=Ae([Buffer.from("amm_config_account_seed","utf-8")],e);return t}function he({name:e,programId:t,marketId:n}){let{publicKey:r}=Ae([t.toBuffer(),n.toBuffer(),Buffer.from(e,"utf-8")],t);return r}function Si({programId:e,marketId:t}){let{publicKey:n}=Ae([e.toBuffer(),t.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],e);return n}function Ii({programId:e}){return Ae([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],e)}function zl({version:e,marketVersion:t,marketId:n,baseMint:r,quoteMint:i,baseDecimals:o,quoteDecimals:s,programId:a,marketProgramId:c}){let u=he({name:"amm_associated_seed",programId:a,marketId:n}),l=he({name:"lp_mint_associated_seed",programId:a,marketId:n}),{publicKey:m,nonce:p}=Ii({programId:a}),b=he({name:"coin_vault_associated_seed",programId:a,marketId:n}),T=he({name:"pc_vault_associated_seed",programId:a,marketId:n}),h=he({name:"temp_lp_token_associated_seed",programId:a,marketId:n}),R=Si({programId:a,marketId:n}),L=he({name:"target_associated_seed",programId:a,marketId:n}),U=he({name:"withdraw_associated_seed",programId:a,marketId:n}),{publicKey:S}=An({programId:c,marketId:n});return{id:u,baseMint:r,quoteMint:i,lpMint:l,baseDecimals:o,quoteDecimals:s,lpDecimals:o,version:e,programId:a,authority:m,nonce:p,baseVault:b,quoteVault:T,lpVault:h,openOrders:R,targetOrders:L,withdrawQueue:U,marketVersion:t,marketProgramId:c,marketId:n,marketAuthority:S,lookupTableAccount:Ai.default,configId:kn({programId:a})}}var Et;async function jl({connection:e,poolKeysList:t,config:n}){Et||(Et=new $e({connection:e}),await Et.initStableModelLayout());let r=t.map(s=>Pn({poolKeys:s}));return(await an(e,r.map(s=>s.instruction),"GetPoolData")).map(s=>{let a=un(s,"GetPoolData"),c=new Ke(ne(a,"status")),u=Number(ne(a,"coin_decimals")),l=Number(ne(a,"pc_decimals")),m=Number(ne(a,"lp_decimals")),p=new Ke(ne(a,"pool_coin_amount")),b=new Ke(ne(a,"pool_pc_amount")),T=new Ke(ne(a,"pool_lp_supply")),h="0";try{h=ne(a,"pool_open_time")}catch{}return{status:c,baseDecimals:u,quoteDecimals:l,lpDecimals:m,baseReserve:p,quoteReserve:b,lpSupply:T,startTime:new Ke(h)}})}var _t={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},Yl=e=>{let t={},n=ki.toBase58();return Object.keys(e).map(r=>{let i=e[r],[o,s]=[i.baseMint.toBase58(),i.quoteMint.toBase58()];t[r]={id:r,version:4,status:i.status.toNumber(),programId:i.programId.toBase58(),mintA:Je({address:o,programId:n,decimals:i.baseDecimal.toNumber()}),mintB:Je({address:s,programId:n,decimals:i.quoteDecimal.toNumber()}),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:i.poolPrice.toNumber(),mintAmountA:new Pe(i.mintAAmount.toString()).div(10**i.baseDecimal.toNumber()).toNumber(),mintAmountB:new Pe(i.mintBAmount.toString()).div(10**i.quoteDecimal.toNumber()).toNumber(),baseReserve:i.baseReserve,quoteReserve:i.quoteReserve,feeRate:new Pe(i.tradeFeeNumerator.toString()).div(i.tradeFeeDenominator.toString()).toNumber(),openTime:i.poolOpenTime.toString(),tvl:0,day:_t,week:_t,month:_t,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:i.marketId.toBase58(),configId:kn({programId:i.programId}).toBase58(),lpPrice:0,lpAmount:new Pe(i.lpReserve.toString()).div(10**Math.min(i.baseDecimal.toNumber(),i.quoteDecimal.toNumber())).toNumber(),lpMint:Je({address:i.lpMint.toBase58(),programId:n,decimals:Math.min(i.baseDecimal.toNumber(),i.quoteDecimal.toNumber())}),burnPercent:0}}),t};export{si as DataElement,Ci as LIQUIDITY_FEES_DENOMINATOR,Ni as LIQUIDITY_FEES_NUMERATOR,Ln as LIQUIDITY_VERSION_TO_SERUM_VERSION,Do as LIQUIDITY_VERSION_TO_STATE_LAYOUT,Se as MODEL_DATA_PUBKEY,$e as StableLayout,ct as addLiquidityLayout,Oo as createPoolFeeLayout,Bl as createPoolV4InstructionV2,vo as createPoolV4Layout,jl as fetchMultipleInfo,st as fixedSwapInLayout,at as fixedSwapOutLayout,bi as formatLayout,kn as getAssociatedConfigId,Si as getAssociatedOpenOrders,zl as getAssociatedPoolKeys,pl as getDxByDyBaseIn,ml as getDyByDxBaseIn,Ii as getLiquidityAssociatedAuthority,he as getLiquidityAssociatedId,fl as getStablePrice,ut as initPoolLayout,Kn as liquidityStateV4Layout,vn as liquidityStateV5Layout,Nl as makeAMMSwapInstruction,Sl as makeAddLiquidityInstruction,Cl as makeInitPoolInstructionV4,Pn as makeSimulatePoolInfoInstruction,wi as makeSwapFixedInInstruction,Ti as makeSwapFixedOutInstruction,ai as modelDataInfoLayout,Il as removeLiquidityInstruction,lt as removeLiquidityLayout,Ll as simulatePoolInfoInstruction,Yl as toAmmComputePoolInfo};
//# sourceMappingURL=index.mjs.map