UNPKG

raydium-sdk-v2-custody

Version:

An SDK for building applications on top of Raydium.

2 lines 73 kB
var Sn=Object.defineProperty,In=Object.defineProperties;var Bn=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Rt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var Kt=(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={}))Rt.call(t,n)&&Kt(e,n,t[n]);if(Oe)for(var n of Oe(t))Dt.call(t,n)&&Kt(e,n,t[n]);return e},Z=(e,t)=>In(e,Bn(t));var tt=(e,t)=>{var n={};for(var r in e)Rt.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&&Dt.call(e,r)&&(n[r]=e[r]);return n};import vt from"bn.js";var Ci=new vt(25),Ni=new vt(1e4),Ln={4:3,5:3};import{PublicKey as Kn}from"@solana/web3.js";import Wt,{isBN as qt}from"bn.js";import{bits as _i,BitStructure as Ki,blob as Cn,Blob as Ri,cstr as Di,f32 as vi,f32be as Oi,f64 as Vi,f64be as Fi,greedy as Wi,Layout as Nn,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=Nn,Ot=En;var Vt=_n;var Ft=Mn;var rt=Cn;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 Kn(t),t=>t.toBuffer(),e)}var ot=class extends Ot{decode(t,n){return super.decode(t,n)}};function v(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=v([W("instruction"),g("amountIn"),g("minAmountOut")]),at=v([W("instruction"),g("maxAmountIn"),g("amountOut")]),Do=v([W("instruction"),W("nonce")]),ut=v([W("instruction"),W("nonce"),g("startTime")]),Rn=v([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")]),Dn=v([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=v([W("instruction"),g("baseAmountIn"),g("quoteAmountIn"),g("fixedSide"),g("otherAmountMin")]),lt=v([W("instruction"),g("lpAmount"),g("baseAmountMin"),g("quoteAmountMin")]),vo={4:Rn,5:Dn},Oo=v([g("fee")]);import{PublicKey as Ai}from"@solana/web3.js";import Re 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,P=!0,Ge="[DecimalError] ",ue=Ge+"Invalid argument: ",jt=Ge+"Precision limit exceeded",Yt=Ge+"crypto unavailable",Qt="[object Decimal]",q=Math.floor,R=Math.pow,vn=/^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(P=!1,o=l.s*R(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=R(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=C(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 P=!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 C(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return y(C(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=Pe(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=Pe(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=Pe(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,C(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,P=!1,n=n.times(n).minus(1).sqrt().plus(n),P=!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,P=!1,n=n.times(n).plus(1).sqrt().plus(n),P=!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=C(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(P=!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)),P=!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(P=!1,a=m+b,s=ae(u,a),r=t?Ue(l,a+10):ae(e,a),c=C(s,r,a,1),Ce(c.d,i=m,p))do if(a+=10,s=ae(u,a),r=t?Ue(l,a+10):ae(e,a),c=C(s,r,a,1),!o){+O(c.d).slice(i+1,i+15)+1==1e14&&(c=y(c,m+1,0));break}while(Ce(c.d,i+=10,p));return P=!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 P?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),P?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):(P=!1,r.modulo==9?(t=C(n,e.abs(),0,3,1),t.s*=e.s):t=C(n,e,0,r.modulo,1),t=t.times(e),P=!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)),P?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),P?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(P=!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(C(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 P=!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=C(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),P?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]=R(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(P=!1,a=new h(O(T)),l=h.precision,h.precision=o=T.length*w*2;m=C(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=C(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=C(u,r,o,1).minus(b).abs().cmp(C(c,n,o,1).minus(b).abs())<1?[u,r]:[c,n],h.precision=l,P=!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]?(P=!1,n=C(n,e,0,t,1).times(e),P=!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(R(+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=R(+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):(P=!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),Ce(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,P=!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 Ce(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=R(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)==R(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)==R(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=Pe(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 C=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,K,L,U,S,D,ye,z,Be,pe,fe,we,j,De,ve=r.constructor,et=r.s==i.s?1:-1,F=r.d,N=i.d;if(!F||!F[0]||!N||!N[0])return new ve(!r.s||!i.s||(F?N&&F[0]==N[0]:!N)?NaN:F&&F[0]==0||!N?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=N.length,fe=F.length,L=new ve(et),U=L.d=[],m=0;N[m]==(F[m]||0);m++);if(N[m]>(F[m]||0)&&l--,o==null?(z=o=ve.precision,s=ve.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,N=N[0],z++;(m<fe||p)&&z--;m++)Be=p*c+(F[m]||0),U[m]=Be/N|0,p=Be%N|0;T=p||m<fe}else{for(p=c/(N[0]+1)|0,p>1&&(N=e(N,p,c),F=e(F,p,c),j=N.length,fe=F.length),pe=j,S=F.slice(0,j),D=S.length;D<j;)S[D++]=0;De=N.slice(),De.unshift(0),we=N[0],N[1]>=c/2&&++we;do p=0,u=t(N,S,j,D),u<0?(ye=S[0],j!=D&&(ye=ye*c+(S[1]||0)),p=ye/we|0,p>1?(p>=c&&(p=c-1),h=e(N,p,c),K=h.length,D=S.length,u=t(h,S,K,D),u==1&&(p--,n(h,j<K?De:N,K,c))):(p==0&&(u=p=1),h=N.slice()),K=h.length,K<D&&h.unshift(0),n(S,h,D,c),u==-1&&(D=S.length,u=t(N,S,j,D),u<1&&(p++,n(S,j<D?De:N,D,c))),D=S.length):u===0&&(p++,S=[0]),U[m++]=p,u&&S[0]?S[D++]=F[pe]||0:(S=[F[pe]],D=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/R(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/R(10,i-s-1)%10|0}if(r=r||t<0||m[p+1]!==void 0||(s<0?l:l%R(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/R(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]=R(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=R(10,w-o),m[p]=s>0?(l/R(10,i-s)%R(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 P&&(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 P=!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(P=!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 P=!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?(P=!1,c=T):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(r=Math.log(R(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(C(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&&Ce(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,P=!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,K=h.d,L=h.constructor,U=L.rounding,S=L.precision;if(h.s<0||!K||!K[0]||!h.e&&K[0]==1&&K.length==1)return new L(K&&!K[0]?-1/0:h.s!=1?NaN:K?0:h);if(t==null?(P=!1,l=S):l=t,L.precision=l+=T,n=O(K),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,P=!0):h;for(m=h,c=s=h=C(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(C(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=C(c,new L(b),l,1),t==null)if(Ce(c.d,l-T,U,a))L.precision=l+=T,u=s=h=C(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,P=!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),P&&(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(vn.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,P=!1,s&&(e=C(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?R(2,c):Ne.pow(2,c))),P=!0,e)}function Gn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:Pe(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/ze(5,n)),t=Pe(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 Pe(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/w);for(P=!1,c=n.times(n),a=new e(r);;){if(s=C(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=C(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 P=!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=C(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(C(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(C(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,P?!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++;P?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=Pr,i.sin=xr,i.sinh=Ar,i.sqrt=kr,i.sub=Sr,i.sum=Ir,i.tan=Br,i.tanh=Lr,i.trunc=Cr,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(P=!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 P=!0,new this(1/0);n=t}return P=!0,n.sqrt()}function Ht(e){return e instanceof Ne||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=R(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 Pr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function xr(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(P=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return P=!0,y(n,this.precision,this.rounding)}function Br(e){return new this(e).tan()}function Lr(e){return new this(e).tanh()}function Cr(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 Ne=d.constructor=nn(pt);We=new Ne(We);qe=new Ne(qe);var xe=Ne;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 Nr}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}),Nr(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",CustodyInitializeUser:"CustodyInitializeUser",CustodyDeposit:"CustodyDeposit",CustodyWithdraw:"CustodyWithdraw",CustodyOpenPosition:"CustodyOpenPosition",CustodyClosePosition:"CustodyClosePosition",CustodyIncreasePosition:"CustodyIncreasePosition",CustodyDecreasePosition:"CustodyDecreasePosition",CustodySwapBaseIn:"CustodySwapBaseIn",CustodySwapBaseOut:"CustodySwapBaseOut",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 Kr(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 Kr(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 Rr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var wt={chainId:101,address:Rr.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 Dr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vr}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:vr,isWritable:!1}),f({pubkey:ln.programId,isWritable:!1}),f({pubkey:Dr,isWritable:!1})];function Pt({publicKey:e,transformSol:t}){let n=xt(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 xt(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"),Ps=new _("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),xs=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 Pt({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:Pt({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),Ke=_e(qr),Ur={[0]:Ke.ROUND_DOWN,[1]:Ke.ROUND_HALF_UP,[2]:Ke.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.`),Ke.set({precision:t+1,rounding:Ur[r]});let i=new Ke(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"?xt(e):Array.isArray(e)?e.map(t=>de(t)):dn(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,de(n)])):e}var Ct=new ie(0),gn=new ie(1),Ba=new ie(2),La=new ie(3),Ca=new ie(5),Nt=new ie(10),Na=new ie(100),Ma=new ie(1e3),Ea=new ie(1e4);function Lt(e){return Nt.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 x}from"@solana/web3.js";var su=new x("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),au=new x("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),uu=new x("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),cu=new x("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),lu=new x("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mu=new x("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),pu=new x("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),fu=new x("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),du=new x("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),gu=new x("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),bu=new x("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hu=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yu=new x("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),wu=new x("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Tu=new x("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Pu=new x("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),xu=new x("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Au=new x("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ku=new x("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Su=new x("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Iu=new x("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Bu=new x("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Qr=new x("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Zr=new x("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Xr=new x("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2"),Lu=new x("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Jr=new x("DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC"),Cu=new x("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),$r=new x("7AFUeLVRjBfzqK3tTGw8hN48KLQWSk6DTE8xprWdPqix");var Nu={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:Qr,CREATE_CPMM_POOL_AUTH:Zr,CREATE_CPMM_POOL_FEE_ACC:Xr,FEE_DESTINATION_ID:new x("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=Nt.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 Pn,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=v([g("x"),g("y"),g("price")]),ai=v([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"?Ct: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:K,userLpVault:L,nonce:U,openTime:S,coinAmount:D,pcAmount:ye,ammConfigId:z,feeDestinationId:Be}){let pe=v([W("instruction"),W("nonce"),g("openTime"),g("pcAmount"),g("coinAmount")]),fe=[{pubkey:Ie,isSigner:!1,isWritable:!1},{pubkey:yi,isSigner:!1,isWritable:!1},{pubkey:Pn.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:K,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:D,pcAmount:ye},we),{instruction:new oe({keys:fe,programId:e,data:we}),instructionType:je.AmmV4CreatePool}}function Ll(e){let t=v([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 Cl(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 Nl({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:Pn.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 xn({poolKeys:e}){let t=v([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 Pi}from"@solana/web3.js";var xi=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=Pi.createProgramAddressSync(o,e)}catch(o){if(o instanceof TypeError)throw o;r++;continue}return{publicKey:i,nonce:r}}throw xi.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}),K=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:K,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=>xn({poolKeys:s}));return(await an(e,r.map(s=>s.instruction),"GetPoolData")).map(s=>{let a=un(s,"GetPoolData"),c=new Re(ne(a,"status")),u=Number(ne(a,"coin_decimals")),l=Number(ne(a,"pc_decimals")),m=Number(ne(a,"lp_decimals")),p=new Re(ne(a,"pool_coin_amount")),b=new Re(ne(a,"pool_pc_amount")),T=new Re(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 Re(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 xe(i.mintAAmount.toString()).div(10**i.baseDecimal.toNumber()).toNumber(),mintAmountB:new xe(i.mintBAmount.toString()).div(10**i.quoteDecimal.toNumber()).toNumber(),baseReserve:i.baseReserve,quoteReserve:i.quoteReserve,feeRate:new xe(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 xe(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,Ni as LIQUIDITY_FEES_DENOMINATOR,Ci as LIQUIDITY_FEES_NUMERATOR,Ln as LIQUIDITY_VERSION_TO_SERUM_VERSION,vo as LIQUIDITY_VERSION_TO_STATE_LAYOUT,Se as MODEL_DATA_PUBKEY,$e as StableLayout,ct as addLiquidityLayout,Oo as createPoolFeeLayout,Bl as createPoolV4InstructionV2,Do 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,Rn as liquidityStateV4Layout,Dn as liquidityStateV5Layout,Cl as makeAMMSwapInstruction,Sl as makeAddLiquidityInstruction,Nl as makeInitPoolInstructionV4,xn 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