UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 92.6 kB
var Do=Object.defineProperty,Wo=Object.defineProperties;var qo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var Kn=Object.prototype.hasOwnProperty,xn=Object.prototype.propertyIsEnumerable;var Sn=(o,e,t)=>e in o?Do(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,O=(o,e)=>{for(var t in e||(e={}))Kn.call(e,t)&&Sn(o,t,e[t]);if(mt)for(var t of mt(e))xn.call(e,t)&&Sn(o,t,e[t]);return o},E=(o,e)=>Wo(o,qo(e));var le=(o,e)=>{var t={};for(var i in o)Kn.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&mt)for(var i of mt(o))e.indexOf(i)<0&&xn.call(o,i)&&(t[i]=o[i]);return t};import Cn from"bn.js";var Uo=new Cn(25),Go=new Cn(1e4),zo={4:3,5:3},Xo=new Set(["5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1","3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv","GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"]);import{PublicKey as ii}from"@solana/web3.js";import Mn,{isBN as Fn}from"bn.js";import{bits as Yo,BitStructure as ws,blob as Qo,Blob as ks,cstr as Ts,f32 as hs,f32be as Is,f64 as Bs,f64be as Ss,greedy as Ks,Layout as Zo,ns64 as xs,ns64be as Cs,nu64 as Rs,nu64be as Ls,offset as Ho,s16 as Os,s16be as Ns,s24 as Ms,s24be as Fs,s32 as jo,s32be as vs,s40 as Vs,s40be as _s,s48 as Es,s48be as Ds,s8 as Ws,seq as $o,struct as qs,Structure as Jo,u16 as ei,u16be as Us,u24 as Gs,u24be as zs,u32 as ti,u32be as Xs,u40 as Ys,u40be as Qs,u48 as Zs,u48be as Hs,u8 as ni,UInt as oi,union as js,Union as $s,unionLayoutDiscriminator as Js,utf8 as eu}from"@solana/buffer-layout";var dt=Zo,Rn=Jo;var Ft=oi;var Ln=ni,H=ei;var pt=ti;var me=jo;var On=$o;var F=Qo;var vt=Yo,Nn=Ho;var Ke=class extends dt{constructor(t,i,r){super(t,r);this.blob=F(t),this.signed=i}decode(t,i=0){let r=new Mn(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new Mn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},ft=class extends dt{constructor(t){super(8,t);this._lower=vt(pt(),!1),this._upper=vt(pt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let r=this._lower.decode(t,i),c=this._upper.decode(t,i+this._lower.span);return O(O({},r),c)}encode(t,i,r=0){return this._lower.encode(t,i,r)+this._upper.encode(t,i,r+this._lower.span)}};function y(o){return new Ft(1,o)}function Q(o){return new Ft(4,o)}function n(o){return new Ke(8,!1,o)}function M(o){return new Ke(16,!1,o)}function vn(o){return new Ke(1,!0,o)}function Ee(o){return new Ke(8,!0,o)}function Vn(o){return new Ke(16,!0,o)}var $e=class extends dt{constructor(t,i,r,c){super(t.span,c);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function s(o){return new $e(F(32),e=>new ii(e),e=>e.toBuffer(),o)}function ce(o){return new $e(Ln(),ri,ai,o)}function ri(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ai(o){return o?1:0}function _n(o,e){let t=pt("length"),i=b([t,A(o,Nn(t,-t.span),"values")]);return new $e(i,({values:r})=>r,r=>({values:r}),e)}var Vt=class extends Rn{decode(e,t){return super.decode(e,t)}};function b(o,e,t){return new Vt(o,e,t)}function A(o,e,t){let i,r=typeof e=="number"?e:Fn(e)?e.toNumber():new Proxy(e,{get(c,a){if(!i){let u=Reflect.get(c,"count");i=Fn(u)?u.toNumber():u,Reflect.set(c,"count",i)}return Reflect.get(c,a)},set(c,a,u){return a==="count"&&(i=u),Reflect.set(c,a,u)}});return On(o,r,t)}var _t=b([y("instruction"),n("amountIn"),n("minAmountOut")]),Et=b([y("instruction"),n("maxAmountIn"),n("amountOut")]),du=b([y("instruction"),y("nonce")]),Dt=b([y("instruction"),y("nonce"),n("startTime")]),Wt=b([n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalValue"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),M("swapBaseInAmount"),M("swapQuoteOutAmount"),n("swapBase2QuoteFee"),M("swapQuoteInAmount"),M("swapBaseOutAmount"),n("swapQuote2BaseFee"),s("baseVault"),s("quoteVault"),s("baseMint"),s("quoteMint"),s("lpMint"),s("openOrders"),s("marketId"),s("marketProgramId"),s("targetOrders"),s("withdrawQueue"),s("lpVault"),s("owner"),n("lpReserve"),A(n(),3,"padding")]),si=b([n("accountType"),n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalsValue"),n("abortTradeFactor"),n("priceTickMultiplier"),n("priceTick"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),M("swapBaseInAmount"),M("swapQuoteOutAmount"),M("swapQuoteInAmount"),M("swapBaseOutAmount"),n("swapQuote2BaseFee"),n("swapBase2QuoteFee"),s("baseVault"),s("quoteVault"),s("baseMint"),s("quoteMint"),s("lpMint"),s("modelDataAccount"),s("openOrders"),s("marketId"),s("marketProgramId"),s("targetOrders"),s("owner"),A(n(),64,"padding")]),qt=b([y("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Ut=b([y("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]),pu={4:Wt,5:si},ui=b([n("fee")]);import{PublicKey as ps}from"@solana/web3.js";import Mt from"decimal.js";import{TOKEN_PROGRAM_ID as fs}from"@solana/spl-token";import{ComputeBudgetProgram as Wn,Keypair as Un,PublicKey as mi,Transaction as Gn,TransactionMessage as di,VersionedTransaction as zn}from"@solana/web3.js";import{get as En,set as ci}from"lodash";var Gt=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 t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}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}},Dn={},li={};function D(o){let e=En(Dn,o);if(!e){let t=En(li,o);e=new Gt({name:o,logLevel:t}),ci(Dn,o,e)}return e}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",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";var qn=D("Raydium_txUtil"),Xn=1644;function yt(o){let e=[],t=[];return o.microLamports&&(e.push(Wn.setComputeUnitPrice({microLamports:o.microLamports})),t.push(j.SetComputeUnitPrice)),o.units&&(e.push(Wn.setComputeUnitLimit({units:o.units})),t.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function De(o,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:r.blockhash}async function bt(o,e){return o.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(r),!c.err){t("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function zt(o,e){o.length<1&&qn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&qn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Gn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Xn}catch{return!1}}function re(o,e){let[t,i]=mi.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function Je({instructions:o,payer:e,signers:t}){return zt(o,[e,...t])}function et({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=Un.generate().publicKey.toString()}){let c=new di({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new zn(c).serialize()).toString("base64").length<Xn}catch{return!1}}var fi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),yi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof zn&&(e=fi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function xe(o){let e=[];return o.forEach(t=>{t instanceof Gn&&(t.recentBlockhash||(t.recentBlockhash=pi.toBase58()),t.feePayer||(t.feePayer=Un.generate().publicKey)),e.push(yi(t))}),console.log("simulate tx string:",e),e}import{TOKEN_PROGRAM_ID as BR}from"@solana/spl-token";import{PublicKey as CR}from"@solana/web3.js";import us from"big.js";import Nt from"bn.js";import ve from"bn.js";import DC from"decimal.js";import{PublicKey as bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yn}from"@solana/spl-token";var gt={chainId:101,address:bi.default.toBase58(),programId:Yn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Yn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Zt}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as Qn,SYSVAR_RENT_PUBKEY as gi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pi}from"@solana/spl-token";function f({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var Ai=[f({pubkey:Pi,isWritable:!1}),f({pubkey:Qn.programId,isWritable:!1}),f({pubkey:gi,isWritable:!1})];function Xt({publicKey:o,transformSol:e}){let t=Yt(o.toString());if(t instanceof Z)return e&&t.equals(Ce)?we:t;if(e&&t.toString()===Ce.toBase58())return we;if(typeof t=="string"){if(t===Z.default.toBase58())return Z.default;try{return new Z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Yt(o){try{return new Z(o)}catch{return o}}var Qt=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),We=new Z("SysvarRent111111111111111111111111111111111"),Mu=new Z("SysvarC1ock11111111111111111111111111111111"),Pt=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),wi=new Z("Sysvar1nstructions1111111111111111111111111"),ki=Qn.programId,Fu=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),vu=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Vu=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),_u=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Eu=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Du=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Wu=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),qu=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Uu=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Gu=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),zu=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),we=new Z("So11111111111111111111111111111111111111112"),Ce=Z.default;function Re(o){return Xt({publicKey:o,transformSol:!0})}var Ht=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:c=!1,isToken2022:a=!1}){if(e===Ce.toBase58()||e instanceof Zt&&Ce.equals(e)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new Zt(fe.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=c?Zt.default:Xt({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ne=Ht;ne.WSOL=new Ht(E(O({},fe),{mint:fe.address}));var jt=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},At=jt;At.SOL=new jt(gt);import kt from"big.js";import Bi from"bn.js";import Si from"decimal.js-light";import tt from"bn.js";var Zn=9007199254740991;function G(o){let e=D("Raydium_parseBigNumberish");if(o instanceof tt)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new tt(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Zn||o<=-Zn)&&e.logWithError(`BigNumberish number overflow: ${o}`),new tt(String(o))):typeof o=="bigint"?new tt(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new tt(0))}import Ti from"toformat";var hi=Ti,nt=hi;var wt=D("module/fraction"),$t=nt(kt),ot=nt(Si),Ki={[0]:ot.ROUND_DOWN,[1]:ot.ROUND_HALF_UP,[2]:ot.ROUND_UP},xi={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},q=class{constructor(e,t=new Bi(1)){this.numerator=G(e),this.denominator=G(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(e){let t=e instanceof q?e:new q(G(e));return this.denominator.eq(t.denominator)?new q(this.numerator.add(t.numerator),this.denominator):new q(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof q?e:new q(G(e));return this.denominator.eq(t.denominator)?new q(this.numerator.sub(t.numerator),this.denominator):new q(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof q?e:new q(G(e));return new q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof q?e:new q(G(e));return new q(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||wt.logWithError(`${e} is not an integer.`),e<=0&&wt.logWithError(`${e} is not positive.`),ot.set({precision:e+1,rounding:Ki[i]});let r=new ot(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||wt.logWithError(`${e} is not an integer.`),e<0&&wt.logWithError(`${e} is negative.`),$t.DP=e,$t.RM=xi[i]||1,new $t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import Ci from"bn.js";var Hn=new q(new Ci(100)),ke=class extends q{toSignificant(e=5,t,i){return this.mul(Hn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Hn).toFixed(e,t,i)}};var Ri=D("Raydium_price"),de=class extends q{constructor(t){let{baseToken:i,quoteToken:r,numerator:c,denominator:a}=t;super(c,a);this.baseToken=i,this.quoteToken=r,this.scalar=new q(Jt(i.decimals),Jt(r.decimals))}get raw(){return new q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new de({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ri.logWithError("mul token not equals");let i=super.mul(t);return new de({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,r){return this.adjusted.toSignificant(t,i,r)}toFixed(t=this.quoteToken.decimals,i,r){return this.adjusted.toFixed(t,i,r)}};import{merge as Ux}from"lodash";import $l from"axios";import{PublicKey as Li}from"@solana/web3.js";import{MINT_SIZE as Cc,TOKEN_PROGRAM_ID as Rc,getTransferFeeConfig as Lc,unpackMint as Oc}from"@solana/spl-token";var en=D("Raydium_accountInfo_util");async function Te(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:c=100}=O({batchRequest:!1},t),a=tn(e,c),u=new Array(a.length).fill([]);if(i){let l=a.map(P=>{let k=o._buildArgs([P.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:k}}),g=tn(l,10);u=(await(await Promise.all(g.map(async P=>await o._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(k=>{if(k){let{data:w,executable:x,lamports:h,owner:I,rentEpoch:C}=k;return w.length!==2&&w[1]!=="base64"&&en.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:x,lamports:h,owner:new Li(I),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(l=>o.getMultipleAccountsInfo(l,r)))}catch(l){l instanceof Error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.message}`)}return u.flat()}function tn(o,e=1,t=[]){let i=[...o];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as _c}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dc}from"@solana/spl-token";import{PublicKey as R}from"@solana/web3.js";var jn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),$n=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Jn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),nn=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Gc=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Oi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),eo=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),to=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zc=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ni=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),no=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Mi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Fi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xc=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),vi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),on=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Vi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Yc=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),_i=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ei=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Di=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Qc=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Zc=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Hc=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),jc=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),$c=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var he={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import tl from"bn.js";import{PublicKey as rn,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function an({connection:o,address:e,cluster:t="mainnet"}){let i=await Te(o,[...new Set(e.map(c=>c.toString()))].map(c=>new rn(c))),r={};for(let c=0;c<e.length;c++){let a=i[c],u=e[c];if(!a)continue;let l=new Ge({key:u,state:Ge.deserialize(a.data)});r[u.toString()]=l,t==="devnet"?Ue[u.toString()]=l:qe[u.toString()]=l}return r}var qe={},sn=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new rn(e),i=await o.getAccountInfo(t);return i&&(qe[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),qe},Ue={},un=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new rn(e),i=await o.getAccountInfo(t);return i&&(Ue[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),Ue};import{PublicKey as ze,sendAndConfirmTransaction as cn,SystemProgram as Wi,Transaction as it,TransactionMessage as rt,VersionedTransaction as at}from"@solana/web3.js";import qi from"axios";var Tt=2e3,ht=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.loopMultiTxStatus=!!e.loopMultiTxStatus}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 i;let e=(await qi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=yt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Wi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ze(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:c=[],lookupTableAddress:a=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...a.filter(u=>u!==ze.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:i}){return e===0?await this.buildV0(E(O({},t||{}),{lookupTableAddress:i})):this.build(t)}build(e){var i;let t=new it;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var p;let{recentBlockHash:c,skipPreflight:a=!0,sendAndConfirm:u,notSendToRpc:l}=r||{},g=c!=null?c:await De(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),xe([t]),(p=this.owner)!=null&&p.isKeyPair)return{txId:u?await cn(this.connection,t,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:a}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let k of P)try{k.sign(...this.signers)}catch{}return{txId:l?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:a}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),c=t.filter(p=>p.transaction.instructions.length>0),a=[r,...c.map(p=>p.transaction)],u=[this.signers,...c.map(p=>p.signers)],l=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:l,execute:async p=>{var C;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:x,skipPreflight:h=!0}=p||{},I=x!=null?x:await De(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(P){let K=[],v=0;for(let _ of a){if(++v,v<=w)continue;let T=await cn(this.connection,_,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});K.push(T)}return{txIds:K,signedTxs:a}}return{txIds:await await Promise.all(a.map(async K=>(K.recentBlockhash=I,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:h})))),signedTxs:a}}if(this.signAllTransactions){let K=a.map((_,T)=>(_.recentBlockhash=I,u[T].length&&_.sign(...u[T]),_));xe(K);let v=await this.signAllTransactions(K);if(P){let _=0,T=[],B=async()=>{if(!v[_])return;let S=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:h});T.push({txId:S,status:"sent",signedTx:v[_]}),k==null||k([...T]),_++;let L=!1,N=null,V=null,se=X=>{N!==null&&clearInterval(N),V!==null&&this.connection.removeSignatureListener(V);let U=T.findIndex(te=>te.txId===S);if(U>-1){if(T[U].status==="error"||T[U].status==="success")return;T[U].status=X.err?"error":"success"}k==null||k([...T]),X.err||B()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var X;if(L){clearInterval(N);return}try{let U=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(L=!0,clearInterval(N),se({err:((X=U.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",S))}catch(U){L=!0,clearInterval(N),console.error("getTransaction timeout:",U,S)}},Tt)),V=this.connection.onSignature(S,X=>{if(L){this.connection.removeSignatureListener(V);return}L=!0,se(X)},"confirmed"),this.connection.getSignatureStatus(S)};return await B(),{txIds:T.map(S=>S.txId),signedTxs:v}}else{let _=[];for(let T=0;T<v.length;T+=1){let B=await this.connection.sendRawTransaction(v[T].serialize(),{skipPreflight:h});_.push(B)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var h;let x=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:c}=x,a=le(x,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=O(O({},this.cluster==="devnet"?await un(this.connection):await sn(this.connection)),t),l=Array.from(new Set([...i,...this.lookupTableAddress])),g=[];for(let I of l)u[I]===void 0&&g.push(new ze(I));let p=await an({connection:this.connection,address:g});for(let[I,C]of Object.entries(p))u[I]=C;let P=r?ze.default.toBase58():c!=null?c:await De(this.connection,this.blockhashCommitment),k=new rt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new at(k);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:C=!0,sendAndConfirm:K,notSendToRpc:v}=I||{};if(xe([w]),(_=this.owner)!=null&&_.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:C});return K&&await bt(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let B of T)try{B.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(T[0],{skipPreflight:C}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),c=t.filter(p=>p.builder.instructions.length>0),a=[r,...c.map(p=>p.transaction)],u=[this.signers,...c.map(p=>p.signers)],l=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(p,P)=>{p.sign(u[P])}),{builder:this,transactions:a,signers:u,instructionTypes:l,buildProps:i,execute:async p=>{var h;let{sequentially:P,onTxUpdate:k,recentBlockHash:w,skipPreflight:x=!0}=p||{};if(w&&a.forEach(I=>I.message.recentBlockhash=w),xe(a),(h=this.owner)!=null&&h.isKeyPair){if(P){let I=[];for(let C of a){let K=await this.connection.sendTransaction(C,{skipPreflight:x});await bt(this.connection,K),I.push(K)}return{txIds:I,signedTxs:a}}return{txIds:await Promise.all(a.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:x}))),signedTxs:a}}if(this.signAllTransactions){let I=await this.signAllTransactions(a);if(P){let C=0,K=[],v=async()=>{if(!I[C])return;let _=await this.connection.sendTransaction(I[C],{skipPreflight:x});K.push({txId:_,status:"sent",signedTx:I[C]}),k==null||k([...K]),C++;let T=!1,B=null,S=null,L=N=>{B!==null&&clearInterval(B),S!==null&&this.connection.removeSignatureListener(S);let V=K.findIndex(se=>se.txId===_);if(V>-1){if(K[V].status==="error"||K[V].status==="success")return;K[V].status=N.err?"error":"success"}k==null||k([...K]),N.err||v()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var N;if(T){clearInterval(B);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(B),L({err:((N=V.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){T=!0,clearInterval(B),console.error("getTransaction timeout:",V,_)}},Tt)),S=this.connection.onSignature(_,N=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,L(N)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let C=[];for(let K=0;K<I.length;K+=1){let v=await this.connection.sendTransaction(I[K],{skipPreflight:x});C.push(v)}return{txIds:C,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var k;let P=e||{},{splitIns:t=[],computeBudgetConfig:i}=P,r=le(P,["splitIns","computeBudgetConfig"]),c=i?yt(i):{instructions:[],instructionTypes:[]},a=this.signers.reduce((w,x)=>E(O({},w),{[x.publicKey.toBase58()]:x}),{}),u=[],l=[],g=[],p=0;if(this.allInstructions.forEach(w=>{let x=[...g,w],h=i?[...c.instructions,...x]:x,C=[...new Set(x.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(K=>new ze(K));if(w!==t[p]&&g.length<12&&(Je({instructions:h,payer:this.feePayer,signers:C})||Je({instructions:x,payer:this.feePayer,signers:C})))g.push(w);else{if(g.length===0)throw Error("item ins too big");p+=w===t[p]?1:0,Je({instructions:i?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:C})?u.push(new it().add(...c.instructions,...g)):u.push(new it().add(...g)),l.push(Array.from(new Set(g.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(K=>a[K]).filter(K=>K!==void 0)),g=[w]}}),g.length>0){let x=[...new Set(g.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>a[h]).filter(h=>h!==void 0);Je({instructions:i?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:x.map(h=>h.publicKey)})?u.push(new it().add(...c.instructions,...g)):u.push(new it().add(...g)),l.push(x)}return u.forEach(w=>w.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&l.forEach(w=>{w.some(x=>x.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:u,signers:l,instructionTypes:this.instructionTypes,execute:async w=>{var _;let{sequentially:x,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:C,skipPreflight:K=!0}=w||{},v=C!=null?C:await De(this.connection,this.blockhashCommitment);if(u.forEach(async(T,B)=>{T.recentBlockhash=v,l[B].length&&T.sign(...l[B])}),xe(u),(_=this.owner)!=null&&_.isKeyPair){if(x){let T=0,B=[];for(let S of u){if(++T,T<=I){B.push("tx skipped");continue}let L=await cn(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});B.push(L)}return{txIds:B,signedTxs:u}}return{txIds:await Promise.all(u.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:K}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u.slice(I,u.length)),B=[...u.slice(0,I),...T];if(x){let S=0,L=[],N=async()=>{if(!B[S])return;S<I&&(L.push({txId:"",status:"success",signedTx:B[S]}),h==null||h([...L]),S++,N());let V=await this.connection.sendRawTransaction(B[S].serialize(),{skipPreflight:K});L.push({txId:V,status:"sent",signedTx:B[S]}),h==null||h([...L]),S++;let se=!1,X=null,U=null,te=Y=>{X!==null&&clearInterval(X),U!==null&&this.connection.removeSignatureListener(U);let ie=L.findIndex(Pe=>Pe.txId===V);if(ie>-1){if(L[ie].status==="error"||L[ie].status==="success")return;L[ie].status=Y.err?"error":"success"}h==null||h([...L]),Y.err||N()};this.loopMultiTxStatus&&(X=setInterval(async()=>{var Y;if(se){clearInterval(X);return}try{let ie=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ie&&(se=!0,clearInterval(X),te({err:((Y=ie.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",V))}catch(ie){se=!0,clearInterval(X),console.error("getTransaction timeout:",ie,V)}},Tt)),U=this.connection.onSignature(V,Y=>{if(se){this.connection.removeSignatureListener(U);return}se=!0,te(Y)},"confirmed"),this.connection.getSignatureStatus(V)};return await N(),{txIds:L.map(V=>V.txId),signedTxs:B}}else{let S=[];for(let L=0;L<B.length;L+=1){let N=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:K});S.push(N)}return{txIds:S,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var _;let v=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:c=[],insCountLimit:a=12}=v,u=le(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),l=O(O({},this.cluster==="devnet"?await un(this.connection):await sn(this.connection)),r),g=Array.from(new Set([...this.lookupTableAddress,...c])),p=[];for(let T of g)l[T]===void 0&&p.push(new ze(T));let P=await an({connection:this.connection,address:p});for(let[T,B]of Object.entries(P))l[T]=B;let k=t?yt(t):{instructions:[],instructionTypes:[]},w=await De(this.connection,this.blockhashCommitment),x=this.signers.reduce((T,B)=>E(O({},T),{[B.publicKey.toBase58()]:B}),{}),h=[],I=[],C=[],K=0;if(this.allInstructions.forEach(T=>{let B=[...C,T],S=t?[...k.instructions,...B]:B;if(T!==i[K]&&C.length<a&&(et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:l})||et({instructions:B,payer:this.feePayer,lookupTableAddressAccount:l})))C.push(T);else{if(C.length===0)throw Error("item ins too big");K+=T===i[K]?1:0;let L={};for(let N of[...new Set(g)])l[N]!==void 0&&(L[N]=l[N]);if(t&&et({instructions:[...k.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...C]}).compileToV0Message(Object.values(l));h.push(new at(N))}else{let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(l));h.push(new at(N))}I.push(Array.from(new Set(C.map(N=>N.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(N=>x[N]).filter(N=>N!==void 0)),C=[T]}}),C.length>0){let B=[...new Set(C.map(S=>S.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(S=>x[S]).filter(S=>S!==void 0);if(t&&et({instructions:[...k.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let S=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...C]}).compileToV0Message(Object.values(l));h.push(new at(S))}else{let S=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(l));h.push(new at(S))}I.push(B)}return(_=this.owner)!=null&&_.signer&&I.forEach(T=>{T.some(B=>B.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),h.forEach((T,B)=>{T.sign(I[B])}),{builder:this,transactions:h,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async T=>{var se;let{sequentially:B,onTxUpdate:S,skipTxCount:L=0,recentBlockHash:N,skipPreflight:V=!0}=T||{};if(h.map(async(X,U)=>{I[U].length&&X.sign(I[U]),N&&(X.message.recentBlockhash=N)}),xe(h),(se=this.owner)!=null&&se.isKeyPair){if(B){let X=0,U=[];for(let te of h){if(++X,X<=L){console.log("skip tx: ",X),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(te,{skipPreflight:V});await bt(this.connection,Y),U.push(Y)}return{txIds:U,signedTxs:h}}return{txIds:await Promise.all(h.map(async X=>await this.connection.sendTransaction(X,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let X=await this.signAllTransactions(h.slice(L,h.length)),U=[...h.slice(0,L),...X];if(B){let te=0,Y=[],ie=async()=>{if(!U[te])return;if(te<L){Y.push({txId:"",status:"success",signedTx:U[te]}),S==null||S([...Y]),te++,ie();return}let Pe=await this.connection.sendTransaction(U[te],{skipPreflight:V});Y.push({txId:Pe,status:"sent",signedTx:U[te]}),S==null||S([...Y]),te++;let je=!1,_e=null,lt=null,Bn=Se=>{_e!==null&&clearInterval(_e),lt!==null&&this.connection.removeSignatureListener(lt);let Ae=Y.findIndex(Eo=>Eo.txId===Pe);if(Ae>-1){if(Y[Ae].status==="error"||Y[Ae].status==="success")return;Y[Ae].status=Se.err?"error":"success"}S==null||S([...Y]),Se.err||ie()};this.loopMultiTxStatus&&(_e=setInterval(async()=>{var Se;if(je){clearInterval(_e);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ae&&(je=!0,clearInterval(_e),Bn({err:((Se=Ae.meta)==null?void 0:Se.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){je=!0,clearInterval(_e),console.error("getTransaction timeout:",Ae,Pe)}},Tt)),lt=this.connection.onSignature(Pe,Se=>{if(je){this.connection.removeSignatureListener(lt);return}je=!0,Bn(Se)},"confirmed"),this.connection.getSignatureStatus(Pe)};return ie(),{txIds:[],signedTxs:U}}else{let te=[];for(let Y=0;Y<U.length;Y+=1){let ie=await this.connection.sendTransaction(U[Y],{skipPreflight:V});te.push(ie)}return{txIds:te,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};import{PublicKey as Ui}from"@solana/web3.js";import Gi from"bn.js";function zi(o){return typeof o=="object"&&o!==null&&![ne,ue,Ui,q,Gi,de,ke].some(e=>typeof e=="object"&&o instanceof e)}function ye(o){return typeof o=="string"?Yt(o):Array.isArray(o)?o.map(e=>ye(e)):zi(o)?Object.fromEntries(Object.entries(o).map(([e,t])=>[e,ye(t)])):o}import Xi from"bn.js";var It=new Xi(1e6);var oo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Yi=E(O({},oo),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var km=D("Raydium_Api");import{PublicKey as wd,SystemProgram as kd}from"@solana/web3.js";import{AccountLayout as Sd,createAssociatedTokenAccountIdempotentInstruction as Kd,TOKEN_PROGRAM_ID as xd,TOKEN_2022_PROGRAM_ID as Cd}from"@solana/spl-token";var ln=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ae=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new ht({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(ln(e))}logInfo(...e){this.logger.info(ln(e))}logAndCreateError(...e){let t=ln(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as jm,SystemProgram as Jm}from"@solana/web3.js";import nd from"bn.js";import{createCloseAccountInstruction as ad,createInitializeAccountInstruction as sd,createTransferInstruction as ud,TOKEN_PROGRAM_ID as cd}from"@solana/spl-token";import{Keypair as _m,PublicKey as Em}from"@solana/web3.js";import qm from"bn.js";import{TOKEN_PROGRAM_ID as zm}from"@solana/spl-token";var Bt=b([s("mint"),s("owner"),n("amount"),Q("delegateOption"),s("delegate"),y("state"),Q("isNativeOption"),n("isNative"),n("delegatedAmount"),Q("closeAuthorityOption"),s("closeAuthority")]);import{PublicKey as RP,SystemProgram as LP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as NP}from"@solana/spl-token";import UP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as yb,TOKEN_2022_PROGRAM_ID as bb,TOKEN_PROGRAM_ID as gb}from"@solana/spl-token";import{PublicKey as Ab}from"@solana/web3.js";import kb from"bn.js";import hb from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Vy,TOKEN_2022_PROGRAM_ID as _y,TOKEN_PROGRAM_ID as Ey}from"@solana/spl-token";import{Keypair as qy,PublicKey as Uy,SystemProgram as zy,TransactionInstruction as Xy}from"@solana/web3.js";import Qy from"bn.js";import W from"bn.js";var Xe=new W(1).shln(64);var Zi=new W(1).shln(128),mn=new W(1).shln(64).subn(1),Hi=new W(1).shln(128).subn(1);var Ye=new W("4295048016"),Qe=new W("79226673521066979257578248091"),ji=new W("59543866431248"),$i=new W("184467440737095516"),Ji=new W("15793534762490258745");var dn=60,Wd=new W("18446743708227953217"),er=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var st=3,ro=100;var ao=10,so=100,Kt=14;var $=new W(0),Ne=new W(1),qd=new W(-1);var Ud=new W("18446744073700000000");var tr=b([F(8),y("bump"),H("index"),s("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),H("tickSpacing"),Q("fundFeeRate"),A(Q(),1),s("fundOwner"),A(n(),3)]),nr=b([Q("blockTimestamp"),Ee("tickCumulative"),A(n(),4)]),uo=b([F(8),ce("initialized"),n("recentEpoch"),H("observationIndex"),s("poolId"),A(nr,ro,"observations"),A(n(),4)]),or=b([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),n("lastUpdateTimestamp"),A(y(),46)]),ir=b([y("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),M("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),s("mint"),s("vault"),s("creator"),M("growthGlobalX64")]),pn=b([F(8),y("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("observationId"),y("mintDecimalsA"),y("mintDecimalsB"),H("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),me("tickCurrent"),Q(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),A(M(),4),y("status"),y("feeOn"),F(6),A(ir,st,"rewardInfos"),F(8*16,"tickArrayBitmap"),A(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),or.replicate("dynamicFeeInfo"),A(n(),46)]),rr=b([M("growthInsideLastX64"),n("rewardAmountOwed")]),ar=b([F(8),y("bump"),s("nftMint"),s("poolId"),me("tickLower"),me("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),A(rr,st,"rewardInfos"),n("recentEpoch"),A(n(),7)]),Yd=b([F(8),y("bump"),s("poolId"),me("tickLower"),me("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),A(M(),st,"rewardGrowthInside"),n("recentEpoch"),A(n(),7)]),sr=b([me("tick"),Vn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),A(M(),st,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),M("unfilledRatioX64"),A(Q(),3)]),co=b([F(8),s("poolId"),me("startTickIndex"),A(sr,dn,"ticks"),y("initializedTickCount"),n("recentEpoch"),A(y(),107)]),ur=b([F(8),y("bump"),A(s(),ao,"operationOwners"),A(s(),so,"whitelistMints")]),cr=b([F(8),s("poolId"),s("owner"),me("tick"),ce("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),M("unfilledRatioX64"),A(n(),4)]),lo=b([F(8),s("poolId"),F(8*8*Kt,"positiveTickArrayBitmap"),F(8*8*Kt,"negativeTickArrayBitmap")]),Qd=b([F(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),A(n(),8)]),lr=b([F(8),s("wallet"),y("nonceIndex"),n("orderNonce"),A(n(),4)]),Zd=b([n(),y("bump"),s("owner"),s("poolId"),s("positionId"),s("nftAccount"),A(n(),8)]),mr=b([F(8),y("bump"),s("lockOwner"),s("poolId"),s("positionId"),s("nftAccount"),s("lockNftMint"),n("recentEpoch"),A(n(),8)]);import $d from"bn.js";var cp=Buffer.from("amm_config","utf8"),pr=Buffer.from("pool","utf8"),fr=Buffer.from("pool_vault","utf8"),lp=Buffer.from("pool_reward_vault","utf8"),mp=Buffer.from("position","utf8"),dp=Buffer.from("tick_array","utf8"),pp=Buffer.from("operation","utf8"),fp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),yp=Buffer.from("observation","utf8"),bp=Buffer.from("support_mint","utf8"),gp=Buffer.from("dynamic_fee_config","utf8"),Pp=Buffer.from("permission","utf8");var Ap=Buffer.from("locked_position","utf8");import{sha256 as Cr}from"js-sha256";import yr from"bn.js";import hp from"decimal.js";var Bp=new yr(1).shln(256).subn(1);import Up from"bn.js";import Op from"bn.js";import Mp from"decimal.js";import Qp from"bn.js";import Hp from"decimal.js";import{PublicKey as Vf}from"@solana/web3.js";import Ef from"bn.js";import{TOKEN_2022_PROGRAM_ID as Yf,TOKEN_PROGRAM_ID as Qf}from"@solana/spl-token";import $f from"decimal.js";import Sf from"bn.js";import pf from"bn.js";import cy from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(Cr.digest(e)).slice(0,8)}uo.span;var nb=D("Raydium_Clmm"),ob={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),createPermissionedPool:ee("create_permissioned_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as gn}from"@solana/web3.js";var Nr=b([y("instruction")]),Mr=b([y("instruction")]),Fr=b([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),M("accRewardPerShare"),s("rewardVault"),s("rewardMint"),s("rewardSender"),n("rewardType"),A(n(),15,"padding")]),vr=b([n("state"),n("nonce"),s("lpVault"),s("rewardVault"),s(),s(),n(),n(),n("totalReward"),M("perShareReward"),n("lastSlot"),n("perSlotReward")]),Vr=b([n("state"),n("nonce"),s("lpVault"),s("rewardVaultA"),n("totalRewardA"),M("perShareRewardA"),n("perSlotRewardA"),y("option"),s("rewardVaultB"),F(7),n("totalRewardB"),M("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),s()]),_r=b([n(),n("state"),n("nonce"),n("validRewardTokenNum"),M("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),s("lpMint"),s("lpVault"),A(Fr,5,"rewardInfos"),s("creator"),s(),A(n(),32,"padding")]),Er=new Proxy(vr,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return E(O({},r),{version:3,rewardInfos:[{rewardVault:r.rewardVault,totalReward:r.totalReward,perSlotReward:r.perSlotReward,perShareReward:r.perShareReward}]})}:Reflect.get(o,e,t)}}),Dr=new Proxy(Vr,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return E(O({},r),{version:5,rewardInfos:[{rewardVault:r.rewardVaultA,totalReward:r.totalRewardA,perSlotReward:r.perSlotRewardA,perShareReward:r.perShareRewardA},{rewardVault:r.rewardVaultB,totalReward:r.totalRewardB,perSlotReward:r.perSlotRewardB,perShareReward:r.perShareRewardB}]})}:Reflect.get(o,e,t)}}),Po=new Proxy(_r,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return E(O({},r),{version:6,rewardInfos:r.rewardInfos.map(c=>{var a;return E(O({},c),{rewardType:((a=Object.entries(ct).find(u=>String(u[1])===c.rewardType.toString()))!=null?a:["Standard SPL"])[0]})})})}:Reflect.get(o,e,t)}}),Wr=b([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),qr=b([y("instruction"),n("nonce"),A(Wr,5,"rewardTimeInfo")]),Ur=b([y("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),Gr=b([y("instruction"),n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),ng=b([n("state"),s("id"),s("owner"),n("deposited"),A(n(),1,"rewardDebts")]),Ao=b([n("state"),s("id"),s("owner"),n("deposited"),A(M(),1,"rewardDebts"),n(""),n("voteLockedBalance"),A(n(),15)]),og=b([n("state"),s("id"),s("owner"),n("deposited"),A(n(),2,"rewardDebts")]),zr=b([n("state"),s("id"),s("owner"),n("deposited"),A(M(),2,"rewardDebts"),A(n(),17)]),Xr=b([n(),n("state"),s("id"),s("owner"),n("deposited"),A(M(),5,"rewardDebts"),A(n(),16)]),Yr=b([y("instruction"),n("amount")]),Qr=b([s("mint"),s("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),vn("digitShift"),A(y(),7,"reserved1"),A(n(),7,"reserved2")]),Zr=b([F(8),s("governanceProgramId"),s("realm"),s("realmGoverningTokenMint"),s("realmAuthority"),A(y(),32,"reserved1"),A(Qr,4,"votingMints"),Ee("timeOffset"),y("bump"),A(y(),7,"reserved2"),A(n(),11,"reserved3")]),Hr=b([Ee("startTime"),Ee("endTime"),y("kind"),A(y(),15,"reserved")]),jr=b([A(Hr,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),ce("isUsed"),ce("allowClawback"),y("votingMintConfigIdx"),A(y(),29,"reserved")]),$r=b([F(8),s("voterAuthority"),s("registrar"),A(jr,32,"deposits"),y("voterBump"),y("voterWweightRecordBump"),A(y(),94,"reserved")]);import{NATIVE_MINT as dg}from"@solana/spl-token";var pg=D("Raydium_farm_config"),Jr=new gn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ea=new gn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var fg=new gn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ct={"Standard SPL":0,"Option tokens":1},wo={[jn.toString()]:3,[$n.toString()]:4,[Jn.toString()]:5,[nn.toString()]:6,[he.FARM_PROGRAM_ID_V3.toString()]:3,[he.FARM_PROGRAM_ID_V4.toString()]:4,[he.FARM_PROGRAM_ID_V5.toString()]:5,[he.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as zg,SystemProgram as Xg,SYSVAR_CLOCK_PUBKEY as Yg,SYSVAR_RENT_PUBKEY as Qg,TransactionInstruction as Zg}from"@solana/web3.js";import jg from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Jg,createAssociatedTokenAccountIdempotentInstruction as eP,TOKEN_PROGRAM_ID as tP}from"@solana/spl-token";import kg from"bn.js";var Mg=D("Raydium.farm.util");var dP=D("Raydium_farm_instruction"),pP={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import eA from"bn.js";import{PublicKey as yw}from"@solana/web3.js";import{AccountLayout as Pw,MintLayout as Aw,NATIVE_MINT as ww,TOKEN_PROGRAM_ID as Tw}from"@solana/spl-token";var ua=b([Q("mintAuthorityOption"),s("mintAuthority"),n("supply"),y("decimals"),y("isInitialized"),Q("freezeAuthorityOption"),s("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ca,TOKEN_PROGRAM_ID as Be}from"@solana/spl-token";import{PublicKey as z,SystemProgram as To,SYSVAR_RENT_PUBKEY as la,TransactionInstruction as ge}from"@solana/web3.js";import Rt from"bn.js";var Lt=D("Raydium_liquidity_instruction");function ma(o){let{poolInfo:e,poolKeys:t,userKeys:i,baseAmountIn:r,quoteAmountIn:c,fixedSide:a,otherAmountMin:u,modelDataPubKey:l=Le}=o,g=Buffer.alloc(qt.span);qt.encode({instruction:3,baseAmountIn:G(r),quoteAmountIn:G(c),otherAmountMin:G(u),fixedSide:a==="base"?$:Ne},g);let p=[f({pubkey:Be,isWritable:!1}),f({pubkey:new z(e.id)}),f({pubkey:new z(t.authority),isWritable:!1}),f({pubkey:new z(t.openOrders),isWritable:!1}),f({pubkey:new z(t.targetOrders)}),f({pubkey:new z(e.lpMint.address)}),f({pubkey:new z(t.vault.A)}),f({pubkey:new z(t.vault.B)})];return e.pooltype.includes("StablePool")&&p.push(f({pubkey:l})),p.push(f({pubkey:new z(e.marketId),isWritable:!1}),f({pubkey:i.baseTokenAccount}),f({pubkey:i.quoteTokenAccount}),f({pubkey:i.lpTokenAccount}),f({pubkey:i.owner,isWritable:!1,isSigner:!0}),f({pubkey:new z(t.marketEventQueue),isWritable:!1})),new ge({programId:new z(e.programId),keys:p,data:g})}function da(o){let{poolInfo:e,poolKeys:t,userKeys:i,lpAmount:r,baseAmountMin:c,quoteAmountMin:a,modelDataPubKey:u=Le}=o,l=ye(t),g=4;if(e.pooltype.includes("StablePool")&&(g=5),g===4||g===5){let p=Buffer.alloc(Ut.span);Ut.encode({instruction:4,lpAmount:G(r),baseAmountMin:G(c),quoteAmountMin:G(a)},p);let P=[f({pubkey:Be,isWritable:!1}),f({pubkey:l.id}),f({pubkey:l.authority,isWritable:!1}),f({pubkey:l.openOrders}),f({pubkey:l.targetOrders}),f({pubkey:l.mintLp.address}),f({pubkey:l.vault.A}),f({pubkey:l.vault.B})];return g===5?P.push(f({pubkey:u})):(P.push(f({pubkey:l.id})),P.push(f({pubkey:l.id}))),P.push(f({pubkey:l.marketProgramId,isWritable:!1}),f({pubkey:l.marketId}),f({pubkey:l.marketBaseVault}),f({pubkey:l.marketQuoteVault}),f({pubkey:l.marketAuthority,isWritable:!1}),f({pubkey:i.lpTokenAccount}),f({pubkey:i.baseTokenAccount}),f({pubkey:i.quoteTokenAccount}),f({pubkey:i.owner,isWritable:!1,isSigner:!0}),f({pubkey:l.marketEventQueue}),f({pubkey:l.marketBids}),f({pubkey:l.marketAsks})),new ge({programId:l.programId,keys:P,data:p})}return new ge({programId:l.programId,keys:[]})}function pa({programId:o,ammId:e,ammAuthority:t,ammOpenOrders:i,lpMint:r,coinMint:c,pcMint:a,coinVault:u,pcVault:l,withdrawQueue:g,ammTargetOrders:p,poolTempLp:P,marketProgramId:k,marketId:w,userWallet:x,userCoinVault:h,userPcVault:I,userLpVault:C,nonce:K,openTime:v,coinAmount:_,pcAmount:T,ammConfigId:B,feeDestinationId:S}){let L=b([y("instruction"),y("nonce"),n("openTime"),n("pcAmount"),n("coinAmount")]),N=[{pubkey:Be,isSigner:!1,isWritable:!1},{pubkey:ca,isSigner:!1,isWritable:!1},{pubkey:To.programId,isSigner:!1,isWritable:!1},{pubkey:We,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:c,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:l,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!0},{pubkey:B,isSigner:!1,isWritable:!1},{pubkey:S,isSigner:!1,isWritable:!0},{pubkey:k,isSigner:!1,isWritable:!1},{pubkey:w,isSigner:!1,isWritable:!1},{pubkey:x,isSigner:!0,isWritable:!0},{pubkey:h,isSigner:!1,isWritable:!0},{pubkey:I,isSigner:!1,isWritable:!0},{pubkey:C,isSigner:!1,isWritable:!0}],V=Buffer.alloc(L.span);return L.encode({instruction:1,nonce:K,openTime:v,coinAmount:_,pcAmount:T},V),{instruction:new ge({keys:N,programId:o,data:V}),instructionType:j.AmmV4CreatePool}}function KA(o){let e=b([y("instruction"),y("simulateType")]),t=Buffer.alloc(e.span);e.encode({instruction:12,simulateType:0},t);let i=[f({pubkey:new z(o.id),isWritable:!1}),f({pubkey:new z(o.authority),isWritable:!1}),f({pubkey:new z(o.openOrders),isWritable:!1}),f({pubkey:new z(o.vault.A),isWritable:!1}),f({pubkey:new z(o.vault.B),isWritable:!1}),f({pubkey:new z(o.mintLp.address),isWritable:!1}),f({pubkey:new z(o.marketId),isWritable:!1}),f({pubkey:new z(o.marketEventQueue),isWritable:!1})];return new ge({programId:new z(o.programId),keys:i,data:t})}function fa({poolKeys:o,userKeys:e,amountIn:t,minAmountOut:i,modelDataPubKey:r=Le},c){let a=ye(o),u=Buffer.alloc(_t.span);_t.encode({instruction:9,amountIn:G(t),minAmountOut:G(i)},u);let l=[f({pubkey:Be,isWritable:!1}),f({pubkey:a.id}),f({pubkey:a.authority,isWritable:!1}),f({pubkey:a.openOrders})];return c===4&&l.push(f({pubkey:a.targetOrders})),l.push(f({pubkey:a.vault.A}),f({pubkey:a.vault.B})),c===5&&l.push(f({pubkey:r})),l.push(f({pubkey:a.marketProgramId,isWritable:!1}),f({pubkey:a.marketId}),f({pubkey:a.marketBids}),f({pubkey:a.marketAsks}),f({pubkey:a.marketEventQueue}),f({pubkey:a.marketBaseVault}),f({pubkey:a.marketQuoteVault}),f({pubkey:a.marketAuthority,isWritable:!1}),f({pubkey:e.tokenAccountIn}),f({pubkey:e.tokenAccountOut}),f({pubkey:e.owner,isWritable:!1,isSigner:!0})),new ge({programId:a.programId,keys:l,data:u})}function ya({poolKeys:o,userKeys:e,maxAmountIn:t,amountOut:i,modelDataPubKey:r=Le},c){let a=ye(o),u=Buffer.alloc(Et.span);Et.encode({instruction:11,maxAmountIn:G(t),amountOut:G(i)},u);let l=[f({pubkey:Be,isWritable:!1}),f({pubkey:a.id}),f({pubkey:a.authority,isWritable:!1}),f({pubkey:a.openOrders}),f({pubkey:a.targetOrders}),f({pubkey:a.vault.A}),f({pubkey:a.vault.B})];return c===5&&l.push(f({pubkey:r})),l.push(f({pubkey:a.marketProgramId,isWritable:!1}),f({pubkey:a.marketId}),f({pubkey:a.marketBids}),f({pubkey:a.marketAsks}),f({pubkey:a.marketEventQueue}),f({pubkey:a.marketBaseVault}),f({pubkey:a.marketQuoteVault}),f({pubkey:a.marketAuthority,isWritable:!1}),f({pubkey:e.tokenAccountIn}),f({pubkey:e.tokenAccountOut}),f({pubkey:e.owner,isWritable:!1,isSigner:!0})),new ge({programId:a.programId,keys:l,data:u})}function ba(o,e,t,i,r,c,a,u,l,g){let p=b([y("instructionId"),n("amountIn"),n("minAmountOut")]),P=Buffer.alloc(p.span);p.encode({instructionId:16,amountIn:l,minAmountOut:g},P);let k=[{pubkey:Be,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!0}];return new ge({programId:o,keys:k,data:P})}function ga(o,e,t,i,r,c,a,u,l,g){let p=b([y("instructionId"),n("maxAmountIn"),n("amountOut")]),P=Buffer.alloc(p.span);p.encode({instructionId:17,maxAmountIn:l,amountOut:g},P);let k=[{pubkey:Be,isWritable:!1,isSigner:!1},{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:t,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!0,isSigner:!1},{pubkey:c,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!0}];return new ge({programId:o,keys:k,data:P})}function ho(o){let{poolKeys:e,version:t,userKeys:i,amountIn:r,amountOut:c,fixedSide:a}=o;if(t===4){if(a==="in")return ba(new z(e.programId),new z(e.id),new z(e.authority),new z(e.vault.A),new z(e.vault.B),i.tokenAccountIn,i.tokenAccountOut,i.owner,new Rt(r.toString()),new Rt(c.toString()));if(a==="out")return ga(new z(e.programId),new z(e.id),new z(e.authority),new z(e.vault.A),new z(e.vault.B),i.tokenAccountIn,i.tokenAccountOut,i.owner,new Rt(r.toString()),new Rt(c.toString()));Lt.logWithError("invalid params","params",o)}throw Lt.logWithError("invalid version, only support pool v4","poolKeys.version",t),new Error("invalid version")}function Io(o){let{poolKeys:e,version:t,userKeys:i,amountIn:r,amountOut:c,fixedSide:a}=o;if(t===4||t===5){let u={poolKeys:e,userKeys:i};if(a==="in")return fa(E(O({},u),{amountIn:r,minAmountOut:c}),t);if(a==="out")return ya(E(O({},u),{maxAmountIn:r,amountOut:c}),t);Lt.logWithError("invalid params","params",o)}throw Lt.logWithError("invalid version","poolKeys.version",t),new Error("invalid version")}function xA({poolKeys:o,userKeys:e,startTime:t}){let i=Buffer.alloc(Dt.span);Dt.encode({instruction:0,nonce:5,startTime:G(t)},i);let r=ye(o),c=[f({pubkey:Be,isWritable:!1}),f({pubkey:To.programId,isWritable:!1}),f({pubkey:la,isWritable:!1}),f({pubkey:r.id}),f({pubkey:r.authority,isWritable:!1}),f({pubkey:r.openOrders}),f({pubkey:r.mintLp.address}),f({pubkey:r.mintA.address,isWritable:!1}),f({pubkey:r.mintB.address,isWritable:!1}),f({pubkey:r.vault.A,isWritable:!1}),f({pubkey:r.vault.B,isWritable:!1}),f({pubkey:r.id}),f({pubkey:r.targetOrders}),f({pubkey:e.lpTokenAccount}),f({pubkey:r.id,isWritable:!1}),f({pubkey:r.marketProgramId,isWritable:!1}),f({pubkey:r.marketId,isWritable:!1}),f({pubkey:e.payer,isSigner:!0})];return new ge({programId:r.programId,keys:c,data:i})}var Fe=5e4,Pa=b([n("x"),n("y"),n("price")]),Aa=b([n("accountType"),n("status"),n("multiplier"),n("validDataCount"),A(Pa,Fe,"DataElement")]);function wa(o,e){return[0,Fe-2]}function ka(o){return[0,Fe-2]}function Ta(o){return[0,Fe-2]}function ha(o,e,t){let[i,r]=wa(e,t),c=i,a=r,u=0,l=e*o.multiplier/t;for(;c<=a;){if(u=Math.floor((a+c)/2),u===0||u>=Fe-2)return[u,u,!1];let g=o.DataElement[u].x*o.multiplier/o.DataElement[u].y,p=o.DataElement[u-1].x*o.multiplier/o.DataElement[u-1].y,P=o.DataElement[u+1].x*o.multiplier/o.DataElement[u+1].y;if(l===g)return[u,u,!0];if(l===p)return[u-1,u-1,!0];if(l===P)return[u+1,u+1,!0];if(l<p)a=u-1;else{if(l>p&&l<g)return[u-1,u,!0];if(l>g&&l<P)return[u,u+1,!0];c=u+1}}return[u,u,!1]}function An(o,e,t){let[i,r,c]=ha(o,e,t);if(!c)return 0;if(i===r){let a=o.DataElement[i].x;return e*o.multiplier/a}else{let a=o.DataElement[i].x,u=o.DataElement[i].y,l=o.DataElement[r].x,g=o.DataElement[r].y,p=t*(l*u-a*g),P=a*p,k=(l-a)*(e*u-a*t)*g,w=P+k;return e*o.multiplier*p/w}}function Me(o,e,t){return e*o.multiplier/t}function Bo(o,e,t){return e*t/o.multiplier}function Ia(o,e){let[t,i]=ka(e),r=t,c=i,a=0,u=e;for(;r<c;){if(a=Math.floor((c+r)/2),a<=0||a>Fe-2)return[a,a,!1];let l=o.DataElement[a].x,g=o.DataElement[a-1].x,p=o.DataElement[a+1].x;if(u===l)return[a,a,!0];if(u===g)return[a-1,a-1,!0];if(u===p)return[a+1,a+1,!0];if(u<g)c=a-1;else{if(u>g&&u<l)return[a-1,a,!0];if(u>l&&u<p)return[a,a+1,!0];r=a+1}}return[a,a,!1]}function Ba(o,e){let[t,i]=Ta(e),r=t,c=i,a=0,u=e;for(;r<=c;){if(a=Math.floor((c+r)/2),a<=0||a>=Fe-2)return[a,a,!1];let l=o.DataElement[a].y,g=o.DataElement[a-1].y,p=o.DataElement[a+1].y;if(u===l)return[a,a,!0];if(u===g)return[a-1,a-1,!0];if(u===p)return[a+1,a+1,!0];if(u<p)r=a+1;else{if(u<g&&u>l)return[a-1,a,!0];if(u<l&&u>p)return[a,a+1,!0];c=a-1}}return[a,a,!1]}function So(o,e,t,i){let r=i?e+t:e-t,[c,a,u]=Ia(o,r);if(!u)return[0,0,!1,u];if(c===a)return[o.DataElement[a].price,o.DataElement[a].y,!1,u];{let l=o.DataElement[c].x,g=o.DataElement[a].x,p=o.DataElement[c].price,P=o.DataElement[a].price,k=o.DataElement[c].y,w=o.DataElement[a].y;if(e>=l&&e<=g)return i?[P,w,!0,u]:[p,k,!0,u];{let x,h;return i?(x=p+(P-p)*(e-l)/(g-l),h=k-(r-l)*o.multiplier/P):(x=p+(P-p)*(e-l)/(g-l),h=w+(g-r)*o.multiplier/p),[x,h,!1,u]}}}function Sa(o,e,t,i){let r=i?e-t:e+t,[c,a,u]=Ba(o,r);if(!u)return[0,0,!1,u];if(c===a)return[o.DataElement[a].price,o.DataElement[a].x,!1,u];{let l=o.DataElement[c].x,g=o.DataElement[a].x,p=o.DataElement[c].price,P=o.DataElement[a].price,k=o.DataElement[c].y,w=o.DataElement[a].y;if(e>=w&&e<=k)return i?[P,g,!0,u]:[p,l,!0,u];{let x,h;return i?(x=p+(P-p)*(k-e)/(k-w),h=l+P*(k-r)/o.multiplier):(x=p+(P-p)*(k-e)/(k-w),h=g-p*(r-w)/o.multiplier),[x,h,!1,u]}}}function Ka(o,e){let t=So(o,e,0,!1);return t[3]?t[0]:0}function xa(o,e,t,i){let r=An(o,e,t),c=Me(o,e,r),a=Me(o,t,r),u=Me(o,i,r),l=!0,[g,p,P,k]=So(o,c,u,l);if(!k)return 0;if(P)return i*o.multiplier/g;{let w=a-p;return Bo(o,w,r)}}function Ca(o,e,t,i){let r=An(o,e,t),c=Me(o,e,r),a=Me(o,t,r),u=Me(o,i,r),l=!1,[g,p,P,k]=Sa(o,a,u,l);if(!k)return 0;if(P)return i*g/o.multiplier;{let w=c-p;return Bo(o,w,r)}}function Ra(o){let e=Aa.decode(o);return{accountType:e.accountType.toNumber(),status:e.status.toNumber(),multiplier:e.multiplier.toNumber(),validDataCount:e.validDataCount.toNumber(),DataElement:e.DataElement.map(t=>({x:t.x.toNumber(),y:t.y.toNumber(),price:t.price.toNumber()}))}}function La(o,e,t,i){let r=Ka(o,Me(o,e,An(o,e,t)))/o.multiplier;return i?r:1/r}var Pn=class{constructor({connection:e,modelDataPubKey:t=Le}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=e,this.modelDataPubKey=t}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let e=await this.connection.getAccountInfo(this.modelDataPubKey);e&&(this._layoutData=Ra(e==null?void 0:e.data))}}};import qw from"bn.js";import Gw from"decimal.js";import{TOKEN_PROGRAM_ID as $A}from"@solana/spl-token";import{PublicKey as ew}from"@solana/web3.js";import nw from"bn.js";import{SystemProgram as EA,SYSVAR_RENT_PUBKEY as DA,Transaction as WA,TransactionInstruction as qA}from"@solana/web3.js";import{createInitializeAccountInstruction as GA,TOKEN_PROGRAM_ID as zA}from"@solana/spl-token";function Oa(o="accountFlags"){let e=new ft(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var Na=b([F(5),Oa("accountFlags"),s("ownAddress"),n("vaultSignerNonce"),s("baseMint"),s("quoteMint"),s("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),s("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),s("requestQueue"),s("eventQueue"),s("bids"),s("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),F(7)]);import{PublicKey as pT}from"@solana/web3.js";import{AccountLayout as yT,NATIVE_MINT as bT,TOKEN_2022_PROGRAM_ID as gT,TOKEN_PROGRAM_ID as PT,createAssociatedTokenAccountIdempotentInstruction as AT}from"@solana/spl-token";import dk from"bn.js";import _a from"bn.js";var ek=new _a(0);import ik from"bn.js";import KT from"bn.js";import CT from"decimal.js";import{PublicKey as Rk,TransactionInstruction as Lk,Keypair as Nk,SystemProgram as Mk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as vk,TOKEN_2022_PROGRAM_ID as Vk,TOKEN_PROGRAM_ID as _k}from"@solana/spl-token";var gk=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Pk=Buffer.from("amm_config","utf8"),Ak=Buffer.from("pool","utf8"),wk=Buffer.from("pool_lp_mint","utf8"),kk=Buffer.from("pool_vault","utf8"),Tk=Buffer.from("observation","utf8"),hk=Buffer.from("permission","utf8"),Ik=Buffer.from("support_mint","utf8");var Bk=Buffer.from("locked_liquidity","utf8");var zk=D("Raydium_cpmm"),Xk={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var Wa=b([F(8),y("bump"),ce("disableCreatePool"),H("index"),n("tradeFeeRate"),n("protocolFeeRate"),n("fundFeeRate"),n("createPoolFee"),s("protocolOwner"),s("fundOwner"),n("creatorFeeRate"),A(n(),15)]),xo=b([F(8),s("configId"),s("poolCreator"),s("vaultA"),s("vaultB"),s("mintLp"),s("mintA"),s("mintB"),s("mintProgramA"),s("mintProgramB"),s("observationId"),y("bump"),y("status"),y("lpDecimals"),y("mintDecimalA"),y("mintDecimalB"),n("lpAmount"),n("protocolFeesMintA"),n("protocolFeesMintB"),n("fundFeesMintA"),n("fundFeesMintB"),n("openTime"),n("epoch"),y("feeOn"),ce("enableCreatorFee"),A(y(),6),n("creatorFeesMintA"),n("creatorFeesMintB"),A(n(),28)]),Zk=b([F(8),s("configId"),A(n(),30)]);import{PublicKey as mK,SystemProgram as dK}from"@solana/web3.js";import{createTransferInstruction as fK,TOKEN_PROGRAM_ID as yK,TOKEN_2022_PROGRAM_ID as bK,createAssociatedTokenAccountIdempotentInstruction as gK,createSyncNativeInstruction as AK,createTransferCheckedInstruction as wK}from"@solana/spl-token";import is from"bn.js";import hK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Oh,TOKEN_2022_PROGRAM_ID as Nh,TOKEN_PROGRAM_ID as Mh}from"@solana/spl-token";import{SystemProgram as _h,TransactionInstruction as Eh}from"@solana/web3.js";import Qa from"bn.js";var Ga=b([n(),n("epoch"),y("curveType"),H("index"),n("migrateFee"),n("tradeFeeRate"),n("maxShareFeeRate"),n("minSupplyA"),n("maxLockRate"),n("minSellRateA"),n("minMigrateRateA"),n("minFundRaisingB"),s("mintB"),s("protocolFeeOwner"),s("migrateFeeOwner"),s("migrateToAmmWallet"),s("migrateToCpmmWallet"),A(n(),16)]),za=b([n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod"),n("startTime"),n("totalAllocatedShare")]),Xa=b([n(),n("epoch"),y("bump"),y("status"),y("mintDecimalsA"),y("mintDecimalsB"),y("migrateType"),n("supply"),n("totalSellA"),n("virtualA"),n("virtualB"),n("realA"),n("realB"),n("totalFundRaisingB"),n("protocolFee"),n("platformFee"),n("migrateFee"),za.replicate("vestingSchedule"),s("configId"),s("platformId"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("creator"),y("mintProgramFlag"),y("cpmmCreatorFeeOn"),n("platformVestingShare"),A(y(),54)]),ph=b([n(),n("epoch"),s("poolId"),s("beneficiary"),n("claimedAmount"),n("tokenShareAmount"),A(n(),8)]),Ro=b([y("migrateType"),y("migrateCpmmFeeOn"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod")]),Ya=b([n("epoch"),y("index"),s("configId"),Ro.replicate("bondingCurveParam"),A(n(),50)]),Lo=b([n(),n("epoch"),s("platformClaimFeeWallet"),s("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),A(y(),64,"name"),A(y(),256,"web"),A(y(),256,"img"),s("cpConfigId"),n("creatorFeeRate"),s("transferFeeExtensionAuth"),s("platformVestingWallet"),n("platformVestingScale"),s("platformCpCreator"),y("restrictGlobalConfig"),A(y(),107),_n(Ya,"platformCurve")]);var Ph=Buffer.from("vault_auth_seed","utf8"),Ah=Buffer.from("global_config","utf8"),wh=Buffer.from("pool_vesting","utf8"),kh=Buffer.from("platform_config","utf8"),Th=Buffer.from("platform_fee_vault_auth_seed","utf8"),hh=Buffer.from("creator_fee_vault_auth_seed","utf8"),Ih=Buffer.from("platform_global_access","utf8"),Bh=Buffer.from("platform_allow_config","utf8");var Uh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Gh=new Qa("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Qh,TOKEN_PROGRAM_ID as Zh}from"@solana/spl-token";import Jh from"bn.js";import tI from"decimal.js";import NI from"bn.js";import FI from"decimal.js";import sI from"bn.js";import cI from"decimal.js";import AI from"bn.js";import kI from"decimal.js";import Mo from"bn.js";import kn from"decimal.js";var Ot=class{static _multipler(e){return new kn(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:i}){return new kn(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:t,decimalB:i}){let r=e.mul(this._multipler(i)).div(this._multipler(t));return new Mo(r.mul(this._Q64).toFixed(0))}};Ot._Q64=new kn(new Mo(1).shln(64).toString());import{NATIVE_MINT as UB,TOKEN_2022_PROGRAM_ID as GB,TOKEN_PROGRAM_ID as zB,createAssociatedTokenAccountIdempotentInstruction as YB,createSyncNativeInstruction as QB,getTransferFeeConfig as ZB,unpackMint as HB}from"@solana/spl-token";import J from"bn.js";import{PublicKey as ts,SystemProgram as JB}from"@solana/web3.js";import aS from"decimal.js";var sS={initPriceX64:new J("515752397214619"),supply:new J(1e15),totalSellA:new J(7931e11),totalFundRaisingB:new J(85e9),totalFundRaisingBUSD:new J(125e8),totalLockedAmount:new J("0"),cliffPeriod:new J("0"),unlockPeriod:new J("0"),decimals:6,virtualA:new J("1073471847374405"),virtualB:new J("30050573465"),realA:new J(0),realB:new J(0),protocolFee:new J(0),platformId:new ts("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new J(0),cliffPeriod:new J(0),unlockPeriod:new J(0),startTime:new J(0),totalAllocatedShare:new J(0)}},uS=new J(1e4);var ns={[eo.toBase58()]:3};var os=b([F(5),F(8),s("ownAddress"),n("vaultSignerNonce"),s("baseMint"),s("quoteMint"),s("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),s("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),s("requestQueue"),s("eventQueue"),s("bids"),s("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),F(7)]);import{PublicKey as LS}from"@solana/web3.js";var vS=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as zS,TOKEN_2022_PROGRAM_ID as XS,TOKEN_PROGRAM_ID as YS}from"@solana/spl-token";import{PublicKey as ZS,SystemProgram as HS,TransactionInstruction as jS}from"@solana/web3.js";import JS from"bn.js";var JK=new is(0);import{PublicKey as rs,Transaction as Tn,TransactionInstruction as as}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ss}from"@solana/spl-token";import vo from"bn.js";var oe=class extends ae{static getPdaPoolId(e,t){return re([oe.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,i,r){return re([oe.SEED_CONFIG.owner.id,t.toBuffer(),i.toBuffer(),Buffer.from(new vo(r).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:i,wallet:r,chainTime:c}){if(i.length===0)return[];let a=i.map(p=>oe.getPdaPoolId(t,p).publicKey),u=[];for(let p=0;p<oe.VERSION_PROJECT.length;p++)u.push(...a.map(P=>oe.getPdaOwnerId(t,P,r,p).publicKey));let l=await Te(e,[...a,...u]),g=[];for(let p=0;p<l.length;p++){let P=Math.floor(p/i.length),k=p%i.length,w=a[k],x=u[p],h=l[k],I=l[i.length+p];if(!(h&&I)||h.data.length!==oe.POOL_LAYOUT.span||I.data.length!==oe.OWNER_LAYOUT.span)continue;let C=oe.POOL_LAYOUT.decode(h.data),K=oe.OWNER_LAYOUT.decode(I.data),v=C.openTime.toNumber(),_=C.endTime.toNumber(),T=K.tokenInfo.map(L=>L.debtAmount.gt(new vo(0))).filter(L=>!L).length!==3,B=c>v&&c<_&&C.status===1,S=T&&B;g.push({programId:t,poolId:w,ammId:C.ammId,ownerAccountId:x,snapshotLpAmount:K.lpAmount,project:oe.VERSION_PROJECT[P],openTime:v,endTime:_,canClaim:S,canClaimErrorType:T?B?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:C.tokenInfo.map((L,N)=>({mintAddress:L.mintAddress,mintVault:L.mintVault,mintDecimals:L.mintDecimals,perLpLoss:L.perLpLoss,debtAmount:K.tokenInfo[N].debtAmount.add(K.tokenInfo[N].claimedAmount)}))})}return g}async makeClaimTransaction({poolInfo:e,ownerInfo:t,feePayer:i}){t.wallet||this.scope.checkOwner();let r=this.createTxBuilder(i),c=t.wallet||this.scope.ownerPubKey,a=[];for(let g of e.tokenInfo){let{account:p,instructionParams:P}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(ne.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!g.mintAddress.equals(ne.WSOL.mint),associatedOnly:g.mintAddress.equals(ne.WSOL.mint)?!1:t.associatedOnly});P&&r.addInstruction(P),a.push(p)}r.addInstruction({instructions:[oe.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:c,ownerPda:e.ownerAccountId,claimAddress:a}})]});let{transaction:u,signers:l}=r.build();return[{transaction:u,signer:l}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:i}){let r=this.createTxBuilder(i),c=t.wallet||this.scope.ownerPubKey,a={};for(let p of e){let P=[];for(let k of p.tokenInfo){let{account:w,instructionParams:x}=await this.scope.account.getOrCreateTokenAccount({mint:k.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:k.mintAddress.equals(ne.WSOL.mint),createInfo:{payer:c,amount:0},skipCloseAccount:!k.mintAddress.equals(ne.WSOL.mint),associatedOnly:k.mintAddress.equals(ne.WSOL.mint)?!1:t.associatedOnly});x&&r.addInstruction(x),w&&(a[k.mintAddress.toString()]=w,P.push(w))}r.addInstruction({instructions:[oe.makeClaimInstruction({programId:p.programId,poolInfo:p,ownerInfo:{wallet:c,ownerPda:p.ownerAccountId,claimAddress:P}})]})}let{transaction:u,signers:l}=r.build(),g=r.allInstructions;return zt(g,[c,...l.map(p=>p.publicKey)])?[{transaction:u,signer:l}]:[{transaction:new Tn().add(...g.slice(0,r.AllTxData.instructions.length-1)),signer:l},{transaction:new Tn().add(...g.slice(r.AllTxData.instructions.length-1)),signer:[]},{transaction:new Tn().add(...r.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:i}){let r=b([]),c=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(l=>({pubkey:l,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:l})=>({pubkey:l,isSigner:!1,isWritable:!0})),{pubkey:ss,isSigner:!1,isWritable:!1}],a=Buffer.alloc(r.span);r.encode({},a);let u=Buffer.from([10,66,208,184,161,6,191,98,...a]);return new as({keys:c,programId:e,data:u})}},pe=oe;pe.CLAIMED_NUM=3,pe.POOL_LAYOUT=b([F(8),y("bump"),y("status"),n("openTime"),n("endTime"),s("ammId"),A(b([y("mintDecimals"),s("mintAddress"),s("mintVault"),n("perLpLoss"),n("totalClaimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),A(n(),10,"padding")]),pe.OWNER_LAYOUT=b([F(8),y("bump"),y("version"),s("poolId"),s("owner"),n("lpAmount"),A(b([s("mintAddress"),n("debtAmount"),n("claimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),A(n(),4,"padding")]),pe.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new rs(e)),pe.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},pe.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as gx}from"@solana/web3.js";import{getTransferFeeConfig as Ax,MintLayout as wx,TOKEN_2022_PROGRAM_ID as kx,TOKEN_PROGRAM_ID as Tx,unpackMint as hx}from"@solana/spl-token";var HC=new ve(2),jC=new ve(3),$C=new ve(5),hn=new ve(10),JC=new ve(100),eR=new ve(1e3),tR=new ve(1e4);function Jt(o){return hn.pow(G(o))}var cs=D("Raydium_amount"),Vo=nt(us);function ls(o,e){let t="0",i="0";if(o.includes(".")){let r=o.split(".");r.length===2?([t,i]=r,i=i.padEnd(e,"0")):cs.logWithError(`invalid number string, num: ${o}`)}else t=o;return[t,i.slice(0,e)||i]}var ue=class extends q{constructor(t,i,r=!0,c){let a=new Nt(0),u=hn.pow(new Nt(t.decimals));if(r)a=G(i);else{let l=new Nt(0),g=new Nt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[p,P]=ls(i.toString(),t.decimals);l=G(p),g=G(P)}l=l.mul(u),a=l.add(g)}super(a,u);this.logger=D(c||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new ue(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new ue(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,i,r=0){return super.toSignificant(t,i,r)}toFixed(t=this.token.decimals,i,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,r)}toExact(t={groupSeparator:""}){return Vo.DP=this.token.decimals,new Vo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};var Ie=r=>{var c=r,{address:o,programId:e,decimals:t}=c,i=le(c,["address","programId","decimals"]);return O({chainId:101,address:Re(o).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:i.extensions||{}},i)};import{PublicKey as ms}from"@solana/web3.js";var ds=D("Raydium_liquidity_serum");function _o({programId:o,marketId:e}){let t=[e.toBuffer()],i=0,r;for(;i<100;){try{let c=t.concat(Buffer.from([i]),Buffer.alloc(7));r=ms.createProgramAddressSync(c,o)}catch(c){if(c instanceof TypeError)throw c;i++;continue}return{publicKey:r,nonce:i}}throw ds.logWithError("unable to find a viable program address nonce","params",{programId:o,marketId:e}),new Error("unable to find a viable program address nonce")}function wn({programId:o}){let{publicKey:e}=re([Buffer.from("amm_config_account_seed","utf-8")],o);return e}function Ve({name:o,programId:e,marketId:t}){let{publicKey:i}=re([e.toBuffer(),t.toBuffer(),Buffer.from(o,"utf-8")],e);return i}function ys({programId:o,marketId:e}){let{publicKey:t}=re([o.toBuffer(),e.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],o);return t}function Fo({programId:o}){return re([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],o)}function Va({version:o,marketVersion:e,marketId:t,baseMint:i,quoteMint:r,baseDecimals:c,quoteDecimals:a,programId:u,marketProgramId:l}){let g=Ve({name:"amm_associated_seed",programId:u,marketId:t}),p=Ve({name:"lp_mint_associated_seed",programId:u,marketId:t}),{publicKey:P,nonce:k}=Fo({programId:u}),w=Ve({name:"coin_vault_associated_seed",programId:u,marketId:t}),x=Ve({name:"pc_vault_associated_seed",programId:u,marketId:t}),h=Ve({name:"temp_lp_token_associated_seed",programId:u,marketId:t}),I=ys({programId:u,marketId:t}),C=Ve({name:"target_associated_seed",programId:u,marketId:t}),K=Ve({name:"withdraw_associated_seed",programId:u,marketId:t}),{publicKey:v}=_o({programId:l,marketId:t});return{id:g,baseMint:i,quoteMint:r,lpMint:p,baseDecimals:c,quoteDecimals:a,lpDecimals:c,version:o,programId:u,authority:P,nonce:k,baseVault:w,quoteVault:x,lpVault:h,openOrders:I,targetOrders:C,withdrawQueue:K,marketVersion:e,marketProgramId:l,marketId:t,marketAuthority:v,lookupTableAccount:ps.default,configId:wn({programId:u})}}var In={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},Ko=o=>{let e={},t=fs.toBase58();return Object.keys(o).map(i=>{let r=o[i],[c,a]=[r.baseMint.toBase58(),r.quoteMint.toBase58()];e[i]={id:i,version:4,status:r.status.toNumber(),programId:r.programId.toBase58(),mintA:Ie({address:c,programId:t,decimals:r.baseDecimal.toNumber()}),mintB:Ie({address:a,programId:t,decimals:r.quoteDecimal.toNumber()}),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:r.poolPrice.toNumber(),mintAmountA:new Mt(r.mintAAmount.toString()).div(10**r.baseDecimal.toNumber()).toNumber(),mintAmountB:new Mt(r.mintBAmount.toString()).div(10**r.quoteDecimal.toNumber()).toNumber(),baseReserve:r.baseReserve,quoteReserve:r.quoteReserve,feeRate:new Mt(r.tradeFeeNumerator.toString()).div(r.tradeFeeDenominator.toString()).toNumber(),openTime:r.poolOpenTime.toString(),tvl:0,day:In,week:In,month:In,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:r.marketId.toBase58(),configId:wn({programId:r.programId}).toBase58(),lpPrice:0,lpAmount:new Mt(r.lpReserve.toString()).div(10**Math.min(r.baseDecimal.toNumber(),r.quoteDecimal.toNumber())).toNumber(),lpMint:Ie({address:r.lpMint.toBase58(),programId:t,decimals:Math.min(r.baseDecimal.toNumber(),r.quoteDecimal.toNumber())}),burnPercent:0,feeOn:"Both",hasDynamicFee:!1,tips:[],launchMigratePool:!1}}),e};export{Pa as DataElement,Go as LIQUIDITY_FEES_DENOMINATOR,Uo as LIQUIDITY_FEES_NUMERATOR,zo as LIQUIDITY_VERSION_TO_SERUM_VERSION,pu as LIQUIDITY_VERSION_TO_STATE_LAYOUT,Pn as StableLayout,qt as addLiquidityLayout,ui as createPoolFeeLayout,pa as createPoolV4InstructionV2,du as createPoolV4Layout,_t as fixedSwapInLayout,Et as fixedSwapOutLayout,Ra as formatLayout,wn as getAssociatedConfigId,ys as getAssociatedOpenOrders,Va as getAssociatedPoolKeys,Ca as getDxByDyBaseIn,xa as getDyByDxBaseIn,Fo as getLiquidityAssociatedAuthority,Ve as getLiquidityAssociatedId,La as getStablePrice,Dt as initPoolLayout,Wt as liquidityStateV4Layout,si as liquidityStateV5Layout,Io as makeAMMSwapInstruction,ho as makeAMMSwapV2Instruction,ma as makeAddLiquidityInstruction,xA as makeInitPoolInstructionV4,fa as makeSwapFixedInInstruction,ya as makeSwapFixedOutInstruction,Aa as modelDataInfoLayout,Xo as poolLpAuthority,da as removeLiquidityInstruction,Ut as removeLiquidityLayout,KA as simulatePoolInfoInstruction,ba as swapBaseInV2Instruction,ga as swapBaseOutV2Instruction,Ko as toAmmComputePoolInfo};
//# sourceMappingURL=index.mjs.map