@raydium-io/raydium-sdk-v2 0.1.43-alpha → 0.1.44-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/lib/api/api.d.ts +1 -1
- package/lib/api/index.d.ts +1 -1
- package/lib/api/type.d.ts +1 -1
- package/lib/{api-7c7b1543.d.ts → api-51b11f0d.d.ts} +3 -3
- package/lib/common/accountInfo.d.ts +1 -1
- package/lib/common/bignumber.d.ts +1 -1
- package/lib/common/fractionUtil.d.ts +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/transfer.d.ts +1 -1
- package/lib/common/txTool/txTool.d.ts +1 -1
- package/lib/common/txTool/txUtils.d.ts +1 -1
- package/lib/common/utility.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/module/amount.d.ts +1 -1
- package/lib/module/fraction.d.ts +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/percent.d.ts +1 -1
- package/lib/module/price.d.ts +1 -1
- package/lib/raydium/account/account.d.ts +3 -3
- package/lib/raydium/account/index.d.ts +1 -1
- package/lib/raydium/account/instruction.d.ts +1 -1
- package/lib/raydium/account/types.d.ts +1 -1
- package/lib/raydium/account/util.d.ts +1 -1
- package/lib/raydium/clmm/clmm.d.ts +3 -3
- package/lib/raydium/clmm/index.d.ts +3 -3
- package/lib/raydium/clmm/instrument.d.ts +2 -2
- package/lib/raydium/clmm/layout.d.ts +5 -5
- package/lib/raydium/clmm/type.d.ts +2 -2
- package/lib/raydium/clmm/utils/math.d.ts +2 -2
- package/lib/raydium/clmm/utils/pool.d.ts +2 -2
- package/lib/raydium/clmm/utils/position.d.ts +2 -2
- package/lib/raydium/clmm/utils/tick.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickQuery.d.ts +2 -2
- package/lib/raydium/clmm/utils/tickarrayBitmap.d.ts +2 -2
- package/lib/raydium/cpmm/cpmm.d.ts +3 -3
- package/lib/raydium/cpmm/index.d.ts +1 -1
- package/lib/raydium/cpmm/type.d.ts +1 -1
- package/lib/raydium/farm/config.d.ts +1 -1
- package/lib/raydium/farm/farm.d.ts +3 -3
- package/lib/raydium/farm/index.d.ts +1 -1
- package/lib/raydium/farm/instruction.d.ts +1 -1
- package/lib/raydium/farm/layout.d.ts +1 -1
- package/lib/raydium/farm/type.d.ts +1 -1
- package/lib/raydium/farm/util.d.ts +1 -1
- package/lib/raydium/ido/ido.d.ts +3 -3
- package/lib/raydium/ido/index.d.ts +3 -3
- package/lib/raydium/ido/instruction.d.ts +1 -1
- package/lib/raydium/ido/type.d.ts +1 -1
- package/lib/raydium/index.d.ts +3 -3
- package/lib/raydium/index.js +1 -1
- package/lib/raydium/index.js.map +1 -1
- package/lib/raydium/index.mjs +1 -1
- package/lib/raydium/index.mjs.map +1 -1
- package/lib/raydium/liquidity/index.d.ts +1 -1
- package/lib/raydium/liquidity/instruction.d.ts +1 -1
- package/lib/raydium/liquidity/liquidity.d.ts +3 -3
- package/lib/raydium/liquidity/type.d.ts +1 -1
- package/lib/raydium/liquidity/utils.d.ts +1 -1
- package/lib/raydium/marketV2/createMarket.d.ts +3 -3
- package/lib/raydium/marketV2/createMarket.js +1 -1
- package/lib/raydium/marketV2/createMarket.js.map +1 -1
- package/lib/raydium/marketV2/createMarket.mjs +1 -1
- package/lib/raydium/marketV2/createMarket.mjs.map +1 -1
- package/lib/raydium/marketV2/index.d.ts +3 -3
- package/lib/raydium/marketV2/index.js +1 -1
- package/lib/raydium/marketV2/index.js.map +1 -1
- package/lib/raydium/marketV2/index.mjs +1 -1
- package/lib/raydium/marketV2/index.mjs.map +1 -1
- package/lib/raydium/marketV2/instrument.d.ts +3 -0
- package/lib/raydium/marketV2/instrument.js +1 -1
- package/lib/raydium/marketV2/instrument.js.map +1 -1
- package/lib/raydium/marketV2/instrument.mjs +1 -1
- package/lib/raydium/marketV2/instrument.mjs.map +1 -1
- package/lib/raydium/moduleBase.d.ts +3 -3
- package/lib/raydium/raydium.d.ts +3 -3
- package/lib/raydium/raydium.js +1 -1
- package/lib/raydium/raydium.js.map +1 -1
- package/lib/raydium/raydium.mjs +1 -1
- package/lib/raydium/raydium.mjs.map +1 -1
- package/lib/raydium/token/constant.d.ts +1 -1
- package/lib/raydium/token/index.d.ts +1 -1
- package/lib/raydium/token/token.d.ts +3 -3
- package/lib/raydium/token/type.d.ts +1 -1
- package/lib/raydium/token/utils.d.ts +1 -1
- package/lib/raydium/tradeV2/index.d.ts +2 -2
- package/lib/raydium/tradeV2/index.js.map +1 -1
- package/lib/raydium/tradeV2/index.mjs.map +1 -1
- package/lib/raydium/tradeV2/instrument.d.ts +2 -2
- package/lib/raydium/tradeV2/trade.d.ts +3 -3
- package/lib/raydium/tradeV2/trade.js +1 -1
- package/lib/raydium/tradeV2/trade.js.map +1 -1
- package/lib/raydium/tradeV2/trade.mjs +1 -1
- package/lib/raydium/tradeV2/trade.mjs.map +1 -1
- package/lib/raydium/tradeV2/type.d.ts +2 -2
- package/lib/raydium/type.d.ts +1 -1
- package/lib/raydium/utils1216/index.d.ts +3 -3
- package/lib/raydium/utils1216/utils1216.d.ts +3 -3
- package/lib/{raydium-8a28fbc6.d.ts → raydium-026a0a95.d.ts} +6 -3
- package/lib/{type-32d4c4bc.d.ts → type-c1771287.d.ts} +1 -1
- package/package.json +1 -1
- package/src/raydium/marketV2/createMarket.ts +10 -0
- package/src/raydium/marketV2/instrument.ts +12 -8
- package/src/raydium/tradeV2/trade.ts +4 -8
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Rn=Object.defineProperty,Dn=Object.defineProperties;var Kn=Object.getOwnPropertyDescriptors;var _e=Object.getOwnPropertySymbols;var vt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var _t=(t,e,n)=>e in t?Rn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,W=(t,e)=>{for(var n in e||(e={}))vt.call(e,n)&&_t(t,n,e[n]);if(_e)for(var n of _e(e))Ot.call(e,n)&&_t(t,n,e[n]);return t},ne=(t,e)=>Dn(t,Kn(e));var ve=(t,e)=>{var n={};for(var r in t)vt.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&_e)for(var r of _e(t))e.indexOf(r)<0&&Ot.call(t,r)&&(n[r]=t[r]);return n};import{PublicKey as Ke}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mn}from"@solana/spl-token";import Ie from"bn.js";import{get as Ft,set as In}from"lodash";var st=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Vt={},_n={};function G(t){let e=Ft(Vt,t);if(!e){let n=Ft(_n,t);e=new st({name:t,logLevel:n}),In(Vt,t,e)}return e}import{PublicKey as Ce,sendAndConfirmTransaction as Pt,Transaction as Ee,TransactionMessage as Me,VersionedTransaction as Re}from"@solana/web3.js";import Xr from"axios";var j={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 Li,ComputeBudgetProgram as qt,Transaction as Ut,TransactionMessage as vn,Keypair as Gt,VersionedTransaction as Ht}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as On}from"@solana/spl-token";var Wt=G("Raydium_txUtil"),zt=1644;function Oe(t){let e=[],n=[];return t.microLamports&&(e.push(qt.setComputeUnitPrice({microLamports:t.microLamports})),n.push(j.SetComputeUnitPrice)),t.units&&(e.push(qt.setComputeUnitLimit({units:t.units})),n.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function he(t,e){var r,i;let n=e!=null?e:"confirmed";try{return((i=await((r=t.getLatestBlockhash)==null?void 0:r.call(t,{commitment:n})))==null?void 0:i.blockhash)||(await t.getRecentBlockhash(n)).blockhash}catch{return(await t.getRecentBlockhash(n)).blockhash}}function Fn(t,e){t.length<1&&Wt.logWithError(`no instructions provided: ${t.toString()}`),e.length<1&&Wt.logWithError(`no signers provided:, ${e.toString()}`);let n=new Ut;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...t);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<zt}catch{return!1}}function Ae({instructions:t,payer:e,signers:n}){return Fn(t,[e,...n])}function Be({instructions:t,payer:e,lookupTableAddressAccount:n,recentBlockhash:r=Gt.generate().publicKey.toString()}){let o=new vn({payerKey:e,recentBlockhash:r,instructions:t}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Ht(o).serialize()).toString("base64").length<zt}catch{return!1}}var Vn=t=>Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength):Buffer.from(t);function pe(t){let e=[];return t.forEach(n=>{n instanceof Ut&&(n.recentBlockhash||(n.recentBlockhash=On.toBase58()),n.feePayer||(n.feePayer=Gt.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Ht&&(r=Vn(r));let i=r.toString("base64");e.push(i)}),console.log("simulate tx string:",e),e}import{PublicKey as yn,AddressLookupTableAccount as Je}from"@solana/web3.js";import{PublicKey as Zr}from"@solana/web3.js";import{MINT_SIZE as za,TOKEN_PROGRAM_ID as ja,getTransferFeeConfig as Qa,unpackMint as Ya}from"@solana/spl-token";import{PublicKey as _s}from"@solana/web3.js";import Os from"bn.js";import zr from"big.js";import hs from"bn.js";import Y from"bn.js";var be=9e15,se=1e9,at="0123456789abcdef",Ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ut={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-be,maxE:be,crypto:!1},Zt,te,S=!0,Ue="[DecimalError] ",oe=Ue+"Invalid argument: ",Jt=Ue+"Precision limit exceeded",Xt=Ue+"crypto unavailable",$t="[object Decimal]",H=Math.floor,O=Math.pow,qn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Un=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,en=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,A=7,Gn=9007199254740991,Hn=Ve.length-1,ct=qe.length-1,m={toStringTag:$t};m.absoluteValue=m.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),T(t)};m.ceil=function(){return T(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(oe+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};m.comparedTo=m.cmp=function(t){var e,n,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,u=o.s,c=t.s;if(!s||!a)return!u||!c?NaN:u!==c?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-c:0;if(u!==c)return u;if(o.e!==t.e)return o.e>t.e^u<0?1:-1;for(r=s.length,i=a.length,e=0,n=r<i?r:i;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1};m.cosine=m.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+A,r.rounding=1,n=zn(r,sn(r,n)),r.precision=t,r.rounding=e,T(te==2||te==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};m.cubeRoot=m.cbrt=function(){var t,e,n,r,i,o,s,a,u,c,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(S=!1,o=f.s*O(f.s*f,1/3),!o||Math.abs(o)==1/0?(n=U(f.d),t=f.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=O(n,1/3),t=H((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new l(n),r.s=f.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(a=r,u=a.times(a).times(a),c=u.plus(f),r=R(c.plus(f).times(a),c.plus(u),s+2,1),U(a.d).slice(0,s)===(n=U(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(T(a,t+1,0),a.times(a).times(a).eq(f))){r=a;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(T(r,t+1,1),e=!r.times(r).times(r).eq(f));break}return S=!0,T(r,t,l.rounding,e)};m.decimalPlaces=m.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-H(this.e/A))*A,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};m.dividedBy=m.div=function(t){return R(this,new this.constructor(t))};m.dividedToIntegerBy=m.divToInt=function(t){var e=this,n=e.constructor;return T(R(e,new n(t),0,1,1),n.precision,n.rounding)};m.equals=m.eq=function(t){return this.cmp(t)===0};m.floor=function(){return T(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(t){return this.cmp(t)>0};m.greaterThanOrEqualTo=m.gte=function(t){var e=this.cmp(t);return e==1||e===0};m.hyperbolicCosine=m.cosh=function(){var t,e,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?(t=Math.ceil(i/3),e=(1/He(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=ye(s,1,o.times(e),new s(1),!0);for(var u,c=t,f=new s(8);c--;)u=o.times(o),o=a.minus(u.times(f.minus(u.times(f))));return T(o,s.precision=n,s.rounding=r,!0)};m.hyperbolicSine=m.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=ye(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/He(5,t)),i=ye(o,2,i,i,!0);for(var s,a=new o(5),u=new o(16),c=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(c))))}return o.precision=e,o.rounding=n,T(i,e,n,!0)};m.hyperbolicTangent=m.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,R(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};m.inverseCosine=m.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?J(n,i,o):new n(0):new n(NaN):e.isZero()?J(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=J(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};m.inverseHyperbolicCosine=m.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,S=!1,n=n.times(n).minus(1).sqrt().plus(n),S=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};m.inverseHyperbolicSine=m.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,S=!1,n=n.times(n).plus(1).sqrt().plus(n),S=!0,r.precision=t,r.rounding=e,n.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var t,e,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):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?T(new o(i),t,e,!0):(o.precision=n=r-i.e,i=R(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=J(o,n+4,r).times(.5),t.s=i.s,t):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)))};m.inverseTangent=m.atan=function(){var t,e,n,r,i,o,s,a,u,c=this,f=c.constructor,l=f.precision,p=f.rounding;if(c.isFinite()){if(c.isZero())return new f(c);if(c.abs().eq(1)&&l+4<=ct)return s=J(f,l+4,p).times(.25),s.s=c.s,s}else{if(!c.s)return new f(NaN);if(l+4<=ct)return s=J(f,l+4,p).times(.5),s.s=c.s,s}for(f.precision=a=l+10,f.rounding=1,n=Math.min(28,a/A+2|0),t=n;t;--t)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(S=!1,e=Math.ceil(a/A),r=1,u=c.times(c),s=new f(c),i=c;t!==-1;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),S=!0,T(s,f.precision=l,f.rounding=p,!0)};m.isFinite=function(){return!!this.d};m.isInteger=m.isInt=function(){return!!this.d&&H(this.e/A)>this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(t){return this.cmp(t)<0};m.lessThanOrEqualTo=m.lte=function(t){return this.cmp(t)<1};m.logarithm=m.log=function(t){var e,n,r,i,o,s,a,u,c=this,f=c.constructor,l=f.precision,p=f.rounding,d=5;if(t==null)t=new f(10),e=!0;else{if(t=new f(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new f(NaN);e=t.eq(10)}if(n=c.d,c.s<0||!n||!n[0]||c.eq(1))return new f(n&&!n[0]?-1/0:c.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(S=!1,a=l+d,s=ie(c,a),r=e?We(f,a+10):ie(t,a),u=R(s,r,a,1),Se(u.d,i=l,p))do if(a+=10,s=ie(c,a),r=e?We(f,a+10):ie(t,a),u=R(s,r,a,1),!o){+U(u.d).slice(i+1,i+15)+1==1e14&&(u=T(u,l+1,0));break}while(Se(u.d,i+=10,p));return S=!0,T(u,l,p)};m.minus=m.sub=function(t){var e,n,r,i,o,s,a,u,c,f,l,p,d=this,b=d.constructor;if(t=new b(t),!d.d||!t.d)return!d.s||!t.s?t=new b(NaN):d.d?t.s=-t.s:t=new b(t.d||d.s!==t.s?d:NaN),t;if(d.s!=t.s)return t.s=-t.s,d.plus(t);if(c=d.d,p=t.d,a=b.precision,u=b.rounding,!c[0]||!p[0]){if(p[0])t.s=-t.s;else if(c[0])t=new b(d);else return new b(u===3?-0:0);return S?T(t,a,u):t}if(n=H(t.e/A),f=H(d.e/A),c=c.slice(),o=f-n,o){for(l=o<0,l?(e=c,o=-o,s=p.length):(e=p,n=f,s=c.length),r=Math.max(Math.ceil(a/A),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=c.length,s=p.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=p[r]){l=c[r]<p[r];break}o=0}for(l&&(e=c,c=p,p=e,t.s=-t.s),s=c.length,r=p.length-s;r>0;--r)c[s++]=0;for(r=p.length;r>o;){if(c[--r]<p[r]){for(i=r;i&&c[--i]===0;)c[i]=X-1;--c[i],c[r]+=X}c[r]-=p[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(t.d=c,t.e=Ge(c,n),S?T(t,a,u):t):new b(u===3?-0:0)};m.modulo=m.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?T(new r(n),r.precision,r.rounding):(S=!1,r.modulo==9?(e=R(n,t.abs(),0,3,1),e.s*=t.s):e=R(n,t,0,r.modulo,1),e=e.times(t),S=!0,n.minus(e))};m.naturalExponential=m.exp=function(){return lt(this)};m.naturalLogarithm=m.ln=function(){return ie(this)};m.negated=m.neg=function(){var t=new this.constructor(this);return t.s=-t.s,T(t)};m.plus=m.add=function(t){var e,n,r,i,o,s,a,u,c,f,l=this,p=l.constructor;if(t=new p(t),!l.d||!t.d)return!l.s||!t.s?t=new p(NaN):l.d||(t=new p(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(c=l.d,f=t.d,a=p.precision,u=p.rounding,!c[0]||!f[0])return f[0]||(t=new p(l)),S?T(t,a,u):t;if(o=H(l.e/A),r=H(t.e/A),c=c.slice(),i=o-r,i){for(i<0?(n=c,i=-i,s=f.length):(n=f,r=o,s=c.length),o=Math.ceil(a/A),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=c.length,i=f.length,s-i<0&&(i=s,n=f,f=c,c=n),e=0;i;)e=(c[--i]=c[i]+f[i]+e)/X|0,c[i]%=X;for(e&&(c.unshift(e),++r),s=c.length;c[--s]==0;)c.pop();return t.d=c,t.e=Ge(c,r),S?T(t,a,u):t};m.precision=m.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(oe+t);return n.d?(e=tn(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};m.round=function(){var t=this,e=t.constructor;return T(new e(t),t.e+1,e.rounding)};m.sine=m.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+A,r.rounding=1,n=Qn(r,sn(r,n)),r.precision=t,r.rounding=e,T(te>2?n.neg():n,t,e,!0)):new r(NaN)};m.squareRoot=m.sqrt=function(){var t,e,n,r,i,o,s=this,a=s.d,u=s.e,c=s.s,f=s.constructor;if(c!==1||!a||!a[0])return new f(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);for(S=!1,c=Math.sqrt(+s),c==0||c==1/0?(e=U(a),(e.length+u)%2==0&&(e+="0"),c=Math.sqrt(e),u=H((u+1)/2)-(u<0||u%2),c==1/0?e="5e"+u:(e=c.toExponential(),e=e.slice(0,e.indexOf("e")+1)+u),r=new f(e)):r=new f(c.toString()),n=(u=f.precision)+3;;)if(o=r,r=o.plus(R(s,o,n+2,1)).times(.5),U(o.d).slice(0,n)===(e=U(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(T(o,u+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(T(r,u+1,1),t=!r.times(r).eq(s));break}return S=!0,T(r,u,f.rounding,t)};m.tangent=m.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=R(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,T(te==2||te==4?n.neg():n,t,e,!0)):new r(NaN)};m.times=m.mul=function(t){var e,n,r,i,o,s,a,u,c,f=this,l=f.constructor,p=f.d,d=(t=new l(t)).d;if(t.s*=f.s,!p||!p[0]||!d||!d[0])return new l(!t.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:!p||!d?t.s/0:t.s*0);for(n=H(f.e/A)+H(t.e/A),u=p.length,c=d.length,u<c&&(o=p,p=d,d=o,s=u,u=c,c=s),o=[],s=u+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(e=0,i=u+r;i>r;)a=o[i]+d[r]*p[i-r-1]+e,o[i--]=a%X|0,e=a/X|0;o[i]=(o[i]+e)%X|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=Ge(o,n),S?T(t,l.precision,l.rounding):t};m.toBinary=function(t,e){return pt(this,2,t,e)};m.toDecimalPlaces=m.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(Q(t,0,se),e===void 0?e=r.rounding:Q(e,0,8),T(n,t+n.e+1,e))};m.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ee(r,!0):(Q(t,0,se),e===void 0?e=i.rounding:Q(e,0,8),r=T(new i(r),t+1,e),n=ee(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};m.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=ee(i):(Q(t,0,se),e===void 0?e=o.rounding:Q(e,0,8),r=T(new o(i),t+i.e+1,e),n=ee(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};m.toFraction=function(t){var e,n,r,i,o,s,a,u,c,f,l,p,d=this,b=d.d,g=d.constructor;if(!b)return new g(d);if(c=n=new g(1),r=u=new g(0),e=new g(r),o=e.e=tn(b)-d.e-1,s=o%A,e.d[0]=O(10,s<0?A+s:s),t==null)t=o>0?e:c;else{if(a=new g(t),!a.isInt()||a.lt(c))throw Error(oe+a);t=a.gt(e)?o>0?e:c:a}for(S=!1,a=new g(U(b)),f=g.precision,g.precision=o=b.length*A*2;l=R(a,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=r,r=i,i=c,c=u.plus(l.times(i)),u=i,i=e,e=a.minus(l.times(i)),a=i;return i=R(t.minus(n),r,0,1,1),u=u.plus(i.times(c)),n=n.plus(i.times(r)),u.s=c.s=d.s,p=R(c,r,o,1).minus(d).abs().cmp(R(u,n,o,1).minus(d).abs())<1?[c,r]:[u,n],g.precision=f,S=!0,p};m.toHexadecimal=m.toHex=function(t,e){return pt(this,16,t,e)};m.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:Q(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(S=!1,n=R(n,t,0,e,1).times(t),S=!0,T(n)):(t.s=n.s,n=t),n};m.toNumber=function(){return+this};m.toOctal=function(t,e){return pt(this,8,t,e)};m.toPower=m.pow=function(t){var e,n,r,i,o,s,a=this,u=a.constructor,c=+(t=new u(t));if(!a.d||!t.d||!a.d[0]||!t.d[0])return new u(O(+a,c));if(a=new u(a),a.eq(1))return a;if(r=u.precision,o=u.rounding,t.eq(1))return T(a,r,o);if(e=H(t.e/A),e>=t.d.length-1&&(n=c<0?-c:c)<=Gn)return i=nn(u,a,n,r),t.s<0?new u(1).div(i):T(i,r,o);if(s=a.s,s<0){if(e<t.d.length-1)return new u(NaN);if((t.d[e]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return n=O(+a,c),e=n==0||!isFinite(n)?H(c*(Math.log("0."+U(a.d))/Math.LN10+a.e+1)):new u(n+"").e,e>u.maxE+1||e<u.minE-1?new u(e>0?s/0:0):(S=!1,u.rounding=a.s=1,n=Math.min(12,(e+"").length),i=lt(t.times(ie(a,r+n)),r),i.d&&(i=T(i,r+5,1),Se(i.d,r,o)&&(e=r+10,i=T(lt(t.times(ie(a,e+n)),e),e+5,1),+U(i.d).slice(r+1,r+15)+1==1e14&&(i=T(i,r+1,0)))),i.s=s,S=!0,u.rounding=o,T(i,r,o))};m.toPrecision=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ee(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(Q(t,1,se),e===void 0?e=i.rounding:Q(e,0,8),r=T(new i(r),t,e),n=ee(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};m.toSignificantDigits=m.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(Q(t,1,se),e===void 0?e=r.rounding:Q(e,0,8)),T(new r(n),t,e)};m.toString=function(){var t=this,e=t.constructor,n=ee(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};m.truncated=m.trunc=function(){return T(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var t=this,e=t.constructor,n=ee(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function U(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=A-r.length,n&&(o+=re(n)),o+=r;s=t[e],r=s+"",n=A-r.length,n&&(o+=re(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Q(t,e,n){if(t!==~~t||t<e||t>n)throw Error(oe+t)}function Se(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=A,i=0):(i=Math.ceil((e+1)/A),e%=A),o=O(10,A-e),a=t[i]%o|0,r==null?e<3?(e==0?a=a/100|0:e==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)&&(t[i+1]/o/100|0)==O(10,e-2)-1||(a==o/2||a==0)&&(t[i+1]/o/100|0)==0:e<4?(e==0?a=a/1e3|0:e==1?a=a/100|0:e==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)&&(t[i+1]/o/1e3|0)==O(10,e-3)-1,s}function Fe(t,e,n){for(var r,i=[0],o,s=0,a=t.length;s<a;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=at.indexOf(t.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 zn(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/He(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=ye(t,1,e.times(i),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var R=function(){function t(r,i,o){var s,a=0,u=r.length;for(r=r.slice();u--;)s=r[u]*i+a,r[u]=s%o|0,a=s/o|0;return a&&r.unshift(a),r}function e(r,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(r[a]!=i[a]){u=r[a]>i[a]?1:-1;break}return u}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,u){var c,f,l,p,d,b,g,P,x,w,h,y,N,B,_,E,M,F,V,Z,fe=r.constructor,ge=r.s==i.s?1:-1,q=r.d,D=i.d;if(!q||!q[0]||!D||!D[0])return new fe(!r.s||!i.s||(q?D&&q[0]==D[0]:!D)?NaN:q&&q[0]==0||!D?ge*0:ge/0);for(u?(d=1,f=r.e-i.e):(u=X,d=A,f=H(r.e/d)-H(i.e/d)),V=D.length,M=q.length,x=new fe(ge),w=x.d=[],l=0;D[l]==(q[l]||0);l++);if(D[l]>(q[l]||0)&&f--,o==null?(B=o=fe.precision,s=fe.rounding):a?B=o+(r.e-i.e)+1:B=o,B<0)w.push(1),b=!0;else{if(B=B/d+2|0,l=0,V==1){for(p=0,D=D[0],B++;(l<M||p)&&B--;l++)_=p*u+(q[l]||0),w[l]=_/D|0,p=_%D|0;b=p||l<M}else{for(p=u/(D[0]+1)|0,p>1&&(D=t(D,p,u),q=t(q,p,u),V=D.length,M=q.length),E=V,h=q.slice(0,V),y=h.length;y<V;)h[y++]=0;Z=D.slice(),Z.unshift(0),F=D[0],D[1]>=u/2&&++F;do p=0,c=e(D,h,V,y),c<0?(N=h[0],V!=y&&(N=N*u+(h[1]||0)),p=N/F|0,p>1?(p>=u&&(p=u-1),g=t(D,p,u),P=g.length,y=h.length,c=e(g,h,P,y),c==1&&(p--,n(g,V<P?Z:D,P,u))):(p==0&&(c=p=1),g=D.slice()),P=g.length,P<y&&g.unshift(0),n(h,g,y,u),c==-1&&(y=h.length,c=e(D,h,V,y),c<1&&(p++,n(h,V<y?Z:D,y,u))),y=h.length):c===0&&(p++,h=[0]),w[l++]=p,c&&h[0]?h[y++]=q[E]||0:(h=[q[E]],y=1);while((E++<M||h[0]!==void 0)&&B--);b=h[0]!==void 0}w[0]||w.shift()}if(d==1)x.e=f,Zt=b;else{for(l=1,p=w[0];p>=10;p/=10)l++;x.e=l+f*d-1,T(x,a?o+x.e+1:o,s,b)}return x}}();function T(t,e,n,r){var i,o,s,a,u,c,f,l,p,d=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,a=l[0];a>=10;a/=10)i++;if(o=e-i,o<0)o+=A,s=e,f=l[p=0],u=f/O(10,i-s-1)%10|0;else if(p=Math.ceil((o+1)/A),a=l.length,p>=a)if(r){for(;a++<=p;)l.push(0);f=u=0,i=1,o%=A,s=o-A+1}else break e;else{for(f=a=l[p],i=1;a>=10;a/=10)i++;o%=A,s=o-A+i,u=s<0?0:f/O(10,i-s-1)%10|0}if(r=r||e<0||l[p+1]!==void 0||(s<0?f:f%O(10,i-s-1)),c=n<4?(u||r)&&(n==0||n==(t.s<0?3:2)):u>5||u==5&&(n==4||r||n==6&&(o>0?s>0?f/O(10,i-s):0:l[p-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,c?(e-=t.e+1,l[0]=O(10,(A-e%A)%A),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=p,a=1,p--):(l.length=p+1,a=O(10,A-o),l[p]=s>0?(f/O(10,i-s)%O(10,s)|0)*a:0),c)for(;;)if(p==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,l[0]==X&&(l[0]=1));break}else{if(l[p]+=a,l[p]!=X)break;l[p--]=0,a=1}for(o=l.length;l[--o]===0;)l.pop()}return S&&(t.e>d.maxE?(t.d=null,t.e=NaN):t.e<d.minE&&(t.e=0,t.d=[0])),t}function ee(t,e,n){if(!t.isFinite())return on(t);var r,i=t.e,o=U(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+re(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+re(-i-1)+o,n&&(r=n-s)>0&&(o+=re(r))):i>=s?(o+=re(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+re(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=re(r))),o}function Ge(t,e){var n=t[0];for(e*=A;n>=10;n/=10)e++;return e}function We(t,e,n){if(e>Hn)throw S=!0,n&&(t.precision=n),Error(Jt);return T(new t(Ve),e,1,!0)}function J(t,e,n){if(e>ct)throw Error(Jt);return T(new t(qe),e,n,!0)}function tn(t){var e=t.length-1,n=e*A+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function re(t){for(var e="";t--;)e+="0";return e}function nn(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/A+4);for(S=!1;;){if(n%2&&(o=o.times(e),Qt(o.d,s)&&(i=!0)),n=H(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Qt(e.d,s)}return S=!0,o}function jt(t){return t.d[t.d.length-1]&1}function rn(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function lt(t,e){var n,r,i,o,s,a,u,c=0,f=0,l=0,p=t.constructor,d=p.rounding,b=p.precision;if(!t.d||!t.d[0]||t.e>17)return new p(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(S=!1,u=b):u=e,a=new p(.03125);t.e>-2;)t=t.times(a),l+=5;for(r=Math.log(O(2,l))/Math.LN10*2+5|0,u+=r,n=o=s=new p(1),p.precision=u;;){if(o=T(o.times(t),u,1),n=n.times(++f),a=s.plus(R(o,n,u,1)),U(a.d).slice(0,u)===U(s.d).slice(0,u)){for(i=l;i--;)s=T(s.times(s),u,1);if(e==null)if(c<3&&Se(s.d,u-r,d,c))p.precision=u+=10,n=o=a=new p(1),f=0,c++;else return T(s,p.precision=b,d,S=!0);else return p.precision=b,s}s=a}}function ie(t,e){var n,r,i,o,s,a,u,c,f,l,p,d=1,b=10,g=t,P=g.d,x=g.constructor,w=x.rounding,h=x.precision;if(g.s<0||!P||!P[0]||!g.e&&P[0]==1&&P.length==1)return new x(P&&!P[0]?-1/0:g.s!=1?NaN:P?0:g);if(e==null?(S=!1,f=h):f=e,x.precision=f+=b,n=U(P),r=n.charAt(0),Math.abs(o=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(t),n=U(g.d),r=n.charAt(0),d++;o=g.e,r>1?(g=new x("0."+n),o++):g=new x(r+"."+n.slice(1))}else return c=We(x,f+2,h).times(o+""),g=ie(new x(r+"."+n.slice(1)),f-b).plus(c),x.precision=h,e==null?T(g,h,w,S=!0):g;for(l=g,u=s=g=R(g.minus(1),g.plus(1),f,1),p=T(g.times(g),f,1),i=3;;){if(s=T(s.times(p),f,1),c=u.plus(R(s,new x(i),f,1)),U(c.d).slice(0,f)===U(u.d).slice(0,f))if(u=u.times(2),o!==0&&(u=u.plus(We(x,f+2,h).times(o+""))),u=R(u,new x(d),f,1),e==null)if(Se(u.d,f-b,w,a))x.precision=f+=b,c=s=g=R(l.minus(1),l.plus(1),f,1),p=T(g.times(g),f,1),i=a=1;else return T(u,x.precision=h,w,S=!0);else return x.precision=h,u;u=c,i+=2}}function on(t){return String(t.s*t.s/0)}function ft(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%A,n<0&&(r+=A),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=A;r<i;)t.d.push(+e.slice(r,r+=A));e=e.slice(r),r=A-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),S&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function jn(t,e){var n,r,i,o,s,a,u,c,f;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),en.test(e))return ft(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(Wn.test(e))n=16,e=e.toLowerCase();else if(qn.test(e))n=2;else if(Un.test(e))n=8;else throw Error(oe+e);for(o=e.search(/p/i),o>0?(u=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,r=t.constructor,s&&(e=e.replace(".",""),a=e.length,o=a-o,i=nn(r,new r(n),o,o*2)),c=Fe(e,n,X),f=c.length-1,o=f;c[o]===0;--o)c.pop();return o<0?new r(t.s*0):(t.e=Ge(c,f),t.d=c,S=!1,s&&(t=R(t,i,a*4)),u&&(t=t.times(Math.abs(u)<54?O(2,u):ze.pow(2,u))),S=!0,t)}function Qn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:ye(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/He(5,n)),e=ye(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}function ye(t,e,n,r,i){var o,s,a,u,c=1,f=t.precision,l=Math.ceil(f/A);for(S=!1,u=n.times(n),a=new t(r);;){if(s=R(a.times(u),new t(e++*e++),f,1),a=i?r.plus(s):r.minus(s),r=R(s.times(u),new t(e++*e++),f,1),s=a.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=r,r=s,s=o,c++}return S=!0,s.d.length=l+1,s}function He(t,e){for(var n=t;--e;)n*=t;return n}function sn(t,e){var n,r=e.s<0,i=J(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return te=r?4:1,e;if(n=e.divToInt(i),n.isZero())te=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return te=jt(n)?r?2:3:r?4:1,e;te=jt(n)?r?1:4:r?3:2}return e.minus(i).abs()}function pt(t,e,n,r){var i,o,s,a,u,c,f,l,p,d=t.constructor,b=n!==void 0;if(b?(Q(n,1,se),r===void 0?r=d.rounding:Q(r,0,8)):(n=d.precision,r=d.rounding),!t.isFinite())f=on(t);else{for(f=ee(t),s=f.indexOf("."),b?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(f=f.replace(".",""),p=new d(1),p.e=f.length-s,p.d=Fe(ee(p),10,i),p.e=p.d.length),l=Fe(f,10,i),o=u=l.length;l[--u]==0;)l.pop();if(!l[0])f=b?"0p+0":"0";else{if(s<0?o--:(t=new d(t),t.d=l,t.e=o,t=R(t,p,n,r,0,i),l=t.d,o=t.e,c=Zt),s=l[n],a=i/2,c=c||l[n+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(t.s<0?3:2)):s>a||s===a&&(r===4||c||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,c)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(u=l.length;!l[u-1];--u);for(s=0,f="";s<u;s++)f+=at.charAt(l[s]);if(b){if(u>1)if(e==16||e==8){for(s=e==16?4:3,--u;u%s;u++)f+="0";for(l=Fe(f,i,e),u=l.length;!l[u-1];--u);for(s=1,f="1.";s<u;s++)f+=at.charAt(l[s])}else f=f.charAt(0)+"."+f.slice(1);f=f+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)f="0"+f;f="0."+f}else if(++o>u)for(o-=u;o--;)f+="0";else o<u&&(f=f.slice(0,o)+"."+f.slice(o))}f=(e==16?"0x":e==2?"0b":e==8?"0o":"")+f}return t.s<0?"-"+f:f}function Qt(t,e){if(t.length>e)return t.length=e,!0}function Yn(t){return new this(t).abs()}function Zn(t){return new this(t).acos()}function Jn(t){return new this(t).acosh()}function Xn(t,e){return new this(t).plus(e)}function $n(t){return new this(t).asin()}function er(t){return new this(t).asinh()}function tr(t){return new this(t).atan()}function nr(t){return new this(t).atanh()}function rr(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=J(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?J(this,r,i):new this(0),n.s=t.s):!t.d||e.isZero()?(n=J(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(R(t,e,o,1)),e=J(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(R(t,e,o,1)),n}function ir(t){return new this(t).cbrt()}function or(t){return T(t=new this(t),t.e+1,2)}function sr(t,e,n){return new this(t).clamp(e,n)}function ar(t){if(!t||typeof t!="object")throw Error(Ue+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,se,"rounding",0,8,"toExpNeg",-be,0,"toExpPos",0,be,"maxE",0,be,"minE",-be,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=ut[n]),(r=t[n])!==void 0)if(H(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(oe+n+": "+r);if(n="crypto",i&&(this[n]=ut[n]),(r=t[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(Xt);else this[n]=!1;else throw Error(oe+n+": "+r);return this}function ur(t){return new this(t).cos()}function cr(t){return new this(t).cosh()}function an(t){var e,n,r;function i(o){var s,a,u,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,Yt(o)){c.s=o.s,S?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;S?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return ft(c,o.toString())}else if(u!=="string")throw Error(oe+o);return(a=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(a===43&&(o=o.slice(1)),c.s=1),en.test(o)?ft(c,o):jn(c,o)}if(i.prototype=m,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=ar,i.clone=an,i.isDecimal=Yt,i.abs=Yn,i.acos=Zn,i.acosh=Jn,i.add=Xn,i.asin=$n,i.asinh=er,i.atan=tr,i.atanh=nr,i.atan2=rr,i.cbrt=ir,i.ceil=or,i.clamp=sr,i.cos=ur,i.cosh=cr,i.div=lr,i.exp=fr,i.floor=pr,i.hypot=dr,i.ln=mr,i.log=gr,i.log10=br,i.log2=hr,i.max=yr,i.min=wr,i.mod=xr,i.mul=Tr,i.pow=Pr,i.random=Ar,i.round=Br,i.sign=Sr,i.sin=Lr,i.sinh=kr,i.sqrt=Nr,i.sub=Cr,i.sum=Er,i.tan=Mr,i.tanh=Rr,i.trunc=Dr,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function lr(t,e){return new this(t).div(e)}function fr(t){return new this(t).exp()}function pr(t){return T(t=new this(t),t.e+1,3)}function dr(){var t,e,n=new this(0);for(S=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return S=!0,new this(1/0);n=e}return S=!0,n.sqrt()}function Yt(t){return t instanceof ze||t&&t.toStringTag===$t||!1}function mr(t){return new this(t).ln()}function gr(t,e){return new this(t).log(e)}function hr(t){return new this(t).log(2)}function br(t){return new this(t).log(10)}function yr(){return rn(this,arguments,"lt")}function wr(){return rn(this,arguments,"gt")}function xr(t,e){return new this(t).mod(e)}function Tr(t,e){return new this(t).mul(e)}function Pr(t,e){return new this(t).pow(e)}function Ar(t){var e,n,r,i,o=0,s=new this(1),a=[];if(t===void 0?t=this.precision:Q(t,1,se),r=Math.ceil(t/A),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else throw Error(Xt);else for(;o<r;)a[o++]=Math.random()*1e7|0;for(r=a[--o],t%=A,r&&t&&(i=O(10,A-t),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-=A)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<A&&(n-=A-r)}return s.e=n,s.d=a,s}function Br(t){return T(t=new this(t),t.e+1,this.rounding)}function Sr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Lr(t){return new this(t).sin()}function kr(t){return new this(t).sinh()}function Nr(t){return new this(t).sqrt()}function Cr(t,e){return new this(t).sub(e)}function Er(){var t=0,e=arguments,n=new this(e[t]);for(S=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return S=!0,T(n,this.precision,this.rounding)}function Mr(t){return new this(t).tan()}function Rr(t){return new this(t).tanh()}function Dr(t){return T(t=new this(t),t.e+1,1)}m[Symbol.for("nodejs.util.inspect.custom")]=m.toString;m[Symbol.toStringTag]="Decimal";var ze=m.constructor=an(ut);Ve=new ze(Ve);qe=new ze(qe);import{PublicKey as gt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kr}from"@solana/spl-token";import{PublicKey as I,SystemProgram as un,SYSVAR_RENT_PUBKEY as Ir}from"@solana/web3.js";function dt({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var Fi=[dt({pubkey:Kr,isWritable:!1}),dt({pubkey:un.programId,isWritable:!1}),dt({pubkey:Ir,isWritable:!1})];function cn({publicKey:t,transformSol:e}){let n=ln(t.toString());if(n instanceof I)return e&&n.equals(Le)?mt:n;if(e&&n.toString()===Le.toBase58())return mt;if(typeof n=="string"){if(n===I.default.toBase58())return I.default;try{return new I(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ln(t){try{return new I(t)}catch{return t}}var Vi=new I("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qi=new I("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Wi=new I("SysvarRent111111111111111111111111111111111"),Ui=new I("SysvarC1ock11111111111111111111111111111111"),Gi=new I("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new I("Sysvar1nstructions1111111111111111111111111"),zi=un.programId,ji=new I("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Qi=new I("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yi=new I("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Zi=new I("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ji=new I("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xi=new I("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),$i=new I("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),eo=new I("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),to=new I("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),no=new I("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ro=new I("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),mt=new I("So11111111111111111111111111111111111111112"),Le=I.default;import{PublicKey as _r}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fn}from"@solana/spl-token";var pn={chainId:101,address:_r.default.toBase58(),programId:fn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:fn.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 ht=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Le.toBase58()||e instanceof gt&&Le.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new gt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?gt.default:cn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},we=ht;we.WSOL=new ht(ne(W({},de),{mint:de.address}));import Qe from"big.js";import Fr from"bn.js";import Vr from"decimal.js-light";import vr from"toformat";var Or=vr,ke=Or;var je=G("module/fraction"),bt=ke(Qe),Ne=ke(Vr),qr={[0]:Ne.ROUND_DOWN,[1]:Ne.ROUND_HALF_UP,[2]:Ne.ROUND_UP},Wr={[0]:Qe.roundDown,[1]:Qe.roundHalfUp,[2]:Qe.roundUp},K=class{constructor(e,n=new Fr(1)){this.numerator=ae(e),this.denominator=ae(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new K(this.denominator,this.numerator)}add(e){let n=e instanceof K?e:new K(ae(e));return this.denominator.eq(n.denominator)?new K(this.numerator.add(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof K?e:new K(ae(e));return this.denominator.eq(n.denominator)?new K(this.numerator.sub(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof K?e:new K(ae(e));return new K(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof K?e:new K(ae(e));return new K(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||je.logWithError(`${e} is not an integer.`),e<=0&&je.logWithError(`${e} is not positive.`),Ne.set({precision:e+1,rounding:qr[r]});let i=new Ne(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||je.logWithError(`${e} is not an integer.`),e<0&&je.logWithError(`${e} is negative.`),bt.DP=e,bt.RM=Wr[r]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Eo=G("Raydium_price");var yt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},Ye=yt;Ye.SOL=new yt(pn);import Gr from"bn.js";var Oo=new K(new Gr(100));var Ze=new Y(0),is=new Y(1),os=new Y(2),ss=new Y(3),as=new Y(5),Hr=new Y(10),us=new Y(100),cs=new Y(1e3),ls=new Y(1e4),hn=9007199254740991;function ae(t){let e=G("Raydium_parseBigNumberish");if(t instanceof Y)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Y(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=hn||t<=-hn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Y(String(t))):typeof t=="bigint"?new Y(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Y(0))}var Bs=G("Raydium_amount"),Ss=ke(zr);function wt(t,e=1,n=[]){let r=[...t];if(e<=0)return n;for(;r.length;)n.push(r.splice(0,e));return n}import{PublicKey as C}from"@solana/web3.js";var zs=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),js=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Qs=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ys=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Zs=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Js=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xs=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$s=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ea=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ta=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),na=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ra=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ia=new C("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),oa=new C("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),sa=new C("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),aa=new C("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ua=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ca=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),la=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),jr=new C("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Qr=new C("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Yr=new C("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var fa={SERUM_MARKET:C.default,OPENBOOK_MARKET:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:C.default,FarmV3:new C("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new C("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new C("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new C("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new C("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new C("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new C("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:jr,CREATE_CPMM_POOL_AUTH:Qr,CREATE_CPMM_POOL_FEE_ACC:Yr,FEE_DESTINATION_ID:new C("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import{PublicKey as ga}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ya}from"@solana/spl-token";import Ta from"bn.js";var xt=G("Raydium_accountInfo_util");async function bn(t,e,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=W({batchRequest:!1},n),s=wt(e,o),a=new Array(s.length).fill([]);if(r){let u=s.map(l=>{let p=t._buildArgs([l.map(d=>d.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:p}}),c=wt(u,10);a=(await(await Promise.all(c.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(p=>{if(p){let{data:d,executable:b,lamports:g,owner:P,rentEpoch:x}=p;return d.length!==2&&d[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:b,lamports:g,owner:new Zr(P),rentEpoch:x}}return null})))}else try{a=await Promise.all(s.map(u=>t.getMultipleAccountsInfo(u,i)))}catch(u){u instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${u.message}`)}return a.flat()}async function Tt({connection:t,address:e}){let n=await bn(t,[...new Set(e.map(i=>i.toString()))].map(i=>new yn(i))),r={};for(let i=0;i<e.length;i++){let o=n[i],s=e[i];if(!o)continue;let a=new Je({key:s,state:Je.deserialize(o.data)});r[s.toString()]=a,Xe[s.toString()]=a}return r}var Xe={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Je({key:new yn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Je.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var $e=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.api=e.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let e=(await Xr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=e==null?void 0:e[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:r}=Oe(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:e,defaultIns:n}){try{let r=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(a=>a!==Ce.default.toString())),this}async versionBuild({txVersion:e,extInfo:n}){return e===0?await this.buildV0(W({},n||{})):this.build(n)}build(e){var r;let n=new Ee;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:a}=i||{},u=o!=null?o:await he(this.connection,this.blockhashCommitment);if(n.recentBlockhash=u,this.signers.length&&n.sign(...this.signers),pe([n]),(c=this.owner)!=null&&c.isKeyPair)return{txId:a?await Pt(this.connection,n,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:s}),signedTx:n};if(this.signAllTransactions){let f=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(f[0].serialize(),{skipPreflight:s}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var c;let{extraPreBuildData:n=[],extInfo:r}=e,{transaction:i}=this.build(r),o=n.filter(f=>f.transaction.instructions.length>0),s=[i,...o.map(f=>f.transaction)],a=[this.signers,...o.map(f=>f.signers)],u=[...this.instructionTypes,...o.map(f=>f.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(f=>{f.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:u,execute:async f=>{var P;let{sequentially:l,onTxUpdate:p,recentBlockHash:d,skipPreflight:b=!0}=f||{},g=d!=null?d:await he(this.connection,this.blockhashCommitment);if((P=this.owner)!=null&&P.isKeyPair){if(l){let x=[];for(let w of s){let h=await Pt(this.connection,w,this.signers.find(y=>y.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});x.push(h)}return{txIds:x,signedTxs:s}}return{txIds:await await Promise.all(s.map(async x=>(x.recentBlockhash=g,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:b})))),signedTxs:s}}if(this.signAllTransactions){let x=s.map((h,y)=>(h.recentBlockhash=g,a[y].length&&h.sign(...a[y]),h));pe(x);let w=await this.signAllTransactions(x);if(l){let h=0,y=[],N=async()=>{if(!w[h])return;let B=await this.connection.sendRawTransaction(w[h].serialize(),{skipPreflight:b});y.push({txId:B,status:"sent",signedTx:w[h]}),p==null||p([...y]),h++,this.connection.onSignature(B,_=>{let E=y.findIndex(M=>M.txId===B);E>-1&&(y[E].status=_.err?"error":"success"),p==null||p([...y]),_.err||N()},"processed"),this.connection.getSignatureStatus(B)};return await N(),{txIds:y.map(B=>B.txId),signedTxs:w}}else{let h=[];for(let y=0;y<w.length;y+=1){let N=await this.connection.sendRawTransaction(w[y].serialize(),{skipPreflight:b});h.push(N)}return{txIds:h,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:r})}async buildV0(e){var d;let p=e||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i}=p,o=ve(p,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=W(W({},this.cluster==="devnet"?{}:Xe),n),a=Array.from(new Set([...r,...this.lookupTableAddress])),u=[];for(let b of a)s[b]===void 0&&u.push(new Ce(b));let c=await Tt({connection:this.connection,address:u});for(let[b,g]of Object.entries(c))s[b]=g;let f=new Me({payerKey:this.feePayer,recentBlockhash:i?Ce.default.toBase58():await he(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((d=this.owner)==null?void 0:d.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new Re(f);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var w;let{recentBlockHash:g,skipPreflight:P=!0,sendAndConfirm:x}=b||{};if(g&&(l.message.recentBlockhash=g),pe([l]),(w=this.owner)!=null&&w.isKeyPair){let h=await this.connection.sendTransaction(l,{skipPreflight:P});if(x){let{lastValidBlockHeight:y,blockhash:N}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:N,lastValidBlockHeight:y,signature:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(h[0],{skipPreflight:P}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(e){var c;let{extraPreBuildData:n=[],buildProps:r}=e,{transaction:i}=await this.buildV0(r),o=n.filter(f=>f.builder.instructions.length>0),s=[i,...o.map(f=>f.transaction)],a=[this.signers,...o.map(f=>f.signers)],u=[...this.instructionTypes,...o.map(f=>f.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&a.forEach(f=>{f.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(f,l)=>{f.sign(a[l])}),{builder:this,transactions:s,signers:a,instructionTypes:u,buildProps:r,execute:async f=>{var g;let{sequentially:l,onTxUpdate:p,recentBlockHash:d,skipPreflight:b=!0}=f||{};if(d&&s.forEach(P=>P.message.recentBlockhash=d),pe(s),(g=this.owner)!=null&&g.isKeyPair){if(l){let P=[];for(let x of s){let w=await this.connection.sendTransaction(x,{skipPreflight:b}),{lastValidBlockHeight:h,blockhash:y}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:h,signature:w},"confirmed"),P.push(w)}return{txIds:P,signedTxs:s}}return{txIds:await Promise.all(s.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:b}))),signedTxs:s}}if(this.signAllTransactions){let P=await this.signAllTransactions(s);if(l){let x=0,w=[],h=async()=>{if(!P[x])return;let y=await this.connection.sendTransaction(P[x],{skipPreflight:b});w.push({txId:y,status:"sent",signedTx:P[x]}),p==null||p([...w]),x++,this.connection.onSignature(y,N=>{let B=w.findIndex(_=>_.txId===y);B>-1&&(w[B].status=N.err?"error":"success"),p==null||p([...w]),N.err||h()},"processed"),this.connection.getSignatureStatus(y)};return h(),{txIds:[],signedTxs:P}}else{let x=[];for(let w=0;w<P.length;w+=1){let h=await this.connection.sendTransaction(P[w],{skipPreflight:b});x.push(h)}return{txIds:x,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(e){var f;let c=e||{},{computeBudgetConfig:n}=c,r=ve(c,["computeBudgetConfig"]),i=n?Oe(n):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,p)=>ne(W({},l),{[p.publicKey.toBase58()]:p}),{}),s=[],a=[],u=[];if(this.allInstructions.forEach(l=>{let p=[...u,l],d=n?[...i.instructions,...p]:p,g=[...new Set(p.map(P=>P.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(P=>new Ce(P));if(u.length<12&&Ae({instructions:d,payer:this.feePayer,signers:g})||Ae({instructions:p,payer:this.feePayer,signers:g}))u.push(l);else{if(u.length===0)throw Error("item ins too big");Ae({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:g})?s.push(new Ee().add(...i.instructions,...u)):s.push(new Ee().add(...u)),a.push(Array.from(new Set(u.map(P=>P.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat())).map(P=>o[P]).filter(P=>P!==void 0)),u=[l]}}),u.length>0){let p=[...new Set(u.map(d=>d.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(d=>o[d]).filter(d=>d!==void 0);Ae({instructions:n?[...i.instructions,...u]:[...u],payer:this.feePayer,signers:p.map(d=>d.publicKey)})?s.push(new Ee().add(...i.instructions,...u)):s.push(new Ee().add(...u)),a.push(p)}return s.forEach(l=>l.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&a.forEach(l=>{l.some(p=>p.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:a,instructionTypes:this.instructionTypes,execute:async l=>{var x;let{sequentially:p,onTxUpdate:d,recentBlockHash:b,skipPreflight:g=!0}=l||{},P=b!=null?b:await he(this.connection,this.blockhashCommitment);if(s.forEach(async(w,h)=>{w.recentBlockhash=P,a[h].length&&w.sign(...a[h])}),pe(s),(x=this.owner)!=null&&x.isKeyPair){if(p){let w=[];for(let h of s){let y=await Pt(this.connection,h,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});w.push(y)}return{txIds:w,signedTxs:s}}return{txIds:await Promise.all(s.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:g}))),signedTxs:s}}if(this.signAllTransactions){let w=await this.signAllTransactions(s);if(p){let h=0,y=[],N=async()=>{if(!w[h])return;let B=await this.connection.sendRawTransaction(w[h].serialize(),{skipPreflight:g});y.push({txId:B,status:"sent",signedTx:w[h]}),d==null||d([...y]),h++,this.connection.onSignature(B,_=>{let E=y.findIndex(M=>M.txId===B);E>-1&&(y[E].status=_.err?"error":"success"),d==null||d([...y]),_.err||N()},"processed"),this.connection.getSignatureStatus(B)};return await N(),{txIds:y.map(B=>B.txId),signedTxs:w}}else{let h=[];for(let y=0;y<w.length;y+=1){let N=await this.connection.sendRawTransaction(w[y].serialize(),{skipPreflight:g});h.push(N)}return{txIds:h,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var x;let P=e||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:i=[]}=P,o=ve(P,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=W(W({},this.cluster==="devnet"?{}:Xe),r),a=Array.from(new Set([...this.lookupTableAddress,...i])),u=[];for(let w of a)s[w]===void 0&&u.push(new Ce(w));let c=await Tt({connection:this.connection,address:u});for(let[w,h]of Object.entries(c))s[w]=h;let f=n?Oe(n):{instructions:[],instructionTypes:[]},l=await he(this.connection,this.blockhashCommitment),p=this.signers.reduce((w,h)=>ne(W({},w),{[h.publicKey.toBase58()]:h}),{}),d=[],b=[],g=[];if(this.allInstructions.forEach(w=>{let h=[...g,w],y=n?[...f.instructions,...h]:h;if(g.length<12&&Be({instructions:y,payer:this.feePayer,lookupTableAddressAccount:s})||Be({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s}))g.push(w);else{if(g.length===0)throw Error("item ins too big");let N={};for(let B of[...new Set(a)])s[B]!==void 0&&(N[B]=s[B]);if(n&&Be({instructions:[...f.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let B=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...g]}).compileToV0Message(Object.values(s));d.push(new Re(B))}else{let B=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...g]}).compileToV0Message(Object.values(s));d.push(new Re(B))}b.push(Array.from(new Set(g.map(B=>B.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(B=>p[B]).filter(B=>B!==void 0)),g=[w]}}),g.length>0){let h=[...new Set(g.map(y=>y.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(y=>p[y]).filter(y=>y!==void 0);if(n&&Be({instructions:[...f.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let y=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...g]}).compileToV0Message(Object.values(s));d.push(new Re(y))}else{let y=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...g]}).compileToV0Message(Object.values(s));d.push(new Re(y))}b.push(h)}return(x=this.owner)!=null&&x.signer&&b.forEach(w=>{w.some(h=>h.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:d,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var _;let{sequentially:h,onTxUpdate:y,recentBlockHash:N,skipPreflight:B=!0}=w||{};if(d.map(async(E,M)=>{b[M].length&&E.sign(b[M]),N&&(E.message.recentBlockhash=N)}),pe(d),(_=this.owner)!=null&&_.isKeyPair){if(h){let E=[];for(let M of d){let F=await this.connection.sendTransaction(M,{skipPreflight:B}),{lastValidBlockHeight:V,blockhash:Z}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:Z,lastValidBlockHeight:V,signature:F},"confirmed"),E.push(F)}return{txIds:E,signedTxs:d}}return{txIds:await Promise.all(d.map(async E=>await this.connection.sendTransaction(E,{skipPreflight:B}))),signedTxs:d}}if(this.signAllTransactions){let E=await this.signAllTransactions(d);if(h){let M=0,F=[],V=async()=>{if(!E[M])return;let Z=await this.connection.sendTransaction(E[M],{skipPreflight:B});F.push({txId:Z,status:"sent",signedTx:E[M]}),y==null||y([...F]),M++,this.connection.onSignature(Z,fe=>{let ge=F.findIndex(q=>q.txId===Z);ge>-1&&(F[ge].status=fe.err?"error":"success"),y==null||y([...F]),fe.err||V()},"processed"),this.connection.getSignatureStatus(Z)};return V(),{txIds:[],signedTxs:E}}else{let M=[];for(let F=0;F<E.length;F+=1){let V=await this.connection.sendTransaction(E[F],{skipPreflight:B});M.push(V)}return{txIds:M,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var At=(...t)=>t.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),De=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=G(n)}createTxBuilder(e){return this.scope.checkOwner(),new $e({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(At(e))}logInfo(...e){this.logger.info(At(e))}logAndCreateError(...e){let n=At(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pi,Keypair as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";import vc from"bn.js";import{PublicKey as si}from"@solana/web3.js";import Tn,{isBN as dc}from"bn.js";import{bits as $r,BitStructure as wu,blob as ei,Blob as xu,cstr as Tu,f32 as Pu,f32be as Au,f64 as Bu,f64be as Su,greedy as Lu,Layout as ti,ns64 as ku,ns64be as Nu,nu64 as Cu,nu64be as Eu,offset as Mu,s16 as Ru,s16be as Du,s24 as Ku,s24be as Iu,s32 as _u,s32be as vu,s40 as Ou,s40be as Fu,s48 as Vu,s48be as qu,s8 as Wu,seq as Uu,struct as Gu,Structure as ni,u16 as ri,u16be as Hu,u24 as zu,u24be as ju,u32 as ii,u32be as Qu,u40 as Yu,u40be as Zu,u48 as Ju,u48be as Xu,u8 as $u,UInt as oi,union as ec,Union as tc,unionLayoutDiscriminator as nc,utf8 as rc}from"@solana/buffer-layout";var et=ti,wn=ni;var Bt=oi;var xn=ri;var St=ii;var xe=ei;var Lt=$r;var kt=class extends et{constructor(n,r,i){super(n,i);this.blob=xe(n),this.signed=r}decode(n,r=0){let i=new Tn(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 Tn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}},tt=class extends et{constructor(n){super(8,n);this._lower=Lt(St(),!1),this._upper=Lt(St(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let i=this._lower.decode(n,r),o=this._upper.decode(n,r+this._lower.span);return W(W({},i),o)}encode(n,r,i=0){return this._lower.encode(n,r,i)+this._upper.encode(n,r,i+this._lower.span)}};function nt(t){return new Bt(1,t)}function Te(t){return new Bt(4,t)}function v(t){return new kt(8,!1,t)}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 z(t){return new Nt(xe(32),e=>new si(e),e=>e.toBuffer(),t)}var Ct=class extends wn{decode(e,n){return super.decode(e,n)}};function Pe(t,e,n){return new Ct(t,e,n)}var ai=Pe([z("mint"),z("owner"),v("amount"),Te("delegateOption"),z("delegate"),nt("state"),Te("isNativeOption"),v("isNative"),v("delegatedAmount"),Te("closeAuthorityOption"),z("closeAuthority")]);function ui(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}function Et(t,...e){if(!ui(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function Mt(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Pn(t,e){Et(t);let n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var it=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),$=(t,e)=>t<<32-e|t>>>e;var Tc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ci(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Rt(t){return typeof t=="string"&&(t=ci(t)),Et(t),t}var rt=class{clone(){return this._cloneInto()}},Pc={}.toString;function An(t){let e=r=>t().update(Rt(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function li(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);let i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),a=Number(n&o),u=r?4:0,c=r?0:4;t.setUint32(e+u,s,r),t.setUint32(e+c,a,r)}var Bn=(t,e,n)=>t&e^~t&n,Sn=(t,e,n)=>t&e^t&n^e&n,ot=class extends rt{constructor(e,n,r,i){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=it(this.buffer)}update(e){Mt(this);let{view:n,buffer:r,blockLen:i}=this;e=Rt(e);let o=e.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let u=it(e);for(;i<=o-s;s+=i)this.process(u,s);continue}r.set(e.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mt(this),Pn(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:i,isLE:o}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(r,0),s=0);for(let l=s;l<i;l++)n[l]=0;li(r,i-8,BigInt(this.length*8),o),this.process(r,0);let a=it(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=u/4,f=this.get();if(c>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<c;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:r,length:i,finished:o,destroyed:s,pos:a}=this;return e.length=i,e.pos=a,e.finished=o,e.destroyed=s,i%n&&e.buffer.set(r),e}};var fi=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ue=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ce=new Uint32Array(64),Dt=class extends ot{constructor(){super(64,32,8,!1),this.A=ue[0]|0,this.B=ue[1]|0,this.C=ue[2]|0,this.D=ue[3]|0,this.E=ue[4]|0,this.F=ue[5]|0,this.G=ue[6]|0,this.H=ue[7]|0}get(){let{A:e,B:n,C:r,D:i,E:o,F:s,G:a,H:u}=this;return[e,n,r,i,o,s,a,u]}set(e,n,r,i,o,s,a,u){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=u|0}process(e,n){for(let l=0;l<16;l++,n+=4)ce[l]=e.getUint32(n,!1);for(let l=16;l<64;l++){let p=ce[l-15],d=ce[l-2],b=$(p,7)^$(p,18)^p>>>3,g=$(d,17)^$(d,19)^d>>>10;ce[l]=g+ce[l-7]+b+ce[l-16]|0}let{A:r,B:i,C:o,D:s,E:a,F:u,G:c,H:f}=this;for(let l=0;l<64;l++){let p=$(a,6)^$(a,11)^$(a,25),d=f+p+Bn(a,u,c)+fi[l]+ce[l]|0,g=($(r,2)^$(r,13)^$(r,22))+Sn(r,i,o)|0;f=c,c=u,u=a,a=s+d|0,s=o,o=i,i=r,r=d+g|0}r=r+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,u=u+this.F|0,c=c+this.G|0,f=f+this.H|0,this.set(r,i,o,s,a,u,c,f)}roundClean(){ce.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ln=An(()=>new Dt);var qc=G("Raydium_Util");function le({fromPublicKey:t,programId:e=mi}){let n=di.generate().publicKey.toBase58().slice(0,32);return{publicKey:gi(t,n,e),seed:n}}function gi(t,e,n){let r=Buffer.concat([t.toBuffer(),Buffer.from(e),n.toBuffer()]),i=Ln(r);return new pi(i)}import{TransactionInstruction as bi,SYSVAR_RENT_PUBKEY as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";import{createInitializeAccountInstruction as Nn}from"@solana/spl-token";import{SystemProgram as me,Transaction as Cn}from"@solana/web3.js";function hi(t="accountFlags"){let e=new tt(t);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var Kt=Pe([xe(5),hi("accountFlags"),z("ownAddress"),v("vaultSignerNonce"),z("baseMint"),z("quoteMint"),z("baseVault"),v("baseDepositsTotal"),v("baseFeesAccrued"),z("quoteVault"),v("quoteDepositsTotal"),v("quoteFeesAccrued"),v("quoteDustThreshold"),z("requestQueue"),z("eventQueue"),z("bids"),z("asks"),v("baseLotSize"),v("quoteLotSize"),v("feeRateBps"),v("referrerRebatesAccrued"),xe(7)]);function wi({programId:t,marketInfo:e}){let n=Pe([nt("version"),Te("instruction"),v("baseLotSize"),v("quoteLotSize"),xn("feeRateBps"),v("vaultSignerNonce"),v("quoteDustThreshold")]),r=[{pubkey:e.id,isSigner:!1,isWritable:!0},{pubkey:e.requestQueue,isSigner:!1,isWritable:!0},{pubkey:e.eventQueue,isSigner:!1,isWritable:!0},{pubkey:e.bids,isSigner:!1,isWritable:!0},{pubkey:e.asks,isSigner:!1,isWritable:!0},{pubkey:e.baseVault,isSigner:!1,isWritable:!0},{pubkey:e.quoteVault,isSigner:!1,isWritable:!0},{pubkey:e.baseMint,isSigner:!1,isWritable:!1},{pubkey:e.quoteMint,isSigner:!1,isWritable:!1},{pubkey:e.authority?e.quoteMint:yi,isSigner:!1,isWritable:!1}].concat(e.authority?{pubkey:e.authority,isSigner:!1,isWritable:!1}:[]).concat(e.authority&&e.pruneAuthority?{pubkey:e.pruneAuthority,isSigner:!1,isWritable:!1}:[]),i=Buffer.alloc(n.span);return n.encode({version:0,instruction:0,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold},i),new bi({keys:r,programId:t,data:i})}async function En({connection:t,wallet:e,marketInfo:n}){let r=new Cn,i=await t.getMinimumBalanceForRentExemption(165);r.add(me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.baseVault.seed,newAccountPubkey:n.baseVault.publicKey,lamports:i,space:165,programId:kn}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.quoteVault.seed,newAccountPubkey:n.quoteVault.publicKey,lamports:i,space:165,programId:kn}),Nn(n.baseVault.publicKey,n.baseMint,n.vaultOwner),Nn(n.quoteVault.publicKey,n.quoteMint,n.vaultOwner));let o=new Cn;return o.add(me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.id.seed,newAccountPubkey:n.id.publicKey,lamports:await t.getMinimumBalanceForRentExemption(Kt.span),space:Kt.span,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.requestQueue.seed,newAccountPubkey:n.requestQueue.publicKey,lamports:await t.getMinimumBalanceForRentExemption(5120+12),space:5120+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.eventQueue.seed,newAccountPubkey:n.eventQueue.publicKey,lamports:await t.getMinimumBalanceForRentExemption(262144+12),space:262144+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.bids.seed,newAccountPubkey:n.bids.publicKey,lamports:await t.getMinimumBalanceForRentExemption(65536+12),space:65536+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.asks.seed,newAccountPubkey:n.asks.publicKey,lamports:await t.getMinimumBalanceForRentExemption(65536+12),space:65536+12,programId:n.programId}),wi({programId:n.programId,marketInfo:{id:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint,baseLotSize:n.baseLotSize,quoteLotSize:n.quoteLotSize,feeRateBps:n.feeRateBps,vaultSignerNonce:n.vaultSignerNonce,quoteDustThreshold:n.quoteDustThreshold}})),[{transaction:r,signer:[],instructionTypes:[j.CreateAccount,j.CreateAccount,j.InitAccount,j.InitAccount]},{transaction:o,signer:[],instructionTypes:[j.CreateAccount,j.CreateAccount,j.CreateAccount,j.CreateAccount,j.CreateAccount,j.InitMarket]}]}var It=class extends De{async create({baseInfo:e,quoteInfo:n,lotSize:r,tickSize:i,dexProgramId:o,txVersion:s,computeBudgetConfig:a}){let u=this.scope.ownerPubKey,c=le({fromPublicKey:u,programId:o}),f=le({fromPublicKey:u,programId:o}),l=le({fromPublicKey:u,programId:o}),p=le({fromPublicKey:u,programId:o}),d=le({fromPublicKey:u,programId:o}),b=le({fromPublicKey:u,programId:Mn}),g=le({fromPublicKey:u,programId:Mn}),P=0,x=new Ie(100);function w(){let M=new Ie(0);for(;;)try{return{vaultOwner:Ke.createProgramAddressSync([c.publicKey.toBuffer(),M.toArrayLike(Buffer,"le",8)],o),vaultSignerNonce:M}}catch{if(M.iaddn(1),M.gt(new Ie(25555)))throw Error("find vault owner error")}}let{vaultOwner:h,vaultSignerNonce:y}=w(),N=new Ie(Math.round(10**e.decimals*r)),B=new Ie(Math.round(r*10**n.decimals*i));if(N.eq(Ze))throw Error("lot size is too small");if(B.eq(Ze))throw Error("tick size or lot size is too small");let _=await En({connection:this.scope.connection,wallet:this.scope.ownerPubKey,marketInfo:{programId:o,id:c,baseMint:e.mint,quoteMint:n.mint,baseVault:b,quoteVault:g,vaultOwner:h,requestQueue:f,eventQueue:l,bids:p,asks:d,feeRateBps:P,quoteDustThreshold:x,vaultSignerNonce:y,baseLotSize:N,quoteLotSize:B}}),E=this.createTxBuilder();E.addInstruction({instructions:_[0].transaction.instructions,signers:_[0].signer});for await(let M of _.slice(1,_.length))E.addInstruction({instructions:M.transaction.instructions,signers:M.signer,instructionTypes:M.instructionTypes});return s===0?E.sizeCheckBuildV0({computeBudgetConfig:a,address:{marketId:c.publicKey,requestQueue:f.publicKey,eventQueue:l.publicKey,bids:p.publicKey,asks:d.publicKey,baseVault:b.publicKey,quoteVault:g.publicKey,baseMint:new Ke(e.mint),quoteMin:new Ke(n.mint)}}):E.sizeCheckBuild({computeBudgetConfig:a,address:{marketId:c.publicKey,requestQueue:f.publicKey,eventQueue:l.publicKey,bids:p.publicKey,asks:d.publicKey,baseVault:b.publicKey,quoteVault:g.publicKey,baseMint:new Ke(e.mint),quoteMin:new Ke(n.mint)}})}};export{It as default};
|
|
1
|
+
var Rn=Object.defineProperty,Dn=Object.defineProperties;var Kn=Object.getOwnPropertyDescriptors;var Ie=Object.getOwnPropertySymbols;var vt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var It=(t,e,n)=>e in t?Rn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,U=(t,e)=>{for(var n in e||(e={}))vt.call(e,n)&&It(t,n,e[n]);if(Ie)for(var n of Ie(e))Ot.call(e,n)&&It(t,n,e[n]);return t},re=(t,e)=>Dn(t,Kn(e));var ve=(t,e)=>{var n={};for(var r in t)vt.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Ie)for(var r of Ie(t))e.indexOf(r)<0&&Ot.call(t,r)&&(n[r]=t[r]);return n};import{PublicKey as Ke}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Mn}from"@solana/spl-token";import _e from"bn.js";import{get as Ft,set as _n}from"lodash";var st=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let n=e.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Vt={},In={};function H(t){let e=Ft(Vt,t);if(!e){let n=Ft(In,t);e=new st({name:t,logLevel:n}),_n(Vt,t,e)}return e}import{PublicKey as Ce,sendAndConfirmTransaction as Pt,Transaction as Ee,TransactionMessage as Me,VersionedTransaction as Re}from"@solana/web3.js";import Xr from"axios";var Q={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 Li,ComputeBudgetProgram as qt,Transaction as Ut,TransactionMessage as vn,Keypair as Gt,VersionedTransaction as Ht}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as On}from"@solana/spl-token";var Wt=H("Raydium_txUtil"),zt=1644;function Oe(t){let e=[],n=[];return t.microLamports&&(e.push(qt.setComputeUnitPrice({microLamports:t.microLamports})),n.push(Q.SetComputeUnitPrice)),t.units&&(e.push(qt.setComputeUnitLimit({units:t.units})),n.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:n}}async function he(t,e){var r,i;let n=e!=null?e:"confirmed";try{return((i=await((r=t.getLatestBlockhash)==null?void 0:r.call(t,{commitment:n})))==null?void 0:i.blockhash)||(await t.getRecentBlockhash(n)).blockhash}catch{return(await t.getRecentBlockhash(n)).blockhash}}function Fn(t,e){t.length<1&&Wt.logWithError(`no instructions provided: ${t.toString()}`),e.length<1&&Wt.logWithError(`no signers provided:, ${e.toString()}`);let n=new Ut;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=e[0],n.add(...t);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<zt}catch{return!1}}function Ae({instructions:t,payer:e,signers:n}){return Fn(t,[e,...n])}function Be({instructions:t,payer:e,lookupTableAddressAccount:n,recentBlockhash:r=Gt.generate().publicKey.toString()}){let o=new vn({payerKey:e,recentBlockhash:r,instructions:t}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Ht(o).serialize()).toString("base64").length<zt}catch{return!1}}var Vn=t=>Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t.buffer,t.byteOffset,t.byteLength):Buffer.from(t);function pe(t){let e=[];return t.forEach(n=>{n instanceof Ut&&(n.recentBlockhash||(n.recentBlockhash=On.toBase58()),n.feePayer||(n.feePayer=Gt.generate().publicKey));let r=n.serialize({requireAllSignatures:!1,verifySignatures:!1});n instanceof Ht&&(r=Vn(r));let i=r.toString("base64");e.push(i)}),console.log("simulate tx string:",e),e}import{PublicKey as yn,AddressLookupTableAccount as Je}from"@solana/web3.js";import{PublicKey as Zr}from"@solana/web3.js";import{MINT_SIZE as zu,TOKEN_PROGRAM_ID as ju,getTransferFeeConfig as Qu,unpackMint as Yu}from"@solana/spl-token";import{PublicKey as Is}from"@solana/web3.js";import Os from"bn.js";import zr from"big.js";import hs from"bn.js";import Z from"bn.js";var be=9e15,ue=1e9,ut="0123456789abcdef",Ve="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",qe="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",at={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-be,maxE:be,crypto:!1},Zt,ne,S=!0,Ue="[DecimalError] ",se=Ue+"Invalid argument: ",Jt=Ue+"Precision limit exceeded",Xt=Ue+"crypto unavailable",$t="[object Decimal]",z=Math.floor,q=Math.pow,qn=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Wn=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Un=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,en=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,X=1e7,A=7,Gn=9007199254740991,Hn=Ve.length-1,ct=qe.length-1,m={toStringTag:$t};m.absoluteValue=m.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),P(t)};m.ceil=function(){return P(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(t,e){var n,r=this,i=r.constructor;if(t=new i(t),e=new i(e),!t.s||!e.s)return new i(NaN);if(t.gt(e))throw Error(se+e);return n=r.cmp(t),n<0?t:r.cmp(e)>0?e:new i(r)};m.comparedTo=m.cmp=function(t){var e,n,r,i,o=this,s=o.d,u=(t=new o.constructor(t)).d,a=o.s,c=t.s;if(!s||!u)return!a||!c?NaN:a!==c?a:s===u?0:!s^a<0?1:-1;if(!s[0]||!u[0])return s[0]?a:u[0]?-c:0;if(a!==c)return a;if(o.e!==t.e)return o.e>t.e^a<0?1:-1;for(r=s.length,i=u.length,e=0,n=r<i?r:i;e<n;++e)if(s[e]!==u[e])return s[e]>u[e]^a<0?1:-1;return r===i?0:r>i^a<0?1:-1};m.cosine=m.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+A,r.rounding=1,n=zn(r,sn(r,n)),r.precision=t,r.rounding=e,P(ne==2||ne==3?n.neg():n,t,e,!0)):new r(1):new r(NaN)};m.cubeRoot=m.cbrt=function(){var t,e,n,r,i,o,s,u,a,c,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(S=!1,o=f.s*q(f.s*f,1/3),!o||Math.abs(o)==1/0?(n=G(f.d),t=f.e,(o=(t-n.length+1)%3)&&(n+=o==1||o==-2?"0":"00"),o=q(n,1/3),t=z((t+1)/3)-(t%3==(t<0?-1:2)),o==1/0?n="5e"+t:(n=o.toExponential(),n=n.slice(0,n.indexOf("e")+1)+t),r=new l(n),r.s=f.s):r=new l(o.toString()),s=(t=l.precision)+3;;)if(u=r,a=u.times(u).times(u),c=a.plus(f),r=M(c.plus(f).times(u),c.plus(a),s+2,1),G(u.d).slice(0,s)===(n=G(r.d)).slice(0,s))if(n=n.slice(s-3,s+1),n=="9999"||!i&&n=="4999"){if(!i&&(P(u,t+1,0),u.times(u).times(u).eq(f))){r=u;break}s+=4,i=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(P(r,t+1,1),e=!r.times(r).times(r).eq(f));break}return S=!0,P(r,t,l.rounding,e)};m.decimalPlaces=m.dp=function(){var t,e=this.d,n=NaN;if(e){if(t=e.length-1,n=(t-z(this.e/A))*A,t=e[t],t)for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n};m.dividedBy=m.div=function(t){return M(this,new this.constructor(t))};m.dividedToIntegerBy=m.divToInt=function(t){var e=this,n=e.constructor;return P(M(e,new n(t),0,1,1),n.precision,n.rounding)};m.equals=m.eq=function(t){return this.cmp(t)===0};m.floor=function(){return P(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(t){return this.cmp(t)>0};m.greaterThanOrEqualTo=m.gte=function(t){var e=this.cmp(t);return e==1||e===0};m.hyperbolicCosine=m.cosh=function(){var t,e,n,r,i,o=this,s=o.constructor,u=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return u;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?(t=Math.ceil(i/3),e=(1/He(4,t)).toString()):(t=16,e="2.3283064365386962890625e-10"),o=ye(s,1,o.times(e),new s(1),!0);for(var a,c=t,f=new s(8);c--;)a=o.times(o),o=u.minus(a.times(f.minus(a.times(f))));return P(o,s.precision=n,s.rounding=r,!0)};m.hyperbolicSine=m.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,r=i.d.length,r<3)i=ye(o,2,i,i,!0);else{t=1.4*Math.sqrt(r),t=t>16?16:t|0,i=i.times(1/He(5,t)),i=ye(o,2,i,i,!0);for(var s,u=new o(5),a=new o(16),c=new o(20);t--;)s=i.times(i),i=i.times(u.plus(s.times(a.times(s).plus(c))))}return o.precision=e,o.rounding=n,P(i,e,n,!0)};m.hyperbolicTangent=m.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,M(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)};m.inverseCosine=m.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return r!==-1?r===0?e.isNeg()?J(n,i,o):new n(0):new n(NaN):e.isZero()?J(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=J(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))};m.inverseHyperbolicCosine=m.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,S=!1,n=n.times(n).minus(1).sqrt().plus(n),S=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)};m.inverseHyperbolicSine=m.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,S=!1,n=n.times(n).plus(1).sqrt().plus(n),S=!0,r.precision=t,r.rounding=e,n.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var t,e,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):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?P(new o(i),t,e,!0):(o.precision=n=r-i.e,i=M(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,e!==-1?e===0?(t=J(o,n+4,r).times(.5),t.s=i.s,t):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)))};m.inverseTangent=m.atan=function(){var t,e,n,r,i,o,s,u,a,c=this,f=c.constructor,l=f.precision,p=f.rounding;if(c.isFinite()){if(c.isZero())return new f(c);if(c.abs().eq(1)&&l+4<=ct)return s=J(f,l+4,p).times(.25),s.s=c.s,s}else{if(!c.s)return new f(NaN);if(l+4<=ct)return s=J(f,l+4,p).times(.5),s.s=c.s,s}for(f.precision=u=l+10,f.rounding=1,n=Math.min(28,u/A+2|0),t=n;t;--t)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(S=!1,e=Math.ceil(u/A),r=1,a=c.times(c),s=new f(c),i=c;t!==-1;)if(i=i.times(a),o=s.minus(i.div(r+=2)),i=i.times(a),s=o.plus(i.div(r+=2)),s.d[e]!==void 0)for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),S=!0,P(s,f.precision=l,f.rounding=p,!0)};m.isFinite=function(){return!!this.d};m.isInteger=m.isInt=function(){return!!this.d&&z(this.e/A)>this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(t){return this.cmp(t)<0};m.lessThanOrEqualTo=m.lte=function(t){return this.cmp(t)<1};m.logarithm=m.log=function(t){var e,n,r,i,o,s,u,a,c=this,f=c.constructor,l=f.precision,p=f.rounding,d=5;if(t==null)t=new f(10),e=!0;else{if(t=new f(t),n=t.d,t.s<0||!n||!n[0]||t.eq(1))return new f(NaN);e=t.eq(10)}if(n=c.d,c.s<0||!n||!n[0]||c.eq(1))return new f(n&&!n[0]?-1/0:c.s!=1?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10===0;)i/=10;o=i!==1}if(S=!1,u=l+d,s=oe(c,u),r=e?We(f,u+10):oe(t,u),a=M(s,r,u,1),Se(a.d,i=l,p))do if(u+=10,s=oe(c,u),r=e?We(f,u+10):oe(t,u),a=M(s,r,u,1),!o){+G(a.d).slice(i+1,i+15)+1==1e14&&(a=P(a,l+1,0));break}while(Se(a.d,i+=10,p));return S=!0,P(a,l,p)};m.minus=m.sub=function(t){var e,n,r,i,o,s,u,a,c,f,l,p,d=this,b=d.constructor;if(t=new b(t),!d.d||!t.d)return!d.s||!t.s?t=new b(NaN):d.d?t.s=-t.s:t=new b(t.d||d.s!==t.s?d:NaN),t;if(d.s!=t.s)return t.s=-t.s,d.plus(t);if(c=d.d,p=t.d,u=b.precision,a=b.rounding,!c[0]||!p[0]){if(p[0])t.s=-t.s;else if(c[0])t=new b(d);else return new b(a===3?-0:0);return S?P(t,u,a):t}if(n=z(t.e/A),f=z(d.e/A),c=c.slice(),o=f-n,o){for(l=o<0,l?(e=c,o=-o,s=p.length):(e=p,n=f,s=c.length),r=Math.max(Math.ceil(u/A),s)+2,o>r&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for(r=c.length,s=p.length,l=r<s,l&&(s=r),r=0;r<s;r++)if(c[r]!=p[r]){l=c[r]<p[r];break}o=0}for(l&&(e=c,c=p,p=e,t.s=-t.s),s=c.length,r=p.length-s;r>0;--r)c[s++]=0;for(r=p.length;r>o;){if(c[--r]<p[r]){for(i=r;i&&c[--i]===0;)c[i]=X-1;--c[i],c[r]+=X}c[r]-=p[r]}for(;c[--s]===0;)c.pop();for(;c[0]===0;c.shift())--n;return c[0]?(t.d=c,t.e=Ge(c,n),S?P(t,u,a):t):new b(a===3?-0:0)};m.modulo=m.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?P(new r(n),r.precision,r.rounding):(S=!1,r.modulo==9?(e=M(n,t.abs(),0,3,1),e.s*=t.s):e=M(n,t,0,r.modulo,1),e=e.times(t),S=!0,n.minus(e))};m.naturalExponential=m.exp=function(){return lt(this)};m.naturalLogarithm=m.ln=function(){return oe(this)};m.negated=m.neg=function(){var t=new this.constructor(this);return t.s=-t.s,P(t)};m.plus=m.add=function(t){var e,n,r,i,o,s,u,a,c,f,l=this,p=l.constructor;if(t=new p(t),!l.d||!t.d)return!l.s||!t.s?t=new p(NaN):l.d||(t=new p(t.d||l.s===t.s?l:NaN)),t;if(l.s!=t.s)return t.s=-t.s,l.minus(t);if(c=l.d,f=t.d,u=p.precision,a=p.rounding,!c[0]||!f[0])return f[0]||(t=new p(l)),S?P(t,u,a):t;if(o=z(l.e/A),r=z(t.e/A),c=c.slice(),i=o-r,i){for(i<0?(n=c,i=-i,s=f.length):(n=f,r=o,s=c.length),o=Math.ceil(u/A),s=o>s?o+1:s+1,i>s&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for(s=c.length,i=f.length,s-i<0&&(i=s,n=f,f=c,c=n),e=0;i;)e=(c[--i]=c[i]+f[i]+e)/X|0,c[i]%=X;for(e&&(c.unshift(e),++r),s=c.length;c[--s]==0;)c.pop();return t.d=c,t.e=Ge(c,r),S?P(t,u,a):t};m.precision=m.sd=function(t){var e,n=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(se+t);return n.d?(e=tn(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e};m.round=function(){var t=this,e=t.constructor;return P(new e(t),t.e+1,e.rounding)};m.sine=m.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+A,r.rounding=1,n=Qn(r,sn(r,n)),r.precision=t,r.rounding=e,P(ne>2?n.neg():n,t,e,!0)):new r(NaN)};m.squareRoot=m.sqrt=function(){var t,e,n,r,i,o,s=this,u=s.d,a=s.e,c=s.s,f=s.constructor;if(c!==1||!u||!u[0])return new f(!c||c<0&&(!u||u[0])?NaN:u?s:1/0);for(S=!1,c=Math.sqrt(+s),c==0||c==1/0?(e=G(u),(e.length+a)%2==0&&(e+="0"),c=Math.sqrt(e),a=z((a+1)/2)-(a<0||a%2),c==1/0?e="5e"+a:(e=c.toExponential(),e=e.slice(0,e.indexOf("e")+1)+a),r=new f(e)):r=new f(c.toString()),n=(a=f.precision)+3;;)if(o=r,r=o.plus(M(s,o,n+2,1)).times(.5),G(o.d).slice(0,n)===(e=G(r.d)).slice(0,n))if(e=e.slice(n-3,n+1),e=="9999"||!i&&e=="4999"){if(!i&&(P(o,a+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&(P(r,a+1,1),t=!r.times(r).eq(s));break}return S=!0,P(r,a,f.rounding,t)};m.tangent=m.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,n=n.sin(),n.s=1,n=M(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,P(ne==2||ne==4?n.neg():n,t,e,!0)):new r(NaN)};m.times=m.mul=function(t){var e,n,r,i,o,s,u,a,c,f=this,l=f.constructor,p=f.d,d=(t=new l(t)).d;if(t.s*=f.s,!p||!p[0]||!d||!d[0])return new l(!t.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:!p||!d?t.s/0:t.s*0);for(n=z(f.e/A)+z(t.e/A),a=p.length,c=d.length,a<c&&(o=p,p=d,d=o,s=a,a=c,c=s),o=[],s=a+c,r=s;r--;)o.push(0);for(r=c;--r>=0;){for(e=0,i=a+r;i>r;)u=o[i]+d[r]*p[i-r-1]+e,o[i--]=u%X|0,e=u/X|0;o[i]=(o[i]+e)%X|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=Ge(o,n),S?P(t,l.precision,l.rounding):t};m.toBinary=function(t,e){return pt(this,2,t,e)};m.toDecimalPlaces=m.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(Y(t,0,ue),e===void 0?e=r.rounding:Y(e,0,8),P(n,t+n.e+1,e))};m.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ee(r,!0):(Y(t,0,ue),e===void 0?e=i.rounding:Y(e,0,8),r=P(new i(r),t+1,e),n=ee(r,!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n};m.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return t===void 0?n=ee(i):(Y(t,0,ue),e===void 0?e=o.rounding:Y(e,0,8),r=P(new o(i),t+i.e+1,e),n=ee(r,!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n};m.toFraction=function(t){var e,n,r,i,o,s,u,a,c,f,l,p,d=this,b=d.d,g=d.constructor;if(!b)return new g(d);if(c=n=new g(1),r=a=new g(0),e=new g(r),o=e.e=tn(b)-d.e-1,s=o%A,e.d[0]=q(10,s<0?A+s:s),t==null)t=o>0?e:c;else{if(u=new g(t),!u.isInt()||u.lt(c))throw Error(se+u);t=u.gt(e)?o>0?e:c:u}for(S=!1,u=new g(G(b)),f=g.precision,g.precision=o=b.length*A*2;l=M(u,e,0,1,1),i=n.plus(l.times(r)),i.cmp(t)!=1;)n=r,r=i,i=c,c=a.plus(l.times(i)),a=i,i=e,e=u.minus(l.times(i)),u=i;return i=M(t.minus(n),r,0,1,1),a=a.plus(i.times(c)),n=n.plus(i.times(r)),a.s=c.s=d.s,p=M(c,r,o,1).minus(d).abs().cmp(M(a,n,o,1).minus(d).abs())<1?[c,r]:[a,n],g.precision=f,S=!0,p};m.toHexadecimal=m.toHex=function(t,e){return pt(this,16,t,e)};m.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),t==null){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),e===void 0?e=r.rounding:Y(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(S=!1,n=M(n,t,0,e,1).times(t),S=!0,P(n)):(t.s=n.s,n=t),n};m.toNumber=function(){return+this};m.toOctal=function(t,e){return pt(this,8,t,e)};m.toPower=m.pow=function(t){var e,n,r,i,o,s,u=this,a=u.constructor,c=+(t=new a(t));if(!u.d||!t.d||!u.d[0]||!t.d[0])return new a(q(+u,c));if(u=new a(u),u.eq(1))return u;if(r=a.precision,o=a.rounding,t.eq(1))return P(u,r,o);if(e=z(t.e/A),e>=t.d.length-1&&(n=c<0?-c:c)<=Gn)return i=nn(a,u,n,r),t.s<0?new a(1).div(i):P(i,r,o);if(s=u.s,s<0){if(e<t.d.length-1)return new a(NaN);if((t.d[e]&1)==0&&(s=1),u.e==0&&u.d[0]==1&&u.d.length==1)return u.s=s,u}return n=q(+u,c),e=n==0||!isFinite(n)?z(c*(Math.log("0."+G(u.d))/Math.LN10+u.e+1)):new a(n+"").e,e>a.maxE+1||e<a.minE-1?new a(e>0?s/0:0):(S=!1,a.rounding=u.s=1,n=Math.min(12,(e+"").length),i=lt(t.times(oe(u,r+n)),r),i.d&&(i=P(i,r+5,1),Se(i.d,r,o)&&(e=r+10,i=P(lt(t.times(oe(u,e+n)),e),e+5,1),+G(i.d).slice(r+1,r+15)+1==1e14&&(i=P(i,r+1,0)))),i.s=s,S=!0,a.rounding=o,P(i,r,o))};m.toPrecision=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=ee(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(Y(t,1,ue),e===void 0?e=i.rounding:Y(e,0,8),r=P(new i(r),t,e),n=ee(r,t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n};m.toSignificantDigits=m.toSD=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(Y(t,1,ue),e===void 0?e=r.rounding:Y(e,0,8)),P(new r(n),t,e)};m.toString=function(){var t=this,e=t.constructor,n=ee(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n};m.truncated=m.trunc=function(){return P(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var t=this,e=t.constructor,n=ee(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};function G(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)r=t[e]+"",n=A-r.length,n&&(o+=ie(n)),o+=r;s=t[e],r=s+"",n=A-r.length,n&&(o+=ie(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Y(t,e,n){if(t!==~~t||t<e||t>n)throw Error(se+t)}function Se(t,e,n,r){var i,o,s,u;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=A,i=0):(i=Math.ceil((e+1)/A),e%=A),o=q(10,A-e),u=t[i]%o|0,r==null?e<3?(e==0?u=u/100|0:e==1&&(u=u/10|0),s=n<4&&u==99999||n>3&&u==49999||u==5e4||u==0):s=(n<4&&u+1==o||n>3&&u+1==o/2)&&(t[i+1]/o/100|0)==q(10,e-2)-1||(u==o/2||u==0)&&(t[i+1]/o/100|0)==0:e<4?(e==0?u=u/1e3|0:e==1?u=u/100|0:e==2&&(u=u/10|0),s=(r||n<4)&&u==9999||!r&&n>3&&u==4999):s=((r||n<4)&&u+1==o||!r&&n>3&&u+1==o/2)&&(t[i+1]/o/1e3|0)==q(10,e-3)-1,s}function Fe(t,e,n){for(var r,i=[0],o,s=0,u=t.length;s<u;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=ut.indexOf(t.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 zn(t,e){var n,r,i;if(e.isZero())return e;r=e.d.length,r<32?(n=Math.ceil(r/3),i=(1/He(4,n)).toString()):(n=16,i="2.3283064365386962890625e-10"),t.precision+=n,e=ye(t,1,e.times(i),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}var M=function(){function t(r,i,o){var s,u=0,a=r.length;for(r=r.slice();a--;)s=r[a]*i+u,r[a]=s%o|0,u=s/o|0;return u&&r.unshift(u),r}function e(r,i,o,s){var u,a;if(o!=s)a=o>s?1:-1;else for(u=a=0;u<o;u++)if(r[u]!=i[u]){a=r[u]>i[u]?1:-1;break}return a}function n(r,i,o,s){for(var u=0;o--;)r[o]-=u,u=r[o]<i[o]?1:0,r[o]=u*s+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s,u,a){var c,f,l,p,d,b,g,T,x,w,h,y,C,B,O,E,D,v,I,F,te=r.constructor,ge=r.s==i.s?1:-1,W=r.d,R=i.d;if(!W||!W[0]||!R||!R[0])return new te(!r.s||!i.s||(W?R&&W[0]==R[0]:!R)?NaN:W&&W[0]==0||!R?ge*0:ge/0);for(a?(d=1,f=r.e-i.e):(a=X,d=A,f=z(r.e/d)-z(i.e/d)),I=R.length,D=W.length,x=new te(ge),w=x.d=[],l=0;R[l]==(W[l]||0);l++);if(R[l]>(W[l]||0)&&f--,o==null?(B=o=te.precision,s=te.rounding):u?B=o+(r.e-i.e)+1:B=o,B<0)w.push(1),b=!0;else{if(B=B/d+2|0,l=0,I==1){for(p=0,R=R[0],B++;(l<D||p)&&B--;l++)O=p*a+(W[l]||0),w[l]=O/R|0,p=O%R|0;b=p||l<D}else{for(p=a/(R[0]+1)|0,p>1&&(R=t(R,p,a),W=t(W,p,a),I=R.length,D=W.length),E=I,h=W.slice(0,I),y=h.length;y<I;)h[y++]=0;F=R.slice(),F.unshift(0),v=R[0],R[1]>=a/2&&++v;do p=0,c=e(R,h,I,y),c<0?(C=h[0],I!=y&&(C=C*a+(h[1]||0)),p=C/v|0,p>1?(p>=a&&(p=a-1),g=t(R,p,a),T=g.length,y=h.length,c=e(g,h,T,y),c==1&&(p--,n(g,I<T?F:R,T,a))):(p==0&&(c=p=1),g=R.slice()),T=g.length,T<y&&g.unshift(0),n(h,g,y,a),c==-1&&(y=h.length,c=e(R,h,I,y),c<1&&(p++,n(h,I<y?F:R,y,a))),y=h.length):c===0&&(p++,h=[0]),w[l++]=p,c&&h[0]?h[y++]=W[E]||0:(h=[W[E]],y=1);while((E++<D||h[0]!==void 0)&&B--);b=h[0]!==void 0}w[0]||w.shift()}if(d==1)x.e=f,Zt=b;else{for(l=1,p=w[0];p>=10;p/=10)l++;x.e=l+f*d-1,P(x,u?o+x.e+1:o,s,b)}return x}}();function P(t,e,n,r){var i,o,s,u,a,c,f,l,p,d=t.constructor;e:if(e!=null){if(l=t.d,!l)return t;for(i=1,u=l[0];u>=10;u/=10)i++;if(o=e-i,o<0)o+=A,s=e,f=l[p=0],a=f/q(10,i-s-1)%10|0;else if(p=Math.ceil((o+1)/A),u=l.length,p>=u)if(r){for(;u++<=p;)l.push(0);f=a=0,i=1,o%=A,s=o-A+1}else break e;else{for(f=u=l[p],i=1;u>=10;u/=10)i++;o%=A,s=o-A+i,a=s<0?0:f/q(10,i-s-1)%10|0}if(r=r||e<0||l[p+1]!==void 0||(s<0?f:f%q(10,i-s-1)),c=n<4?(a||r)&&(n==0||n==(t.s<0?3:2)):a>5||a==5&&(n==4||r||n==6&&(o>0?s>0?f/q(10,i-s):0:l[p-1])%10&1||n==(t.s<0?8:7)),e<1||!l[0])return l.length=0,c?(e-=t.e+1,l[0]=q(10,(A-e%A)%A),t.e=-e||0):l[0]=t.e=0,t;if(o==0?(l.length=p,u=1,p--):(l.length=p+1,u=q(10,A-o),l[p]=s>0?(f/q(10,i-s)%q(10,s)|0)*u:0),c)for(;;)if(p==0){for(o=1,s=l[0];s>=10;s/=10)o++;for(s=l[0]+=u,u=1;s>=10;s/=10)u++;o!=u&&(t.e++,l[0]==X&&(l[0]=1));break}else{if(l[p]+=u,l[p]!=X)break;l[p--]=0,u=1}for(o=l.length;l[--o]===0;)l.pop()}return S&&(t.e>d.maxE?(t.d=null,t.e=NaN):t.e<d.minE&&(t.e=0,t.d=[0])),t}function ee(t,e,n){if(!t.isFinite())return on(t);var r,i=t.e,o=G(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+ie(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+ie(-i-1)+o,n&&(r=n-s)>0&&(o+=ie(r))):i>=s?(o+=ie(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+ie(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=ie(r))),o}function Ge(t,e){var n=t[0];for(e*=A;n>=10;n/=10)e++;return e}function We(t,e,n){if(e>Hn)throw S=!0,n&&(t.precision=n),Error(Jt);return P(new t(Ve),e,1,!0)}function J(t,e,n){if(e>ct)throw Error(Jt);return P(new t(qe),e,n,!0)}function tn(t){var e=t.length-1,n=e*A+1;if(e=t[e],e){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function ie(t){for(var e="";t--;)e+="0";return e}function nn(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/A+4);for(S=!1;;){if(n%2&&(o=o.times(e),Qt(o.d,s)&&(i=!0)),n=z(n/2),n===0){n=o.d.length-1,i&&o.d[n]===0&&++o.d[n];break}e=e.times(e),Qt(e.d,s)}return S=!0,o}function jt(t){return t.d[t.d.length-1]&1}function rn(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;)if(r=new t(e[o]),r.s)i[n](r)&&(i=r);else{i=r;break}return i}function lt(t,e){var n,r,i,o,s,u,a,c=0,f=0,l=0,p=t.constructor,d=p.rounding,b=p.precision;if(!t.d||!t.d[0]||t.e>17)return new p(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:0/0);for(e==null?(S=!1,a=b):a=e,u=new p(.03125);t.e>-2;)t=t.times(u),l+=5;for(r=Math.log(q(2,l))/Math.LN10*2+5|0,a+=r,n=o=s=new p(1),p.precision=a;;){if(o=P(o.times(t),a,1),n=n.times(++f),u=s.plus(M(o,n,a,1)),G(u.d).slice(0,a)===G(s.d).slice(0,a)){for(i=l;i--;)s=P(s.times(s),a,1);if(e==null)if(c<3&&Se(s.d,a-r,d,c))p.precision=a+=10,n=o=u=new p(1),f=0,c++;else return P(s,p.precision=b,d,S=!0);else return p.precision=b,s}s=u}}function oe(t,e){var n,r,i,o,s,u,a,c,f,l,p,d=1,b=10,g=t,T=g.d,x=g.constructor,w=x.rounding,h=x.precision;if(g.s<0||!T||!T[0]||!g.e&&T[0]==1&&T.length==1)return new x(T&&!T[0]?-1/0:g.s!=1?NaN:T?0:g);if(e==null?(S=!1,f=h):f=e,x.precision=f+=b,n=G(T),r=n.charAt(0),Math.abs(o=g.e)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(t),n=G(g.d),r=n.charAt(0),d++;o=g.e,r>1?(g=new x("0."+n),o++):g=new x(r+"."+n.slice(1))}else return c=We(x,f+2,h).times(o+""),g=oe(new x(r+"."+n.slice(1)),f-b).plus(c),x.precision=h,e==null?P(g,h,w,S=!0):g;for(l=g,a=s=g=M(g.minus(1),g.plus(1),f,1),p=P(g.times(g),f,1),i=3;;){if(s=P(s.times(p),f,1),c=a.plus(M(s,new x(i),f,1)),G(c.d).slice(0,f)===G(a.d).slice(0,f))if(a=a.times(2),o!==0&&(a=a.plus(We(x,f+2,h).times(o+""))),a=M(a,new x(d),f,1),e==null)if(Se(a.d,f-b,w,u))x.precision=f+=b,c=s=g=M(l.minus(1),l.plus(1),f,1),p=P(g.times(g),f,1),i=u=1;else return P(a,x.precision=h,w,S=!0);else return x.precision=h,a;a=c,i+=2}}function on(t){return String(t.s*t.s/0)}function ft(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;r++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(r,i),e){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%A,n<0&&(r+=A),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=A;r<i;)t.d.push(+e.slice(r,r+=A));e=e.slice(r),r=A-e.length}else r-=i;for(;r--;)e+="0";t.d.push(+e),S&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function jn(t,e){var n,r,i,o,s,u,a,c,f;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),en.test(e))return ft(t,e)}else if(e==="Infinity"||e==="NaN")return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(Wn.test(e))n=16,e=e.toLowerCase();else if(qn.test(e))n=2;else if(Un.test(e))n=8;else throw Error(se+e);for(o=e.search(/p/i),o>0?(a=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),s=o>=0,r=t.constructor,s&&(e=e.replace(".",""),u=e.length,o=u-o,i=nn(r,new r(n),o,o*2)),c=Fe(e,n,X),f=c.length-1,o=f;c[o]===0;--o)c.pop();return o<0?new r(t.s*0):(t.e=Ge(c,f),t.d=c,S=!1,s&&(t=M(t,i,u*4)),a&&(t=t.times(Math.abs(a)<54?q(2,a):ze.pow(2,a))),S=!0,t)}function Qn(t,e){var n,r=e.d.length;if(r<3)return e.isZero()?e:ye(t,2,e,e);n=1.4*Math.sqrt(r),n=n>16?16:n|0,e=e.times(1/He(5,n)),e=ye(t,2,e,e);for(var i,o=new t(5),s=new t(16),u=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(u))));return e}function ye(t,e,n,r,i){var o,s,u,a,c=1,f=t.precision,l=Math.ceil(f/A);for(S=!1,a=n.times(n),u=new t(r);;){if(s=M(u.times(a),new t(e++*e++),f,1),u=i?r.plus(s):r.minus(s),r=M(s.times(a),new t(e++*e++),f,1),s=u.plus(r),s.d[l]!==void 0){for(o=l;s.d[o]===u.d[o]&&o--;);if(o==-1)break}o=u,u=r,r=s,s=o,c++}return S=!0,s.d.length=l+1,s}function He(t,e){for(var n=t;--e;)n*=t;return n}function sn(t,e){var n,r=e.s<0,i=J(t,t.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return ne=r?4:1,e;if(n=e.divToInt(i),n.isZero())ne=r?3:2;else{if(e=e.minus(n.times(i)),e.lte(o))return ne=jt(n)?r?2:3:r?4:1,e;ne=jt(n)?r?1:4:r?3:2}return e.minus(i).abs()}function pt(t,e,n,r){var i,o,s,u,a,c,f,l,p,d=t.constructor,b=n!==void 0;if(b?(Y(n,1,ue),r===void 0?r=d.rounding:Y(r,0,8)):(n=d.precision,r=d.rounding),!t.isFinite())f=on(t);else{for(f=ee(t),s=f.indexOf("."),b?(i=2,e==16?n=n*4-3:e==8&&(n=n*3-2)):i=e,s>=0&&(f=f.replace(".",""),p=new d(1),p.e=f.length-s,p.d=Fe(ee(p),10,i),p.e=p.d.length),l=Fe(f,10,i),o=a=l.length;l[--a]==0;)l.pop();if(!l[0])f=b?"0p+0":"0";else{if(s<0?o--:(t=new d(t),t.d=l,t.e=o,t=M(t,p,n,r,0,i),l=t.d,o=t.e,c=Zt),s=l[n],u=i/2,c=c||l[n+1]!==void 0,c=r<4?(s!==void 0||c)&&(r===0||r===(t.s<0?3:2)):s>u||s===u&&(r===4||c||r===6&&l[n-1]&1||r===(t.s<0?8:7)),l.length=n,c)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(a=l.length;!l[a-1];--a);for(s=0,f="";s<a;s++)f+=ut.charAt(l[s]);if(b){if(a>1)if(e==16||e==8){for(s=e==16?4:3,--a;a%s;a++)f+="0";for(l=Fe(f,i,e),a=l.length;!l[a-1];--a);for(s=1,f="1.";s<a;s++)f+=ut.charAt(l[s])}else f=f.charAt(0)+"."+f.slice(1);f=f+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)f="0"+f;f="0."+f}else if(++o>a)for(o-=a;o--;)f+="0";else o<a&&(f=f.slice(0,o)+"."+f.slice(o))}f=(e==16?"0x":e==2?"0b":e==8?"0o":"")+f}return t.s<0?"-"+f:f}function Qt(t,e){if(t.length>e)return t.length=e,!0}function Yn(t){return new this(t).abs()}function Zn(t){return new this(t).acos()}function Jn(t){return new this(t).acosh()}function Xn(t,e){return new this(t).plus(e)}function $n(t){return new this(t).asin()}function er(t){return new this(t).asinh()}function tr(t){return new this(t).atan()}function nr(t){return new this(t).atanh()}function rr(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return!t.s||!e.s?n=new this(NaN):!t.d&&!e.d?(n=J(this,o,1).times(e.s>0?.25:.75),n.s=t.s):!e.d||t.isZero()?(n=e.s<0?J(this,r,i):new this(0),n.s=t.s):!t.d||e.isZero()?(n=J(this,o,1).times(.5),n.s=t.s):e.s<0?(this.precision=o,this.rounding=1,n=this.atan(M(t,e,o,1)),e=J(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(M(t,e,o,1)),n}function ir(t){return new this(t).cbrt()}function or(t){return P(t=new this(t),t.e+1,2)}function sr(t,e,n){return new this(t).clamp(e,n)}function ur(t){if(!t||typeof t!="object")throw Error(Ue+"Object expected");var e,n,r,i=t.defaults===!0,o=["precision",1,ue,"rounding",0,8,"toExpNeg",-be,0,"toExpPos",0,be,"maxE",0,be,"minE",-be,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=at[n]),(r=t[n])!==void 0)if(z(r)===r&&r>=o[e+1]&&r<=o[e+2])this[n]=r;else throw Error(se+n+": "+r);if(n="crypto",i&&(this[n]=at[n]),(r=t[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(Xt);else this[n]=!1;else throw Error(se+n+": "+r);return this}function ar(t){return new this(t).cos()}function cr(t){return new this(t).cosh()}function un(t){var e,n,r;function i(o){var s,u,a,c=this;if(!(c instanceof i))return new i(o);if(c.constructor=i,Yt(o)){c.s=o.s,S?!o.d||o.e>i.maxE?(c.e=NaN,c.d=null):o.e<i.minE?(c.e=0,c.d=[0]):(c.e=o.e,c.d=o.d.slice()):(c.e=o.e,c.d=o.d?o.d.slice():o.d);return}if(a=typeof o,a==="number"){if(o===0){c.s=1/o<0?-1:1,c.e=0,c.d=[0];return}if(o<0?(o=-o,c.s=-1):c.s=1,o===~~o&&o<1e7){for(s=0,u=o;u>=10;u/=10)s++;S?s>i.maxE?(c.e=NaN,c.d=null):s<i.minE?(c.e=0,c.d=[0]):(c.e=s,c.d=[o]):(c.e=s,c.d=[o]);return}else if(o*0!==0){o||(c.s=NaN),c.e=NaN,c.d=null;return}return ft(c,o.toString())}else if(a!=="string")throw Error(se+o);return(u=o.charCodeAt(0))===45?(o=o.slice(1),c.s=-1):(u===43&&(o=o.slice(1)),c.s=1),en.test(o)?ft(c,o):jn(c,o)}if(i.prototype=m,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=ur,i.clone=un,i.isDecimal=Yt,i.abs=Yn,i.acos=Zn,i.acosh=Jn,i.add=Xn,i.asin=$n,i.asinh=er,i.atan=tr,i.atanh=nr,i.atan2=rr,i.cbrt=ir,i.ceil=or,i.clamp=sr,i.cos=ar,i.cosh=cr,i.div=lr,i.exp=fr,i.floor=pr,i.hypot=dr,i.ln=mr,i.log=gr,i.log10=br,i.log2=hr,i.max=yr,i.min=wr,i.mod=xr,i.mul=Tr,i.pow=Pr,i.random=Ar,i.round=Br,i.sign=Sr,i.sin=Lr,i.sinh=kr,i.sqrt=Nr,i.sub=Cr,i.sum=Er,i.tan=Mr,i.tanh=Rr,i.trunc=Dr,t===void 0&&(t={}),t&&t.defaults!==!0)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<r.length;)t.hasOwnProperty(n=r[e++])||(t[n]=this[n]);return i.config(t),i}function lr(t,e){return new this(t).div(e)}function fr(t){return new this(t).exp()}function pr(t){return P(t=new this(t),t.e+1,3)}function dr(){var t,e,n=new this(0);for(S=!1,t=0;t<arguments.length;)if(e=new this(arguments[t++]),e.d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return S=!0,new this(1/0);n=e}return S=!0,n.sqrt()}function Yt(t){return t instanceof ze||t&&t.toStringTag===$t||!1}function mr(t){return new this(t).ln()}function gr(t,e){return new this(t).log(e)}function hr(t){return new this(t).log(2)}function br(t){return new this(t).log(10)}function yr(){return rn(this,arguments,"lt")}function wr(){return rn(this,arguments,"gt")}function xr(t,e){return new this(t).mod(e)}function Tr(t,e){return new this(t).mul(e)}function Pr(t,e){return new this(t).pow(e)}function Ar(t){var e,n,r,i,o=0,s=new this(1),u=[];if(t===void 0?t=this.precision:Y(t,1,ue),r=Math.ceil(t/A),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:u[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(r*=4);o<r;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(u.push(i%1e7),o+=4);o=r/4}else throw Error(Xt);else for(;o<r;)u[o++]=Math.random()*1e7|0;for(r=u[--o],t%=A,r&&t&&(i=q(10,A-t),u[o]=(r/i|0)*i);u[o]===0;o--)u.pop();if(o<0)n=0,u=[0];else{for(n=-1;u[0]===0;n-=A)u.shift();for(r=1,i=u[0];i>=10;i/=10)r++;r<A&&(n-=A-r)}return s.e=n,s.d=u,s}function Br(t){return P(t=new this(t),t.e+1,this.rounding)}function Sr(t){return t=new this(t),t.d?t.d[0]?t.s:0*t.s:t.s||NaN}function Lr(t){return new this(t).sin()}function kr(t){return new this(t).sinh()}function Nr(t){return new this(t).sqrt()}function Cr(t,e){return new this(t).sub(e)}function Er(){var t=0,e=arguments,n=new this(e[t]);for(S=!1;n.s&&++t<e.length;)n=n.plus(e[t]);return S=!0,P(n,this.precision,this.rounding)}function Mr(t){return new this(t).tan()}function Rr(t){return new this(t).tanh()}function Dr(t){return P(t=new this(t),t.e+1,1)}m[Symbol.for("nodejs.util.inspect.custom")]=m.toString;m[Symbol.toStringTag]="Decimal";var ze=m.constructor=un(at);Ve=new ze(Ve);qe=new ze(qe);import{PublicKey as gt}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Kr}from"@solana/spl-token";import{PublicKey as _,SystemProgram as an,SYSVAR_RENT_PUBKEY as _r}from"@solana/web3.js";function dt({pubkey:t,isSigner:e=!1,isWritable:n=!0}){return{pubkey:t,isWritable:n,isSigner:e}}var Fi=[dt({pubkey:Kr,isWritable:!1}),dt({pubkey:an.programId,isWritable:!1}),dt({pubkey:_r,isWritable:!1})];function cn({publicKey:t,transformSol:e}){let n=ln(t.toString());if(n instanceof _)return e&&n.equals(Le)?mt:n;if(e&&n.toString()===Le.toBase58())return mt;if(typeof n=="string"){if(n===_.default.toBase58())return _.default;try{return new _(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ln(t){try{return new _(t)}catch{return t}}var Vi=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),qi=new _("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Wi=new _("SysvarRent111111111111111111111111111111111"),Ui=new _("SysvarC1ock11111111111111111111111111111111"),Gi=new _("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Hi=new _("Sysvar1nstructions1111111111111111111111111"),zi=an.programId,ji=new _("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Qi=new _("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yi=new _("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Zi=new _("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ji=new _("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xi=new _("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),$i=new _("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),eo=new _("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),to=new _("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),no=new _("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ro=new _("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),mt=new _("So11111111111111111111111111111111111111112"),Le=_.default;import{PublicKey as Ir}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fn}from"@solana/spl-token";var pn={chainId:101,address:Ir.default.toBase58(),programId:fn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:fn.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 ht=class{constructor({mint:e,decimals:n,symbol:r,name:i,skipMint:o=!1,isToken2022:s=!1}){if(e===Le.toBase58()||e instanceof gt&&Le.equals(e)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new gt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=o?gt.default:cn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},we=ht;we.WSOL=new ht(re(U({},de),{mint:de.address}));import Qe from"big.js";import Fr from"bn.js";import Vr from"decimal.js-light";import vr from"toformat";var Or=vr,ke=Or;var je=H("module/fraction"),bt=ke(Qe),Ne=ke(Vr),qr={[0]:Ne.ROUND_DOWN,[1]:Ne.ROUND_HALF_UP,[2]:Ne.ROUND_UP},Wr={[0]:Qe.roundDown,[1]:Qe.roundHalfUp,[2]:Qe.roundUp},K=class{constructor(e,n=new Fr(1)){this.numerator=ae(e),this.denominator=ae(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new K(this.denominator,this.numerator)}add(e){let n=e instanceof K?e:new K(ae(e));return this.denominator.eq(n.denominator)?new K(this.numerator.add(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(e){let n=e instanceof K?e:new K(ae(e));return this.denominator.eq(n.denominator)?new K(this.numerator.sub(n.numerator),this.denominator):new K(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(e){let n=e instanceof K?e:new K(ae(e));return new K(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(e){let n=e instanceof K?e:new K(ae(e));return new K(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(e,n={groupSeparator:""},r=1){Number.isInteger(e)||je.logWithError(`${e} is not an integer.`),e<=0&&je.logWithError(`${e} is not positive.`),Ne.set({precision:e+1,rounding:qr[r]});let i=new Ne(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),n)}toFixed(e,n={groupSeparator:""},r=1){return Number.isInteger(e)||je.logWithError(`${e} is not an integer.`),e<0&&je.logWithError(`${e} is negative.`),bt.DP=e,bt.RM=Wr[r]||1,new bt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,n)}isZero(){return this.numerator.isZero()}};var Eo=H("Raydium_price");var yt=class{constructor({decimals:e,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=e,this.symbol=n,this.name=r}equals(e){return this===e}},Ye=yt;Ye.SOL=new yt(pn);import Gr from"bn.js";var Oo=new K(new Gr(100));var Ze=new Z(0),is=new Z(1),os=new Z(2),ss=new Z(3),us=new Z(5),Hr=new Z(10),as=new Z(100),cs=new Z(1e3),ls=new Z(1e4),hn=9007199254740991;function ae(t){let e=H("Raydium_parseBigNumberish");if(t instanceof Z)return t;if(typeof t=="string"){if(t.match(/^-?[0-9]+$/))return new Z(t);e.logWithError(`invalid BigNumberish string: ${t}`)}return typeof t=="number"?(t%1&&e.logWithError(`BigNumberish number underflow: ${t}`),(t>=hn||t<=-hn)&&e.logWithError(`BigNumberish number overflow: ${t}`),new Z(String(t))):typeof t=="bigint"?new Z(t.toString()):(e.error(`invalid BigNumberish value: ${t}`),new Z(0))}var Bs=H("Raydium_amount"),Ss=ke(zr);function wt(t,e=1,n=[]){let r=[...t];if(e<=0)return n;for(;r.length;)n.push(r.splice(0,e));return n}import{PublicKey as N}from"@solana/web3.js";var zs=new N("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),js=new N("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Qs=new N("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ys=new N("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Zs=new N("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Js=new N("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xs=new N("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$s=new N("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),eu=new N("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),tu=new N("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),nu=new N("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),ru=new N("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),iu=new N("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ou=new N("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),su=new N("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),uu=new N("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),au=new N("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),cu=new N("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),lu=new N("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),jr=new N("CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW"),Qr=new N("7rQ1QFNosMkUCuh7Z7fPbTHvh73b68sQYdirycEzJVuw"),Yr=new N("G11FKBRaAkHAKuLCgLM6K6NUc9rTjPAznRCjZifrTQe2");var fu={SERUM_MARKET:N.default,OPENBOOK_MARKET:new N("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),UTIL1216:N.default,FarmV3:new N("85BFyr98MbCUU9MVTEgzx1nbhWACbJqLzho6zd6DZcWL"),FarmV5:new N("EcLzTrNg9V7qhcdyXDe2qjtPkiGzDM2UbdRaeaadU5r2"),FarmV6:new N("Farm2hJLcqPtPg8M4rR6DMrsRNc5TPm5Cs4bVQrMe2T7"),AmmV4:new N("HWy1jotHpo6UqeQxx49dpYYdQB8wj9Qk9MdxwjLvDHB8"),AmmStable:new N("DDg4VmQaJV9ogWce7LpcjBA9bv22wRp5uaTPa5pGjijF"),CLMM:new N("devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH"),Router:new N("BVChZ3XFEwTMUk1o9i3HAf91H6mFxSwa5X2wFAWhYPhU"),CREATE_CPMM_POOL_PROGRAM:jr,CREATE_CPMM_POOL_AUTH:Qr,CREATE_CPMM_POOL_FEE_ACC:Yr,FEE_DESTINATION_ID:new N("3XMrhbv989VxAMi3DErLV9eJht1pHppW5LbKxe9fkEFR")};import{PublicKey as gu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yu}from"@solana/spl-token";import Tu from"bn.js";var xt=H("Raydium_accountInfo_util");async function bn(t,e,n){let{batchRequest:r,commitment:i="confirmed",chunkCount:o=100}=U({batchRequest:!1},n),s=wt(e,o),u=new Array(s.length).fill([]);if(r){let a=s.map(l=>{let p=t._buildArgs([l.map(d=>d.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:p}}),c=wt(a,10);u=(await(await Promise.all(c.map(async l=>await t._rpcBatchRequest(l)))).flat()).map(l=>(l.error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.error.message}`),l.result.value.map(p=>{if(p){let{data:d,executable:b,lamports:g,owner:T,rentEpoch:x}=p;return d.length!==2&&d[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(d[0],"base64"),executable:b,lamports:g,owner:new Zr(T),rentEpoch:x}}return null})))}else try{u=await Promise.all(s.map(a=>t.getMultipleAccountsInfo(a,i)))}catch(a){a instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${a.message}`)}return u.flat()}async function Tt({connection:t,address:e}){let n=await bn(t,[...new Set(e.map(i=>i.toString()))].map(i=>new yn(i))),r={};for(let i=0;i<e.length;i++){let o=n[i],s=e[i];if(!o)continue;let u=new Je({key:s,state:Je.deserialize(o.data)});r[s.toString()]=u,Xe[s.toString()]=u}return r}var Xe={"2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17":new Je({key:new yn("2immgwYNHBbyVQKVGCEkgWpi53bLwWNRMB5G2nbgYV17"),state:Je.deserialize(Buffer.from("AQAAAP//////////d49+DAAAAAAAAQZMWvw7GUNJdaccNBVnb57OKakxL2BHLYvhRwVILRsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkG3fbh7nWP3hhCXbzkbM3athr8TYO5DSf+vfko2KGL/AVKU1D4XciC1hSlVnJ4iilt3x6rq9CmBniISTL07vagBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGMd0yShWY5hpHV62i164o5tLbVxzVVshAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUbIScv+6Yw2LHF/6K0ZjUPibbSWXCirYPGuuVl7zT789IUPLW4CpHr4JNCatp3ELXDLKMv6JJ+37le50lbBJ2LvDQdRqCgtphMF/imcN7mY5YRx2xE1A3MQ+L4QRaYK9u4GRfZP3LsAd00a+IkCpA22UNQMKdq5BFbJuwuOLqc8zxCTDlqxBG8J0HcxtfogQHDK06ukzfaXiNDKAob1MqBHS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1H9aKveyXSu5StXElYRl9SD5As0DHE4N0GLnf84/siiKXVyp4Ez121kLcUui/jLLFZEz/BwZK3Ilf9B9OcsEAeDMKAy2vjGSxQODgBz0QwGA+eP4ZjIjrIAQaXENv31QfLlOdXSRCkaybRniDHF4C8YcwhcvsqrOVuTP4B2Na+9wLdtrB31uz2rtlFI5kahdsnp/d1SrASDInYCtTYtdoke4kX+hoKWcEWM4Tle8pTUkUVv4BxS6fje/EzKBE4Qu9N9LMnrw/JNO0hqMVB4rk/2ou4AB1loQ7FZoPwut2o4KZB+0p9xnbrQKw038qjpHar+PyDwvxBRcu5hpHw3dguezeWv+IwvgW5icu8EGkhGa9AkFPPJT7VMSFb8xowveU=","base64"))})};var $e=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.api=e.api}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let e=(await Xr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=e==null?void 0:e[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:n,instructionTypes:r}=Oe(e);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}async calComputeBudget({config:e,defaultIns:n}){try{let r=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:e=[],endInstructions:n=[],signers:r=[],instructionTypes:i=[],endInstructionTypes:o=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...i),this.endInstructionTypes.push(...o),this.lookupTableAddress.push(...s.filter(u=>u!==Ce.default.toString())),this}async versionBuild({txVersion:e,extInfo:n}){return e===0?await this.buildV0(U({},n||{})):this.build(n)}build(e){var r;let n=new Ee;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var c;let{recentBlockHash:o,skipPreflight:s=!0,sendAndConfirm:u}=i||{},a=o!=null?o:await he(this.connection,this.blockhashCommitment);if(n.recentBlockhash=a,this.signers.length&&n.sign(...this.signers),pe([n]),(c=this.owner)!=null&&c.isKeyPair)return{txId:u?await Pt(this.connection,n,this.signers.find(l=>l.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:s}),signedTx:n};if(this.signAllTransactions){let f=await this.signAllTransactions([n]);return{txId:await this.connection.sendRawTransaction(f[0].serialize(),{skipPreflight:s}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var c;let{extraPreBuildData:n=[],extInfo:r}=e,{transaction:i}=this.build(r),o=n.filter(f=>f.transaction.instructions.length>0),s=[i,...o.map(f=>f.transaction)],u=[this.signers,...o.map(f=>f.signers)],a=[...this.instructionTypes,...o.map(f=>f.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&u.forEach(f=>{f.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:u,instructionTypes:a,execute:async f=>{var T;let{sequentially:l,onTxUpdate:p,recentBlockHash:d,skipPreflight:b=!0}=f||{},g=d!=null?d:await he(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(l){let x=[];for(let w of s){let h=await Pt(this.connection,w,this.signers.find(y=>y.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:b});x.push(h)}return{txIds:x,signedTxs:s}}return{txIds:await await Promise.all(s.map(async x=>(x.recentBlockhash=g,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:b})))),signedTxs:s}}if(this.signAllTransactions){let x=s.map((h,y)=>(h.recentBlockhash=g,u[y].length&&h.sign(...u[y]),h));pe(x);let w=await this.signAllTransactions(x);if(l){let h=0,y=[],C=async()=>{if(!w[h])return;let B=await this.connection.sendRawTransaction(w[h].serialize(),{skipPreflight:b});y.push({txId:B,status:"sent",signedTx:w[h]}),p==null||p([...y]),h++,this.connection.onSignature(B,O=>{let E=y.findIndex(D=>D.txId===B);E>-1&&(y[E].status=O.err?"error":"success"),p==null||p([...y]),O.err||C()},"processed"),this.connection.getSignatureStatus(B)};return await C(),{txIds:y.map(B=>B.txId),signedTxs:w}}else{let h=[];for(let y=0;y<w.length;y+=1){let C=await this.connection.sendRawTransaction(w[y].serialize(),{skipPreflight:b});h.push(C)}return{txIds:h,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:r})}async buildV0(e){var d;let p=e||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:i}=p,o=ve(p,["lookupTableCache","lookupTableAddress","forerunCreate"]),s=U(U({},this.cluster==="devnet"?{}:Xe),n),u=Array.from(new Set([...r,...this.lookupTableAddress])),a=[];for(let b of u)s[b]===void 0&&a.push(new Ce(b));let c=await Tt({connection:this.connection,address:a});for(let[b,g]of Object.entries(c))s[b]=g;let f=new Me({payerKey:this.feePayer,recentBlockhash:i?Ce.default.toBase58():await he(this.connection,this.blockhashCommitment),instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((d=this.owner)==null?void 0:d.signer)&&!this.signers.some(b=>b.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let l=new Re(f);return l.sign(this.signers),{builder:this,transaction:l,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async b=>{var w;let{recentBlockHash:g,skipPreflight:T=!0,sendAndConfirm:x}=b||{};if(g&&(l.message.recentBlockhash=g),pe([l]),(w=this.owner)!=null&&w.isKeyPair){let h=await this.connection.sendTransaction(l,{skipPreflight:T});if(x){let{lastValidBlockHeight:y,blockhash:C}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:C,lastValidBlockHeight:y,signature:h},"confirmed")}return{txId:h,signedTx:l}}if(this.signAllTransactions){let h=await this.signAllTransactions([l]);return{txId:await this.connection.sendTransaction(h[0],{skipPreflight:T}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async buildV0MultiTx(e){var c;let{extraPreBuildData:n=[],buildProps:r}=e,{transaction:i}=await this.buildV0(r),o=n.filter(f=>f.builder.instructions.length>0),s=[i,...o.map(f=>f.transaction)],u=[this.signers,...o.map(f=>f.signers)],a=[...this.instructionTypes,...o.map(f=>f.instructionTypes).flat()];return(c=this.owner)!=null&&c.signer&&u.forEach(f=>{f.some(l=>l.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(f,l)=>{f.sign(u[l])}),{builder:this,transactions:s,signers:u,instructionTypes:a,buildProps:r,execute:async f=>{var g;let{sequentially:l,onTxUpdate:p,recentBlockHash:d,skipPreflight:b=!0}=f||{};if(d&&s.forEach(T=>T.message.recentBlockhash=d),pe(s),(g=this.owner)!=null&&g.isKeyPair){if(l){let T=[];for(let x of s){let w=await this.connection.sendTransaction(x,{skipPreflight:b}),{lastValidBlockHeight:h,blockhash:y}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:y,lastValidBlockHeight:h,signature:w},"confirmed"),T.push(w)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:b}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(l){let x=0,w=[],h=async()=>{if(!T[x])return;let y=await this.connection.sendTransaction(T[x],{skipPreflight:b});w.push({txId:y,status:"sent",signedTx:T[x]}),p==null||p([...w]),x++,this.connection.onSignature(y,C=>{let B=w.findIndex(O=>O.txId===y);B>-1&&(w[B].status=C.err?"error":"success"),p==null||p([...w]),C.err||h()},"processed"),this.connection.getSignatureStatus(y)};return h(),{txIds:[],signedTxs:T}}else{let x=[];for(let w=0;w<T.length;w+=1){let h=await this.connection.sendTransaction(T[w],{skipPreflight:b});x.push(h)}return{txIds:x,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(e){var f;let c=e||{},{computeBudgetConfig:n}=c,r=ve(c,["computeBudgetConfig"]),i=n?Oe(n):{instructions:[],instructionTypes:[]},o=this.signers.reduce((l,p)=>re(U({},l),{[p.publicKey.toBase58()]:p}),{}),s=[],u=[],a=[];if(this.allInstructions.forEach(l=>{let p=[...a,l],d=n?[...i.instructions,...p]:p,g=[...new Set(p.map(T=>T.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(T=>new Ce(T));if(a.length<12&&Ae({instructions:d,payer:this.feePayer,signers:g})||Ae({instructions:p,payer:this.feePayer,signers:g}))a.push(l);else{if(a.length===0)throw Error("item ins too big");Ae({instructions:n?[...i.instructions,...a]:[...a],payer:this.feePayer,signers:g})?s.push(new Ee().add(...i.instructions,...a)):s.push(new Ee().add(...a)),u.push(Array.from(new Set(a.map(T=>T.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat())).map(T=>o[T]).filter(T=>T!==void 0)),a=[l]}}),a.length>0){let p=[...new Set(a.map(d=>d.keys.filter(b=>b.isSigner).map(b=>b.pubkey.toString())).flat()).values()].map(d=>o[d]).filter(d=>d!==void 0);Ae({instructions:n?[...i.instructions,...a]:[...a],payer:this.feePayer,signers:p.map(d=>d.publicKey)})?s.push(new Ee().add(...i.instructions,...a)):s.push(new Ee().add(...a)),u.push(p)}return s.forEach(l=>l.feePayer=this.feePayer),(f=this.owner)!=null&&f.signer&&u.forEach(l=>{l.some(p=>p.publicKey.equals(this.owner.publicKey))||l.push(this.owner.signer)}),{builder:this,transactions:s,signers:u,instructionTypes:this.instructionTypes,execute:async l=>{var x;let{sequentially:p,onTxUpdate:d,recentBlockHash:b,skipPreflight:g=!0}=l||{},T=b!=null?b:await he(this.connection,this.blockhashCommitment);if(s.forEach(async(w,h)=>{w.recentBlockhash=T,u[h].length&&w.sign(...u[h])}),pe(s),(x=this.owner)!=null&&x.isKeyPair){if(p){let w=[];for(let h of s){let y=await Pt(this.connection,h,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:g});w.push(y)}return{txIds:w,signedTxs:s}}return{txIds:await Promise.all(s.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:g}))),signedTxs:s}}if(this.signAllTransactions){let w=await this.signAllTransactions(s);if(p){let h=0,y=[],C=async()=>{if(!w[h])return;let B=await this.connection.sendRawTransaction(w[h].serialize(),{skipPreflight:g});y.push({txId:B,status:"sent",signedTx:w[h]}),d==null||d([...y]),h++,this.connection.onSignature(B,O=>{let E=y.findIndex(D=>D.txId===B);E>-1&&(y[E].status=O.err?"error":"success"),d==null||d([...y]),O.err||C()},"processed"),this.connection.getSignatureStatus(B)};return await C(),{txIds:y.map(B=>B.txId),signedTxs:w}}else{let h=[];for(let y=0;y<w.length;y+=1){let C=await this.connection.sendRawTransaction(w[y].serialize(),{skipPreflight:g});h.push(C)}return{txIds:h,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var x;let T=e||{},{computeBudgetConfig:n,lookupTableCache:r={},lookupTableAddress:i=[]}=T,o=ve(T,["computeBudgetConfig","lookupTableCache","lookupTableAddress"]),s=U(U({},this.cluster==="devnet"?{}:Xe),r),u=Array.from(new Set([...this.lookupTableAddress,...i])),a=[];for(let w of u)s[w]===void 0&&a.push(new Ce(w));let c=await Tt({connection:this.connection,address:a});for(let[w,h]of Object.entries(c))s[w]=h;let f=n?Oe(n):{instructions:[],instructionTypes:[]},l=await he(this.connection,this.blockhashCommitment),p=this.signers.reduce((w,h)=>re(U({},w),{[h.publicKey.toBase58()]:h}),{}),d=[],b=[],g=[];if(this.allInstructions.forEach(w=>{let h=[...g,w],y=n?[...f.instructions,...h]:h;if(g.length<12&&Be({instructions:y,payer:this.feePayer,lookupTableAddressAccount:s})||Be({instructions:h,payer:this.feePayer,lookupTableAddressAccount:s}))g.push(w);else{if(g.length===0)throw Error("item ins too big");let C={};for(let B of[...new Set(u)])s[B]!==void 0&&(C[B]=s[B]);if(n&&Be({instructions:[...f.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let B=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...g]}).compileToV0Message(Object.values(s));d.push(new Re(B))}else{let B=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...g]}).compileToV0Message(Object.values(s));d.push(new Re(B))}b.push(Array.from(new Set(g.map(B=>B.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat())).map(B=>p[B]).filter(B=>B!==void 0)),g=[w]}}),g.length>0){let h=[...new Set(g.map(y=>y.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(y=>p[y]).filter(y=>y!==void 0);if(n&&Be({instructions:[...f.instructions,...g],payer:this.feePayer,lookupTableAddressAccount:s,recentBlockhash:l})){let y=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...f.instructions,...g]}).compileToV0Message(Object.values(s));d.push(new Re(y))}else{let y=new Me({payerKey:this.feePayer,recentBlockhash:l,instructions:[...g]}).compileToV0Message(Object.values(s));d.push(new Re(y))}b.push(h)}return(x=this.owner)!=null&&x.signer&&b.forEach(w=>{w.some(h=>h.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:d,buildProps:e,signers:b,instructionTypes:this.instructionTypes,execute:async w=>{var O;let{sequentially:h,onTxUpdate:y,recentBlockHash:C,skipPreflight:B=!0}=w||{};if(d.map(async(E,D)=>{b[D].length&&E.sign(b[D]),C&&(E.message.recentBlockhash=C)}),pe(d),(O=this.owner)!=null&&O.isKeyPair){if(h){let E=[];for(let D of d){let v=await this.connection.sendTransaction(D,{skipPreflight:B}),{lastValidBlockHeight:I,blockhash:F}=await this.connection.getLatestBlockhash({commitment:this.blockhashCommitment});await this.connection.confirmTransaction({blockhash:F,lastValidBlockHeight:I,signature:v},"confirmed"),E.push(v)}return{txIds:E,signedTxs:d}}return{txIds:await Promise.all(d.map(async E=>await this.connection.sendTransaction(E,{skipPreflight:B}))),signedTxs:d}}if(this.signAllTransactions){let E=await this.signAllTransactions(d);if(h){let D=0,v=[],I=async()=>{if(!E[D])return;let F=await this.connection.sendTransaction(E[D],{skipPreflight:B});v.push({txId:F,status:"sent",signedTx:E[D]}),y==null||y([...v]),D++,this.connection.onSignature(F,te=>{let ge=v.findIndex(W=>W.txId===F);ge>-1&&(v[ge].status=te.err?"error":"success"),y==null||y([...v]),te.err||I()},"processed"),this.connection.getSignatureStatus(F)};return I(),{txIds:[],signedTxs:E}}else{let D=[];for(let v=0;v<E.length;v+=1){let I=await this.connection.sendTransaction(E[v],{skipPreflight:B});D.push(I)}return{txIds:D,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}};var At=(...t)=>t.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),De=class{constructor({scope:e,moduleName:n}){this.disabled=!1;this.scope=e,this.logger=H(n)}createTxBuilder(e){return this.scope.checkOwner(),new $e({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(At(e))}logInfo(...e){this.logger.info(At(e))}logAndCreateError(...e){let n=At(e);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pi,Keypair as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as mi}from"@solana/spl-token";import vc from"bn.js";import{PublicKey as si}from"@solana/web3.js";import Tn,{isBN as dc}from"bn.js";import{bits as $r,BitStructure as wa,blob as ei,Blob as xa,cstr as Ta,f32 as Pa,f32be as Aa,f64 as Ba,f64be as Sa,greedy as La,Layout as ti,ns64 as ka,ns64be as Na,nu64 as Ca,nu64be as Ea,offset as Ma,s16 as Ra,s16be as Da,s24 as Ka,s24be as _a,s32 as Ia,s32be as va,s40 as Oa,s40be as Fa,s48 as Va,s48be as qa,s8 as Wa,seq as Ua,struct as Ga,Structure as ni,u16 as ri,u16be as Ha,u24 as za,u24be as ja,u32 as ii,u32be as Qa,u40 as Ya,u40be as Za,u48 as Ja,u48be as Xa,u8 as $a,UInt as oi,union as ec,Union as tc,unionLayoutDiscriminator as nc,utf8 as rc}from"@solana/buffer-layout";var et=ti,wn=ni;var Bt=oi;var xn=ri;var St=ii;var xe=ei;var Lt=$r;var kt=class extends et{constructor(n,r,i){super(n,i);this.blob=xe(n),this.signed=r}decode(n,r=0){let i=new Tn(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 Tn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,i)}},tt=class extends et{constructor(n){super(8,n);this._lower=Lt(St(),!1),this._upper=Lt(St(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let i=this._lower.decode(n,r),o=this._upper.decode(n,r+this._lower.span);return U(U({},i),o)}encode(n,r,i=0){return this._lower.encode(n,r,i)+this._upper.encode(n,r,i+this._lower.span)}};function nt(t){return new Bt(1,t)}function Te(t){return new Bt(4,t)}function V(t){return new kt(8,!1,t)}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 j(t){return new Nt(xe(32),e=>new si(e),e=>e.toBuffer(),t)}var Ct=class extends wn{decode(e,n){return super.decode(e,n)}};function Pe(t,e,n){return new Ct(t,e,n)}var ui=Pe([j("mint"),j("owner"),V("amount"),Te("delegateOption"),j("delegate"),nt("state"),Te("isNativeOption"),V("isNative"),V("delegatedAmount"),Te("closeAuthorityOption"),j("closeAuthority")]);function ai(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}function Et(t,...e){if(!ai(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function Mt(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Pn(t,e){Et(t);let n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}var it=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),$=(t,e)=>t<<32-e|t>>>e;var Tc=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ci(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Rt(t){return typeof t=="string"&&(t=ci(t)),Et(t),t}var rt=class{clone(){return this._cloneInto()}},Pc={}.toString;function An(t){let e=r=>t().update(Rt(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function li(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);let i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),u=Number(n&o),a=r?4:0,c=r?0:4;t.setUint32(e+a,s,r),t.setUint32(e+c,u,r)}var Bn=(t,e,n)=>t&e^~t&n,Sn=(t,e,n)=>t&e^t&n^e&n,ot=class extends rt{constructor(e,n,r,i){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=it(this.buffer)}update(e){Mt(this);let{view:n,buffer:r,blockLen:i}=this;e=Rt(e);let o=e.length;for(let s=0;s<o;){let u=Math.min(i-this.pos,o-s);if(u===i){let a=it(e);for(;i<=o-s;s+=i)this.process(a,s);continue}r.set(e.subarray(s,s+u),this.pos),this.pos+=u,s+=u,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mt(this),Pn(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:i,isLE:o}=this,{pos:s}=this;n[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(r,0),s=0);for(let l=s;l<i;l++)n[l]=0;li(r,i-8,BigInt(this.length*8),o),this.process(r,0);let u=it(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=a/4,f=this.get();if(c>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<c;l++)u.setUint32(4*l,f[l],o)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:r,length:i,finished:o,destroyed:s,pos:u}=this;return e.length=i,e.pos=u,e.finished=o,e.destroyed=s,i%n&&e.buffer.set(r),e}};var fi=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ce=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),le=new Uint32Array(64),Dt=class extends ot{constructor(){super(64,32,8,!1),this.A=ce[0]|0,this.B=ce[1]|0,this.C=ce[2]|0,this.D=ce[3]|0,this.E=ce[4]|0,this.F=ce[5]|0,this.G=ce[6]|0,this.H=ce[7]|0}get(){let{A:e,B:n,C:r,D:i,E:o,F:s,G:u,H:a}=this;return[e,n,r,i,o,s,u,a]}set(e,n,r,i,o,s,u,a){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=u|0,this.H=a|0}process(e,n){for(let l=0;l<16;l++,n+=4)le[l]=e.getUint32(n,!1);for(let l=16;l<64;l++){let p=le[l-15],d=le[l-2],b=$(p,7)^$(p,18)^p>>>3,g=$(d,17)^$(d,19)^d>>>10;le[l]=g+le[l-7]+b+le[l-16]|0}let{A:r,B:i,C:o,D:s,E:u,F:a,G:c,H:f}=this;for(let l=0;l<64;l++){let p=$(u,6)^$(u,11)^$(u,25),d=f+p+Bn(u,a,c)+fi[l]+le[l]|0,g=($(r,2)^$(r,13)^$(r,22))+Sn(r,i,o)|0;f=c,c=a,a=u,u=s+d|0,s=o,o=i,i=r,r=d+g|0}r=r+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,u=u+this.E|0,a=a+this.F|0,c=c+this.G|0,f=f+this.H|0,this.set(r,i,o,s,u,a,c,f)}roundClean(){le.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Ln=An(()=>new Dt);var qc=H("Raydium_Util");function fe({fromPublicKey:t,programId:e=mi}){let n=di.generate().publicKey.toBase58().slice(0,32);return{publicKey:gi(t,n,e),seed:n}}function gi(t,e,n){let r=Buffer.concat([t.toBuffer(),Buffer.from(e),n.toBuffer()]),i=Ln(r);return new pi(i)}import{TransactionInstruction as bi,SYSVAR_RENT_PUBKEY as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as kn}from"@solana/spl-token";import{createInitializeAccountInstruction as Nn}from"@solana/spl-token";import{SystemProgram as me,Transaction as Cn}from"@solana/web3.js";function hi(t="accountFlags"){let e=new tt(t);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var Kt=Pe([xe(5),hi("accountFlags"),j("ownAddress"),V("vaultSignerNonce"),j("baseMint"),j("quoteMint"),j("baseVault"),V("baseDepositsTotal"),V("baseFeesAccrued"),j("quoteVault"),V("quoteDepositsTotal"),V("quoteFeesAccrued"),V("quoteDustThreshold"),j("requestQueue"),j("eventQueue"),j("bids"),j("asks"),V("baseLotSize"),V("quoteLotSize"),V("feeRateBps"),V("referrerRebatesAccrued"),xe(7)]);function wi({programId:t,marketInfo:e}){let n=Pe([nt("version"),Te("instruction"),V("baseLotSize"),V("quoteLotSize"),xn("feeRateBps"),V("vaultSignerNonce"),V("quoteDustThreshold")]),r=[{pubkey:e.id,isSigner:!1,isWritable:!0},{pubkey:e.requestQueue,isSigner:!1,isWritable:!0},{pubkey:e.eventQueue,isSigner:!1,isWritable:!0},{pubkey:e.bids,isSigner:!1,isWritable:!0},{pubkey:e.asks,isSigner:!1,isWritable:!0},{pubkey:e.baseVault,isSigner:!1,isWritable:!0},{pubkey:e.quoteVault,isSigner:!1,isWritable:!0},{pubkey:e.baseMint,isSigner:!1,isWritable:!1},{pubkey:e.quoteMint,isSigner:!1,isWritable:!1},{pubkey:e.authority?e.quoteMint:yi,isSigner:!1,isWritable:!1}].concat(e.authority?{pubkey:e.authority,isSigner:!1,isWritable:!1}:[]).concat(e.authority&&e.pruneAuthority?{pubkey:e.pruneAuthority,isSigner:!1,isWritable:!1}:[]),i=Buffer.alloc(n.span);return n.encode({version:0,instruction:0,baseLotSize:e.baseLotSize,quoteLotSize:e.quoteLotSize,feeRateBps:e.feeRateBps,vaultSignerNonce:e.vaultSignerNonce,quoteDustThreshold:e.quoteDustThreshold},i),new bi({keys:r,programId:t,data:i})}async function En({connection:t,wallet:e,marketInfo:n}){var s,u,a,c,f,l,p,d;let r=new Cn,i=await t.getMinimumBalanceForRentExemption(165);r.add(me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.baseVault.seed,newAccountPubkey:n.baseVault.publicKey,lamports:i,space:165,programId:kn}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.quoteVault.seed,newAccountPubkey:n.quoteVault.publicKey,lamports:i,space:165,programId:kn}),Nn(n.baseVault.publicKey,n.baseMint,n.vaultOwner),Nn(n.quoteVault.publicKey,n.quoteMint,n.vaultOwner));let o=new Cn;return o.add(me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.id.seed,newAccountPubkey:n.id.publicKey,lamports:await t.getMinimumBalanceForRentExemption(Kt.span),space:Kt.span,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.requestQueue.seed,newAccountPubkey:n.requestQueue.publicKey,lamports:await t.getMinimumBalanceForRentExemption((s=n.requestQueueSpace)!=null?s:5120+12),space:(u=n.requestQueueSpace)!=null?u:5120+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.eventQueue.seed,newAccountPubkey:n.eventQueue.publicKey,lamports:await t.getMinimumBalanceForRentExemption((a=n.eventQueueSpace)!=null?a:262144+12),space:(c=n.eventQueueSpace)!=null?c:262144+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.bids.seed,newAccountPubkey:n.bids.publicKey,lamports:await t.getMinimumBalanceForRentExemption((f=n.orderbookQueueSpace)!=null?f:65536+12),space:(l=n.orderbookQueueSpace)!=null?l:65536+12,programId:n.programId}),me.createAccountWithSeed({fromPubkey:e,basePubkey:e,seed:n.asks.seed,newAccountPubkey:n.asks.publicKey,lamports:await t.getMinimumBalanceForRentExemption((p=n.orderbookQueueSpace)!=null?p:65536+12),space:(d=n.orderbookQueueSpace)!=null?d:65536+12,programId:n.programId}),wi({programId:n.programId,marketInfo:{id:n.id.publicKey,requestQueue:n.requestQueue.publicKey,eventQueue:n.eventQueue.publicKey,bids:n.bids.publicKey,asks:n.asks.publicKey,baseVault:n.baseVault.publicKey,quoteVault:n.quoteVault.publicKey,baseMint:n.baseMint,quoteMint:n.quoteMint,baseLotSize:n.baseLotSize,quoteLotSize:n.quoteLotSize,feeRateBps:n.feeRateBps,vaultSignerNonce:n.vaultSignerNonce,quoteDustThreshold:n.quoteDustThreshold}})),[{transaction:r,signer:[],instructionTypes:[Q.CreateAccount,Q.CreateAccount,Q.InitAccount,Q.InitAccount]},{transaction:o,signer:[],instructionTypes:[Q.CreateAccount,Q.CreateAccount,Q.CreateAccount,Q.CreateAccount,Q.CreateAccount,Q.InitMarket]}]}var _t=class extends De{async create({baseInfo:e,quoteInfo:n,lotSize:r,tickSize:i,dexProgramId:o,requestQueueSpace:s,eventQueueSpace:u,orderbookQueueSpace:a,txVersion:c,computeBudgetConfig:f}){let l=this.scope.ownerPubKey,p=fe({fromPublicKey:l,programId:o}),d=fe({fromPublicKey:l,programId:o}),b=fe({fromPublicKey:l,programId:o}),g=fe({fromPublicKey:l,programId:o}),T=fe({fromPublicKey:l,programId:o}),x=fe({fromPublicKey:l,programId:Mn}),w=fe({fromPublicKey:l,programId:Mn}),h=0,y=new _e(100);function C(){let F=new _e(0);for(;;)try{return{vaultOwner:Ke.createProgramAddressSync([p.publicKey.toBuffer(),F.toArrayLike(Buffer,"le",8)],o),vaultSignerNonce:F}}catch{if(F.iaddn(1),F.gt(new _e(25555)))throw Error("find vault owner error")}}let{vaultOwner:B,vaultSignerNonce:O}=C(),E=new _e(Math.round(10**e.decimals*r)),D=new _e(Math.round(r*10**n.decimals*i));if(E.eq(Ze))throw Error("lot size is too small");if(D.eq(Ze))throw Error("tick size or lot size is too small");let v=await En({connection:this.scope.connection,wallet:this.scope.ownerPubKey,marketInfo:{programId:o,id:p,baseMint:e.mint,quoteMint:n.mint,baseVault:x,quoteVault:w,vaultOwner:B,requestQueue:d,eventQueue:b,bids:g,asks:T,feeRateBps:h,quoteDustThreshold:y,vaultSignerNonce:O,baseLotSize:E,quoteLotSize:D,requestQueueSpace:s,eventQueueSpace:u,orderbookQueueSpace:a}}),I=this.createTxBuilder();I.addInstruction({instructions:v[0].transaction.instructions,signers:v[0].signer});for await(let F of v.slice(1,v.length))I.addInstruction({instructions:F.transaction.instructions,signers:F.signer,instructionTypes:F.instructionTypes});return c===0?I.sizeCheckBuildV0({computeBudgetConfig:f,address:{marketId:p.publicKey,requestQueue:d.publicKey,eventQueue:b.publicKey,bids:g.publicKey,asks:T.publicKey,baseVault:x.publicKey,quoteVault:w.publicKey,baseMint:new Ke(e.mint),quoteMin:new Ke(n.mint)}}):I.sizeCheckBuild({computeBudgetConfig:f,address:{marketId:p.publicKey,requestQueue:d.publicKey,eventQueue:b.publicKey,bids:g.publicKey,asks:T.publicKey,baseVault:x.publicKey,quoteVault:w.publicKey,baseMint:new Ke(e.mint),quoteMin:new Ke(n.mint)}})}};export{_t as default};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
//# sourceMappingURL=createMarket.mjs.map
|