@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 93.2 kB
JavaScript
var Eo=Object.defineProperty,Do=Object.defineProperties;var Wo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var xn=Object.prototype.hasOwnProperty,Cn=Object.prototype.propertyIsEnumerable;var Kn=(o,e,t)=>e in o?Eo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,O=(o,e)=>{for(var t in e||(e={}))xn.call(e,t)&&Kn(o,t,e[t]);if(mt)for(var t of mt(e))Cn.call(e,t)&&Kn(o,t,e[t]);return o},E=(o,e)=>Do(o,Wo(e));var le=(o,e)=>{var t={};for(var i in o)xn.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&&Cn.call(o,i)&&(t[i]=o[i]);return t};import Rn from"bn.js";var qo=new Rn(25),Uo=new Rn(1e4),Go={4:3,5:3},zo=new Set(["5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1","3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv","GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"]);import{PublicKey as oi}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as Xo,BitStructure as hs,blob as Yo,Blob as Is,cstr as Bs,f32 as Ss,f32be as Ks,f64 as xs,f64be as Cs,greedy as Rs,Layout as Ho,ns64 as Ls,ns64be as Os,nu64 as Ns,nu64be as Ms,offset as Qo,s16 as Fs,s16be as vs,s24 as _s,s24be as Vs,s32 as Zo,s32be as Es,s40 as Ds,s40be as Ws,s48 as qs,s48be as Us,s8 as Gs,seq as $o,struct as zs,Structure as jo,u16 as Jo,u16be as Xs,u24 as Ys,u24be as Hs,u32 as ei,u32be as Qs,u40 as Zs,u40be as $s,u48 as js,u48be as Js,u8 as ti,UInt as ni,union as eu,Union as tu,unionLayoutDiscriminator as nu,utf8 as ou}from"@solana/buffer-layout";var dt=Ho,Ln=jo;var Ft=ni;var On=ti,Z=Jo;var pt=ei;var me=Zo;var Nn=$o;var F=Yo;var vt=Xo,Mn=Qo;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 Fn(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 Fn(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 H(o){return new Ft(4,o)}function n(o){return new Ke(8,!1,o)}function N(o){return new Ke(16,!1,o)}function _n(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 je=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 je(F(32),e=>new oi(e),e=>e.toBuffer(),o)}function ce(o){return new je(On(),ii,ri,o)}function ii(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ri(o){return o?1:0}function Vt(o,e){let t=pt("length"),i=b([t,P(o,Mn(t,-t.span),"values")]);return new je(i,({values:r})=>r,r=>({values:r}),e)}var _t=class extends Ln{decode(e,t){return super.decode(e,t)}};function b(o,e,t){return new _t(o,e,t)}function P(o,e,t){let i,r=typeof e=="number"?e:vn(e)?e.toNumber():new Proxy(e,{get(c,a){if(!i){let u=Reflect.get(c,"count");i=vn(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 Nn(o,r,t)}var Et=b([y("instruction"),n("amountIn"),n("minAmountOut")]),Dt=b([y("instruction"),n("maxAmountIn"),n("amountOut")]),yu=b([y("instruction"),y("nonce")]),Wt=b([y("instruction"),y("nonce"),n("startTime")]),qt=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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),n("swapBase2QuoteFee"),N("swapQuoteInAmount"),N("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"),P(n(),3,"padding")]),ai=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"),N("swapBaseInAmount"),N("swapQuoteOutAmount"),N("swapQuoteInAmount"),N("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"),P(n(),64,"padding")]),Ut=b([y("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Gt=b([y("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]),bu={4:qt,5:ai},si=b([n("fee")]);import{PublicKey as bs}from"@solana/web3.js";import Mt from"decimal.js";import{TOKEN_PROGRAM_ID as gs}from"@solana/spl-token";import{ComputeBudgetProgram as Wn,Keypair as Un,PublicKey as li,Transaction as Gn,TransactionMessage as mi,VersionedTransaction as zn}from"@solana/web3.js";import{get as En,set as ui}from"lodash";var zt=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={},ci={};function D(o){let e=En(Dn,o);if(!e){let t=En(ci,o);e=new zt({name:o,logLevel:t}),ui(Dn,o,e)}return e}var $={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 di}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($.SetComputeUnitPrice)),o.units&&(e.push(Wn.setComputeUnitLimit({units:o.units})),t.push($.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 Xt(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]=li.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function Je({instructions:o,payer:e,signers:t}){return Xt(o,[e,...t])}function et({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=Un.generate().publicKey.toString()}){let c=new mi({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 pi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),fi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof zn&&(e=pi(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=di.toBase58()),t.feePayer||(t.feePayer=Un.generate().publicKey)),e.push(fi(t))}),console.log("simulate tx string:",e),e}import{TOKEN_PROGRAM_ID as QR}from"@solana/spl-token";import{PublicKey as JR}from"@solana/web3.js";import ms from"big.js";import Nt from"bn.js";import ve from"bn.js";import lR from"decimal.js";import{PublicKey as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yn}from"@solana/spl-token";var gt={chainId:101,address:yi.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 Q,SystemProgram as Hn,SYSVAR_RENT_PUBKEY as bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";function f({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var Pi=[f({pubkey:gi,isWritable:!1}),f({pubkey:Hn.programId,isWritable:!1}),f({pubkey:bi,isWritable:!1})];function Yt({publicKey:o,transformSol:e}){let t=Ht(o.toString());if(t instanceof Q)return e&&t.equals(Ce)?we:t;if(e&&t.toString()===Ce.toBase58())return we;if(typeof t=="string"){if(t===Q.default.toBase58())return Q.default;try{return new Q(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Ht(o){try{return new Q(o)}catch{return o}}var Qt=new Q("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),We=new Q("SysvarRent111111111111111111111111111111111"),_u=new Q("SysvarC1ock11111111111111111111111111111111"),Pt=new Q("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ai=new Q("Sysvar1nstructions1111111111111111111111111"),wi=Hn.programId,Vu=new Q("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Eu=new Q("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Du=new Q("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Wu=new Q("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),qu=new Q("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Uu=new Q("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Gu=new Q("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zu=new Q("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Xu=new Q("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Yu=new Q("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Hu=new Q("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),we=new Q("So11111111111111111111111111111111111111112"),Ce=Q.default;function Re(o){return Yt({publicKey:o,transformSol:!0})}var $t=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:Yt({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ne=$t;ne.WSOL=new $t(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 Ii from"bn.js";import Bi from"decimal.js-light";import tt from"bn.js";var Qn=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>=Qn||o<=-Qn)&&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 ki from"toformat";var Ti=ki,nt=Ti;var wt=D("module/fraction"),Jt=nt(kt),ot=nt(Bi),Si={[0]:ot.ROUND_DOWN,[1]:ot.ROUND_HALF_UP,[2]:ot.ROUND_UP},Ki={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},q=class{constructor(e,t=new Ii(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:Si[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.`),Jt.DP=e,Jt.RM=Ki[i]||1,new Jt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import xi from"bn.js";var Zn=new q(new xi(100)),ke=class extends q{toSignificant(e=5,t,i){return this.mul(Zn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Zn).toFixed(e,t,i)}};var Ci=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(en(i.decimals),en(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&&Ci.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 pC}from"lodash";import tm from"axios";import{PublicKey as Ri}from"@solana/web3.js";import{MINT_SIZE as Oc,TOKEN_PROGRAM_ID as Nc,getTransferFeeConfig as Mc,unpackMint as Fc}from"@solana/spl-token";var tn=D("Raydium_accountInfo_util");async function Te(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:c=100}=O({batchRequest:!1},t),a=nn(e,c),u=new Array(a.length).fill([]);if(i){let l=a.map(A=>{let k=o._buildArgs([A.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:k}}),g=nn(l,10);u=(await(await Promise.all(g.map(async A=>await o._rpcBatchRequest(A)))).flat()).map(A=>(A.error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${A.error.message}`),A.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"&&tn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:x,lamports:h,owner:new Ri(I),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(l=>o.getMultipleAccountsInfo(l,r)))}catch(l){l instanceof Error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.message}`)}return u.flat()}function nn(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 Wc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uc}from"@solana/spl-token";import{PublicKey as R}from"@solana/web3.js";var $n=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),jn=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Jn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),on=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Yc=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),eo=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),to=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Hc=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),no=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qc=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),rn=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Zc=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),_i=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vi=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ei=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),$c=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),jc=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Jc=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),el=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),tl=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 il from"bn.js";import{PublicKey as an,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function sn({connection:o,address:e,cluster:t="mainnet"}){let i=await Te(o,[...new Set(e.map(c=>c.toString()))].map(c=>new an(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={},un=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new an(e),i=await o.getAccountInfo(t);return i&&(qe[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),qe},Ue={},cn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new an(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 ln,SystemProgram as Di,Transaction as it,TransactionMessage as rt,VersionedTransaction as at}from"@solana/web3.js";import Wi 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 Wi.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(Di.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new ze(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push($.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 ln(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 A=await this.signAllTransactions([t]);if(this.signers.length)for(let k of A)try{k.sign(...this.signers)}catch{}return{txId:l?"":await this.connection.sendRawTransaction(A[0].serialize(),{skipPreflight:a}),signedTx:A[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(A=>A.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:A,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(A){let K=[],v=0;for(let V of a){if(++v,v<=w)continue;let T=await ln(this.connection,V,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((V,T)=>(V.recentBlockhash=I,u[T].length&&V.sign(...u[T]),V));xe(K);let v=await this.signAllTransactions(K);if(A){let V=0,T=[],B=async()=>{if(!v[V])return;let S=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:h});T.push({txId:S,status:"sent",signedTx:v[V]}),k==null||k([...T]),V++;let L=!1,M=null,_=null,se=X=>{M!==null&&clearInterval(M),_!==null&&this.connection.removeSignatureListener(_);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&&(M=setInterval(async()=>{var X;if(L){clearInterval(M);return}try{let U=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:1});U&&(L=!0,clearInterval(M),se({err:((X=U.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",S))}catch(U){L=!0,clearInterval(M),console.error("getTransaction timeout:",U,S)}},Tt)),_=this.connection.onSignature(S,X=>{if(L){this.connection.removeSignatureListener(_);return}L=!0,se(X)},"confirmed"),this.connection.getSignatureStatus(S)};return await B(),{txIds:T.map(S=>S.txId),signedTxs:v}}else{let V=[];for(let T=0;T<v.length;T+=1){let B=await this.connection.sendRawTransaction(v[T].serialize(),{skipPreflight:h});V.push(B)}return{txIds:V,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 cn(this.connection):await un(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 sn({connection:this.connection,address:g});for(let[I,C]of Object.entries(p))u[I]=C;let A=r?ze.default.toBase58():c!=null?c:await De(this.connection,this.blockhashCommitment),k=new rt({payerKey:this.feePayer,recentBlockhash:A,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 V;let{skipPreflight:C=!0,sendAndConfirm:K,notSendToRpc:v}=I||{};if(xe([w]),(V=this.owner)!=null&&V.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(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(p,A)=>{p.sign(u[A])}),{builder:this,transactions:a,signers:u,instructionTypes:l,buildProps:i,execute:async p=>{var h;let{sequentially:A,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(A){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(A){let C=0,K=[],v=async()=>{if(!I[C])return;let V=await this.connection.sendTransaction(I[C],{skipPreflight:x});K.push({txId:V,status:"sent",signedTx:I[C]}),k==null||k([...K]),C++;let T=!1,B=null,S=null,L=M=>{B!==null&&clearInterval(B),S!==null&&this.connection.removeSignatureListener(S);let _=K.findIndex(se=>se.txId===V);if(_>-1){if(K[_].status==="error"||K[_].status==="success")return;K[_].status=M.err?"error":"success"}k==null||k([...K]),M.err||v()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var M;if(T){clearInterval(B);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(T=!0,clearInterval(B),L({err:((M=_.meta)==null?void 0:M.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){T=!0,clearInterval(B),console.error("getTransaction timeout:",_,V)}},Tt)),S=this.connection.onSignature(V,M=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,L(M)},"confirmed"),this.connection.getSignatureStatus(V)};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 A=e||{},{splitIns:t=[],computeBudgetConfig:i}=A,r=le(A,["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 V;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),(V=this.owner)!=null&&V.isKeyPair){if(x){let T=0,B=[];for(let S of u){if(++T,T<=I){B.push("tx skipped");continue}let L=await ln(this.connection,S,this.signers.find(M=>M.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=[],M=async()=>{if(!B[S])return;S<I&&(L.push({txId:"",status:"success",signedTx:B[S]}),h==null||h([...L]),S++,M());let _=await this.connection.sendRawTransaction(B[S].serialize(),{skipPreflight:K});L.push({txId:_,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===_);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||M()};this.loopMultiTxStatus&&(X=setInterval(async()=>{var Y;if(se){clearInterval(X);return}try{let ie=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});ie&&(se=!0,clearInterval(X),te({err:((Y=ie.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",_))}catch(ie){se=!0,clearInterval(X),console.error("getTransaction timeout:",ie,_)}},Tt)),U=this.connection.onSignature(_,Y=>{if(se){this.connection.removeSignatureListener(U);return}se=!0,te(Y)},"confirmed"),this.connection.getSignatureStatus(_)};return await M(),{txIds:L.map(_=>_.txId),signedTxs:B}}else{let S=[];for(let L=0;L<B.length;L+=1){let M=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:K});S.push(M)}return{txIds:S,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var V;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 cn(this.connection):await un(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 A=await sn({connection:this.connection,address:p});for(let[T,B]of Object.entries(A))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 M of[...new Set(g)])l[M]!==void 0&&(L[M]=l[M]);if(t&&et({instructions:[...k.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let M=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...C]}).compileToV0Message(Object.values(l));h.push(new at(M))}else{let M=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(l));h.push(new at(M))}I.push(Array.from(new Set(C.map(M=>M.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(M=>x[M]).filter(M=>M!==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(V=this.owner)!=null&&V.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:M,skipPreflight:_=!0}=T||{};if(h.map(async(X,U)=>{I[U].length&&X.sign(I[U]),M&&(X.message.recentBlockhash=M)}),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:_});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:_}))),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:_});Y.push({txId:Pe,status:"sent",signedTx:U[te]}),S==null||S([...Y]),te++;let $e=!1,Ve=null,lt=null,Sn=Se=>{Ve!==null&&clearInterval(Ve),lt!==null&&this.connection.removeSignatureListener(lt);let Ae=Y.findIndex(Vo=>Vo.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&&(Ve=setInterval(async()=>{var Se;if($e){clearInterval(Ve);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:1});Ae&&($e=!0,clearInterval(Ve),Sn({err:((Se=Ae.meta)==null?void 0:Se.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){$e=!0,clearInterval(Ve),console.error("getTransaction timeout:",Ae,Pe)}},Tt)),lt=this.connection.onSignature(Pe,Se=>{if($e){this.connection.removeSignatureListener(lt);return}$e=!0,Sn(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:_});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 qi}from"@solana/web3.js";import Ui from"bn.js";function Gi(o){return typeof o=="object"&&o!==null&&![ne,ue,qi,q,Ui,de,ke].some(e=>typeof e=="object"&&o instanceof e)}function ye(o){return typeof o=="string"?Ht(o):Array.isArray(o)?o.map(e=>ye(e)):Gi(o)?Object.fromEntries(Object.entries(o).map(([e,t])=>[e,ye(t)])):o}import zi from"bn.js";var It=new zi(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"},Xi=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 Im=D("Raydium_Api");import{PublicKey as hd,SystemProgram as Id}from"@solana/web3.js";import{AccountLayout as Cd,createAssociatedTokenAccountIdempotentInstruction as Rd,TOKEN_PROGRAM_ID as Ld,TOKEN_2022_PROGRAM_ID as Od}from"@solana/spl-token";var mn=(...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(mn(e))}logInfo(...e){this.logger.info(mn(e))}logAndCreateError(...e){let t=mn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as ed,SystemProgram as nd}from"@solana/web3.js";import rd from"bn.js";import{createCloseAccountInstruction as cd,createInitializeAccountInstruction as ld,createTransferInstruction as md,TOKEN_PROGRAM_ID as dd}from"@solana/spl-token";import{Keypair as Wm,PublicKey as qm}from"@solana/web3.js";import zm from"bn.js";import{TOKEN_PROGRAM_ID as Hm}from"@solana/spl-token";var Bt=b([s("mint"),s("owner"),n("amount"),H("delegateOption"),s("delegate"),y("state"),H("isNativeOption"),n("isNative"),n("delegatedAmount"),H("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 Ab,TOKEN_2022_PROGRAM_ID as wb,TOKEN_PROGRAM_ID as kb}from"@solana/spl-token";import{PublicKey as hb}from"@solana/web3.js";import Bb from"bn.js";import Kb from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Dy,TOKEN_2022_PROGRAM_ID as Wy,TOKEN_PROGRAM_ID as qy}from"@solana/spl-token";import{Keypair as zy,PublicKey as Xy,SystemProgram as Hy,TransactionInstruction as Qy}from"@solana/web3.js";import $y from"bn.js";import W from"bn.js";var Xe=new W(1).shln(64);var Hi=new W(1).shln(128),dn=new W(1).shln(64).subn(1),Qi=new W(1).shln(128).subn(1);var Ye=new W("4295048016"),He=new W("79226673521066979257578248091"),Zi=new W("59543866431248"),$i=new W("184467440737095516"),ji=new W("15793534762490258745");var pn=60,Gd=new W("18446743708227953217"),Ji=[{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 j=new W(0),Ne=new W(1),zd=new W(-1);var Xd=new W("18446744073700000000");var er=b([F(8),y("bump"),Z("index"),s("owner"),H("protocolFeeRate"),H("tradeFeeRate"),Z("tickSpacing"),H("fundFeeRate"),P(H(),1),s("fundOwner"),P(n(),3)]),tr=b([H("blockTimestamp"),Ee("tickCumulative"),P(n(),4)]),uo=b([F(8),ce("initialized"),n("recentEpoch"),Z("observationIndex"),s("poolId"),P(tr,ro,"observations"),P(n(),4)]),nr=b([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),H("volatilityReference"),H("volatilityAccumulator"),n("lastUpdateTimestamp"),P(y(),46)]),or=b([y("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),N("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),s("mint"),s("vault"),s("creator"),N("growthGlobalX64")]),fn=b([F(8),y("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("observationId"),y("mintDecimalsA"),y("mintDecimalsB"),Z("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),me("tickCurrent"),H(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),P(N(),4),y("status"),y("feeOn"),F(6),P(or,st,"rewardInfos"),F(8*16,"tickArrayBitmap"),P(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),nr.replicate("dynamicFeeInfo"),P(n(),46)]),ir=b([N("growthInsideLastX64"),n("rewardAmountOwed")]),rr=b([F(8),y("bump"),s("nftMint"),s("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),P(ir,st,"rewardInfos"),n("recentEpoch"),P(n(),7)]),Zd=b([F(8),y("bump"),s("poolId"),me("tickLower"),me("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),P(N(),st,"rewardGrowthInside"),n("recentEpoch"),P(n(),7)]),ar=b([me("tick"),Vn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),P(N(),st,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),N("unfilledRatioX64"),P(H(),3)]),co=b([F(8),s("poolId"),me("startTickIndex"),P(ar,pn,"ticks"),y("initializedTickCount"),n("recentEpoch"),P(y(),107)]),sr=b([F(8),y("bump"),P(s(),ao,"operationOwners"),P(s(),so,"whitelistMints")]),ur=b([F(8),s("poolId"),s("owner"),me("tick"),ce("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),N("unfilledRatioX64"),P(n(),4)]),lo=b([F(8),s("poolId"),F(8*8*Kt,"positiveTickArrayBitmap"),F(8*8*Kt,"negativeTickArrayBitmap")]),$d=b([F(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),P(n(),8)]),cr=b([F(8),s("wallet"),y("nonceIndex"),n("orderNonce"),P(n(),4)]),jd=b([n(),y("bump"),s("owner"),s("poolId"),s("positionId"),s("nftAccount"),P(n(),8)]),lr=b([F(8),y("bump"),s("lockOwner"),s("poolId"),s("positionId"),s("nftAccount"),s("lockNftMint"),n("recentEpoch"),P(n(),8)]);import tp from"bn.js";var dp=Buffer.from("amm_config","utf8"),dr=Buffer.from("pool","utf8"),pr=Buffer.from("pool_vault","utf8"),pp=Buffer.from("pool_reward_vault","utf8"),fp=Buffer.from("position","utf8"),yp=Buffer.from("tick_array","utf8"),bp=Buffer.from("operation","utf8"),gp=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Pp=Buffer.from("observation","utf8"),Ap=Buffer.from("support_mint","utf8"),wp=Buffer.from("dynamic_fee_config","utf8"),kp=Buffer.from("permission","utf8");var Tp=Buffer.from("locked_position","utf8");import{sha256 as xr}from"js-sha256";import fr from"bn.js";import Sp from"decimal.js";var xp=new fr(1).shln(256).subn(1);import Xp from"bn.js";import Fp from"bn.js";import _p from"decimal.js";import $p from"bn.js";import Jp from"decimal.js";import{PublicKey as Df}from"@solana/web3.js";import qf from"bn.js";import{TOKEN_2022_PROGRAM_ID as Zf,TOKEN_PROGRAM_ID as $f}from"@solana/spl-token";import ty from"decimal.js";import Cf from"bn.js";import bf from"bn.js";import dy from"bn.js";function ee(o){let e=`global:${o}`;return Buffer.from(xr.digest(e)).slice(0,8)}uo.span;var ab=D("Raydium_Clmm"),sb={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 Pn}from"@solana/web3.js";var Or=b([y("instruction")]),Nr=b([y("instruction")]),Mr=b([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),N("accRewardPerShare"),s("rewardVault"),s("rewardMint"),s("rewardSender"),n("rewardType"),P(n(),15,"padding")]),Fr=b([n("state"),n("nonce"),s("lpVault"),s("rewardVault"),s(),s(),n(),n(),n("totalReward"),N("perShareReward"),n("lastSlot"),n("perSlotReward")]),vr=b([n("state"),n("nonce"),s("lpVault"),s("rewardVaultA"),n("totalRewardA"),N("perShareRewardA"),n("perSlotRewardA"),y("option"),s("rewardVaultB"),F(7),n("totalRewardB"),N("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),s()]),_r=b([n(),n("state"),n("nonce"),n("validRewardTokenNum"),N("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),s("lpMint"),s("lpVault"),P(Mr,5,"rewardInfos"),s("creator"),s(),P(n(),32,"padding")]),Vr=new Proxy(Fr,{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)}}),Er=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)}}),Dr=b([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),Wr=b([y("instruction"),n("nonce"),P(Dr,5,"rewardTimeInfo")]),qr=b([y("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),Ur=b([y("instruction"),n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),ng=b([n("state"),s("id"),s("owner"),n("deposited"),P(n(),1,"rewardDebts")]),Ao=b([n("state"),s("id"),s("owner"),n("deposited"),P(N(),1,"rewardDebts"),n(""),n("voteLockedBalance"),P(n(),15)]),og=b([n("state"),s("id"),s("owner"),n("deposited"),P(n(),2,"rewardDebts")]),Gr=b([n("state"),s("id"),s("owner"),n("deposited"),P(N(),2,"rewardDebts"),P(n(),17)]),zr=b([n(),n("state"),s("id"),s("owner"),n("deposited"),P(N(),5,"rewardDebts"),P(n(),16)]),Xr=b([y("instruction"),n("amount")]),Yr=b([s("mint"),s("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),_n("digitShift"),P(y(),7,"reserved1"),P(n(),7,"reserved2")]),Hr=b([F(8),s("governanceProgramId"),s("realm"),s("realmGoverningTokenMint"),s("realmAuthority"),P(y(),32,"reserved1"),P(Yr,4,"votingMints"),Ee("timeOffset"),y("bump"),P(y(),7,"reserved2"),P(n(),11,"reserved3")]),Qr=b([Ee("startTime"),Ee("endTime"),y("kind"),P(y(),15,"reserved")]),Zr=b([P(Qr,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),ce("isUsed"),ce("allowClawback"),y("votingMintConfigIdx"),P(y(),29,"reserved")]),$r=b([F(8),s("voterAuthority"),s("registrar"),P(Zr,32,"deposits"),y("voterBump"),y("voterWweightRecordBump"),P(y(),94,"reserved")]);import{NATIVE_MINT as dg}from"@solana/spl-token";var pg=D("Raydium_farm_config"),jr=new Pn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Jr=new Pn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var fg=new Pn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ct={"Standard SPL":0,"Option tokens":1},wo={[$n.toString()]:3,[jn.toString()]:4,[Jn.toString()]:5,[on.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 Hg,TransactionInstruction as Qg}from"@solana/web3.js";import $g 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 sa=b([H("mintAuthorityOption"),s("mintAuthority"),n("supply"),y("decimals"),y("isInitialized"),H("freezeAuthorityOption"),s("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ua,TOKEN_PROGRAM_ID as Be}from"@solana/spl-token";import{PublicKey as z,SystemProgram as To,SYSVAR_RENT_PUBKEY as ca,TransactionInstruction as ge}from"@solana/web3.js";import Rt from"bn.js";var Lt=D("Raydium_liquidity_instruction");function la(o){let{poolInfo:e,poolKeys:t,userKeys:i,baseAmountIn:r,quoteAmountIn:c,fixedSide:a,otherAmountMin:u,modelDataPubKey:l=Le}=o,g=Buffer.alloc(Ut.span);Ut.encode({instruction:3,baseAmountIn:G(r),quoteAmountIn:G(c),otherAmountMin:G(u),fixedSide:a==="base"?j: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 ma(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(Gt.span);Gt.encode({instruction:4,lpAmount:G(r),baseAmountMin:G(c),quoteAmountMin:G(a)},p);let A=[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?A.push(f({pubkey:u})):(A.push(f({pubkey:l.id})),A.push(f({pubkey:l.id}))),A.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:A,data:p})}return new ge({programId:l.programId,keys:[]})}function da({programId:o,ammId:e,ammAuthority:t,ammOpenOrders:i,lpMint:r,coinMint:c,pcMint:a,coinVault:u,pcVault:l,withdrawQueue:g,ammTargetOrders:p,poolTempLp:A,marketProgramId:k,marketId:w,userWallet:x,userCoinVault:h,userPcVault:I,userLpVault:C,nonce:K,openTime:v,coinAmount:V,pcAmount:T,ammConfigId:B,feeDestinationId:S}){let L=b([y("instruction"),y("nonce"),n("openTime"),n("pcAmount"),n("coinAmount")]),M=[{pubkey:Be,isSigner:!1,isWritable:!1},{pubkey:ua,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}],_=Buffer.alloc(L.span);return L.encode({instruction:1,nonce:K,openTime:v,coinAmount:V,pcAmount:T},_),{instruction:new ge({keys:M,programId:o,data:_}),instructionType:$.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 pa({poolKeys:o,userKeys:e,amountIn:t,minAmountOut:i,modelDataPubKey:r=Le},c){let a=ye(o),u=Buffer.alloc(Et.span);Et.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 fa({poolKeys:o,userKeys:e,maxAmountIn:t,amountOut:i,modelDataPubKey:r=Le},c){let a=ye(o),u=Buffer.alloc(Dt.span);Dt.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 ya(o,e,t,i,r,c,a,u,l,g){let p=b([y("instructionId"),n("amountIn"),n("minAmountOut")]),A=Buffer.alloc(p.span);p.encode({instructionId:16,amountIn:l,minAmountOut:g},A);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:A})}function ba(o,e,t,i,r,c,a,u,l,g){let p=b([y("instructionId"),n("maxAmountIn"),n("amountOut")]),A=Buffer.alloc(p.span);p.encode({instructionId:17,maxAmountIn:l,amountOut:g},A);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:A})}function ho(o){let{poolKeys:e,version:t,userKeys:i,amountIn:r,amountOut:c,fixedSide:a}=o;if(t===4){if(a==="in")return ya(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 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()));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 pa(E(O({},u),{amountIn:r,minAmountOut:c}),t);if(a==="out")return fa(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(Wt.span);Wt.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:ca,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,ga=b([n("x"),n("y"),n("price")]),Pa=b([n("accountType"),n("status"),n("multiplier"),n("validDataCount"),P(ga,Fe,"DataElement")]);function Aa(o,e){return[0,Fe-2]}function wa(o){return[0,Fe-2]}function ka(o){return[0,Fe-2]}function Ta(o,e,t){let[i,r]=Aa(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,A=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===A)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<A)return[u,u+1,!0];c=u+1}}return[u,u,!1]}function wn(o,e,t){let[i,r,c]=Ta(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),A=a*p,k=(l-a)*(e*u-a*t)*g,w=A+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 ha(o,e){let[t,i]=wa(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 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].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]=ha(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,A=o.DataElement[a].price,k=o.DataElement[c].y,w=o.DataElement[a].y;if(e>=l&&e<=g)return i?[A,w,!0,u]:[p,k,!0,u];{let x,h;return i?(x=p+(A-p)*(e-l)/(g-l),h=k-(r-l)*o.multiplier/A):(x=p+(A-p)*(e-l)/(g-l),h=w+(g-r)*o.multiplier/p),[x,h,!1,u]}}}function Ba(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].x,!1,u];{let l=o.DataElement[c].x,g=o.DataElement[a].x,p=o.DataElement[c].price,A=o.DataElement[a].price,k=o.DataElement[c].y,w=o.DataElement[a].y;if(e>=w&&e<=k)return i?[A,g,!0,u]:[p,l,!0,u];{let x,h;return i?(x=p+(A-p)*(k-e)/(k-w),h=l+A*(k-r)/o.multiplier):(x=p+(A-p)*(k-e)/(k-w),h=g-p*(r-w)/o.multiplier),[x,h,!1,u]}}}function Sa(o,e){let t=So(o,e,0,!1);return t[3]?t[0]:0}function Ka(o,e,t,i){let r=wn(o,e,t),c=Me(o,e,r),a=Me(o,t,r),u=Me(o,i,r),l=!0,[g,p,A,k]=So(o,c,u,l);if(!k)return 0;if(A)return i*o.multiplier/g;{let w=a-p;return Bo(o,w,r)}}function xa(o,e,t,i){let r=wn(o,e,t),c=Me(o,e,r),a=Me(o,t,r),u=Me(o,i,r),l=!1,[g,p,A,k]=Ba(o,a,u,l);if(!k)return 0;if(A)return i*g/o.multiplier;{let w=c-p;return Bo(o,w,r)}}function Ca(o){let e=Pa.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 Ra(o,e,t,i){let r=Sa(o,Me(o,e,wn(o,e,t)))/o.multiplier;return i?r:1/r}var An=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=Ca(e==null?void 0:e.data))}}};import qw from"bn.js";import Gw from"decimal.js";import{TOKEN_PROGRAM_ID as jA}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 La(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 Oa=b([F(5),La("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 bT}from"@solana/web3.js";import{AccountLayout as PT,NATIVE_MINT as AT,TOKEN_2022_PROGRAM_ID as wT,TOKEN_PROGRAM_ID as kT,createAssociatedTokenAccountIdempotentInstruction as TT}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 RT from"bn.js";import OT from"decimal.js";import{PublicKey as Ok,TransactionInstruction as Nk,Keypair as Fk,SystemProgram as vk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Vk,TOKEN_2022_PROGRAM_ID as Ek,TOKEN_PROGRAM_ID as Dk}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"),Bk=Buffer.from("creator_fee_share","utf8");var Sk=Buffer.from("locked_liquidity","utf8");var Yk=D("Raydium_cpmm"),Hk={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 Da=b([F(8),y("bump"),ce("disableCreatePool"),Z("index"),n("tradeFeeRate"),n("protocolFeeRate"),n("fundFeeRate"),n("createPoolFee"),s("protocolOwner"),s("fundOwner"),n("creatorFeeRate"),n("creatorFeeShareRate"),P(n(),14)]),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"),P(y(),6),n("creatorFeesMintA"),n("creatorFeesMintB"),P(n(),28)]),$k=b([F(8),s("configId"),P(n(),30)]),jk=b([F(8),y("bump"),s("creator"),s("ammConfig"),n("shareRate"),P(n(),8)]);import{PublicKey as FK,SystemProgram as vK}from"@solana/web3.js";import{createTransferInstruction as VK,TOKEN_PROGRAM_ID as EK,TOKEN_2022_PROGRAM_ID as DK,createAssociatedTokenAccountIdempotentInstruction as WK,createSyncNativeInstruction as UK,createTransferCheckedInstruction as GK}from"@solana/spl-token";import ss from"bn.js";import YK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Nh,TOKEN_2022_PROGRAM_ID as Mh,TOKEN_PROGRAM_ID as Fh}from"@solana/spl-token";import{SystemProgram as Eh,TransactionInstruction as Dh}from"@solana/web3.js";import Ua from"bn.js";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"),Sh=Buffer.from("platform_curve_rule","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]),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]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Gh=new Ua("18446744073709551615");var Ga=b([n(),n("epoch"),y("curveType"),Z("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"),P(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"),P(y(),54)]),Hh=b([n(),n("epoch"),s("poolId"),s("beneficiary"),n("claimedAmount"),n("tokenShareAmount"),P(n(),8)]),Ya=b([y("migrateType"),y("migrateCpmmFeeOn"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod")]),Qh=b([n("epoch"),y("index"),s("configId"),Ya.replicate("bondingCurveParam"),P(n(),50)]),Ro=b([n(),n("epoch"),s("platformClaimFeeWallet"),s("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),P(y(),64,"name"),P(y(),256,"web"),P(y(),256,"img"),s("cpConfigId"),n("creatorFeeRate"),s("transferFeeExtensionAuth"),s("platformVestingWallet"),n("platformVestingScale"),s("platformCpCreator"),y("restrictGlobalConfig"),y("restrictCurveParam"),s("curveRuleManager"),P(y(),78)]),Ha=b([y("field"),y("op"),N("value")]),Qa=b([Z("groupId"),n("epoch"),Vt(Ha,"constraints")]),Za=b([n(),y("bump"),y("version"),s("platformId"),s("configId"),n("epoch"),P(n(),8),Vt(Qa,"groups")]);import{TOKEN_2022_PROGRAM_ID as jh,TOKEN_PROGRAM_ID as Jh}from"@solana/spl-token";import $a from"bn.js";var mI=new $a(1e6);import yI from"bn.js";import gI from"decimal.js";import QI from"bn.js";import $I from"decimal.js";import hI from"bn.js";import BI from"decimal.js";import FI from"bn.js";import _I from"decimal.js";import No from"bn.js";import Tn from"decimal.js";var Ot=class{static _multipler(e){return new Tn(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:i}){return new Tn(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 No(r.mul(this._Q64).toFixed(0))}};Ot._Q64=new Tn(new No(1).shln(64).toString());import{NATIVE_MINT as dS,TOKEN_2022_PROGRAM_ID as pS,TOKEN_PROGRAM_ID as fS,createAssociatedTokenAccountIdempotentInstruction as bS,createSyncNativeInstruction as gS,getTransferFeeConfig as PS,unpackMint as AS}from"@solana/spl-token";import J from"bn.js";import{PublicKey as is,SystemProgram as TS}from"@solana/web3.js";import CS from"decimal.js";var RS={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 is("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new J(0),cliffPeriod:new J(0),unlockPeriod:new J(0),startTime:new J(0),totalAllocatedShare:new J(0)}},LS=new J(1e4);var rs={[eo.toBase58()]:3};var as=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 tK}from"@solana/web3.js";var aK=D("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as yK,TOKEN_2022_PROGRAM_ID as bK,TOKEN_PROGRAM_ID as gK}from"@solana/spl-token";import{PublicKey as AK,SystemProgram as wK,TransactionInstruction as kK}from"@solana/web3.js";import hK from"bn.js";var hx=new ss(0);import{PublicKey as us,Transaction as hn,TransactionInstruction as cs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ls}from"@solana/spl-token";import Fo 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 Fo(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(A=>oe.getPdaOwnerId(t,A,r,p).publicKey));let l=await Te(e,[...a,...u]),g=[];for(let p=0;p<l.length;p++){let A=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(),V=C.endTime.toNumber(),T=K.tokenInfo.map(L=>L.debtAmount.gt(new Fo(0))).filter(L=>!L).length!==3,B=c>v&&c<V&&C.status===1,S=T&&B;g.push({programId:t,poolId:w,ammId:C.ammId,ownerAccountId:x,snapshotLpAmount:K.lpAmount,project:oe.VERSION_PROJECT[A],openTime:v,endTime:V,canClaim:S,canClaimErrorType:T?B?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:C.tokenInfo.map((L,M)=>({mintAddress:L.mintAddress,mintVault:L.mintVault,mintDecimals:L.mintDecimals,perLpLoss:L.perLpLoss,debtAmount:K.tokenInfo[M].debtAmount.add(K.tokenInfo[M].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:A}=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});A&&r.addInstruction(A),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 A=[];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,A.push(w))}r.addInstruction({instructions:[oe.makeClaimInstruction({programId:p.programId,poolInfo:p,ownerInfo:{wallet:c,ownerPda:p.ownerAccountId,claimAddress:A}})]})}let{transaction:u,signers:l}=r.build(),g=r.allInstructions;return Xt(g,[c,...l.map(p=>p.publicKey)])?[{transaction:u,signer:l}]:[{transaction:new hn().add(...g.slice(0,r.AllTxData.instructions.length-1)),signer:l},{transaction:new hn().add(...g.slice(r.AllTxData.instructions.length-1)),signer:[]},{transaction:new hn().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:ls,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 cs({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"),P(b([y("mintDecimals"),s("mintAddress"),s("mintVault"),n("perLpLoss"),n("totalClaimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),P(n(),10,"padding")]),pe.OWNER_LAYOUT=b([F(8),y("bump"),y("version"),s("poolId"),s("owner"),n("lpAmount"),P(b([s("mintAddress"),n("debtAmount"),n("claimedAmount")]),oe.CLAIMED_NUM,"tokenInfo"),P(n(),4,"padding")]),pe.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new us(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 Wx}from"@solana/web3.js";import{getTransferFeeConfig as Ux,MintLayout as Gx,TOKEN_2022_PROGRAM_ID as zx,TOKEN_PROGRAM_ID as Xx,unpackMint as Yx}from"@solana/spl-token";var wR=new ve(2),kR=new ve(3),TR=new ve(5),In=new ve(10),hR=new ve(100),IR=new ve(1e3),BR=new ve(1e4);function en(o){return In.pow(G(o))}var ds=D("Raydium_amount"),vo=nt(ms);function ps(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")):ds.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=In.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,A]=ps(i.toString(),t.decimals);l=G(p),g=G(A)}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 fs}from"@solana/web3.js";var ys=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=fs.createProgramAddressSync(c,o)}catch(c){if(c instanceof TypeError)throw c;i++;continue}return{publicKey:r,nonce:i}}throw ys.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 kn({programId:o}){let{publicKey:e}=re([Buffer.from("amm_config_account_seed","utf-8")],o);return e}function _e({name:o,programId:e,marketId:t}){let{publicKey:i}=re([e.toBuffer(),t.toBuffer(),Buffer.from(o,"utf-8")],e);return i}function Ps({programId:o,marketId:e}){let{publicKey:t}=re([o.toBuffer(),e.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],o);return t}function Mo({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=_e({name:"amm_associated_seed",programId:u,marketId:t}),p=_e({name:"lp_mint_associated_seed",programId:u,marketId:t}),{publicKey:A,nonce:k}=Mo({programId:u}),w=_e({name:"coin_vault_associated_seed",programId:u,marketId:t}),x=_e({name:"pc_vault_associated_seed",programId:u,marketId:t}),h=_e({name:"temp_lp_token_associated_seed",programId:u,marketId:t}),I=Ps({programId:u,marketId:t}),C=_e({name:"target_associated_seed",programId:u,marketId:t}),K=_e({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:A,nonce:k,baseVault:w,quoteVault:x,lpVault:h,openOrders:I,targetOrders:C,withdrawQueue:K,marketVersion:e,marketProgramId:l,marketId:t,marketAuthority:v,lookupTableAccount:bs.default,configId:kn({programId:u})}}var Bn={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},Ko=o=>{let e={},t=gs.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:Bn,week:Bn,month:Bn,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:r.marketId.toBase58(),configId:kn({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{ga as DataElement,Uo as LIQUIDITY_FEES_DENOMINATOR,qo as LIQUIDITY_FEES_NUMERATOR,Go as LIQUIDITY_VERSION_TO_SERUM_VERSION,bu as LIQUIDITY_VERSION_TO_STATE_LAYOUT,An as StableLayout,Ut as addLiquidityLayout,si as createPoolFeeLayout,da as createPoolV4InstructionV2,yu as createPoolV4Layout,Et as fixedSwapInLayout,Dt as fixedSwapOutLayout,Ca as formatLayout,kn as getAssociatedConfigId,Ps as getAssociatedOpenOrders,va as getAssociatedPoolKeys,xa as getDxByDyBaseIn,Ka as getDyByDxBaseIn,Mo as getLiquidityAssociatedAuthority,_e as getLiquidityAssociatedId,Ra as getStablePrice,Wt as initPoolLayout,qt as liquidityStateV4Layout,ai as liquidityStateV5Layout,Io as makeAMMSwapInstruction,ho as makeAMMSwapV2Instruction,la as makeAddLiquidityInstruction,xA as makeInitPoolInstructionV4,pa as makeSwapFixedInInstruction,fa as makeSwapFixedOutInstruction,Pa as modelDataInfoLayout,zo as poolLpAuthority,ma as removeLiquidityInstruction,Gt as removeLiquidityLayout,KA as simulatePoolInfoInstruction,ya as swapBaseInV2Instruction,ba as swapBaseOutV2Instruction,Ko as toAmmComputePoolInfo};
//# sourceMappingURL=index.mjs.map