UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 75.7 kB
var Nn=Object.defineProperty,Cn=Object.defineProperties;var Kn=Object.getOwnPropertyDescriptors;var qe=Object.getOwnPropertySymbols;var qt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable;var Wt=(e,t,n)=>t in e?Nn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,H=(e,t)=>{for(var n in t||(t={}))qt.call(t,n)&&Wt(e,n,t[n]);if(qe)for(var n of qe(t))Ut.call(t,n)&&Wt(e,n,t[n]);return e},J=(e,t)=>Cn(e,Kn(t));var st=(e,t)=>{var n={};for(var r in e)qt.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&qe)for(var r of qe(e))t.indexOf(r)<0&&Ut.call(e,r)&&(n[r]=e[r]);return n};import Gt from"bn.js";var Bi=new Gt(25),Li=new Gt(1e4),Mn={4:3,5:3};import{PublicKey as On}from"@solana/web3.js";import zt,{isBN as jt}from"bn.js";import{bits as Ki,BitStructure as Mi,blob as Rn,Blob as Ri,cstr as _i,f32 as Ei,f32be as Di,f64 as vi,f64be as Oi,greedy as Vi,Layout as _n,ns64 as Fi,ns64be as Wi,nu64 as qi,nu64be as Ui,offset as Gi,s16 as Hi,s16be as Yi,s24 as zi,s24be as ji,s32 as Zi,s32be as Qi,s40 as Ji,s40be as Xi,s48 as $i,s48be as eo,s8 as to,seq as En,struct as no,Structure as Dn,u16 as ro,u16be as io,u24 as oo,u24be as so,u32 as ao,u32be as uo,u40 as co,u40be as lo,u48 as mo,u48be as po,u8 as fo,UInt as vn,union as go,Union as bo,unionLayoutDiscriminator as yo,utf8 as ho}from"@solana/buffer-layout";var at=_n,Ht=Dn;var ut=vn;var Yt=En;var ct=Rn;var Ue=class extends at{constructor(n,r,i){super(n,i);this.blob=ct(n),this.signed=r}decode(n,r=0){let i=new zt(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 zt(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}};function _(e){return new ut(1,e)}function ge(e){return new ut(4,e)}function d(e){return new Ue(8,!1,e)}function ee(e){return new Ue(16,!1,e)}var lt=class extends at{constructor(n,r,i,o){super(n.span,o);this.layout=n,this.decoder=r,this.encoder=i}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,i){return this.layout.encode(this.encoder(n),r,i)}getSpan(n,r){return this.layout.getSpan(n,r)}};function B(e){return new lt(ct(32),t=>new On(t),t=>t.toBuffer(),e)}var mt=class extends Ht{decode(t,n){return super.decode(t,n)}};function E(e,t,n){return new mt(e,t,n)}function Ne(e,t,n){let r,i=typeof t=="number"?t:jt(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=jt(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 Yt(e,i,n)}var pt=E([_("instruction"),d("amountIn"),d("minAmountOut")]),ft=E([_("instruction"),d("maxAmountIn"),d("amountOut")]),_o=E([_("instruction"),_("nonce")]),dt=E([_("instruction"),_("nonce"),d("startTime")]),gt=E([d("status"),d("nonce"),d("maxOrder"),d("depth"),d("baseDecimal"),d("quoteDecimal"),d("state"),d("resetFlag"),d("minSize"),d("volMaxCutRatio"),d("amountWaveRatio"),d("baseLotSize"),d("quoteLotSize"),d("minPriceMultiplier"),d("maxPriceMultiplier"),d("systemDecimalValue"),d("minSeparateNumerator"),d("minSeparateDenominator"),d("tradeFeeNumerator"),d("tradeFeeDenominator"),d("pnlNumerator"),d("pnlDenominator"),d("swapFeeNumerator"),d("swapFeeDenominator"),d("baseNeedTakePnl"),d("quoteNeedTakePnl"),d("quoteTotalPnl"),d("baseTotalPnl"),d("poolOpenTime"),d("punishPcAmount"),d("punishCoinAmount"),d("orderbookToInitTime"),ee("swapBaseInAmount"),ee("swapQuoteOutAmount"),d("swapBase2QuoteFee"),ee("swapQuoteInAmount"),ee("swapBaseOutAmount"),d("swapQuote2BaseFee"),B("baseVault"),B("quoteVault"),B("baseMint"),B("quoteMint"),B("lpMint"),B("openOrders"),B("marketId"),B("marketProgramId"),B("targetOrders"),B("withdrawQueue"),B("lpVault"),B("owner"),d("lpReserve"),Ne(d(),3,"padding")]),Vn=E([d("accountType"),d("status"),d("nonce"),d("maxOrder"),d("depth"),d("baseDecimal"),d("quoteDecimal"),d("state"),d("resetFlag"),d("minSize"),d("volMaxCutRatio"),d("amountWaveRatio"),d("baseLotSize"),d("quoteLotSize"),d("minPriceMultiplier"),d("maxPriceMultiplier"),d("systemDecimalsValue"),d("abortTradeFactor"),d("priceTickMultiplier"),d("priceTick"),d("minSeparateNumerator"),d("minSeparateDenominator"),d("tradeFeeNumerator"),d("tradeFeeDenominator"),d("pnlNumerator"),d("pnlDenominator"),d("swapFeeNumerator"),d("swapFeeDenominator"),d("baseNeedTakePnl"),d("quoteNeedTakePnl"),d("quoteTotalPnl"),d("baseTotalPnl"),d("poolOpenTime"),d("punishPcAmount"),d("punishCoinAmount"),d("orderbookToInitTime"),ee("swapBaseInAmount"),ee("swapQuoteOutAmount"),ee("swapQuoteInAmount"),ee("swapBaseOutAmount"),d("swapQuote2BaseFee"),d("swapBase2QuoteFee"),B("baseVault"),B("quoteVault"),B("baseMint"),B("quoteMint"),B("lpMint"),B("modelDataAccount"),B("openOrders"),B("marketId"),B("marketProgramId"),B("targetOrders"),B("owner"),Ne(d(),64,"padding")]),bt=E([_("instruction"),d("baseAmountIn"),d("quoteAmountIn"),d("fixedSide"),d("otherAmountMin")]),yt=E([_("instruction"),d("lpAmount"),d("baseAmountMin"),d("quoteAmountMin")]),Eo={4:gt,5:Vn},Do=E([d("fee")]);import{PublicKey as Ve}from"@solana/web3.js";import Oe from"bn.js";var Ae=9e15,le=1e9,ht="0123456789abcdef",He="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Ye="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",wt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ae,maxE:Ae,crypto:!1},Xt,te,k=!0,je="[DecimalError] ",ce=je+"Invalid argument: ",$t=je+"Precision limit exceeded",en=je+"crypto unavailable",tn="[object Decimal]",U=Math.floor,v=Math.pow,Fn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,qn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,nn=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Z=1e7,T=7,Un=9007199254740991,Gn=He.length-1,Tt=Ye.length-1,g={toStringTag:tn};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),h(e)};g.ceil=function(){return h(new this.constructor(this),this.e+1,2)};g.clampedTo=g.clamp=function(e,t){var n,r=this,i=r.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(ce+t);return n=r.cmp(e),n<0?e:r.cmp(t)>0?t:new i(r)};g.comparedTo=g.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};g.cosine=g.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())+T,r.rounding=1,n=Hn(r,un(r,n)),r.precision=e,r.rounding=t,h(te==2||te==3?n.neg():n,e,t,!0)):new r(1):new r(NaN)};g.cubeRoot=g.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(k=!1,o=l.s*v(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=W(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=v(n,1/3),e=U((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),W(a.d).slice(0,s)===(n=W(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(h(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")&&(h(r,e+1,1),t=!r.times(r).times(r).eq(l));break}return k=!0,h(r,e,m.rounding,t)};g.decimalPlaces=g.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-U(this.e/T))*T,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};g.dividedBy=g.div=function(e){return C(this,new this.constructor(e))};g.dividedToIntegerBy=g.divToInt=function(e){var t=this,n=t.constructor;return h(C(t,new n(e),0,1,1),n.precision,n.rounding)};g.equals=g.eq=function(e){return this.cmp(e)===0};g.floor=function(){return h(new this.constructor(this),this.e+1,3)};g.greaterThan=g.gt=function(e){return this.cmp(e)>0};g.greaterThanOrEqualTo=g.gte=function(e){var t=this.cmp(e);return t==1||t===0};g.hyperbolicCosine=g.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/Qe(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=ke(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 h(o,s.precision=n,s.rounding=r,!0)};g.hyperbolicSine=g.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=ke(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/Qe(5,e)),i=ke(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,h(i,t,n,!0)};g.hyperbolicTangent=g.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)};g.inverseCosine=g.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()?j(n,i,o):new n(0):new n(NaN):t.isZero()?j(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=j(n,i+4,o).times(.5),n.precision=i,n.rounding=o,e.minus(t))};g.inverseHyperbolicCosine=g.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,k=!1,n=n.times(n).minus(1).sqrt().plus(n),k=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)};g.inverseHyperbolicSine=g.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,k=!1,n=n.times(n).plus(1).sqrt().plus(n),k=!0,r.precision=e,r.rounding=t,n.ln())};g.inverseHyperbolicTangent=g.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?h(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)};g.inverseSine=g.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=j(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)))};g.inverseTangent=g.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<=Tt)return s=j(l,m+4,p).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=Tt)return s=j(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/T+2|0),e=n;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(k=!1,t=Math.ceil(a/T),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)),k=!0,h(s,l.precision=m,l.rounding=p,!0)};g.isFinite=function(){return!!this.d};g.isInteger=g.isInt=function(){return!!this.d&&U(this.e/T)>this.d.length-2};g.isNaN=function(){return!this.s};g.isNegative=g.isNeg=function(){return this.s<0};g.isPositive=g.isPos=function(){return this.s>0};g.isZero=function(){return!!this.d&&this.d[0]===0};g.lessThan=g.lt=function(e){return this.cmp(e)<0};g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1};g.logarithm=g.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(k=!1,a=m+b,s=ue(u,a),r=t?ze(l,a+10):ue(e,a),c=C(s,r,a,1),Ce(c.d,i=m,p))do if(a+=10,s=ue(u,a),r=t?ze(l,a+10):ue(e,a),c=C(s,r,a,1),!o){+W(c.d).slice(i+1,i+15)+1==1e14&&(c=h(c,m+1,0));break}while(Ce(c.d,i+=10,p));return k=!0,h(c,m,p)};g.minus=g.sub=function(e){var t,n,r,i,o,s,a,c,u,l,m,p,b=this,P=b.constructor;if(e=new P(e),!b.d||!e.d)return!b.s||!e.s?e=new P(NaN):b.d?e.s=-e.s:e=new P(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=P.precision,c=P.rounding,!u[0]||!p[0]){if(p[0])e.s=-e.s;else if(u[0])e=new P(b);else return new P(c===3?-0:0);return k?h(e,a,c):e}if(n=U(e.e/T),l=U(b.e/T),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/T),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]=Z-1;--u[i],u[r]+=Z}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=Ze(u,n),k?h(e,a,c):e):new P(c===3?-0:0)};g.modulo=g.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]?h(new r(n),r.precision,r.rounding):(k=!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),k=!0,n.minus(t))};g.naturalExponential=g.exp=function(){return Pt(this)};g.naturalLogarithm=g.ln=function(){return ue(this)};g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s,h(e)};g.plus=g.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)),k?h(e,a,c):e;if(o=U(m.e/T),r=U(e.e/T),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/T),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)/Z|0,u[i]%=Z;for(t&&(u.unshift(t),++r),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=Ze(u,r),k?h(e,a,c):e};g.precision=g.sd=function(e){var t,n=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ce+e);return n.d?(t=rn(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t};g.round=function(){var e=this,t=e.constructor;return h(new t(e),e.e+1,t.rounding)};g.sine=g.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())+T,r.rounding=1,n=zn(r,un(r,n)),r.precision=e,r.rounding=t,h(te>2?n.neg():n,e,t,!0)):new r(NaN)};g.squareRoot=g.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(k=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=W(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=U((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),W(o.d).slice(0,n)===(t=W(r.d)).slice(0,n))if(t=t.slice(n-3,n+1),t=="9999"||!i&&t=="4999"){if(!i&&(h(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")&&(h(r,c+1,1),e=!r.times(r).eq(s));break}return k=!0,h(r,c,l.rounding,e)};g.tangent=g.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,h(te==2||te==4?n.neg():n,e,t,!0)):new r(NaN)};g.times=g.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=U(l.e/T)+U(e.e/T),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%Z|0,t=a/Z|0;o[i]=(o[i]+t)%Z|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=Ze(o,n),k?h(e,m.precision,m.rounding):e};g.toBinary=function(e,t){return At(this,2,e,t)};g.toDecimalPlaces=g.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(G(e,0,le),t===void 0?t=r.rounding:G(t,0,8),h(n,e+n.e+1,t))};g.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=X(r,!0):(G(e,0,le),t===void 0?t=i.rounding:G(t,0,8),r=h(new i(r),e+1,t),n=X(r,!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?n=X(i):(G(e,0,le),t===void 0?t=o.rounding:G(t,0,8),r=h(new o(i),e+i.e+1,t),n=X(r,!1,e+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};g.toFraction=function(e){var t,n,r,i,o,s,a,c,u,l,m,p,b=this,P=b.d,y=b.constructor;if(!P)return new y(b);if(u=n=new y(1),r=c=new y(0),t=new y(r),o=t.e=rn(P)-b.e-1,s=o%T,t.d[0]=v(10,s<0?T+s:s),e==null)e=o>0?t:u;else{if(a=new y(e),!a.isInt()||a.lt(u))throw Error(ce+a);e=a.gt(t)?o>0?t:u:a}for(k=!1,a=new y(W(P)),l=y.precision,y.precision=o=P.length*T*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],y.precision=l,k=!0,p};g.toHexadecimal=g.toHex=function(e,t){return At(this,16,e,t)};g.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]?(k=!1,n=C(n,e,0,t,1).times(e),k=!0,h(n)):(e.s=n.s,n=e),n};g.toNumber=function(){return+this};g.toOctal=function(e,t){return At(this,8,e,t)};g.toPower=g.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(v(+a,u));if(a=new c(a),a.eq(1))return a;if(r=c.precision,o=c.rounding,e.eq(1))return h(a,r,o);if(t=U(e.e/T),t>=e.d.length-1&&(n=u<0?-u:u)<=Un)return i=on(c,a,n,r),e.s<0?new c(1).div(i):h(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=v(+a,u),t=n==0||!isFinite(n)?U(u*(Math.log("0."+W(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(k=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=Pt(e.times(ue(a,r+n)),r),i.d&&(i=h(i,r+5,1),Ce(i.d,r,o)&&(t=r+10,i=h(Pt(e.times(ue(a,t+n)),t),t+5,1),+W(i.d).slice(r+1,r+15)+1==1e14&&(i=h(i,r+1,0)))),i.s=s,k=!0,c.rounding=o,h(i,r,o))};g.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,le),t===void 0?t=i.rounding:G(t,0,8),r=h(new i(r),e,t),n=X(r,e<=r.e||r.e<=i.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n};g.toSignificantDigits=g.toSD=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(G(e,1,le),t===void 0?t=r.rounding:G(t,0,8)),h(new r(n),e,t)};g.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};g.truncated=g.trunc=function(){return h(new this.constructor(this),this.e+1,1)};g.valueOf=g.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 W(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=T-r.length,n&&(o+=ae(n)),o+=r;s=e[t],r=s+"",n=T-r.length,n&&(o+=ae(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(ce+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+=T,i=0):(i=Math.ceil((t+1)/T),t%=T),o=v(10,T-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)==v(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)==v(10,t-3)-1,s}function Ge(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]+=ht.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 Hn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/Qe(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=ke(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,P,y,D,N,V,I,F,Pe,Y,Le,fe,de,xe,z,Fe,We=r.constructor,ot=r.s==i.s?1:-1,q=r.d,K=i.d;if(!q||!q[0]||!K||!K[0])return new We(!r.s||!i.s||(q?K&&q[0]==K[0]:!K)?NaN:q&&q[0]==0||!K?ot*0:ot/0);for(c?(b=1,l=r.e-i.e):(c=Z,b=T,l=U(r.e/b)-U(i.e/b)),z=K.length,de=q.length,N=new We(ot),V=N.d=[],m=0;K[m]==(q[m]||0);m++);if(K[m]>(q[m]||0)&&l--,o==null?(Y=o=We.precision,s=We.rounding):a?Y=o+(r.e-i.e)+1:Y=o,Y<0)V.push(1),P=!0;else{if(Y=Y/b+2|0,m=0,z==1){for(p=0,K=K[0],Y++;(m<de||p)&&Y--;m++)Le=p*c+(q[m]||0),V[m]=Le/K|0,p=Le%K|0;P=p||m<de}else{for(p=c/(K[0]+1)|0,p>1&&(K=e(K,p,c),q=e(q,p,c),z=K.length,de=q.length),fe=z,I=q.slice(0,z),F=I.length;F<z;)I[F++]=0;Fe=K.slice(),Fe.unshift(0),xe=K[0],K[1]>=c/2&&++xe;do p=0,u=t(K,I,z,F),u<0?(Pe=I[0],z!=F&&(Pe=Pe*c+(I[1]||0)),p=Pe/xe|0,p>1?(p>=c&&(p=c-1),y=e(K,p,c),D=y.length,F=I.length,u=t(y,I,D,F),u==1&&(p--,n(y,z<D?Fe:K,D,c))):(p==0&&(u=p=1),y=K.slice()),D=y.length,D<F&&y.unshift(0),n(I,y,F,c),u==-1&&(F=I.length,u=t(K,I,z,F),u<1&&(p++,n(I,z<F?Fe:K,F,c))),F=I.length):u===0&&(p++,I=[0]),V[m++]=p,u&&I[0]?I[F++]=q[fe]||0:(I=[q[fe]],F=1);while((fe++<de||I[0]!==void 0)&&Y--);P=I[0]!==void 0}V[0]||V.shift()}if(b==1)N.e=l,Xt=P;else{for(m=1,p=V[0];p>=10;p/=10)m++;N.e=m+l*b-1,h(N,a?o+N.e+1:o,s,P)}return N}}();function h(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+=T,s=t,l=m[p=0],c=l/v(10,i-s-1)%10|0;else if(p=Math.ceil((o+1)/T),a=m.length,p>=a)if(r){for(;a++<=p;)m.push(0);l=c=0,i=1,o%=T,s=o-T+1}else break e;else{for(l=a=m[p],i=1;a>=10;a/=10)i++;o%=T,s=o-T+i,c=s<0?0:l/v(10,i-s-1)%10|0}if(r=r||t<0||m[p+1]!==void 0||(s<0?l:l%v(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/v(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]=v(10,(T-t%T)%T),e.e=-t||0):m[0]=e.e=0,e;if(o==0?(m.length=p,a=1,p--):(m.length=p+1,a=v(10,T-o),m[p]=s>0?(l/v(10,i-s)%v(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]==Z&&(m[0]=1));break}else{if(m[p]+=a,m[p]!=Z)break;m[p--]=0,a=1}for(o=m.length;m[--o]===0;)m.pop()}return k&&(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 an(e);var r,i=e.e,o=W(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ae(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+ae(-i-1)+o,n&&(r=n-s)>0&&(o+=ae(r))):i>=s?(o+=ae(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+ae(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=ae(r))),o}function Ze(e,t){var n=e[0];for(t*=T;n>=10;n/=10)t++;return t}function ze(e,t,n){if(t>Gn)throw k=!0,n&&(e.precision=n),Error($t);return h(new e(He),t,1,!0)}function j(e,t,n){if(t>Tt)throw Error($t);return h(new e(Ye),t,n,!0)}function rn(e){var t=e.length-1,n=t*T+1;if(t=e[t],t){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function ae(e){for(var t="";e--;)t+="0";return t}function on(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/T+4);for(k=!1;;){if(n%2&&(o=o.times(t),Qt(o.d,s)&&(i=!0)),n=U(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}t=t.times(t),Qt(t.d,s)}return k=!0,o}function Zt(e){return e.d[e.d.length-1]&1}function sn(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 Pt(e,t){var n,r,i,o,s,a,c,u=0,l=0,m=0,p=e.constructor,b=p.rounding,P=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?(k=!1,c=P):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(r=Math.log(v(2,m))/Math.LN10*2+5|0,c+=r,n=o=s=new p(1),p.precision=c;;){if(o=h(o.times(e),c,1),n=n.times(++l),a=s.plus(C(o,n,c,1)),W(a.d).slice(0,c)===W(s.d).slice(0,c)){for(i=m;i--;)s=h(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 h(s,p.precision=P,b,k=!0);else return p.precision=P,s}s=a}}function ue(e,t){var n,r,i,o,s,a,c,u,l,m,p,b=1,P=10,y=e,D=y.d,N=y.constructor,V=N.rounding,I=N.precision;if(y.s<0||!D||!D[0]||!y.e&&D[0]==1&&D.length==1)return new N(D&&!D[0]?-1/0:y.s!=1?NaN:D?0:y);if(t==null?(k=!1,l=I):l=t,N.precision=l+=P,n=W(D),r=n.charAt(0),Math.abs(o=y.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)y=y.times(e),n=W(y.d),r=n.charAt(0),b++;o=y.e,r>1?(y=new N("0."+n),o++):y=new N(r+"."+n.slice(1))}else return u=ze(N,l+2,I).times(o+""),y=ue(new N(r+"."+n.slice(1)),l-P).plus(u),N.precision=I,t==null?h(y,I,V,k=!0):y;for(m=y,c=s=y=C(y.minus(1),y.plus(1),l,1),p=h(y.times(y),l,1),i=3;;){if(s=h(s.times(p),l,1),u=c.plus(C(s,new N(i),l,1)),W(u.d).slice(0,l)===W(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(ze(N,l+2,I).times(o+""))),c=C(c,new N(b),l,1),t==null)if(Ce(c.d,l-P,V,a))N.precision=l+=P,u=s=y=C(m.minus(1),m.plus(1),l,1),p=h(y.times(y),l,1),i=a=1;else return h(c,N.precision=I,V,k=!0);else return N.precision=I,c;c=u,i+=2}}function an(e){return String(e.s*e.s/0)}function xt(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)%T,n<0&&(r+=T),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=T;r<i;)e.d.push(+t.slice(r,r+=T));t=t.slice(r),r=T-t.length}else r-=i;for(;r--;)t+="0";e.d.push(+t),k&&(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 Yn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),nn.test(t))return xt(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Wn.test(t))n=16,t=t.toLowerCase();else if(Fn.test(t))n=2;else if(qn.test(t))n=8;else throw Error(ce+t);for(o=t.search(/p/i),o>0?(c=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,r=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=on(r,new r(n),o,o*2)),u=Ge(t,n,Z),l=u.length-1,o=l;u[o]===0;--o)u.pop();return o<0?new r(e.s*0):(e.e=Ze(u,l),e.d=u,k=!1,s&&(e=C(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?v(2,c):Ke.pow(2,c))),k=!0,e)}function zn(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:ke(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/Qe(5,n)),t=ke(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 ke(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/T);for(k=!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 k=!0,s.d.length=m+1,s}function Qe(e,t){for(var n=e;--t;)n*=e;return n}function un(e,t){var n,r=t.s<0,i=j(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return te=r?4:1,t;if(n=t.divToInt(i),n.isZero())te=r?3:2;else{if(t=t.minus(n.times(i)),t.lte(o))return te=Zt(n)?r?2:3:r?4:1,t;te=Zt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function At(e,t,n,r){var i,o,s,a,c,u,l,m,p,b=e.constructor,P=n!==void 0;if(P?(G(n,1,le),r===void 0?r=b.rounding:G(r,0,8)):(n=b.precision,r=b.rounding),!e.isFinite())l=an(e);else{for(l=X(e),s=l.indexOf("."),P?(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=Ge(X(p),10,i),p.e=p.d.length),m=Ge(l,10,i),o=c=m.length;m[--c]==0;)m.pop();if(!m[0])l=P?"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=Xt),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+=ht.charAt(m[s]);if(P){if(c>1)if(t==16||t==8){for(s=t==16?4:3,--c;c%s;c++)l+="0";for(m=Ge(l,i,t),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ht.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 Qt(e,t){if(e.length>t)return e.length=t,!0}function jn(e){return new this(e).abs()}function Zn(e){return new this(e).acos()}function Qn(e){return new this(e).acosh()}function Jn(e,t){return new this(e).plus(t)}function Xn(e){return new this(e).asin()}function $n(e){return new this(e).asinh()}function er(e){return new this(e).atan()}function tr(e){return new this(e).atanh()}function nr(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=j(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?j(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=j(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(C(e,t,o,1)),t=j(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 rr(e){return new this(e).cbrt()}function ir(e){return h(e=new this(e),e.e+1,2)}function or(e,t,n){return new this(e).clamp(t,n)}function sr(e){if(!e||typeof e!="object")throw Error(je+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,le,"rounding",0,8,"toExpNeg",-Ae,0,"toExpPos",0,Ae,"maxE",0,Ae,"minE",-Ae,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=wt[n]),(r=e[n])!==void 0)if(U(r)===r&&r>=o[t+1]&&r<=o[t+2])this[n]=r;else throw Error(ce+n+": "+r);if(n="crypto",i&&(this[n]=wt[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(en);else this[n]=!1;else throw Error(ce+n+": "+r);return this}function ar(e){return new this(e).cos()}function ur(e){return new this(e).cosh()}function cn(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,Jt(o)){u.s=o.s,k?!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++;k?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 xt(u,o.toString())}else if(c!=="string")throw Error(ce+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),u.s=-1):(a===43&&(o=o.slice(1)),u.s=1),nn.test(o)?xt(u,o):Yn(u,o)}if(i.prototype=g,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=sr,i.clone=cn,i.isDecimal=Jt,i.abs=jn,i.acos=Zn,i.acosh=Qn,i.add=Jn,i.asin=Xn,i.asinh=$n,i.atan=er,i.atanh=tr,i.atan2=nr,i.cbrt=rr,i.ceil=ir,i.clamp=or,i.cos=ar,i.cosh=ur,i.div=cr,i.exp=lr,i.floor=mr,i.hypot=pr,i.ln=fr,i.log=dr,i.log10=br,i.log2=gr,i.max=yr,i.min=hr,i.mod=wr,i.mul=Tr,i.pow=Pr,i.random=xr,i.round=Ar,i.sign=kr,i.sin=Sr,i.sinh=Ir,i.sqrt=Br,i.sub=Lr,i.sum=Nr,i.tan=Cr,i.tanh=Kr,i.trunc=Mr,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 cr(e,t){return new this(e).div(t)}function lr(e){return new this(e).exp()}function mr(e){return h(e=new this(e),e.e+1,3)}function pr(){var e,t,n=new this(0);for(k=!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 k=!0,new this(1/0);n=t}return k=!0,n.sqrt()}function Jt(e){return e instanceof Ke||e&&e.toStringTag===tn||!1}function fr(e){return new this(e).ln()}function dr(e,t){return new this(e).log(t)}function gr(e){return new this(e).log(2)}function br(e){return new this(e).log(10)}function yr(){return sn(this,arguments,"lt")}function hr(){return sn(this,arguments,"gt")}function wr(e,t){return new this(e).mod(t)}function Tr(e,t){return new this(e).mul(t)}function Pr(e,t){return new this(e).pow(t)}function xr(e){var t,n,r,i,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:G(e,1,le),r=Math.ceil(e/T),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(en);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],e%=T,r&&e&&(i=v(10,T-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-=T)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<T&&(n-=T-r)}return s.e=n,s.d=a,s}function Ar(e){return h(e=new this(e),e.e+1,this.rounding)}function kr(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Sr(e){return new this(e).sin()}function Ir(e){return new this(e).sinh()}function Br(e){return new this(e).sqrt()}function Lr(e,t){return new this(e).sub(t)}function Nr(){var e=0,t=arguments,n=new this(t[e]);for(k=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return k=!0,h(n,this.precision,this.rounding)}function Cr(e){return new this(e).tan()}function Kr(e){return new this(e).tanh()}function Mr(e){return h(e=new this(e),e.e+1,1)}g[Symbol.for("nodejs.util.inspect.custom")]=g.toString;g[Symbol.toStringTag]="Decimal";var Ke=g.constructor=cn(wt);He=new Ke(He);Ye=new Ke(Ye);var Se=Ke;import{TOKEN_PROGRAM_ID as xi}from"@solana/spl-token";import{ComputeBudgetProgram as Go,Keypair as zo,PublicKey as pn,Transaction as St,TransactionMessage as Qo,VersionedTransaction as Jo}from"@solana/web3.js";import{get as ln,set as Rr}from"lodash";var kt=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}},mn={},_r={};function O(e){let t=ln(mn,e);if(!t){let n=ln(_r,e);t=new kt({name:e,logLevel:n}),Rr(mn,e,t)}return t}var Me={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 ts}from"@solana/spl-token";var ne=O("Raydium_txUtil"),Er=1644;function Dr(e,t){e.length<1&&ne.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&ne.logWithError(`no signers provided:, ${t.toString()}`);let n=new St;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 fn(e,t,n,r=!0){let i=new pn("RaydiumSimuLateTransaction11111111111111111"),o=[],s=new St;s.feePayer=i;for(let u of t)Dr([...s.instructions,u],[i])||(o.push(s),s=new St,s.feePayer=i),s.add(u);s.instructions.length>0&&o.push(s);let a=[];try{if(a=await vr(e,o,r),a.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&ne.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of a)if(ne.debug("simulate result:",u),u.logs){let l=u.logs.filter(m=>m&&m.includes(n));ne.debug("filteredLog:",c),l.length||ne.logWithError("simulate log not match keyword","keyword",n),c.push(...l)}return c}function dn(e,t){let n=e.match(/{["\w:,]+}/g);return!n||n.length!==1?ne.logWithError(`simulate log fail to match json, keyword: ${t}`):n[0]}function re(e,t){let r=new RegExp(`"${t}":(\\d+)`,"g").exec(e);return!r||r.length!==2?ne.logWithError(`simulate log fail to match key", key: ${t}`):r[1]}function Ie(e,t){let[n,r]=pn.findProgramAddressSync(e,t);return{publicKey:n,nonce:r}}async function vr(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&&ne.logWithError("failed to get info for multiple accounts","RPC_ERROR",{message:i.message})}return r}import{PublicKey as cl}from"@solana/web3.js";import{MintLayout as ml,TOKEN_PROGRAM_ID as fl}from"@solana/spl-token";import ei from"big.js";import et from"bn.js";import se from"bn.js";import{PublicKey as Or}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var It={chainId:101,address:Or.default.toBase58(),programId:gn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ie={chainId:101,address:"So11111111111111111111111111111111111111112",programId:gn.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 R,SystemProgram as bn,SYSVAR_RENT_PUBKEY as Vr}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fr}from"@solana/spl-token";function f({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var cs=[f({pubkey:Fr,isWritable:!1}),f({pubkey:bn.programId,isWritable:!1}),f({pubkey:Vr,isWritable:!1})];function Lt({publicKey:e,transformSol:t}){let n=Nt(e.toString());if(n instanceof R)return t&&n.equals(Re)?Bt:n;if(t&&n.toString()===Re.toBase58())return Bt;if(typeof n=="string"){if(n===R.default.toBase58())return R.default;try{return new R(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Nt(e){try{return new R(e)}catch{return e}}var ls=new R("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ms=new R("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),yn=new R("SysvarRent111111111111111111111111111111111"),ps=new R("SysvarC1ock11111111111111111111111111111111"),fs=new R("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ds=new R("Sysvar1nstructions1111111111111111111111111"),gs=bn.programId,bs=new R("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ys=new R("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),hs=new R("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ws=new R("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ts=new R("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ps=new R("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xs=new R("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),As=new R("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ks=new R("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ss=new R("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Is=new R("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Bt=new R("So11111111111111111111111111111111111111112"),Re=R.default;function Ct(e){return Lt({publicKey:e,transformSol:!0})}var Mt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Re.toBase58()||t instanceof Kt&&Re.equals(t)){this.decimals=ie.decimals,this.symbol=ie.symbol,this.name=ie.name,this.mint=new Kt(ie.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:Lt({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=Mt;me.WSOL=new Mt(J(H({},ie),{mint:ie.address}));var Rt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},Je=Rt;Je.SOL=new Rt(It);import $e from"big.js";import Gr from"bn.js";import Hr from"decimal.js-light";import _e from"bn.js";var hn=9007199254740991;function M(e){let t=O("Raydium_parseBigNumberish");if(e instanceof _e)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new _e(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=hn||e<=-hn)&&t.logWithError(`BigNumberish number overflow: ${e}`),new _e(String(e))):typeof e=="bigint"?new _e(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new _e(0))}import Wr from"toformat";var qr=Wr,Ee=qr;var Xe=O("module/fraction"),_t=Ee($e),De=Ee(Hr),Yr={[0]:De.ROUND_DOWN,[1]:De.ROUND_HALF_UP,[2]:De.ROUND_UP},zr={[0]:$e.roundDown,[1]:$e.roundHalfUp,[2]:$e.roundUp},L=class{constructor(t,n=new Gr(1)){this.numerator=M(t),this.denominator=M(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new L(this.denominator,this.numerator)}add(t){let n=t instanceof L?t:new L(M(t));return this.denominator.eq(n.denominator)?new L(this.numerator.add(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof L?t:new L(M(t));return this.denominator.eq(n.denominator)?new L(this.numerator.sub(n.numerator),this.denominator):new L(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof L?t:new L(M(t));return new L(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof L?t:new L(M(t));return new L(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||Xe.logWithError(`${t} is not an integer.`),t<=0&&Xe.logWithError(`${t} is not positive.`),De.set({precision:t+1,rounding:Yr[r]});let i=new De(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)||Xe.logWithError(`${t} is not an integer.`),t<0&&Xe.logWithError(`${t} is negative.`),_t.DP=t,_t.RM=zr[r]||1,new _t(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import jr from"bn.js";var wn=new L(new jr(100)),Be=class extends L{toSignificant(t=5,n,r){return this.mul(wn).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(wn).toFixed(t,n,r)}};var Zr=O("Raydium_price"),oe=class extends L{constructor(n){let{baseToken:r,quoteToken:i,numerator:o,denominator:s}=n;super(o,s);this.baseToken=r,this.quoteToken=i,this.scalar=new L(Et(r.decimals),Et(i.decimals))}get raw(){return new L(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new oe({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 oe({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)}};var Dt=new se(0),Tn=new se(1),wa=new se(2),Ta=new se(3),Pa=new se(5),vt=new se(10),xa=new se(100),Aa=new se(1e3),ka=new se(1e4);function Et(e){return vt.pow(M(e))}import{PublicKey as Ka}from"@solana/web3.js";import{MINT_SIZE as Ea,TOKEN_PROGRAM_ID as Da,getTransferFeeConfig as va,unpackMint as Oa}from"@solana/spl-token";var Va=O("Raydium_accountInfo_util");import{PublicKey as Ya}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ja}from"@solana/spl-token";import{PublicKey as w}from"@solana/web3.js";var Xa=new w("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),$a=new w("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),eu=new w("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),tu=new w("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),nu=new w("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ru=new w("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),iu=new w("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ou=new w("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),su=new w("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),au=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),uu=new w("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),cu=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),lu=new w("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),be=new w("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),mu=new w("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pu=new w("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),fu=new w("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),du=new w("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),gu=new w("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),bu=new w("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),yu=new w("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),hu=new w("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),wu=new w("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Tu=new w("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pu=new w("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),xu=new w("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Au=new w("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ku=new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Su=new w("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Iu=new w("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Bu=new w("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Lu={OPEN_BOOK_PROGRAM:new w("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new w("Ray1111111111111111111111111111111111111111"),AMM_V4:new w("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new w("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new w("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new w("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new w("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new w("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new w("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new w("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new w("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new w("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:w.default,Router:new w("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new w("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new w("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new w("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new w("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new w("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new w("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new w("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new w("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new w("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new w("Ray1111111111111111111111111111111111111111")};import Ku from"bn.js";import{PublicKey as Du,AddressLookupTableAccount as vu}from"@solana/web3.js";import{PublicKey as $u,sendAndConfirmTransaction as ec,SystemProgram as rc,Transaction as ic,TransactionMessage as sc,VersionedTransaction as ac}from"@solana/web3.js";import cc from"axios";import{PublicKey as Qr}from"@solana/web3.js";import Jr from"bn.js";function Xr(e){return typeof e=="object"&&e!==null&&![me,$,Qr,L,Jr,oe,Be].some(t=>typeof t=="object"&&e instanceof t)}function ye(e){return typeof e=="string"?Nt(e):Array.isArray(e)?e.map(t=>ye(t)):Xr(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,ye(n)])):e}import $r from"bn.js";var Pc=new $r(1e6);var ti=O("Raydium_amount"),Pn=Ee(ei);function ni(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")):ti.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var $=class extends L{constructor(n,r,i=!0,o){let s=new et(0),a=vt.pow(new et(n.decimals));if(i)s=M(r);else{let c=new et(0),u=new et(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,m]=ni(r.toString(),n.decimals);c=M(l),u=M(m)}c=c.mul(a),s=c.add(u)}super(s,a);this.logger=O(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 $(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new $(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 Pn.DP=this.token.decimals,new Pn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};var tt=i=>{var o=i,{address:e,programId:t,decimals:n}=o,r=st(o,["address","programId","decimals"]);return H({chainId:101,address:Ct(e).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:n,tags:[],extensions:r.extensions||{}},r)};import{PublicKey as S,SystemProgram as xn,SYSVAR_RENT_PUBKEY as ri,TransactionInstruction as Q}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ii,TOKEN_PROGRAM_ID as pe}from"@solana/spl-token";import nt from"bn.js";var rt=O("Raydium_liquidity_instruction");function Cl(e){let{poolInfo:t,poolKeys:n,userKeys:r,baseAmountIn:i,quoteAmountIn:o,fixedSide:s,otherAmountMin:a,modelDataPubKey:c=be}=e,u=Buffer.alloc(bt.span);bt.encode({instruction:3,baseAmountIn:M(i),quoteAmountIn:M(o),otherAmountMin:M(a),fixedSide:s==="base"?Dt:Tn},u);let l=[f({pubkey:pe,isWritable:!1}),f({pubkey:new S(t.id)}),f({pubkey:new S(n.authority),isWritable:!1}),f({pubkey:new S(n.openOrders),isWritable:!1}),f({pubkey:new S(n.targetOrders)}),f({pubkey:new S(t.lpMint.address)}),f({pubkey:new S(n.vault.A)}),f({pubkey:new S(n.vault.B)})];return t.pooltype.includes("StablePool")&&l.push(f({pubkey:c})),l.push(f({pubkey:new S(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 S(n.marketEventQueue),isWritable:!1})),new Q({programId:new S(t.programId),keys:l,data:u})}function Kl(e){let{poolInfo:t,poolKeys:n,userKeys:r,lpAmount:i,baseAmountMin:o,quoteAmountMin:s,modelDataPubKey:a=be}=e,c=ye(n),u=4;if(t.pooltype.includes("StablePool")&&(u=5),u===4||u===5){let l=Buffer.alloc(yt.span);yt.encode({instruction:4,lpAmount:M(i),baseAmountMin:M(o),quoteAmountMin:M(s)},l);let m=[f({pubkey:pe,isWritable:!1}),f({pubkey:c.id}),f({pubkey:c.authority,isWritable:!1}),f({pubkey:c.openOrders}),f({pubkey:c.targetOrders}),f({pubkey:c.mintLp.address}),f({pubkey:c.vault.A}),f({pubkey:c.vault.B})];return u===5?m.push(f({pubkey:a})):(m.push(f({pubkey:c.id})),m.push(f({pubkey:c.id}))),m.push(f({pubkey:c.marketProgramId,isWritable:!1}),f({pubkey:c.marketId}),f({pubkey:c.marketBaseVault}),f({pubkey:c.marketQuoteVault}),f({pubkey:c.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:c.marketEventQueue}),f({pubkey:c.marketBids}),f({pubkey:c.marketAsks})),new Q({programId:c.programId,keys:m,data:l})}return new Q({programId:c.programId,keys:[]})}function Ml({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:P,userCoinVault:y,userPcVault:D,userLpVault:N,nonce:V,openTime:I,coinAmount:F,pcAmount:Pe,ammConfigId:Y,feeDestinationId:Le}){let fe=E([_("instruction"),_("nonce"),d("openTime"),d("pcAmount"),d("coinAmount")]),de=[{pubkey:pe,isSigner:!1,isWritable:!1},{pubkey:ii,isSigner:!1,isWritable:!1},{pubkey:xn.programId,isSigner:!1,isWritable:!1},{pubkey:yn,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:Y,isSigner:!1,isWritable:!1},{pubkey:Le,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:P,isSigner:!0,isWritable:!0},{pubkey:y,isSigner:!1,isWritable:!0},{pubkey:D,isSigner:!1,isWritable:!0},{pubkey:N,isSigner:!1,isWritable:!0}],xe=Buffer.alloc(fe.span);return fe.encode({instruction:1,nonce:V,openTime:I,coinAmount:F,pcAmount:Pe},xe),{instruction:new Q({keys:de,programId:e,data:xe}),instructionType:Me.AmmV4CreatePool}}function Rl(e){let t=E([_("instruction"),_("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);let r=[f({pubkey:new S(e.id),isWritable:!1}),f({pubkey:new S(e.authority),isWritable:!1}),f({pubkey:new S(e.openOrders),isWritable:!1}),f({pubkey:new S(e.vault.A),isWritable:!1}),f({pubkey:new S(e.vault.B),isWritable:!1}),f({pubkey:new S(e.mintLp.address),isWritable:!1}),f({pubkey:new S(e.marketId),isWritable:!1}),f({pubkey:new S(e.marketEventQueue),isWritable:!1})];return new Q({programId:new S(e.programId),keys:r,data:n})}function oi({poolKeys:e,userKeys:t,amountIn:n,minAmountOut:r,modelDataPubKey:i=be},o){let s=ye(e),a=Buffer.alloc(pt.span);pt.encode({instruction:9,amountIn:M(n),minAmountOut:M(r)},a);let c=[f({pubkey:pe,isWritable:!1}),f({pubkey:s.id}),f({pubkey:s.authority,isWritable:!1}),f({pubkey:s.openOrders})];return o===4&&c.push(f({pubkey:s.targetOrders})),c.push(f({pubkey:s.vault.A}),f({pubkey:s.vault.B})),o===5&&c.push(f({pubkey:i})),c.push(f({pubkey:s.marketProgramId,isWritable:!1}),f({pubkey:s.marketId}),f({pubkey:s.marketBids}),f({pubkey:s.marketAsks}),f({pubkey:s.marketEventQueue}),f({pubkey:s.marketBaseVault}),f({pubkey:s.marketQuoteVault}),f({pubkey:s.marketAuthority,isWritable:!1}),f({pubkey:t.tokenAccountIn}),f({pubkey:t.tokenAccountOut}),f({pubkey:t.owner,isWritable:!1,isSigner:!0})),new Q({programId:s.programId,keys:c,data:a})}function si({poolKeys:e,userKeys:t,maxAmountIn:n,amountOut:r,modelDataPubKey:i=be},o){let s=ye(e),a=Buffer.alloc(ft.span);ft.encode({instruction:11,maxAmountIn:M(n),amountOut:M(r)},a);let c=[f({pubkey:pe,isWritable:!1}),f({pubkey:s.id}),f({pubkey:s.authority,isWritable:!1}),f({pubkey:s.openOrders}),f({pubkey:s.targetOrders}),f({pubkey:s.vault.A}),f({pubkey:s.vault.B})];return o===5&&c.push(f({pubkey:i})),c.push(f({pubkey:s.marketProgramId,isWritable:!1}),f({pubkey:s.marketId}),f({pubkey:s.marketBids}),f({pubkey:s.marketAsks}),f({pubkey:s.marketEventQueue}),f({pubkey:s.marketBaseVault}),f({pubkey:s.marketQuoteVault}),f({pubkey:s.marketAuthority,isWritable:!1}),f({pubkey:t.tokenAccountIn}),f({pubkey:t.tokenAccountOut}),f({pubkey:t.owner,isWritable:!1,isSigner:!0})),new Q({programId:s.programId,keys:c,data:a})}function ai(e,t,n,r,i,o,s,a,c,u){let l=E([_("instructionId"),d("amountIn"),d("minAmountOut")]),m=Buffer.alloc(l.span);l.encode({instructionId:16,amountIn:c,minAmountOut:u},m);let p=[{pubkey:pe,isWritable:!1,isSigner:!1},{pubkey:t,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new Q({programId:e,keys:p,data:m})}function ui(e,t,n,r,i,o,s,a,c,u){let l=E([_("instructionId"),d("maxAmountIn"),d("amountOut")]),m=Buffer.alloc(l.span);l.encode({instructionId:17,maxAmountIn:c,amountOut:u},m);let p=[{pubkey:pe,isWritable:!1,isSigner:!1},{pubkey:t,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!0,isSigner:!1},{pubkey:s,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!0}];return new Q({programId:e,keys:p,data:m})}function _l(e){let{poolKeys:t,version:n,userKeys:r,amountIn:i,amountOut:o,fixedSide:s}=e;if(n===4){if(s==="in")return ai(new S(t.programId),new S(t.id),new S(t.authority),new S(t.vault.A),new S(t.vault.B),r.tokenAccountIn,r.tokenAccountOut,r.owner,new nt(i.toString()),new nt(o.toString()));if(s==="out")return ui(new S(t.programId),new S(t.id),new S(t.authority),new S(t.vault.A),new S(t.vault.B),r.tokenAccountIn,r.tokenAccountOut,r.owner,new nt(i.toString()),new nt(o.toString()));rt.logWithError("invalid params","params",e)}throw rt.logWithError("invalid version, only support pool v4","poolKeys.version",n),new Error("invalid version")}function El(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 oi(J(H({},a),{amountIn:i,minAmountOut:o}),n);if(s==="out")return si(J(H({},a),{maxAmountIn:i,amountOut:o}),n);rt.logWithError("invalid params","params",e)}throw rt.logWithError("invalid version","poolKeys.version",n),new Error("invalid version")}function Dl({poolKeys:e,userKeys:t,startTime:n}){let r=Buffer.alloc(dt.span);dt.encode({instruction:0,nonce:5,startTime:M(n)},r);let i=ye(e),o=[f({pubkey:pe,isWritable:!1}),f({pubkey:xn.programId,isWritable:!1}),f({pubkey:ri,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 Q({programId:i.programId,keys:o,data:r})}function An({poolKeys:e}){let t=E([_("instruction"),_("simulateType")]),n=Buffer.alloc(t.span);t.encode({instruction:12,simulateType:0},n);let r=[f({pubkey:new S(e.id),isWritable:!1}),f({pubkey:new S(e.authority),isWritable:!1}),f({pubkey:new S(e.openOrders),isWritable:!1}),f({pubkey:new S(e.vault.A),isWritable:!1}),f({pubkey:new S(e.vault.B),isWritable:!1}),f({pubkey:new S(e.mintLp.address),isWritable:!1}),f({pubkey:new S(e.marketId),isWritable:!1}),f({pubkey:new S(e.marketEventQueue),isWritable:!1})];return{instruction:new Q({programId:new S(e.programId),keys:r,data:n})}}import{PublicKey as ci}from"@solana/web3.js";var li=O("Raydium_liquidity_serum");function kn({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=ci.createProgramAddressSync(o,e)}catch(o){if(o instanceof TypeError)throw o;r++;continue}return{publicKey:i,nonce:r}}throw li.logWithError("unable to find a viable program address nonce","params",{programId:e,marketId:t}),new Error("unable to find a viable program address nonce")}var we=5e4,mi=E([d("x"),d("y"),d("price")]),pi=E([d("accountType"),d("status"),d("multiplier"),d("validDataCount"),Ne(mi,we,"DataElement")]);function fi(e,t){return[0,we-2]}function di(e){return[0,we-2]}function gi(e){return[0,we-2]}function bi(e,t,n){let[r,i]=fi(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>=we-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 Ot(e,t,n){let[r,i,o]=bi(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 he(e,t,n){return t*e.multiplier/n}function Sn(e,t,n){return t*n/e.multiplier}function yi(e,t){let[n,r]=di(t),i=n,o=r,s=0,a=t;for(;i<o;){if(s=Math.floor((o+i)/2),s<=0||s>we-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 hi(e,t){let[n,r]=gi(t),i=n,o=r,s=0,a=t;for(;i<=o;){if(s=Math.floor((o+i)/2),s<=0||s>=we-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 In(e,t,n,r){let i=r?t+n:t-n,[o,s,a]=yi(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 P,y;return r?(P=l+(m-l)*(t-c)/(u-c),y=p-(i-c)*e.multiplier/m):(P=l+(m-l)*(t-c)/(u-c),y=b+(u-i)*e.multiplier/l),[P,y,!1,a]}}}function wi(e,t,n,r){let i=r?t-n:t+n,[o,s,a]=hi(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 P,y;return r?(P=l+(m-l)*(p-t)/(p-b),y=c+m*(p-i)/e.multiplier):(P=l+(m-l)*(p-t)/(p-b),y=u-l*(i-b)/e.multiplier),[P,y,!1,a]}}}function Ti(e,t){let n=In(e,t,0,!1);return n[3]?n[0]:0}function Gl(e,t,n,r){let i=Ot(e,t,n),o=he(e,t,i),s=he(e,n,i),a=he(e,r,i),c=!0,[u,l,m,p]=In(e,o,a,c);if(!p)return 0;if(m)return r*e.multiplier/u;{let b=s-l;return Sn(e,b,i)}}function Hl(e,t,n,r){let i=Ot(e,t,n),o=he(e,t,i),s=he(e,n,i),a=he(e,r,i),c=!1,[u,l,m,p]=wi(e,s,a,c);if(!p)return 0;if(m)return r*u/e.multiplier;{let b=o-l;return Sn(e,b,i)}}function Pi(e){let t=pi.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 Yl(e,t,n,r){let i=Ti(e,he(e,t,Ot(e,t,n)))/e.multiplier;return r?i:1/i}var it=class{constructor({connection:t,modelDataPubKey:n=be}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=t,this.modelDataPubKey=n}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let t=await this.connection.getAccountInfo(this.modelDataPubKey);t&&(this._layoutData=Pi(t==null?void 0:t.data))}}};var ve=E([B("mint"),B("owner"),d("amount"),ge("delegateOption"),B("delegate"),_("state"),ge("isNativeOption"),d("isNative"),d("delegatedAmount"),ge("closeAuthorityOption"),B("closeAuthority")]);import{Keypair as em,PublicKey as tm}from"@solana/web3.js";import im from"bn.js";import{TOKEN_PROGRAM_ID as am}from"@solana/spl-token";var cm=O("Raydium_Util");import{PublicKey as gm,SystemProgram as ym}from"@solana/web3.js";import Tm from"bn.js";import{createCloseAccountInstruction as km,createInitializeAccountInstruction as Sm,createTransferInstruction as Im,TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";var Bn=E([ge("mintAuthorityOption"),B("mintAuthority"),d("supply"),_("decimals"),_("isInitialized"),ge("freezeAuthorityOption"),B("freezeAuthority")]);function Ln({programId:e}){let{publicKey:t}=Ie([Buffer.from("amm_config_account_seed","utf-8")],e);return t}function Te({name:e,programId:t,marketId:n}){let{publicKey:r}=Ie([t.toBuffer(),n.toBuffer(),Buffer.from(e,"utf-8")],t);return r}function Ai({programId:e,marketId:t}){let{publicKey:n}=Ie([e.toBuffer(),t.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],e);return n}function ki({programId:e}){return Ie([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],e)}function ip({version:e,marketVersion:t,marketId:n,baseMint:r,quoteMint:i,baseDecimals:o,quoteDecimals:s,programId:a,marketProgramId:c}){let u=Te({name:"amm_associated_seed",programId:a,marketId:n}),l=Te({name:"lp_mint_associated_seed",programId:a,marketId:n}),{publicKey:m,nonce:p}=ki({programId:a}),b=Te({name:"coin_vault_associated_seed",programId:a,marketId:n}),P=Te({name:"pc_vault_associated_seed",programId:a,marketId:n}),y=Te({name:"temp_lp_token_associated_seed",programId:a,marketId:n}),D=Ai({programId:a,marketId:n}),N=Te({name:"target_associated_seed",programId:a,marketId:n}),V=Te({name:"withdraw_associated_seed",programId:a,marketId:n}),{publicKey:I}=kn({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:P,lpVault:y,openOrders:D,targetOrders:N,withdrawQueue:V,marketVersion:t,marketProgramId:c,marketId:n,marketAuthority:I,lookupTableAccount:Ve.default,configId:Ln({programId:a})}}var Vt;async function op({connection:e,poolKeysList:t,config:n,modelDataPubKey:r}){return t.find(o=>o.modelDataAccount)&&(Vt||(Vt=new it({connection:e,modelDataPubKey:r}),await Vt.initStableModelLayout())),await Promise.all(t.map(async o=>{if(o.modelDataAccount){let s=An({poolKeys:o});return(await fn(e,[s.instruction],"GetPoolData")).map(u=>{let l=dn(u,"GetPoolData"),m=new Oe(re(l,"status")),p=Number(re(l,"coin_decimals")),b=Number(re(l,"pc_decimals")),P=Number(re(l,"lp_decimals")),y=new Oe(re(l,"pool_coin_amount")),D=new Oe(re(l,"pool_pc_amount")),N=new Oe(re(l,"pool_lp_supply")),V="0";try{V=re(l,"pool_open_time")}catch{}return{status:m,baseDecimals:p,quoteDecimals:b,lpDecimals:P,baseReserve:y,quoteReserve:D,lpSupply:N,startTime:new Oe(V)}})[0]}else{let[s,a,c,u]=await e.getMultipleAccountsInfo([new Ve(o.id),new Ve(o.vault.A),new Ve(o.vault.B),new Ve(o.mintLp.address)]);if(s===null)throw Error("fetch pool error");if(a===null)throw Error("fetch vaultAccA error");if(c===null)throw Error("fetch vaultAccB error");if(u===null)throw Error("fetch mintAccLp error");let l=gt.decode(s.data),m=ve.decode(a.data),p=ve.decode(c.data),b=Bn.decode(u.data);return{status:l.status,baseDecimals:l.baseDecimal.toNumber(),quoteDecimals:l.quoteDecimal.toNumber(),lpDecimals:b.decimals,baseReserve:m.amount.sub(l.baseNeedTakePnl),quoteReserve:p.amount.sub(l.quoteNeedTakePnl),lpSupply:l.lpReserve,startTime:l.poolOpenTime}}}))}var Ft={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},sp=e=>{let t={},n=xi.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:tt({address:o,programId:n,decimals:i.baseDecimal.toNumber()}),mintB:tt({address:s,programId:n,decimals:i.quoteDecimal.toNumber()}),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:i.poolPrice.toNumber(),mintAmountA:new Se(i.mintAAmount.toString()).div(10**i.baseDecimal.toNumber()).toNumber(),mintAmountB:new Se(i.mintBAmount.toString()).div(10**i.quoteDecimal.toNumber()).toNumber(),baseReserve:i.baseReserve,quoteReserve:i.quoteReserve,feeRate:new Se(i.tradeFeeNumerator.toString()).div(i.tradeFeeDenominator.toString()).toNumber(),openTime:i.poolOpenTime.toString(),tvl:0,day:Ft,week:Ft,month:Ft,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:i.marketId.toBase58(),configId:Ln({programId:i.programId}).toBase58(),lpPrice:0,lpAmount:new Se(i.lpReserve.toString()).div(10**Math.min(i.baseDecimal.toNumber(),i.quoteDecimal.toNumber())).toNumber(),lpMint:tt({address:i.lpMint.toBase58(),programId:n,decimals:Math.min(i.baseDecimal.toNumber(),i.quoteDecimal.toNumber())}),burnPercent:0}}),t};export{mi as DataElement,Li as LIQUIDITY_FEES_DENOMINATOR,Bi as LIQUIDITY_FEES_NUMERATOR,Mn as LIQUIDITY_VERSION_TO_SERUM_VERSION,Eo as LIQUIDITY_VERSION_TO_STATE_LAYOUT,it as StableLayout,bt as addLiquidityLayout,Do as createPoolFeeLayout,Ml as createPoolV4InstructionV2,_o as createPoolV4Layout,op as fetchMultipleInfo,pt as fixedSwapInLayout,ft as fixedSwapOutLayout,Pi as formatLayout,Ln as getAssociatedConfigId,Ai as getAssociatedOpenOrders,ip as getAssociatedPoolKeys,Hl as getDxByDyBaseIn,Gl as getDyByDxBaseIn,ki as getLiquidityAssociatedAuthority,Te as getLiquidityAssociatedId,Yl as getStablePrice,dt as initPoolLayout,gt as liquidityStateV4Layout,Vn as liquidityStateV5Layout,El as makeAMMSwapInstruction,_l as makeAMMSwapV2Instruction,Cl as makeAddLiquidityInstruction,Dl as makeInitPoolInstructionV4,An as makeSimulatePoolInfoInstruction,oi as makeSwapFixedInInstruction,si as makeSwapFixedOutInstruction,pi as modelDataInfoLayout,Kl as removeLiquidityInstruction,yt as removeLiquidityLayout,Rl as simulatePoolInfoInstruction,ai as swapBaseInV2Instruction,ui as swapBaseOutV2Instruction,sp as toAmmComputePoolInfo};
//# sourceMappingURL=index.mjs.map