@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 71.5 kB
JavaScript
var kn=Object.defineProperty,Sn=Object.defineProperties;var In=Object.getOwnPropertyDescriptors;var Oe=Object.getOwnPropertySymbols;var Rt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var _t=(e,t,n)=>t in e?kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,j=(e,t)=>{for(var n in t||(t={}))Rt.call(t,n)&&_t(e,n,t[n]);if(Oe)for(var n of Oe(t))Dt.call(t,n)&&_t(e,n,t[n]);return e},X=(e,t)=>Sn(e,In(t));var $e=(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 Kt from"bn.js";var Ii=new Kt(25),Bi=new Kt(1e4),Bn={4:3,5:3};import{PublicKey as _n}from"@solana/web3.js";import Ft,{isBN as Wt}from"bn.js";import{bits as Ci,BitStructure as Ei,blob as Ln,Blob as Mi,cstr as _i,f32 as Ri,f32be as Di,f64 as Ki,f64be as Oi,greedy as vi,Layout as Nn,ns64 as Vi,ns64be as Fi,nu64 as Wi,nu64be as qi,offset as Ui,s16 as Gi,s16be as Hi,s24 as ji,s24be as Yi,s32 as zi,s32be as Qi,s40 as Zi,s40be as Xi,s48 as Ji,s48be as $i,s8 as eo,seq as Cn,struct as to,Structure as En,u16 as no,u16be as ro,u24 as io,u24be as oo,u32 as so,u32be as ao,u40 as uo,u40be as co,u48 as lo,u48be as mo,u8 as po,UInt as Mn,union as fo,Union as go,unionLayoutDiscriminator as ho,utf8 as bo}from"@solana/buffer-layout";var et=Nn,Ot=En;var vt=Mn;var Vt=Cn;var tt=Ln;var ve=class extends et{constructor(n,r,i){super(n,i);this.blob=tt(n),this.signed=r}decode(n,r=0){let i=new Ft(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 Ft(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 ee(e){return new ve(16,!1,e)}var nt=class extends et{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 nt(tt(32),t=>new _n(t),t=>t.toBuffer(),e)}var rt=class extends Ot{decode(t,n){return super.decode(t,n)}};function O(e,t,n){return new rt(e,t,n)}function Be(e,t,n){let r,i=typeof t=="number"?t:Wt(t)?t.toNumber():new Proxy(t,{get(o,s){if(!r){let a=Reflect.get(o,"count");r=Wt(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 Vt(e,i,n)}var it=O([W("instruction"),g("amountIn"),g("minAmountOut")]),ot=O([W("instruction"),g("maxAmountIn"),g("amountOut")]),Ko=O([W("instruction"),W("nonce")]),st=O([W("instruction"),W("nonce"),g("startTime")]),Rn=O([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"),ee("swapBaseInAmount"),ee("swapQuoteOutAmount"),g("swapBase2QuoteFee"),ee("swapQuoteInAmount"),ee("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"),Be(g(),3,"padding")]),Dn=O([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"),ee("swapBaseInAmount"),ee("swapQuoteOutAmount"),ee("swapQuoteInAmount"),ee("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"),Be(g(),64,"padding")]),at=O([W("instruction"),g("baseAmountIn"),g("quoteAmountIn"),g("fixedSide")]),ut=O([W("instruction"),g("amountIn")]),Oo={4:Rn,5:Dn},vo=O([g("fee")]);import{PublicKey as Pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ti}from"@solana/spl-token";import{PublicKey as Wc}from"@solana/web3.js";import{MintLayout as Uc,TOKEN_PROGRAM_ID as Hc}from"@solana/spl-token";import Hr from"big.js";import Qe from"bn.js";import H from"bn.js";var Pe=9e15,ce=1e9,ct="0123456789abcdef",Fe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",We="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",lt={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Pe,maxE:Pe,crypto:!1},Ht,te,T=!0,Ue="[DecimalError] ",ue=Ue+"Invalid argument: ",jt=Ue+"Precision limit exceeded",Yt=Ue+"crypto unavailable",zt="[object Decimal]",q=Math.floor,D=Math.pow,Kn=/^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,Qt=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Z=1e7,w=7,Vn=9007199254740991,Fn=Fe.length-1,mt=We.length-1,d={toStringTag:zt};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=Wn(r,en(r,n)),r.precision=e,r.rounding=t,y(te==2||te==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(T=!1,o=l.s*D(l.s*l,1/3),!o||Math.abs(o)==1/0?(n=v(l.d),e=l.e,(o=(e-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=D(n,1/3),e=q((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?n="5e"+e:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),r=new m(n),r.s=l.s):r=new m(o.toString()),s=(e=m.precision)+3;;)if(a=r,c=a.times(a).times(a),u=c.plus(l),r=N(u.plus(l).times(a),u.plus(c),s+2,1),v(a.d).slice(0,s)===(n=v(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 T=!0,y(r,e,m.rounding,t)};d.decimalPlaces=d.dp=function(){var e,t=this.d,n=NaN;if(t){if(e=t.length-1,n=(e-q(this.e/w))*w,e=t[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n};d.dividedBy=d.div=function(e){return N(this,new this.constructor(e))};d.dividedToIntegerBy=d.divToInt=function(e){var t=this,n=t.constructor;return y(N(t,new n(e),0,1,1),n.precision,n.rounding)};d.equals=d.eq=function(e){return this.cmp(e)===0};d.floor=function(){return y(new this.constructor(this),this.e+1,3)};d.greaterThan=d.gt=function(e){return this.cmp(e)>0};d.greaterThanOrEqualTo=d.gte=function(e){var t=this.cmp(e);return t==1||t===0};d.hyperbolicCosine=d.cosh=function(){var e,t,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/He(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=Te(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=Te(o,2,i,i,!0);else{e=1.4*Math.sqrt(r),e=e>16?16:e|0,i=i.times(1/He(5,e)),i=Te(o,2,i,i,!0);for(var s,a=new o(5),c=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(c.times(s).plus(u))))}return o.precision=t,o.rounding=n,y(i,t,n,!0)};d.hyperbolicTangent=d.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,N(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)};d.inverseCosine=d.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?t.isNeg()?Q(n,i,o):new n(0):new n(NaN):t.isZero()?Q(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,t=t.asin(),e=Q(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,T=!1,n=n.times(n).minus(1).sqrt().plus(n),T=!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,T=!1,n=n.times(n).plus(1).sqrt().plus(n),T=!0,r.precision=e,r.rounding=t,n.ln())};d.inverseHyperbolicTangent=d.atanh=function(){var e,t,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,r=i.sd(),Math.max(r,e)<2*-i.e-1?y(new o(i),e,t,!0):(o.precision=n=r-i.e,i=N(i.plus(1),new o(1).minus(i),n+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};d.inverseSine=d.asin=function(){var e,t,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),n=o.precision,r=o.rounding,t!==-1?t===0?(e=Q(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<=mt)return s=Q(l,m+4,p).times(.25),s.s=u.s,s}else{if(!u.s)return new l(NaN);if(m+4<=mt)return s=Q(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(T=!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)),T=!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,h=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(T=!1,a=m+h,s=ae(u,a),r=t?qe(l,a+10):ae(e,a),c=N(s,r,a,1),Le(c.d,i=m,p))do if(a+=10,s=ae(u,a),r=t?qe(l,a+10):ae(e,a),c=N(s,r,a,1),!o){+v(c.d).slice(i+1,i+15)+1==1e14&&(c=y(c,m+1,0));break}while(Le(c.d,i+=10,p));return T=!0,y(c,m,p)};d.minus=d.sub=function(e){var t,n,r,i,o,s,a,c,u,l,m,p,h=this,P=h.constructor;if(e=new P(e),!h.d||!e.d)return!h.s||!e.s?e=new P(NaN):h.d?e.s=-e.s:e=new P(e.d||h.s!==e.s?h:NaN),e;if(h.s!=e.s)return e.s=-e.s,h.plus(e);if(u=h.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(h);else return new P(c===3?-0:0);return T?y(e,a,c):e}if(n=q(e.e/w),l=q(h.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]=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=Ge(u,n),T?y(e,a,c):e):new P(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):(T=!1,r.modulo==9?(t=N(n,e.abs(),0,3,1),t.s*=e.s):t=N(n,e,0,r.modulo,1),t=t.times(e),T=!0,n.minus(t))};d.naturalExponential=d.exp=function(){return pt(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)),T?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)/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=Ge(u,r),T?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=Zt(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=Un(r,en(r,n)),r.precision=e,r.rounding=t,y(te>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(T=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=v(a),(t.length+c)%2==0&&(t+="0"),u=Math.sqrt(t),c=q((c+1)/2)-(c<0||c%2),u==1/0?t="5e"+c:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+c),r=new l(t)):r=new l(u.toString()),n=(c=l.precision)+3;;)if(o=r,r=o.plus(N(s,o,n+2,1)).times(.5),v(o.d).slice(0,n)===(t=v(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 T=!0,y(r,c,l.rounding,e)};d.tangent=d.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,n=n.sin(),n.s=1,n=N(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,y(te==2||te==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,h=(e=new m(e)).d;if(e.s*=l.s,!p||!p[0]||!h||!h[0])return new m(!e.s||p&&!p[0]&&!h||h&&!h[0]&&!p?NaN:!p||!h?e.s/0:e.s*0);for(n=q(l.e/w)+q(e.e/w),c=p.length,u=h.length,c<u&&(o=p,p=h,h=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]+h[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=Ge(o,n),T?y(e,m.precision,m.rounding):e};d.toBinary=function(e,t){return dt(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=J(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=J(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=J(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=J(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,h=this,P=h.d,b=h.constructor;if(!P)return new b(h);if(u=n=new b(1),r=c=new b(0),t=new b(r),o=t.e=Zt(P)-h.e-1,s=o%w,t.d[0]=D(10,s<0?w+s:s),e==null)e=o>0?t:u;else{if(a=new b(e),!a.isInt()||a.lt(u))throw Error(ue+a);e=a.gt(t)?o>0?t:u:a}for(T=!1,a=new b(v(P)),l=b.precision,b.precision=o=P.length*w*2;m=N(a,t,0,1,1),i=n.plus(m.times(r)),i.cmp(e)!=1;)n=r,r=i,i=u,u=c.plus(m.times(i)),c=i,i=t,t=a.minus(m.times(i)),a=i;return i=N(e.minus(n),r,0,1,1),c=c.plus(i.times(u)),n=n.plus(i.times(r)),c.s=u.s=h.s,p=N(u,r,o,1).minus(h).abs().cmp(N(c,n,o,1).minus(h).abs())<1?[u,r]:[c,n],b.precision=l,T=!0,p};d.toHexadecimal=d.toHex=function(e,t){return dt(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]?(T=!1,n=N(n,e,0,t,1).times(e),T=!0,y(n)):(e.s=n.s,n=e),n};d.toNumber=function(){return+this};d.toOctal=function(e,t){return dt(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(D(+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)<=Vn)return i=Xt(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=D(+a,u),t=n==0||!isFinite(n)?q(u*(Math.log("0."+v(a.d))/Math.LN10+a.e+1)):new c(n+"").e,t>c.maxE+1||t<c.minE-1?new c(t>0?s/0:0):(T=!1,c.rounding=a.s=1,n=Math.min(12,(t+"").length),i=pt(e.times(ae(a,r+n)),r),i.d&&(i=y(i,r+5,1),Le(i.d,r,o)&&(t=r+10,i=y(pt(e.times(ae(a,t+n)),t),t+5,1),+v(i.d).slice(r+1,r+15)+1==1e14&&(i=y(i,r+1,0)))),i.s=s,T=!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=J(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=J(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=J(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=J(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};function v(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 Le(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=D(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)==D(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)==D(10,t-3)-1,s}function Ve(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]+=ct.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 Wn(e,t){var n,r,i;if(t.isZero())return t;r=t.d.length,r<32?(n=Math.ceil(r/3),i=(1/He(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=Te(e,1,t.times(i),new e(1));for(var o=n;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=n,t}var N=function(){function e(r,i,o){var s,a=0,c=r.length;for(r=r.slice();c--;)s=r[c]*i+a,r[c]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function t(r,i,o,s){var a,c;if(o!=s)c=o>s?1:-1;else for(a=c=0;a<o;a++)if(r[a]!=i[a]){c=r[a]>i[a]?1:-1;break}return c}function n(r,i,o,s){for(var a=0;o--;)r[o]-=a,a=r[o]<i[o]?1:0,r[o]=a*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,a,c){var u,l,m,p,h,P,b,R,L,U,S,K,ye,Y,Ie,pe,fe,we,z,De,Ke=r.constructor,Je=r.s==i.s?1:-1,F=r.d,C=i.d;if(!F||!F[0]||!C||!C[0])return new Ke(!r.s||!i.s||(F?C&&F[0]==C[0]:!C)?NaN:F&&F[0]==0||!C?Je*0:Je/0);for(c?(h=1,l=r.e-i.e):(c=Z,h=w,l=q(r.e/h)-q(i.e/h)),z=C.length,fe=F.length,L=new Ke(Je),U=L.d=[],m=0;C[m]==(F[m]||0);m++);if(C[m]>(F[m]||0)&&l--,o==null?(Y=o=Ke.precision,s=Ke.rounding):a?Y=o+(r.e-i.e)+1:Y=o,Y<0)U.push(1),P=!0;else{if(Y=Y/h+2|0,m=0,z==1){for(p=0,C=C[0],Y++;(m<fe||p)&&Y--;m++)Ie=p*c+(F[m]||0),U[m]=Ie/C|0,p=Ie%C|0;P=p||m<fe}else{for(p=c/(C[0]+1)|0,p>1&&(C=e(C,p,c),F=e(F,p,c),z=C.length,fe=F.length),pe=z,S=F.slice(0,z),K=S.length;K<z;)S[K++]=0;De=C.slice(),De.unshift(0),we=C[0],C[1]>=c/2&&++we;do p=0,u=t(C,S,z,K),u<0?(ye=S[0],z!=K&&(ye=ye*c+(S[1]||0)),p=ye/we|0,p>1?(p>=c&&(p=c-1),b=e(C,p,c),R=b.length,K=S.length,u=t(b,S,R,K),u==1&&(p--,n(b,z<R?De:C,R,c))):(p==0&&(u=p=1),b=C.slice()),R=b.length,R<K&&b.unshift(0),n(S,b,K,c),u==-1&&(K=S.length,u=t(C,S,z,K),u<1&&(p++,n(S,z<K?De:C,K,c))),K=S.length):u===0&&(p++,S=[0]),U[m++]=p,u&&S[0]?S[K++]=F[pe]||0:(S=[F[pe]],K=1);while((pe++<fe||S[0]!==void 0)&&Y--);P=S[0]!==void 0}U[0]||U.shift()}if(h==1)L.e=l,Ht=P;else{for(m=1,p=U[0];p>=10;p/=10)m++;L.e=m+l*h-1,y(L,a?o+L.e+1:o,s,P)}return L}}();function y(e,t,n,r){var i,o,s,a,c,u,l,m,p,h=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/D(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/D(10,i-s-1)%10|0}if(r=r||t<0||m[p+1]!==void 0||(s<0?l:l%D(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/D(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]=D(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=D(10,w-o),m[p]=s>0?(l/D(10,i-s)%D(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 T&&(e.e>h.maxE?(e.d=null,e.e=NaN):e.e<h.minE&&(e.e=0,e.d=[0])),e}function J(e,t,n){if(!e.isFinite())return $t(e);var r,i=e.e,o=v(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 Ge(e,t){var n=e[0];for(t*=w;n>=10;n/=10)t++;return t}function qe(e,t,n){if(t>Fn)throw T=!0,n&&(e.precision=n),Error(jt);return y(new e(Fe),t,1,!0)}function Q(e,t,n){if(t>mt)throw Error(jt);return y(new e(We),t,n,!0)}function Zt(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 Xt(e,t,n,r){var i,o=new e(1),s=Math.ceil(r/w+4);for(T=!1;;){if(n%2&&(o=o.times(t),Ut(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),Ut(t.d,s)}return T=!0,o}function qt(e){return e.d[e.d.length-1]&1}function Jt(e,t,n){for(var 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,h=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?(T=!1,c=P):c=t,a=new p(.03125);e.e>-2;)e=e.times(a),m+=5;for(r=Math.log(D(2,m))/Math.LN10*2+5|0,c+=r,n=o=s=new p(1),p.precision=c;;){if(o=y(o.times(e),c,1),n=n.times(++l),a=s.plus(N(o,n,c,1)),v(a.d).slice(0,c)===v(s.d).slice(0,c)){for(i=m;i--;)s=y(s.times(s),c,1);if(t==null)if(u<3&&Le(s.d,c-r,h,u))p.precision=c+=10,n=o=a=new p(1),l=0,u++;else return y(s,p.precision=P,h,T=!0);else return p.precision=P,s}s=a}}function ae(e,t){var n,r,i,o,s,a,c,u,l,m,p,h=1,P=10,b=e,R=b.d,L=b.constructor,U=L.rounding,S=L.precision;if(b.s<0||!R||!R[0]||!b.e&&R[0]==1&&R.length==1)return new L(R&&!R[0]?-1/0:b.s!=1?NaN:R?0:b);if(t==null?(T=!1,l=S):l=t,L.precision=l+=P,n=v(R),r=n.charAt(0),Math.abs(o=b.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)b=b.times(e),n=v(b.d),r=n.charAt(0),h++;o=b.e,r>1?(b=new L("0."+n),o++):b=new L(r+"."+n.slice(1))}else return u=qe(L,l+2,S).times(o+""),b=ae(new L(r+"."+n.slice(1)),l-P).plus(u),L.precision=S,t==null?y(b,S,U,T=!0):b;for(m=b,c=s=b=N(b.minus(1),b.plus(1),l,1),p=y(b.times(b),l,1),i=3;;){if(s=y(s.times(p),l,1),u=c.plus(N(s,new L(i),l,1)),v(u.d).slice(0,l)===v(c.d).slice(0,l))if(c=c.times(2),o!==0&&(c=c.plus(qe(L,l+2,S).times(o+""))),c=N(c,new L(h),l,1),t==null)if(Le(c.d,l-P,U,a))L.precision=l+=P,u=s=b=N(m.minus(1),m.plus(1),l,1),p=y(b.times(b),l,1),i=a=1;else return y(c,L.precision=S,U,T=!0);else return L.precision=S,c;c=u,i+=2}}function $t(e){return String(e.s*e.s/0)}function ft(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),T&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function qn(e,t){var n,r,i,o,s,a,c,u,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Qt.test(t))return ft(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(Kn.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=Xt(r,new r(n),o,o*2)),u=Ve(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=Ge(u,l),e.d=u,T=!1,s&&(e=N(e,i,a*4)),c&&(e=e.times(Math.abs(c)<54?D(2,c):Ne.pow(2,c))),T=!0,e)}function Un(e,t){var n,r=t.d.length;if(r<3)return t.isZero()?t:Te(e,2,t,t);n=1.4*Math.sqrt(r),n=n>16?16:n|0,t=t.times(1/He(5,n)),t=Te(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 Te(e,t,n,r,i){var o,s,a,c,u=1,l=e.precision,m=Math.ceil(l/w);for(T=!1,c=n.times(n),a=new e(r);;){if(s=N(a.times(c),new e(t++*t++),l,1),a=i?r.plus(s):r.minus(s),r=N(s.times(c),new e(t++*t++),l,1),s=a.plus(r),s.d[m]!==void 0){for(o=m;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,u++}return T=!0,s.d.length=m+1,s}function He(e,t){for(var n=e;--t;)n*=e;return n}function en(e,t){var n,r=t.s<0,i=Q(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=qt(n)?r?2:3:r?4:1,t;te=qt(n)?r?1:4:r?3:2}return t.minus(i).abs()}function dt(e,t,n,r){var i,o,s,a,c,u,l,m,p,h=e.constructor,P=n!==void 0;if(P?(G(n,1,ce),r===void 0?r=h.rounding:G(r,0,8)):(n=h.precision,r=h.rounding),!e.isFinite())l=$t(e);else{for(l=J(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 h(1),p.e=l.length-s,p.d=Ve(J(p),10,i),p.e=p.d.length),m=Ve(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 h(e),e.d=m,e.e=o,e=N(e,p,n,r,0,i),m=e.d,o=e.e,u=Ht),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+=ct.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=Ve(l,i,t),c=m.length;!m[c-1];--c);for(s=1,l="1.";s<c;s++)l+=ct.charAt(m[s])}else l=l.charAt(0)+"."+l.slice(1);l=l+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)l="0"+l;l="0."+l}else if(++o>c)for(o-=c;o--;)l+="0";else o<c&&(l=l.slice(0,o)+"."+l.slice(o))}l=(t==16?"0x":t==2?"0b":t==8?"0o":"")+l}return e.s<0?"-"+l:l}function Ut(e,t){if(e.length>t)return e.length=t,!0}function Gn(e){return new this(e).abs()}function Hn(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 zn(e){return new this(e).asin()}function Qn(e){return new this(e).asinh()}function Zn(e){return new this(e).atan()}function Xn(e){return new this(e).atanh()}function Jn(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=Q(this,o,1).times(t.s>0?.25:.75),n.s=e.s):!t.d||e.isZero()?(n=t.s<0?Q(this,r,i):new this(0),n.s=e.s):!e.d||t.isZero()?(n=Q(this,o,1).times(.5),n.s=e.s):t.s<0?(this.precision=o,this.rounding=1,n=this.atan(N(e,t,o,1)),t=Q(this,o,1),this.precision=r,this.rounding=i,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(N(e,t,o,1)),n}function $n(e){return new this(e).cbrt()}function er(e){return y(e=new this(e),e.e+1,2)}function tr(e,t,n){return new this(e).clamp(t,n)}function nr(e){if(!e||typeof e!="object")throw Error(Ue+"Object expected");var t,n,r,i=e.defaults===!0,o=["precision",1,ce,"rounding",0,8,"toExpNeg",-Pe,0,"toExpPos",0,Pe,"maxE",0,Pe,"minE",-Pe,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(n=o[t],i&&(this[n]=lt[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]=lt[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 rr(e){return new this(e).cos()}function ir(e){return new this(e).cosh()}function tn(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,Gt(o)){u.s=o.s,T?!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++;T?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 ft(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),Qt.test(o)?ft(u,o):qn(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=nr,i.clone=tn,i.isDecimal=Gt,i.abs=Gn,i.acos=Hn,i.acosh=jn,i.add=Yn,i.asin=zn,i.asinh=Qn,i.atan=Zn,i.atanh=Xn,i.atan2=Jn,i.cbrt=$n,i.ceil=er,i.clamp=tr,i.cos=rr,i.cosh=ir,i.div=or,i.exp=sr,i.floor=ar,i.hypot=ur,i.ln=cr,i.log=lr,i.log10=pr,i.log2=mr,i.max=fr,i.min=dr,i.mod=gr,i.mul=hr,i.pow=br,i.random=yr,i.round=wr,i.sign=Pr,i.sin=Tr,i.sinh=xr,i.sqrt=Ar,i.sub=kr,i.sum=Sr,i.tan=Ir,i.tanh=Br,i.trunc=Lr,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 or(e,t){return new this(e).div(t)}function sr(e){return new this(e).exp()}function ar(e){return y(e=new this(e),e.e+1,3)}function ur(){var e,t,n=new this(0);for(T=!1,e=0;e<arguments.length;)if(t=new this(arguments[e++]),t.d)n.d&&(n=n.plus(t.times(t)));else{if(t.s)return T=!0,new this(1/0);n=t}return T=!0,n.sqrt()}function Gt(e){return e instanceof Ne||e&&e.toStringTag===zt||!1}function cr(e){return new this(e).ln()}function lr(e,t){return new this(e).log(t)}function mr(e){return new this(e).log(2)}function pr(e){return new this(e).log(10)}function fr(){return Jt(this,arguments,"lt")}function dr(){return Jt(this,arguments,"gt")}function gr(e,t){return new this(e).mod(t)}function hr(e,t){return new this(e).mul(t)}function br(e,t){return new this(e).pow(t)}function yr(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=D(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 wr(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 Tr(e){return new this(e).sin()}function xr(e){return new this(e).sinh()}function Ar(e){return new this(e).sqrt()}function kr(e,t){return new this(e).sub(t)}function Sr(){var e=0,t=arguments,n=new this(t[e]);for(T=!1;n.s&&++e<t.length;)n=n.plus(t[e]);return T=!0,y(n,this.precision,this.rounding)}function Ir(e){return new this(e).tan()}function Br(e){return new this(e).tanh()}function Lr(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=tn(lt);Fe=new Ne(Fe);We=new Ne(We);var Ce=Ne;import{PublicKey as Pt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Nr}from"@solana/spl-token";import{PublicKey as M,SystemProgram as nn,SYSVAR_RENT_PUBKEY as Cr}from"@solana/web3.js";function f({pubkey:e,isSigner:t=!1,isWritable:n=!0}){return{pubkey:e,isWritable:n,isSigner:t}}var Go=[f({pubkey:Nr,isWritable:!1}),f({pubkey:nn.programId,isWritable:!1}),f({pubkey:Cr,isWritable:!1})];function ht({publicKey:e,transformSol:t}){let n=bt(e.toString());if(n instanceof M)return t&&n.equals(Ee)?gt:n;if(t&&n.toString()===Ee.toBase58())return gt;if(typeof n=="string"){if(n===M.default.toBase58())return M.default;try{return new M(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bt(e){try{return new M(e)}catch{return e}}var Ho=new M("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),jo=new M("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),rn=new M("SysvarRent111111111111111111111111111111111"),Yo=new M("SysvarC1ock11111111111111111111111111111111"),zo=new M("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Qo=new M("Sysvar1nstructions1111111111111111111111111"),Zo=nn.programId,Xo=new M("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Jo=new M("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$o=new M("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),es=new M("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ts=new M("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ns=new M("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),rs=new M("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),is=new M("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),os=new M("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ss=new M("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),as=new M("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),gt=new M("So11111111111111111111111111111111111111112"),Ee=M.default;function yt(e){return ht({publicKey:e,transformSol:!0})}import{PublicKey as Er}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as on}from"@solana/spl-token";var wt={chainId:101,address:Er.default.toBase58(),programId:on.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:on.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Tt=class{constructor({mint:t,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(t===Ee.toBase58()||t instanceof Pt&&Ee.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Pt(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?Pt.default:ht({publicKey:t}),this.isToken2022=s}equals(t){return this===t?!0:this.mint.equals(t.mint)}},me=Tt;me.WSOL=new Tt(X(j({},le),{mint:le.address}));import{get as sn,set as Mr}from"lodash";var xt=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}},an={},_r={};function V(e){let t=sn(an,e);if(!t){let n=sn(_r,e);t=new xt({name:e,logLevel:n}),Mr(an,e,t)}return t}import Ye from"big.js";import Kr from"bn.js";import Or from"decimal.js-light";import Rr from"toformat";var Dr=Rr,Me=Dr;var je=V("module/fraction"),At=Me(Ye),_e=Me(Or),vr={[0]:_e.ROUND_DOWN,[1]:_e.ROUND_HALF_UP,[2]:_e.ROUND_UP},Vr={[0]:Ye.roundDown,[1]:Ye.roundHalfUp,[2]:Ye.roundUp},I=class{constructor(t,n=new Kr(1)){this.numerator=_(t),this.denominator=_(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(_(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(_(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(_(t));return new I(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof I?t:new I(_(t));return new I(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||je.logWithError(`${t} is not an integer.`),t<=0&&je.logWithError(`${t} is not positive.`),_e.set({precision:t+1,rounding:vr[r]});let i=new _e(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)||je.logWithError(`${t} is not an integer.`),t<0&&je.logWithError(`${t} is negative.`),At.DP=t,At.RM=Vr[r]||1,new At(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Wr=V("Raydium_price"),ne=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(kt(r.decimals),kt(i.decimals))}get raw(){return new I(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ne({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&Wr.logWithError("mul token not equals");let r=super.mul(n);return new ne({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 St=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ze=St;ze.SOL=new St(wt);import qr from"bn.js";var un=new I(new qr(100)),xe=class extends I{toSignificant(t=5,n,r){return this.mul(un).toSignificant(t,n,r)}toFixed(t=2,n,r){return this.mul(un).toFixed(t,n,r)}};import{PublicKey as Ur}from"@solana/web3.js";import Gr from"bn.js";function cn(e){return typeof e=="object"&&e!==null&&![me,$,Ur,I,Gr,ne,xe].some(t=>typeof t=="object"&&e instanceof t)}function de(e){return typeof e=="string"?bt(e):Array.isArray(e)?e.map(t=>de(t)):cn(e)?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,de(n)])):e}var It=new H(0),mn=new H(1),la=new H(2),ma=new H(3),pa=new H(5),Bt=new H(10),fa=new H(100),da=new H(1e3),ga=new H(1e4),ln=9007199254740991;function _(e){let t=V("Raydium_parseBigNumberish");if(e instanceof H)return e;if(typeof e=="string"){if(e.match(/^-?[0-9]+$/))return new H(e);t.logWithError(`invalid BigNumberish string: ${e}`)}return typeof e=="number"?(e%1&&t.logWithError(`BigNumberish number underflow: ${e}`),(e>=ln||e<=-ln)&&t.logWithError(`BigNumberish number overflow: ${e}`),new H(String(e))):typeof e=="bigint"?new H(e.toString()):(t.error(`invalid BigNumberish value: ${e}`),new H(0))}function kt(e){return Bt.pow(_(e))}var jr=V("Raydium_amount"),pn=Me(Hr);function Yr(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")):jr.logWithError(`invalid number string, num: ${e}`)}else n=e;return[n,r.slice(0,t)||r]}var $=class extends I{constructor(n,r,i=!0,o){let s=new Qe(0),a=Bt.pow(new Qe(n.decimals));if(i)s=_(r);else{let c=new Qe(0),u=new Qe(0);if(typeof r=="string"||typeof r=="number"||typeof r=="bigint"){let[l,m]=Yr(r.toString(),n.decimals);c=_(l),u=_(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 $(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)}};import{PublicKey as Bu,sendAndConfirmTransaction as Lu,Transaction as Cu,TransactionMessage as Mu,VersionedTransaction as _u}from"@solana/web3.js";import Ku from"axios";var Lt={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",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",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"};import{PublicKey as fn,ComputeBudgetProgram as Va,Transaction as Nt,TransactionMessage as qa,Keypair as Ua,VersionedTransaction as Ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as za}from"@solana/spl-token";var re=V("Raydium_txUtil"),zr=1644;function Qr(e,t){e.length<1&&re.logWithError(`no instructions provided: ${e.toString()}`),t.length<1&&re.logWithError(`no signers provided:, ${t.toString()}`);let n=new Nt;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...e);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<zr}catch{return!1}}async function dn(e,t,n,r=!0){let i=new fn("RaydiumSimuLateTransaction11111111111111111"),o=[],s=new Nt;s.feePayer=i;for(let u of t)Qr([...s.instructions,u],[i])||(o.push(s),s=new Nt,s.feePayer=i),s.add(u);s.instructions.length>0&&o.push(s);let a=[];try{if(a=await Zr(e,o,r),a.find(u=>u.err!==null))throw Error("rpc simulateTransaction error")}catch(u){u instanceof Error&&re.logWithError("failed to simulate for instructions","RPC_ERROR",{message:u.message})}let c=[];for(let u of a)if(re.debug("simulate result:",u),u.logs){let l=u.logs.filter(m=>m&&m.includes(n));re.debug("filteredLog:",c),l.length||re.logWithError("simulate log not match keyword","keyword",