@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 79.7 kB
JavaScript
var wo=Object.defineProperty,ko=Object.defineProperties;var To=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(r,t,n)=>t in r?wo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,C=(r,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(r,n,t[n]);if(ot)for(var n of ot(t))dn.call(t,n)&&ln(r,n,t[n]);return r},F=(r,t)=>ko(r,To(t));var se=(r,t)=>{var n={};for(var i in r)mn.call(r,i)&&t.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&ot)for(var i of ot(r))t.indexOf(i)<0&&dn.call(r,i)&&(n[i]=r[i]);return n};import Po from"axios";import{PublicKey as Bo}from"@solana/web3.js";import{get as pn,set as ho}from"lodash";var St=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},fn={},Io={};function E(r){let t=pn(fn,r);if(!t){let n=pn(Io,r);t=new St({name:r,logLevel:n}),ho(fn,r,t)}return t}import{MINT_SIZE as _a,TOKEN_PROGRAM_ID as Va,getTransferFeeConfig as Ea,unpackMint as Da}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function ye(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),d=xt(t,m),p=new Array(d.length).fill([]);if(i){let y=d.map(h=>{let B=r._buildArgs([h.map(x=>x.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:B}}),P=xt(y,10);p=(await(await Promise.all(P.map(async h=>await r._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(B=>{if(B){let{data:x,executable:M,lamports:A,owner:I,rentEpoch:K}=B;return x.length!==2&&x[1]!=="base64"&&Kt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(x[0],"base64"),executable:M,lamports:A,owner:new Bo(I),rentEpoch:K}}return null})))}else try{p=await Promise.all(d.map(y=>r.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ie from"bn.js";import YC from"decimal.js";import No from"big.js";import os from"bn.js";import So from"toformat";var Ko=So,qe=Ko;import rt from"big.js";import Co from"bn.js";import Ro from"decimal.js-light";import Ue from"bn.js";var yn=9007199254740991;function oe(r){let t=E("Raydium_parseBigNumberish");if(r instanceof Ue)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ue(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=yn||r<=-yn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new Ue(String(r))):typeof r=="bigint"?new Ue(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new Ue(0))}var it=E("module/fraction"),Ct=qe(rt),Ge=qe(Ro),Lo={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Oo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new Co(1)){this.numerator=oe(t),this.denominator=oe(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(oe(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Lo[i]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Oo[i]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ds=E("Raydium_amount"),ps=qe(No);import{PublicKey as Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bn}from"@solana/spl-token";var at={chainId:101,address:Fo.default.toBase58(),programId:bn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:bn.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 Ot}from"@solana/web3.js";import{PublicKey as z,SystemProgram as gn,SYSVAR_RENT_PUBKEY as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";function Se({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Vo=[Se({pubkey:_o,isWritable:!1}),Se({pubkey:gn.programId,isWritable:!1}),Se({pubkey:vo,isWritable:!1})];function Rt({publicKey:r,transformSol:t}){let n=Pn(r.toString());if(n instanceof z)return t&&n.equals(we)?be:n;if(t&&n.toString()===we.toBase58())return be;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pn(r){try{return new z(r)}catch{return r}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),ks=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Eo=new z("Sysvar1nstructions1111111111111111111111111"),Do=gn.programId,Ts=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hs=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Is=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Bs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ss=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ks=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Cs=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Rs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ls=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Os=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(r){return Rt({publicKey:r,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Ot&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ot(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Ot.default:Rt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Nt;ee.WSOL=new Nt(F(C({},le),{mint:le.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import Wo from"bn.js";var Gs=new U(new Wo(100));var Zs=E("Raydium_price");import{merge as Qx}from"lodash";import{PublicKey as ll,SystemProgram as ml}from"@solana/web3.js";import{AccountLayout as bl,createAssociatedTokenAccountIdempotentInstruction as gl,TOKEN_PROGRAM_ID as Pl,TOKEN_2022_PROGRAM_ID as Al}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Dt,SystemProgram as Yo,Transaction as He,TransactionMessage as Qe,VersionedTransaction as Ze}from"@solana/web3.js";import Ho from"axios";import{PublicKey as Ft,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function vt({connection:r,address:t,cluster:n="mainnet"}){let i=await ye(r,[...new Set(t.map(m=>m.toString()))].map(m=>new Ft(m))),u={};for(let m=0;m<t.length;m++){let d=i[m],p=t[m];if(!d)continue;let y=new Ce({key:p,state:Ce.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?xe[p.toString()]=y:Ke[p.toString()]=y}return u}var Ke={},_t=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Ft(t),i=await r.getAccountInfo(n);return i&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(i.data)})),Ke},xe={},Vt=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Ft(t),i=await r.getAccountInfo(n);return i&&(xe[t]=new Ce({key:n,state:Ce.deserialize(i.data)})),xe};var Z={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{ComputeBudgetProgram as An,Keypair as kn,PublicKey as qo,Transaction as Tn,TransactionMessage as Uo,VersionedTransaction as hn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var wn=E("Raydium_txUtil"),In=1644;function ct(r){let t=[],n=[];return r.microLamports&&(t.push(An.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Z.SetComputeUnitPrice)),r.units&&(t.push(An.setComputeUnitLimit({units:r.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(r,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=r.getLatestBlockhash)==null?void 0:i.call(r,{commitment:n})))==null?void 0:u.blockhash}async function lt(r,t){return r.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);r.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function Et(r,t){r.length<1&&wn.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&wn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Tn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<In}catch{return!1}}function me(r,t){let[n,i]=qo.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function Xe({instructions:r,payer:t,signers:n}){return Et(r,[t,...n])}function Ye({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=kn.generate().publicKey.toString()}){let m=new Uo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new hn(m).serialize()).toString("base64").length<In}catch{return!1}}var zo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Xo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof hn&&(t=zo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(r){let t=[];return r.forEach(n=>{n instanceof Tn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=kn.generate().publicKey)),t.push(Xo(n))}),console.log("simulate tx string:",t),t}var mt=2e3,dt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 t=(await Ho.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Yo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(F(C({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new He;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Dt(this.connection,n,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let h=await this.signAllTransactions([n]);if(this.signers.length)for(let B of h)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:d}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),m=n.filter(b=>b.transaction.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async b=>{var K;let{sequentially:h,onTxUpdate:B,skipTxCount:x=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},I=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(h){let S=[],v=0;for(let _ of d){if(++v,v<=x)continue;let g=await Dt(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});S.push(g)}return{txIds:S,signedTxs:d}}return{txIds:await await Promise.all(d.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A})))),signedTxs:d}}if(this.signAllTransactions){let S=d.map((_,g)=>(_.recentBlockhash=I,p[g].length&&_.sign(...p[g]),_));ke(S);let v=await this.signAllTransactions(S);if(h){let _=0,g=[],w=async()=>{if(!v[_])return;let k=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[_]}),B==null||B([...g]),_++;let R=!1,O=null,V=null,re=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=g.findIndex(J=>J.txId===k);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}B==null||B([...g]),q.err||w()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(R){clearInterval(O);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(R=!0,clearInterval(O),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){R=!0,clearInterval(O),console.error("getTransaction timeout:",W,k)}},mt)),V=this.connection.onSignature(k,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let _=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});_.push(w)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=C(C({},this.cluster==="devnet"?await Vt(this.connection):await _t(this.connection)),n),y=Array.from(new Set([...i,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Le(I));let b=await vt({connection:this.connection,address:P});for(let[I,K]of Object.entries(b))p[I]=K;let h=u?Le.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),B=new Qe({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let x=new Ze(B);return x.sign(this.signers),{builder:this,transaction:x,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:K=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([x]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(x,{skipPreflight:K});return S&&await lt(this.connection,g),{txId:g,signedTx:x}}if(this.signAllTransactions){let g=await this.signAllTransactions([x]);if(this.signers.length)for(let w of g)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:K}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),m=n.filter(b=>b.builder.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(b,h)=>{b.sign(p[h])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:i,execute:async b=>{var A;let{sequentially:h,onTxUpdate:B,recentBlockHash:x,skipPreflight:M=!0}=b||{};if(x&&d.forEach(I=>I.message.recentBlockhash=x),ke(d),(A=this.owner)!=null&&A.isKeyPair){if(h){let I=[];for(let K of d){let S=await this.connection.sendTransaction(K,{skipPreflight:M});await lt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:M}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d);if(h){let K=0,S=[],v=async()=>{if(!I[K])return;let _=await this.connection.sendTransaction(I[K],{skipPreflight:M});S.push({txId:_,status:"sent",signedTx:I[K]}),B==null||B([...S]),K++;let g=!1,w=null,k=null,R=O=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=S.findIndex(re=>re.txId===_);if(V>-1){if(S[V].status==="error"||S[V].status==="success")return;S[V].status=O.err?"error":"success"}B==null||B([...S]),O.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var O;if(g){clearInterval(w);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(g=!0,clearInterval(w),R({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){g=!0,clearInterval(w),console.error("getTransaction timeout:",V,_)}},mt)),k=this.connection.onSignature(_,O=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let K=[];for(let S=0;S<I.length;S+=1){let v=await this.connection.sendTransaction(I[S],{skipPreflight:M});K.push(v)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:i}=h,u=se(h,["splitIns","computeBudgetConfig"]),m=i?ct(i):{instructions:[],instructionTypes:[]},d=this.signers.reduce((x,M)=>F(C({},x),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(x=>{let M=[...P,x],A=i?[...m.instructions,...M]:M,K=[...new Set(M.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(S=>new Le(S));if(x!==n[b]&&P.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:K})||Xe({instructions:M,payer:this.feePayer,signers:K})))P.push(x);else{if(P.length===0)throw Error("item ins too big");b+=x===n[b]?1:0,Xe({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:K})?p.push(new He().add(...m.instructions,...P)):p.push(new He().add(...P)),y.push(Array.from(new Set(P.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(S=>d[S]).filter(S=>S!==void 0)),P=[x]}}),P.length>0){let M=[...new Set(P.map(A=>A.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(A=>d[A]).filter(A=>A!==void 0);Xe({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new He().add(...m.instructions,...P)):p.push(new He().add(...P)),y.push(M)}return p.forEach(x=>x.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(x=>{x.some(M=>M.publicKey.equals(this.owner.publicKey))||x.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async x=>{var _;let{sequentially:M,onTxUpdate:A,skipTxCount:I=0,recentBlockHash:K,skipPreflight:S=!0}=x||{},v=K!=null?K:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(g,w)=>{g.recentBlockhash=v,y[w].length&&g.sign(...y[w])}),ke(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let g=0,w=[];for(let k of p){if(++g,g<=I){w.push("tx skipped");continue}let R=await Dt(this.connection,k,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});w.push(R)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(I,p.length)),w=[...p.slice(0,I),...g];if(M){let k=0,R=[],O=async()=>{if(!w[k])return;k<I&&(R.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...R]),k++,O());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:S});R.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...R]),k++;let re=!1,q=null,W=null,J=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(pe=>pe.txId===V);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}A==null||A([...R]),G.err||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(re=!0,clearInterval(q),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},mt)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:R.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let R=0;R<w.length;R+=1){let O=await this.connection.sendRawTransaction(w[R].serialize(),{skipPreflight:S});k.push(O)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let v=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Vt(this.connection):await _t(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of P)y[g]===void 0&&b.push(new Le(g));let h=await vt({connection:this.connection,address:b});for(let[g,w]of Object.entries(h))y[g]=w;let B=n?ct(n):{instructions:[],instructionTypes:[]},x=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,w)=>F(C({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],I=[],K=[],S=0;if(this.allInstructions.forEach(g=>{let w=[...K,g],k=n?[...B.instructions,...w]:w;if(g!==i[S]&&K.length<d&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(g);else{if(K.length===0)throw Error("item ins too big");S+=g===i[S]?1:0;let R={};for(let O of[...new Set(P)])y[O]!==void 0&&(R[O]=y[O]);if(n&&Ye({instructions:[...B.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:x})){let O=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new Ze(O))}else{let O=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new Ze(O))}I.push(Array.from(new Set(K.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>M[O]).filter(O=>O!==void 0)),K=[g]}}),K.length>0){let w=[...new Set(K.map(k=>k.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...B.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:x})){let k=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new Ze(k))}else{let k=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new Ze(k))}I.push(w)}return(_=this.owner)!=null&&_.signer&&I.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(I[w])}),{builder:this,transactions:A,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:R=0,recentBlockHash:O,skipPreflight:V=!0}=g||{};if(A.map(async(q,W)=>{I[W].length&&q.sign(I[W]),O&&(q.message.recentBlockhash=O)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let J of A){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:V});await lt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(R,A.length)),W=[...A.slice(0,R),...q];if(w){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<R){G.push({txId:"",status:"success",signedTx:W[J]}),k==null||k([...G]),J++,ne();return}let pe=await this.connection.sendTransaction(W[J],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[J]}),k==null||k([...G]),J++;let We=!1,Be=null,nt=null,cn=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(Ao=>Ao.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(We){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:1});fe&&(We=!0,clearInterval(Be),cn({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},mt)),nt=this.connection.onSignature(pe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,cn(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let J=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Wt=(...r)=>r.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new dt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Wt(t))}logInfo(...t){this.logger.info(Wt(t))}logAndCreateError(...t){let n=Wt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Wc,SystemProgram as Uc}from"@solana/web3.js";import Xc from"bn.js";import{createCloseAccountInstruction as Zc,createInitializeAccountInstruction as $c,createTransferInstruction as jc,TOKEN_PROGRAM_ID as Jc}from"@solana/spl-token";import{Keypair as xc,PublicKey as Cc}from"@solana/web3.js";import Oc from"bn.js";import{TOKEN_PROGRAM_ID as Fc}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as Qo,BitStructure as Nu,blob as Zo,Blob as Mu,cstr as Fu,f32 as vu,f32be as _u,f64 as Vu,f64be as Eu,greedy as Du,Layout as $o,ns64 as Wu,ns64be as qu,nu64 as Uu,nu64be as Gu,offset as jo,s16 as zu,s16be as Xu,s24 as Yu,s24be as Hu,s32 as Jo,s32be as Qu,s40 as Zu,s40be as $u,s48 as ju,s48be as Ju,s8 as ec,seq as ei,struct as tc,Structure as ti,u16 as ni,u16be as nc,u24 as oc,u24be as ic,u32 as oi,u32be as rc,u40 as ac,u40be as sc,u48 as uc,u48be as cc,u8 as ii,UInt as ri,union as lc,Union as mc,unionLayoutDiscriminator as dc,utf8 as pc}from"@solana/buffer-layout";var pt=$o,Bn=ti;var qt=ri;var Sn=ii,H=ni;var ft=oi;var ue=Jo;var Kn=ei;var N=Zo;var Ut=Qo,xn=jo;var he=class extends pt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new Cn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},yt=class extends pt{constructor(n){super(8,n);this._lower=Ut(ft(),!1),this._upper=Ut(ft(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return C(C({},u),m)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(r){return new qt(1,r)}function X(r){return new qt(4,r)}function e(r){return new he(8,!1,r)}function L(r){return new he(16,!1,r)}function Ln(r){return new he(1,!0,r)}function Oe(r){return new he(8,!0,r)}function On(r){return new he(16,!0,r)}var $e=class extends pt{constructor(n,i,u,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function o(r){return new $e(N(32),t=>new ai(t),t=>t.toBuffer(),r)}function ae(r){return new $e(Sn(),si,ui,r)}function si(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ui(r){return r?1:0}function zt(r,t){let n=ft("length"),i=l([n,f(r,xn(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),t)}var Gt=class extends Bn{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new Gt(r,t,n)}function f(r,t,n){let i,u=typeof t=="number"?t:Rn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!i){let p=Reflect.get(m,"count");i=Rn(p)?p.toNumber():p,Reflect.set(m,"count",i)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(i=p),Reflect.set(m,d,p)}});return Kn(r,u,n)}var bt=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as mg,SystemProgram as dg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as fg}from"@solana/spl-token";import{PublicKey as Sl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xl}from"@solana/spl-token";import{PublicKey as T}from"@solana/web3.js";var Mn=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ol=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Nl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ml=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Fl=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),vl=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),_l=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Vl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),El=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Dl=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import Ig from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as zf,TOKEN_2022_PROGRAM_ID as Xf,TOKEN_PROGRAM_ID as Yf}from"@solana/spl-token";import{PublicKey as Qf}from"@solana/web3.js";import $f from"bn.js";import Jf from"decimal.js";import{TOKEN_PROGRAM_ID as em}from"@solana/spl-token";import{PublicKey as im}from"@solana/web3.js";var Ai=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as df,TOKEN_2022_PROGRAM_ID as pf,TOKEN_PROGRAM_ID as ff}from"@solana/spl-token";import{Keypair as gf,PublicKey as Pf,SystemProgram as wf,TransactionInstruction as kf}from"@solana/web3.js";import hf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var wi=new D(1).shln(128),Ht=new D(1).shln(64).subn(1),ki=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),Ti=new D("59543866431248"),hi=new D("184467440737095516"),Ii=new D("15793534762490258745");var Qt=60,bm=new D("18446743708227953217"),Bi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var je=3,Wn=100;var qn=10,Un=100,Pt=14;var $=new D(0),_e=new D(1),gm=new D(-1);var Pm=new D("18446744073700000000");var Si=l([N(8),c("bump"),H("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),H("tickSpacing"),X("fundFeeRate"),f(X(),1),o("fundOwner"),f(e(),3)]),Ki=l([X("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Gn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),f(Ki,Wn,"observations"),f(e(),4)]),xi=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(c(),46)]),Ci=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Zt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ue("tickCurrent"),X(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(L(),4),c("status"),c("feeOn"),N(6),f(Ci,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),xi.replicate("dynamicFeeInfo"),f(e(),46)]),Ri=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Li=l([N(8),c("bump"),o("nftMint"),o("poolId"),ue("tickLower"),ue("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Ri,je,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Tm=l([N(8),c("bump"),o("poolId"),ue("tickLower"),ue("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(L(),je,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Oi=l([ue("tick"),On("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),f(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),f(X(),3)]),zn=l([N(8),o("poolId"),ue("startTickIndex"),f(Oi,Qt,"ticks"),c("initializedTickCount"),e("recentEpoch"),f(c(),107)]),Ni=l([N(8),c("bump"),f(o(),qn,"operationOwners"),f(o(),Un,"whitelistMints")]),Mi=l([N(8),o("poolId"),o("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),f(e(),4)]),Xn=l([N(8),o("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),hm=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),Fi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),f(e(),4)]),Im=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),f(e(),8)]),vi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Km from"bn.js";var Vm=Buffer.from("amm_config","utf8"),Vi=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),Em=Buffer.from("pool_reward_vault","utf8"),Dm=Buffer.from("position","utf8"),Wm=Buffer.from("tick_array","utf8"),qm=Buffer.from("operation","utf8"),Um=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Gm=Buffer.from("observation","utf8"),zm=Buffer.from("support_mint","utf8"),Xm=Buffer.from("dynamic_fee_config","utf8"),Ym=Buffer.from("permission","utf8");var Hm=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import jm from"decimal.js";var ed=new Di(1).shln(256).subn(1);import Pd from"bn.js";import sd from"bn.js";import cd from"decimal.js";import hd from"bn.js";import Bd from"decimal.js";import{PublicKey as mp}from"@solana/web3.js";import pp from"bn.js";import{TOKEN_2022_PROGRAM_ID as kp,TOKEN_PROGRAM_ID as Tp}from"@solana/spl-token";import Sp from"decimal.js";import ep from"bn.js";import Wd from"bn.js";import _p from"bn.js";function j(r){let t=`global:${r}`;return Buffer.from(er.digest(t)).slice(0,8)}Gn.span;var Of=E("Raydium_Clmm"),Nf={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};var Jn=(n=>(n.ALL="all",n.Strict="strict",n))(Jn||{}),eo=(i=>(i.All="all",i.Standard="Standard",i.Concentrated="Concentrated",i))(eo||{});import{PublicKey as en}from"@solana/web3.js";var ir=l([c("instruction")]),rr=l([c("instruction")]),ar=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),f(e(),15,"padding")]),sr=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),ur=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),cr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),f(ar,5,"rewardInfos"),o("creator"),o(),f(e(),32,"padding")]),lr=new Proxy(sr,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return F(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),mr=new Proxy(ur,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return F(C({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(r,t,n)}}),to=new Proxy(cr,{get(r,t,n){return t==="decode"?(...i)=>{let u=r.decode(...i);return F(C({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var d;return F(C({},m),{rewardType:((d=Object.entries(tt).find(p=>String(p[1])===m.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),dr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),pr=l([c("instruction"),e("nonce"),f(dr,5,"rewardTimeInfo")]),fr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),yr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Cy=l([e("state"),o("id"),o("owner"),e("deposited"),f(e(),1,"rewardDebts")]),no=l([e("state"),o("id"),o("owner"),e("deposited"),f(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Ry=l([e("state"),o("id"),o("owner"),e("deposited"),f(e(),2,"rewardDebts")]),br=l([e("state"),o("id"),o("owner"),e("deposited"),f(L(),2,"rewardDebts"),f(e(),17)]),gr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),f(L(),5,"rewardDebts"),f(e(),16)]),Pr=l([c("instruction"),e("amount")]),Ar=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Ln("digitShift"),f(c(),7,"reserved1"),f(e(),7,"reserved2")]),wr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),f(c(),32,"reserved1"),f(Ar,4,"votingMints"),Oe("timeOffset"),c("bump"),f(c(),7,"reserved2"),f(e(),11,"reserved3")]),kr=l([Oe("startTime"),Oe("endTime"),c("kind"),f(c(),15,"reserved")]),Tr=l([f(kr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),f(c(),29,"reserved")]),hr=l([N(8),o("voterAuthority"),o("registrar"),f(Tr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),f(c(),94,"reserved")]);import{NATIVE_MINT as Ey}from"@solana/spl-token";var Dy=E("Raydium_farm_config"),Ir=new en("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Br=new en("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Wy=new en("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},oo={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[Xt.toString()]:6,[Pe.FARM_PROGRAM_ID_V3.toString()]:3,[Pe.FARM_PROGRAM_ID_V4.toString()]:4,[Pe.FARM_PROGRAM_ID_V5.toString()]:5,[Pe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Sb,SystemProgram as Kb,SYSVAR_CLOCK_PUBKEY as xb,SYSVAR_RENT_PUBKEY as Cb,TransactionInstruction as Rb}from"@solana/web3.js";import Ob from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Mb,createAssociatedTokenAccountIdempotentInstruction as Fb,TOKEN_PROGRAM_ID as vb}from"@solana/spl-token";import nb from"bn.js";import{PublicKey as Yy}from"@solana/web3.js";import Qy from"bn.js";async function io(r){new Promise(t=>setTimeout(t,r))}var yb=E("Raydium.farm.util");var Yb=E("Raydium_farm_instruction"),Hb={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 Fg from"bn.js";import{PublicKey as UA}from"@solana/web3.js";import{AccountLayout as XA,MintLayout as YA,NATIVE_MINT as HA,TOKEN_PROGRAM_ID as ZA}from"@solana/spl-token";import Vg from"bn.js";import ao from"bn.js";var Nr=new ao(25),Mr=new ao(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as aP,TOKEN_PROGRAM_ID as sP}from"@solana/spl-token";import{PublicKey as cP,SystemProgram as lP,SYSVAR_RENT_PUBKEY as mP,TransactionInstruction as dP}from"@solana/web3.js";import wP from"bn.js";var Fr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),vr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),nP=l([c("instruction"),c("nonce")]),_r=l([c("instruction"),c("nonce"),e("startTime")]),so=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),f(e(),3,"padding")]),oP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),f(e(),64,"padding")]),Vr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Er=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Dr=l([e("fee")]);var hP=E("Raydium_liquidity_instruction");var Wr=5e4,qr=l([e("x"),e("y"),e("price")]),KP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(qr,Wr,"DataElement")]);import{PublicKey as EP}from"@solana/web3.js";import WP from"decimal.js";import{TOKEN_PROGRAM_ID as UP}from"@solana/spl-token";import{PublicKey as LP}from"@solana/web3.js";var MP=E("Raydium_liquidity_serum");import bw from"bn.js";import Pw from"decimal.js";import{TOKEN_PROGRAM_ID as bA}from"@solana/spl-token";import{PublicKey as PA}from"@solana/web3.js";import wA from"bn.js";import{SystemProgram as oA,SYSVAR_RENT_PUBKEY as iA,Transaction as rA,TransactionInstruction as aA}from"@solana/web3.js";import{createInitializeAccountInstruction as uA,TOKEN_PROGRAM_ID as cA}from"@solana/spl-token";function Ur(r="accountFlags"){let t=new yt(r);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Gr=l([N(5),Ur("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Xk}from"@solana/web3.js";import{AccountLayout as Hk,NATIVE_MINT as Qk,TOKEN_2022_PROGRAM_ID as Zk,TOKEN_PROGRAM_ID as $k,createAssociatedTokenAccountIdempotentInstruction as jk}from"@solana/spl-token";import qw from"bn.js";import $r from"bn.js";var xw=new $r(0);import Mw from"bn.js";import jr from"bn.js";var kt=new jr(1e6);import aT from"bn.js";import uT from"decimal.js";import{PublicKey as uk,TransactionInstruction as ck,Keypair as mk,SystemProgram as dk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as fk,TOKEN_2022_PROGRAM_ID as yk,TOKEN_PROGRAM_ID as bk}from"@solana/spl-token";var Yw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Hw=Buffer.from("amm_config","utf8"),Qw=Buffer.from("pool","utf8"),Zw=Buffer.from("pool_lp_mint","utf8"),$w=Buffer.from("pool_vault","utf8"),jw=Buffer.from("observation","utf8"),Jw=Buffer.from("permission","utf8"),ek=Buffer.from("support_mint","utf8"),tk=Buffer.from("creator_fee_share","utf8");var nk=Buffer.from("locked_liquidity","utf8");var hk=E("Raydium_cpmm"),Ik={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 ta=l([N(8),c("bump"),ae("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),f(e(),14)]),uo=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ae("enableCreatorFee"),f(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),f(e(),28)]),Kk=l([N(8),o("configId"),f(e(),30)]),xk=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),f(e(),8)]);import{PublicKey as wK,SystemProgram as kK}from"@solana/web3.js";import{createTransferInstruction as hK,TOKEN_PROGRAM_ID as IK,TOKEN_2022_PROGRAM_ID as BK,createAssociatedTokenAccountIdempotentInstruction as SK,createSyncNativeInstruction as xK,createTransferCheckedInstruction as CK}from"@solana/spl-token";import Ta from"bn.js";import OK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as bh,TOKEN_2022_PROGRAM_ID as gh,TOKEN_PROGRAM_ID as Ph}from"@solana/spl-token";import{SystemProgram as Th,TransactionInstruction as hh}from"@solana/web3.js";import ia from"bn.js";var th=Buffer.from("vault_auth_seed","utf8"),nh=Buffer.from("global_config","utf8"),oh=Buffer.from("pool_vesting","utf8"),ih=Buffer.from("platform_config","utf8"),rh=Buffer.from("platform_fee_vault_auth_seed","utf8"),ah=Buffer.from("creator_fee_vault_auth_seed","utf8"),sh=Buffer.from("platform_global_access","utf8"),uh=Buffer.from("platform_allow_config","utf8"),ch=Buffer.from("platform_curve_rule","utf8");var Sh={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 Kh=new ia("18446744073709551615");var ra=l([e(),e("epoch"),c("curveType"),H("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),f(e(),16)]),aa=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),sa=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),aa.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),f(c(),54)]),Lh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),f(e(),8)]),ua=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Oh=l([e("epoch"),c("index"),o("configId"),ua.replicate("bondingCurveParam"),f(e(),50)]),lo=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(c(),64,"name"),f(c(),256,"web"),f(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),f(c(),78)]),ca=l([c("field"),c("op"),L("value")]),la=l([H("groupId"),e("epoch"),zt(ca,"constraints")]),ma=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),f(e(),8),zt(la,"groups")]);import{TOKEN_2022_PROGRAM_ID as Fh,TOKEN_PROGRAM_ID as vh}from"@solana/spl-token";import da from"bn.js";var Hh=new da(1e6);import jh from"bn.js";import eI from"decimal.js";import OI from"bn.js";import MI from"decimal.js";import aI from"bn.js";import uI from"decimal.js";import PI from"bn.js";import wI from"decimal.js";import fo from"bn.js";import nn from"decimal.js";var It=class{static _multipler(t){return new nn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new nn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let u=t.mul(this._multipler(i)).div(this._multipler(n));return new fo(u.mul(this._Q64).toFixed(0))}};It._Q64=new nn(new fo(1).shln(64).toString());import{NATIVE_MINT as QB,TOKEN_2022_PROGRAM_ID as ZB,TOKEN_PROGRAM_ID as $B,createAssociatedTokenAccountIdempotentInstruction as JB,createSyncNativeInstruction as eS,getTransferFeeConfig as tS,unpackMint as nS}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Aa,SystemProgram as rS}from"@solana/web3.js";import dS from"decimal.js";var pS={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new Aa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},fS=new Q(1e4);var wa={[_n.toBase58()]:3};var ka=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as VS}from"@solana/web3.js";var US=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as jS,TOKEN_2022_PROGRAM_ID as JS,TOKEN_PROGRAM_ID as eK}from"@solana/spl-token";import{PublicKey as nK,SystemProgram as oK,TransactionInstruction as iK}from"@solana/web3.js";import aK from"bn.js";var ux=new Ta(0);import{PublicKey as ha,Transaction as on,TransactionInstruction as Ia}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ba}from"@solana/spl-token";import yo from"bn.js";var te=class extends ie{static getPdaPoolId(t,n){return me([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,u){return me([te.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new yo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:u,chainTime:m}){if(i.length===0)return[];let d=i.map(b=>te.getPdaPoolId(n,b).publicKey),p=[];for(let b=0;b<te.VERSION_PROJECT.length;b++)p.push(...d.map(h=>te.getPdaOwnerId(n,h,u,b).publicKey));let y=await ye(t,[...d,...p]),P=[];for(let b=0;b<y.length;b++){let h=Math.floor(b/i.length),B=b%i.length,x=d[B],M=p[b],A=y[B],I=y[i.length+b];if(!(A&&I)||A.data.length!==te.POOL_LAYOUT.span||I.data.length!==te.OWNER_LAYOUT.span)continue;let K=te.POOL_LAYOUT.decode(A.data),S=te.OWNER_LAYOUT.decode(I.data),v=K.openTime.toNumber(),_=K.endTime.toNumber(),g=S.tokenInfo.map(R=>R.debtAmount.gt(new yo(0))).filter(R=>!R).length!==3,w=m>v&&m<_&&K.status===1,k=g&&w;P.push({programId:n,poolId:x,ammId:K.ammId,ownerAccountId:M,snapshotLpAmount:S.lpAmount,project:te.VERSION_PROJECT[h],openTime:v,endTime:_,canClaim:k,canClaimErrorType:g?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((R,O)=>({mintAddress:R.mintAddress,mintVault:R.mintVault,mintDecimals:R.mintDecimals,perLpLoss:R.perLpLoss,debtAmount:S.tokenInfo[O].debtAmount.add(S.tokenInfo[O].claimedAmount)}))})}return P}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,d=[];for(let P of t.tokenInfo){let{account:b,instructionParams:h}=await this.scope.account.getOrCreateTokenAccount({mint:P.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:P.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!P.mintAddress.equals(ee.WSOL.mint),associatedOnly:P.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});h&&u.addInstruction(h),d.push(b)}u.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:p,signers:y}=u.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let u=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,d={};for(let b of t){let h=[];for(let B of b.tokenInfo){let{account:x,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!B.mintAddress.equals(ee.WSOL.mint),associatedOnly:B.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),x&&(d[B.mintAddress.toString()]=x,h.push(x))}u.addInstruction({instructions:[te.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:h}})]})}let{transaction:p,signers:y}=u.build(),P=u.allInstructions;return Et(P,[m,...y.map(b=>b.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new on().add(...P.slice(0,u.AllTxData.instructions.length-1)),signer:y},{transaction:new on().add(...P.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new on().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let u=l([]),m=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ba,isSigner:!1,isWritable:!1}],d=Buffer.alloc(u.span);u.encode({},d);let p=Buffer.from([10,66,208,184,161,6,191,98,...d]);return new Ia({keys:m,programId:t,data:p})}},ce=te;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),f(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),f(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new ha(t)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Ix}from"@solana/web3.js";import{getTransferFeeConfig as Sx,MintLayout as Kx,TOKEN_2022_PROGRAM_ID as xx,TOKEN_PROGRAM_ID as Cx,unpackMint as Rx}from"@solana/spl-token";var oR=new Ie(2),iR=new Ie(3),rR=new Ie(5),Mo=new Ie(10),aR=new Ie(100),sR=new Ie(1e3),uR=new Ie(1e4);function xt(r,t=1,n=[]){let i=[...r];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}var Y={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"},bo=F(C({},Y),{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 go="ray_tab_hash",an="ray_req_hash",Sa=()=>{if(typeof window===void 0)return"";let r=sessionStorage.getItem(go);return r||(r=`ray-${Date.now()}`,sessionStorage.setItem(go,r)),r},Bt=async i=>{var u=i,{logCount:r=1e3,removeLastLog:t}=u,n=se(u,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(d=>d());let m=JSON.parse(localStorage.getItem(an)||"[]").slice(0,r-1);t&&m.pop(),new Blob([JSON.stringify(n.data)]).size>1024&&(n.data=JSON.stringify(n.data).substring(0,200)+"..."),m.unshift(F(C({},n),{time:Date.now(),session:Sa()}));try{localStorage.setItem(an,JSON.stringify(m))}catch{if(t){let d=!1,p=JSON.stringify(n.data).substring(0,100);for(m[0].data=p+(p.length>100?"...":"");!d;){m.pop();let y=JSON.stringify(n.data).substring(0,100);m[0].data=y+(y.length>100?"...":"");try{localStorage.setItem(an,JSON.stringify(m)),d=!0}catch{d=!1}}return new Promise(y=>y())}return Bt(F(C({},n),{logCount:r,removeLastLog:!0}))}};var De=E("Raydium_Api"),sn=new Map,un=new Map;async function tL(r,t,n=1e3){let i;for(;i==null;)try{De.debug(`Request ${r} through endlessRetry`),i=await t()}catch(u){De.error(`Request ${r} failed, retry after ${n} ms`,u),await io(n)}return i}var rn=class{constructor({cluster:t,timeout:n,logRequests:i,logCount:u,urlConfigs:m}){this.cluster=t,this.urlConfigs=m||{},this.logCount=u||1e3,this.api=Po.create({baseURL:this.urlConfigs.BASE_HOST||(this.cluster==="devnet"?bo.BASE_HOST:Y.BASE_HOST),timeout:n}),this.api.interceptors.request.use(d=>{let{method:p,baseURL:y,url:P}=d;return De.debug(`${p==null?void 0:p.toUpperCase()} ${y}${P}`),d},d=>(De.error("Request failed"),Promise.reject(d))),this.api.interceptors.response.use(d=>{let{config:p,data:y,status:P}=d,{method:b,baseURL:h,url:B}=p;return i&&Bt({status:P,url:`${h}${B}`,params:p.params,data:y,logCount:this.logCount}),De.debug(`${b==null?void 0:b.toUpperCase()} ${h}${B} ${P}`),y},d=>{let{config:p,response:y={}}=d,{status:P}=y,{method:b,baseURL:h,url:B}=p;return i&&Bt({status:P,url:`${h}${B}`,params:p.params,data:d.message,logCount:this.logCount}),De.error(`${b.toUpperCase()} ${h}${B} ${P||d.message}`),Promise.reject(d)})}async getClmmConfigs(){return(await this.api.get(this.urlConfigs.CLMM_CONFIG||Y.CLMM_CONFIG)).data}async getClmmDynamicConfigs(){return(await this.api.get(this.urlConfigs.CLMM_DYNAMIC_CONFIG||Y.CLMM_DYNAMIC_CONFIG)).data}async getCpmmConfigs(){return(await this.api.get(this.urlConfigs.CPMM_CONFIG||Y.CPMM_CONFIG)).data}async getClmmPoolLines(t){return(await this.api.get(`${this.urlConfigs.POOL_POSITION_LINE||Y.POOL_POSITION_LINE}?id=${t}`)).data}async getBlockSlotCountForSecond(t){if(!t)return 2;let i=(await Po.post(t,{id:"getRecentPerformanceSamples",jsonrpc:"2.0",method:"getRecentPerformanceSamples",params:[4]})).result.map(u=>u.numSlots);return i.reduce((u,m)=>u+m,0)/i.length/60}async getChainTimeOffset(){return(await this.api.get(this.urlConfigs.CHAIN_TIME||Y.CHAIN_TIME)).data}async getRpcs(){return this.api.get(this.urlConfigs.RPCS||Y.RPCS)}async getTokenList(){return(await this.api.get(this.urlConfigs.TOKEN_LIST||Y.TOKEN_LIST)).data}async getJupTokenList(){return(await this.api.get("",{baseURL:this.urlConfigs.JUP_TOKEN_LIST||Y.JUP_TOKEN_LIST})).map(n=>F(C({},n),{chainId:101,programId:n.tokenProgram,address:n.id,logoURI:n.icon,extensions:{},freeze_authority:null,permanent_delegate:null,mint_authority:n.mintAuthority||null,minted_at:Date.now().toString()}))}async getTokenInfo(t){return(await this.api.get((this.urlConfigs.MINT_INFO_ID||Y.MINT_INFO_ID)+`?mints=${t.map(i=>i.toString()).join(",")}`)).data}async getPoolList(t={}){let{type:n="all",sort:i="liquidity",order:u="desc",showFarms:m=!1,nextPageId:d,pageSize:p=100}=t;return(await this.api.get((this.urlConfigs.POOL_LIST||Y.POOL_LIST)+`?size=${p}&hasReward=${m}${n&&n!=="all"?`&poolType=${n}`:""}${i?`&sortField=${i}`:""}${u?`&sortType=${u}`:""}${d?`&nextPageId=${d}`:""}`)).data}async fetchPoolById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.POOL_SEARCH_BY_ID||Y.POOL_SEARCH_BY_ID)+`?ids=${n}`)).data}async fetchPoolKeysById(t){let{idList:n}=t,i=[],u=n.filter(d=>sn.has(d)?(i.push(sn.get(d)),!1):!0),m=[];return u.length&&(m=(await this.api.get((this.urlConfigs.POOL_KEY_BY_ID||Y.POOL_KEY_BY_ID)+`?ids=${u.join(",")}`)).data.filter(Boolean),m.forEach(p=>{sn.set(p.id,p)})),i.concat(m)}async fetchPoolByMints(t){let{mint1:n,mint2:i,type:u="all",sort:m,order:d="desc",nextPageId:p}=t,[y,P]=[n&&ge(n).toBase58(),i&&i!=="undefined"?ge(i).toBase58():""],[b,h]=P&&y>P?[P,y]:[y,P];if(!y&&!P)throw new Error("not search mints provided");return(await this.api.get((this.urlConfigs.POOL_SEARCH_MINT||Y.POOL_SEARCH_MINT)+`?size=100&mint1=${b}${h?`&mint2=${h}`:""}${u&&u!=="all"?`&poolType=${u}`:""}${m?`&sortField=${m}`:""}${d?`&sortType=${d}`:""}${p?`&nextPageId=${p}`:""}`)).data}async fetchPoolByLpMints(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.POOL_SEARCH_LP||Y.POOL_SEARCH_LP)+`?lps=${n}`)).data}async fetchFarmInfoById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_INFO||Y.FARM_INFO)+`?ids=${n}`)).data}async fetchFarmKeysById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_KEYS||Y.FARM_KEYS)+`?ids=${n}`)).data}async fetchAvailabilityStatus(){return(await this.api.get(this.urlConfigs.CHECK_AVAILABILITY||Y.CHECK_AVAILABILITY)).data}async fetchLaunchConfigs(){var n;if((n=un.get(this.cluster))!=null&&n.length)return un.get(this.cluster);let t=await this.api.get(this.cluster==="devnet"?"https://launch-mint-v1-devnet.raydium.io/main/configs":"https://launch-mint-v1.raydium.io/main/configs");return un.set(this.cluster,t.data.data),t.data.data}async fetchFarmPositions(t=""){return(await this.api.get(`${this.urlConfigs.OWNER_BASE_HOST||Y.OWNER_BASE_HOST}`+(this.urlConfigs.OWNER_STAKE_FARMS||Y.OWNER_STAKE_FARMS).replace("{owner}",t))).data}async fetchCpmmLockInfo(t){return await this.api.get(`${this.urlConfigs.CPMM_LOCK||Y.CPMM_LOCK}?id=${t.toString()}`)}};export{Y as API_URLS,rn as Api,bo as DEV_API_URLS,Jn as JupTokenType,eo as PoolFetchType,go as SESSION_KEY,an as STORAGE_KEY,tL as endlessRetry,Sa as getSessionKey,Bt as updateReqHistory};
//# sourceMappingURL=index.mjs.map