UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 79.1 kB
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(r,t,n)=>t in r?ko(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,R=(r,t)=>{for(var n in t||(t={}))ln.call(t,n)&&cn(r,n,t[n]);if(ot)for(var n of ot(t))mn.call(t,n)&&cn(r,n,t[n]);return r},F=(r,t)=>To(r,ho(t));var se=(r,t)=>{var n={};for(var o in r)ln.call(r,o)&&t.indexOf(o)<0&&(n[o]=r[o]);if(r!=null&&ot)for(var o of ot(r))t.indexOf(o)<0&&mn.call(r,o)&&(n[o]=r[o]);return n};import Ao from"axios";import{PublicKey as So}from"@solana/web3.js";import{get as dn,set as Io}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(o=>typeof o=="object"?JSON.stringify(o):o).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}},pn={},Bo={};function E(r){let t=dn(pn,r);if(!t){let n=dn(Bo,r);t=new St({name:r,logLevel:n}),Io(pn,r,t)}return t}import{MINT_SIZE as Ma,TOKEN_PROGRAM_ID as Fa,getTransferFeeConfig as va,unpackMint as Va}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function ye(r,t,n){let{batchRequest:o,commitment:u="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),d=xt(t,c),p=new Array(d.length).fill([]);if(o){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 So(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 hC from"decimal.js";import Mo from"big.js";import es from"bn.js";import Ko from"toformat";var xo=Ko,qe=xo;import rt from"big.js";import Ro from"bn.js";import Lo from"decimal.js-light";import Ue from"bn.js";var fn=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>=fn||r<=-fn)&&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(Lo),Oo={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},No={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new Ro(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:""},o=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:Oo[o]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},o=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=No[o]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var cs=E("Raydium_amount"),ls=qe(Mo);import{PublicKey as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var at={chainId:101,address:vo.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"}},le={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 Ot}from"@solana/web3.js";import{PublicKey as z,SystemProgram as bn,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 Eo=[Se({pubkey:_o,isWritable:!1}),Se({pubkey:bn.programId,isWritable:!1}),Se({pubkey:Vo,isWritable:!1})];function Rt({publicKey:r,transformSol:t}){let n=gn(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 gn(r){try{return new z(r)}catch{return r}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),Ps=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Do=new z("Sysvar1nstructions1111111111111111111111111"),Wo=bn.programId,As=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ws=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ks=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ts=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),hs=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Is=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Bs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ss=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ks=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),xs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Cs=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:o,name:u,skipMint:c=!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=o||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=c?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(R({},le),{mint:le.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:o="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=o}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import qo from"bn.js";var Ws=new U(new qo(100));var Ys=E("Raydium_price");import{merge as Bx}from"lodash";import{PublicKey as sl,SystemProgram as ul}from"@solana/web3.js";import{AccountLayout as pl,createAssociatedTokenAccountIdempotentInstruction as fl,TOKEN_PROGRAM_ID as yl,TOKEN_2022_PROGRAM_ID as bl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Dt,SystemProgram as Qo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Zo from"axios";import{PublicKey as Ft,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function vt({connection:r,address:t,cluster:n="mainnet"}){let o=await ye(r,[...new Set(t.map(c=>c.toString()))].map(c=>new Ft(c))),u={};for(let c=0;c<t.length;c++){let d=o[c],p=t[c];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={},Vt=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Ft(t),o=await r.getAccountInfo(n);return o&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(o.data)})),Ke},xe={},_t=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Ft(t),o=await r.getAccountInfo(n);return o&&(xe[t]=new Ce({key:n,state:Ce.deserialize(o.data)})),xe};var H={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 Pn,Keypair as wn,PublicKey as Uo,Transaction as kn,TransactionMessage as Go,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as zo}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function ct(r){let t=[],n=[];return r.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(H.SetComputeUnitPrice)),r.units&&(t.push(Pn.setComputeUnitLimit({units:r.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(r,t){var o,u;let n=t!=null?t:"confirmed";return(u=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:n})))==null?void 0:u.blockhash}async function lt(r,t){return r.getSignatureStatuses([t]),new Promise((n,o)=>{let u=setTimeout(o,6e4);r.onSignature(t,c=>{if(clearTimeout(u),!c.err){n("");return}o(Object.assign(c.err,{txId:t}))},"confirmed")})}function Et(r,t){r.length<1&&An.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function me(r,t){let[n,o]=Uo.findProgramAddressSync(r,t);return{publicKey:n,nonce:o}}function Xe({instructions:r,payer:t,signers:n}){return Et(r,[t,...n])}function Ye({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:o=wn.generate().publicKey.toString()}){let c=new Go({payerKey:t,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(c).serialize()).toString("base64").length<hn}catch{return!1}}var Xo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Yo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof Tn&&(t=Xo(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 kn&&(n.recentBlockhash||(n.recentBlockhash=zo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Yo(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 o;let t=(await Zo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(o=t==null?void 0:t[15])!=null?o:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:o}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Qo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let o=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:o=[],instructionTypes:u=[],endInstructionTypes:c=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...d.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:o}){return t===0?await this.buildV0(F(R({},n||{}),{lookupTableAddress:o})):this.build(n)}build(t){var o;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.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:c,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=c!=null?c: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:o}=t,{transaction:u}=this.build(o),c=n.filter(b=>b.transaction.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.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 V of d){if(++v,v<=x)continue;let g=await Dt(this.connection,V,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((V,g)=>(V.recentBlockhash=I,p[g].length&&V.sign(...p[g]),V));ke(S);let v=await this.signAllTransactions(S);if(h){let V=0,g=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[V]}),B==null||B([...g]),V++;let C=!1,L=null,_=null,re=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);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&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},mt)),_=this.connection.onSignature(k,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:o}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:o})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:c}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await _t(this.connection):await Vt(this.connection)),n),y=Array.from(new Set([...o,...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():c!=null?c:await Re(this.connection,this.blockhashCommitment),B=new Ze({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 He(B);return x.sign(this.signers),{builder:this,transaction:x,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var V;let{skipPreflight:K=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([x]),(V=this.owner)!=null&&V.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:o}=t,{transaction:u}=await this.buildV0(o),c=n.filter(b=>b.builder.instructions.length>0),d=[u,...c.map(b=>b.transaction)],p=[this.signers,...c.map(b=>b.signers)],y=[...this.instructionTypes,...c.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:o,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 V=await this.connection.sendTransaction(I[K],{skipPreflight:M});S.push({txId:V,status:"sent",signedTx:I[K]}),B==null||B([...S]),K++;let g=!1,w=null,k=null,C=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let _=S.findIndex(re=>re.txId===V);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=L.err?"error":"success"}B==null||B([...S]),L.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(g){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(g=!0,clearInterval(w),C({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){g=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},mt)),k=this.connection.onSignature(V,L=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(V)};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:o||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:o}=h,u=se(h,["splitIns","computeBudgetConfig"]),c=o?ct(o):{instructions:[],instructionTypes:[]},d=this.signers.reduce((x,M)=>F(R({},x),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(x=>{let M=[...P,x],A=o?[...c.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:o?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:K})?p.push(new Qe().add(...c.instructions,...P)):p.push(new Qe().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:o?[...c.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new Qe().add(...c.instructions,...P)):p.push(new Qe().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 V;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),(V=this.owner)!=null&&V.isKeyPair){if(M){let g=0,w=[];for(let k of p){if(++g,g<=I){w.push("tx skipped");continue}let C=await Dt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});w.push(C)}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,C=[],L=async()=>{if(!w[k])return;k<I&&(C.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...C]),k++,L());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:S});C.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...C]),k++;let re=!1,q=null,W=null,J=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=C.findIndex(pe=>pe.txId===_);if(ne>-1){if(C[ne].status==="error"||C[ne].status==="success")return;C[ne].status=G.err?"error":"success"}A==null||A([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(q),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,_)}},mt)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:C.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let C=0;C<w.length;C+=1){let L=await this.connection.sendRawTransaction(w[C].serialize(),{skipPreflight:S});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:c=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await _t(this.connection):await Vt(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...c])),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(R({},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!==o[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===o[S]?1:0;let C={};for(let L of[...new Set(P)])y[L]!==void 0&&(C[L]=y[L]);if(n&&Ye({instructions:[...B.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:x})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new He(L))}I.push(Array.from(new Set(K.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),K=[g]}}),K.length>0){let w=[...new Set(K.map(k=>k.keys.filter(C=>C.isSigner).map(C=>C.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 Ze({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new He(k))}else{let k=new Ze({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new He(k))}I.push(w)}return(V=this.owner)!=null&&V.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:C=0,recentBlockHash:L,skipPreflight:_=!0}=g||{};if(A.map(async(q,W)=>{I[W].length&&q.sign(I[W]),L&&(q.message.recentBlockhash=L)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let J of A){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:_});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:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(C,A.length)),W=[...A.slice(0,C),...q];if(w){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<C){G.push({txId:"",status:"success",signedTx:W[J]}),k==null||k([...G]),J++,ne();return}let pe=await this.connection.sendTransaction(W[J],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[J]}),k==null||k([...G]),J++;let We=!1,Be=null,nt=null,un=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(wo=>wo.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:0});fe&&(We=!0,clearInterval(Be),un({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,un(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:_});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 _c,SystemProgram as Dc}from"@solana/web3.js";import Uc from"bn.js";import{createCloseAccountInstruction as Yc,createInitializeAccountInstruction as Qc,createTransferInstruction as Zc,TOKEN_PROGRAM_ID as Hc}from"@solana/spl-token";import{Keypair as Bc,PublicKey as Sc}from"@solana/web3.js";import Cc from"bn.js";import{TOKEN_PROGRAM_ID as Oc}from"@solana/spl-token";import{PublicKey as si}from"@solana/web3.js";import xn,{isBN as Cn}from"bn.js";import{bits as Ho,BitStructure as Ru,blob as jo,Blob as Lu,cstr as Ou,f32 as Nu,f32be as Mu,f64 as Fu,f64be as vu,greedy as Vu,Layout as $o,ns64 as _u,ns64be as Eu,nu64 as Du,nu64be as Wu,offset as Jo,s16 as qu,s16be as Uu,s24 as Gu,s24be as zu,s32 as ei,s32be as Xu,s40 as Yu,s40be as Qu,s48 as Zu,s48be as Hu,s8 as ju,seq as ti,struct as $u,Structure as ni,u16 as oi,u16be as Ju,u24 as ec,u24be as tc,u32 as ii,u32be as nc,u40 as oc,u40be as ic,u48 as rc,u48be as ac,u8 as ri,UInt as ai,union as sc,Union as uc,unionLayoutDiscriminator as cc,utf8 as lc}from"@solana/buffer-layout";var pt=$o,In=ni;var qt=ai;var Bn=ri,Q=oi;var ft=ii;var ue=ei;var Sn=ti;var N=jo;var Ut=Ho,Kn=Jo;var he=class extends pt{constructor(n,o,u){super(n,u);this.blob=N(n),this.signed=o}decode(n,o=0){let u=new xn(this.blob.decode(n,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,o,u=0){return typeof n=="number"&&(n=new xn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),o,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,o=0){let u=this._lower.decode(n,o),c=this._upper.decode(n,o+this._lower.span);return R(R({},u),c)}encode(n,o,u=0){return this._lower.encode(n,o,u)+this._upper.encode(n,o,u+this._lower.span)}};function l(r){return new qt(1,r)}function X(r){return new qt(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function Rn(r){return new he(1,!0,r)}function Oe(r){return new he(8,!0,r)}function Ln(r){return new he(16,!0,r)}var je=class extends pt{constructor(n,o,u,c){super(n.span,c);this.layout=n,this.decoder=o,this.encoder=u}decode(n,o){return this.decoder(this.layout.decode(n,o))}encode(n,o,u){return this.layout.encode(this.encoder(n),o,u)}getSpan(n,o){return this.layout.getSpan(n,o)}};function i(r){return new je(N(32),t=>new si(t),t=>t.toBuffer(),r)}function ae(r){return new je(Bn(),ui,ci,r)}function ui(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function ci(r){return r?1:0}function On(r,t){let n=ft("length"),o=m([n,f(r,Kn(n,-n.span),"values")]);return new je(o,({values:u})=>u,u=>({values:u}),t)}var Gt=class extends In{decode(t,n){return super.decode(t,n)}};function m(r,t,n){return new Gt(r,t,n)}function f(r,t,n){let o,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(c,d){if(!o){let p=Reflect.get(c,"count");o=Cn(p)?p.toNumber():p,Reflect.set(c,"count",o)}return Reflect.get(c,d)},set(c,d,p){return d==="count"&&(o=p),Reflect.set(c,d,p)}});return Sn(r,u,n)}var bt=m([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),l("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as mg,SystemProgram as dg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as fg}from"@solana/spl-token";import{PublicKey as hl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Bl}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"),zt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Cl=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),mi=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Rl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),di=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),pi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),fi=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ll=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),yi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),bi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Ol=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),gi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Pi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ai=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Nl=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ml=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Fl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),vl=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Vl=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 Wf,TOKEN_2022_PROGRAM_ID as qf,TOKEN_PROGRAM_ID as Uf}from"@solana/spl-token";import{PublicKey as zf}from"@solana/web3.js";import Yf from"bn.js";import Zf from"decimal.js";import{TOKEN_PROGRAM_ID as jl}from"@solana/spl-token";import{PublicKey as tm}from"@solana/web3.js";var wi=m([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as cf,TOKEN_2022_PROGRAM_ID as lf,TOKEN_PROGRAM_ID as mf}from"@solana/spl-token";import{Keypair as ff,PublicKey as yf,SystemProgram as gf,TransactionInstruction as Pf}from"@solana/web3.js";import wf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var ki=new D(1).shln(128),Yt=new D(1).shln(64).subn(1),Ti=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var Qt=60,pm=new D("18446743708227953217"),Si=[{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 $e=3,Wn=100;var qn=10,Un=100,Pt=14;var j=new D(0),Ve=new D(1),fm=new D(-1);var ym=new D("18446744073700000000");var Ki=m([N(8),l("bump"),Q("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Q("tickSpacing"),X("fundFeeRate"),f(X(),1),i("fundOwner"),f(e(),3)]),xi=m([X("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Gn=m([N(8),ae("initialized"),e("recentEpoch"),Q("observationIndex"),i("poolId"),f(xi,Wn,"observations"),f(e(),4)]),Ci=m([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Ri=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Zt=m([N(8),l("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Q("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),l("status"),l("feeOn"),N(6),f(Ri,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),f(e(),46)]),Li=m([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=m([N(8),l("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Li,$e,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Am=m([N(8),l("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),$e,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Ni=m([ue("tick"),Ln("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(X(),3)]),zn=m([N(8),i("poolId"),ue("startTickIndex"),f(Ni,Qt,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Mi=m([N(8),l("bump"),f(i(),qn,"operationOwners"),f(i(),Un,"whitelistMints")]),Fi=m([N(8),i("poolId"),i("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),f(e(),4)]),Xn=m([N(8),i("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),wm=m([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),f(e(),8)]),vi=m([N(8),i("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),km=m([e(),l("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),f(e(),8)]),Vi=m([N(8),l("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Im from"bn.js";var Fm=Buffer.from("amm_config","utf8"),Ei=Buffer.from("pool","utf8"),Di=Buffer.from("pool_vault","utf8"),vm=Buffer.from("pool_reward_vault","utf8"),Vm=Buffer.from("position","utf8"),_m=Buffer.from("tick_array","utf8"),Em=Buffer.from("operation","utf8"),Dm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Wm=Buffer.from("observation","utf8"),qm=Buffer.from("support_mint","utf8"),Um=Buffer.from("dynamic_fee_config","utf8"),Gm=Buffer.from("permission","utf8");var zm=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Wi from"bn.js";import Zm from"decimal.js";var jm=new Wi(1).shln(256).subn(1);import yd from"bn.js";import id from"bn.js";import ad from"decimal.js";import wd from"bn.js";import Td from"decimal.js";import{PublicKey as up}from"@solana/web3.js";import lp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Pp,TOKEN_PROGRAM_ID as Ap}from"@solana/spl-token";import hp from"decimal.js";import jd from"bn.js";import _d from"bn.js";import Mp from"bn.js";function $(r){let t=`global:${r}`;return Buffer.from(tr.digest(t)).slice(0,8)}Gn.span;var xf=E("Raydium_Clmm"),Cf={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};var Jn=(n=>(n.ALL="all",n.Strict="strict",n))(Jn||{}),eo=(o=>(o.All="all",o.Standard="Standard",o.Concentrated="Concentrated",o))(eo||{});import{PublicKey as Jt}from"@solana/web3.js";var rr=m([l("instruction")]),ar=m([l("instruction")]),sr=m([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),f(e(),15,"padding")]),ur=m([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),cr=m([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),l("option"),i("rewardVaultB"),N(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),lr=m([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),f(sr,5,"rewardInfos"),i("creator"),i(),f(e(),32,"padding")]),mr=new Proxy(ur,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(r,t,n)}}),dr=new Proxy(cr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},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(lr,{get(r,t,n){return t==="decode"?(...o)=>{let u=r.decode(...o);return F(R({},u),{version:6,rewardInfos:u.rewardInfos.map(c=>{var d;return F(R({},c),{rewardType:((d=Object.entries(tt).find(p=>String(p[1])===c.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(r,t,n)}}),pr=m([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),fr=m([l("instruction"),e("nonce"),f(pr,5,"rewardTimeInfo")]),yr=m([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),br=m([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Cy=m([e("state"),i("id"),i("owner"),e("deposited"),f(e(),1,"rewardDebts")]),no=m([e("state"),i("id"),i("owner"),e("deposited"),f(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Ry=m([e("state"),i("id"),i("owner"),e("deposited"),f(e(),2,"rewardDebts")]),gr=m([e("state"),i("id"),i("owner"),e("deposited"),f(O(),2,"rewardDebts"),f(e(),17)]),Pr=m([e(),e("state"),i("id"),i("owner"),e("deposited"),f(O(),5,"rewardDebts"),f(e(),16)]),Ar=m([l("instruction"),e("amount")]),wr=m([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Rn("digitShift"),f(l(),7,"reserved1"),f(e(),7,"reserved2")]),kr=m([N(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),f(l(),32,"reserved1"),f(wr,4,"votingMints"),Oe("timeOffset"),l("bump"),f(l(),7,"reserved2"),f(e(),11,"reserved3")]),Tr=m([Oe("startTime"),Oe("endTime"),l("kind"),f(l(),15,"reserved")]),hr=m([f(Tr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),l("votingMintConfigIdx"),f(l(),29,"reserved")]),Ir=m([N(8),i("voterAuthority"),i("registrar"),f(hr,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),f(l(),94,"reserved")]);import{NATIVE_MINT as Ey}from"@solana/spl-token";var Dy=E("Raydium_farm_config"),Br=new Jt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sr=new Jt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Wy=new Jt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},oo={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[zt.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 Zy 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"),Qb={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 QA,TOKEN_PROGRAM_ID as HA}from"@solana/spl-token";import _g from"bn.js";import ao from"bn.js";var Mr=new ao(25),Fr=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 vr=m([l("instruction"),e("amountIn"),e("minAmountOut")]),Vr=m([l("instruction"),e("maxAmountIn"),e("amountOut")]),nP=m([l("instruction"),l("nonce")]),_r=m([l("instruction"),l("nonce"),e("startTime")]),so=m([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("withdrawQueue"),i("lpVault"),i("owner"),e("lpReserve"),f(e(),3,"padding")]),oP=m([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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("modelDataAccount"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("owner"),f(e(),64,"padding")]),Er=m([l("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Dr=m([l("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Wr=m([e("fee")]);var hP=E("Raydium_liquidity_instruction");var qr=5e4,Ur=m([e("x"),e("y"),e("price")]),KP=m([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(Ur,qr,"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 Gr(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 zr=m([N(5),Gr("accountFlags"),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Uk}from"@solana/web3.js";import{AccountLayout as zk,NATIVE_MINT as Xk,TOKEN_2022_PROGRAM_ID as Yk,TOKEN_PROGRAM_ID as Qk,createAssociatedTokenAccountIdempotentInstruction as Zk}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 oT from"bn.js";import rT from"decimal.js";import{PublicKey as ak,TransactionInstruction as sk,Keypair as ck,SystemProgram as lk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as dk,TOKEN_2022_PROGRAM_ID as pk,TOKEN_PROGRAM_ID as fk}from"@solana/spl-token";var Yw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Qw=Buffer.from("amm_config","utf8"),Zw=Buffer.from("pool","utf8"),Hw=Buffer.from("pool_lp_mint","utf8"),jw=Buffer.from("pool_vault","utf8"),$w=Buffer.from("observation","utf8"),Jw=Buffer.from("permission","utf8"),ek=Buffer.from("support_mint","utf8");var tk=Buffer.from("locked_liquidity","utf8");var kk=E("Raydium_cpmm"),Tk={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 na=m([N(8),l("bump"),ae("disableCreatePool"),Q("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),f(e(),15)]),uo=m([N(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),l("bump"),l("status"),l("lpDecimals"),l("mintDecimalA"),l("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),l("feeOn"),ae("enableCreatorFee"),f(l(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),f(e(),28)]),Bk=m([N(8),i("configId"),f(e(),30)]);import{PublicKey as HS,SystemProgram as jS}from"@solana/web3.js";import{createTransferInstruction as JS,TOKEN_PROGRAM_ID as eK,TOKEN_2022_PROGRAM_ID as tK,createAssociatedTokenAccountIdempotentInstruction as nK,createSyncNativeInstruction as iK,createTransferCheckedInstruction as rK}from"@solana/spl-token";import Aa from"bn.js";import uK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as yh,TOKEN_2022_PROGRAM_ID as bh,TOKEN_PROGRAM_ID as gh}from"@solana/spl-token";import{SystemProgram as kh,TransactionInstruction as Th}from"@solana/web3.js";import ca from"bn.js";var ra=m([e(),e("epoch"),l("curveType"),Q("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),i("mintB"),i("protocolFeeOwner"),i("migrateFeeOwner"),i("migrateToAmmWallet"),i("migrateToCpmmWallet"),f(e(),16)]),aa=m([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),sa=m([e(),e("epoch"),l("bump"),l("status"),l("mintDecimalsA"),l("mintDecimalsB"),l("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),aa.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),e("platformVestingShare"),f(l(),54)]),HT=m([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),f(e(),8)]),lo=m([l("migrateType"),l("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),ua=m([e("epoch"),l("index"),i("configId"),lo.replicate("bondingCurveParam"),f(e(),50)]),mo=m([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(l(),64,"name"),f(l(),256,"web"),f(l(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),l("restrictGlobalConfig"),f(l(),107),On(ua,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Kh=new ca("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Lh,TOKEN_PROGRAM_ID as Oh}from"@solana/spl-token";import vh from"bn.js";import _h from"decimal.js";import bI from"bn.js";import PI from"decimal.js";import Gh from"bn.js";import Xh from"decimal.js";import nI from"bn.js";import iI from"decimal.js";import yo from"bn.js";import tn from"decimal.js";var It=class{static _multipler(t){return new tn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:o}){return new tn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(o))}static getPriceX64({price:t,decimalA:n,decimalB:o}){let u=t.mul(this._multipler(o)).div(this._multipler(n));return new yo(u.mul(this._Q64).toFixed(0))}};It._Q64=new tn(new yo(1).shln(64).toString());import{NATIVE_MINT as SB,TOKEN_2022_PROGRAM_ID as KB,TOKEN_PROGRAM_ID as xB,createAssociatedTokenAccountIdempotentInstruction as RB,createSyncNativeInstruction as LB,getTransferFeeConfig as OB,unpackMint as NB}from"@solana/spl-token";import Z from"bn.js";import{PublicKey as ba,SystemProgram as vB}from"@solana/web3.js";import UB from"decimal.js";var GB={initPriceX64:new Z("515752397214619"),supply:new Z(1e15),totalSellA:new Z(7931e11),totalFundRaisingB:new Z(85e9),totalFundRaisingBUSD:new Z(125e8),totalLockedAmount:new Z("0"),cliffPeriod:new Z("0"),unlockPeriod:new Z("0"),decimals:6,virtualA:new Z("1073471847374405"),virtualB:new Z("30050573465"),realA:new Z(0),realB:new Z(0),protocolFee:new Z(0),platformId:new ba("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Z(0),cliffPeriod:new Z(0),unlockPeriod:new Z(0),startTime:new Z(0),totalAllocatedShare:new Z(0)}},zB=new Z(1e4);var ga={[Vn.toBase58()]:3};var Pa=m([N(5),N(8),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as fS}from"@solana/web3.js";var AS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as xS,TOKEN_2022_PROGRAM_ID as CS,TOKEN_PROGRAM_ID as RS}from"@solana/spl-token";import{PublicKey as OS,SystemProgram as NS,TransactionInstruction as MS}from"@solana/web3.js";import vS from"bn.js";var _K=new Aa(0);import{PublicKey as wa,Transaction as nn,TransactionInstruction as ka}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ta}from"@solana/spl-token";import bo 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,o,u){return me([te.SEED_CONFIG.owner.id,n.toBuffer(),o.toBuffer(),Buffer.from(new bo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:o,wallet:u,chainTime:c}){if(o.length===0)return[];let d=o.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/o.length),B=b%o.length,x=d[B],M=p[b],A=y[B],I=y[o.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(),V=K.endTime.toNumber(),g=S.tokenInfo.map(C=>C.debtAmount.gt(new bo(0))).filter(C=>!C).length!==3,w=c>v&&c<V&&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:V,canClaim:k,canClaimErrorType:g?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((C,L)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:S.tokenInfo[L].debtAmount.add(S.tokenInfo[L].claimedAmount)}))})}return P}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:o}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(o),c=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:c,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:c,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:p,signers:y}=u.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:o}){let u=this.createTxBuilder(o),c=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:c,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:c,ownerPda:b.ownerAccountId,claimAddress:h}})]})}let{transaction:p,signers:y}=u.build(),P=u.allInstructions;return Et(P,[c,...y.map(b=>b.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new nn().add(...P.slice(0,u.AllTxData.instructions.length-1)),signer:y},{transaction:new nn().add(...P.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new nn().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:o}){let u=m([]),c=[{pubkey:o.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:o.ownerPda,isSigner:!1,isWritable:!0},...o.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ta,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 ka({keys:c,programId:t,data:p})}},ce=te;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=m([N(8),l("bump"),l("status"),e("openTime"),e("endTime"),i("ammId"),f(m([l("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=m([N(8),l("bump"),l("version"),i("poolId"),i("owner"),e("lpAmount"),f(m([i("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 wa(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 ex}from"@solana/web3.js";import{getTransferFeeConfig as nx,MintLayout as ox,TOKEN_2022_PROGRAM_ID as ix,TOKEN_PROGRAM_ID as rx,unpackMint as ax}from"@solana/spl-token";var NC=new Ie(2),MC=new Ie(3),FC=new Ie(5),Fo=new Ie(10),vC=new Ie(100),VC=new Ie(1e3),_C=new Ie(1e4);function xt(r,t=1,n=[]){let o=[...r];if(t<=0)return n;for(;o.length;)n.push(o.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"},go=F(R({},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 Po="ray_tab_hash",rn="ray_req_hash",ha=()=>{if(typeof window===void 0)return"";let r=sessionStorage.getItem(Po);return r||(r=`ray-${Date.now()}`,sessionStorage.setItem(Po,r)),r},Bt=async o=>{var u=o,{logCount:r=1e3,removeLastLog:t}=u,n=se(u,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(d=>d());let c=JSON.parse(localStorage.getItem(rn)||"[]").slice(0,r-1);t&&c.pop(),new Blob([JSON.stringify(n.data)]).size>1024&&(n.data=JSON.stringify(n.data).substring(0,200)+"..."),c.unshift(F(R({},n),{time:Date.now(),session:ha()}));try{localStorage.setItem(rn,JSON.stringify(c))}catch{if(t){let d=!1,p=JSON.stringify(n.data).substring(0,100);for(c[0].data=p+(p.length>100?"...":"");!d;){c.pop();let y=JSON.stringify(n.data).substring(0,100);c[0].data=y+(y.length>100?"...":"");try{localStorage.setItem(rn,JSON.stringify(c)),d=!0}catch{d=!1}}return new Promise(y=>y())}return Bt(F(R({},n),{logCount:r,removeLastLog:!0}))}};var De=E("Raydium_Api"),an=new Map,sn=new Map;async function LR(r,t,n=1e3){let o;for(;o==null;)try{De.debug(`Request ${r} through endlessRetry`),o=await t()}catch(u){De.error(`Request ${r} failed, retry after ${n} ms`,u),await io(n)}return o}var on=class{constructor({cluster:t,timeout:n,logRequests:o,logCount:u,urlConfigs:c}){this.cluster=t,this.urlConfigs=c||{},this.logCount=u||1e3,this.api=Ao.create({baseURL:this.urlConfigs.BASE_HOST||(this.cluster==="devnet"?go.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 o&&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 o&&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 o=(await Ao.post(t,{id:"getRecentPerformanceSamples",jsonrpc:"2.0",method:"getRecentPerformanceSamples",params:[4]})).result.map(u=>u.numSlots);return o.reduce((u,c)=>u+c,0)/o.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(R({},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(o=>o.toString()).join(",")}`)).data}async getPoolList(t={}){let{type:n="all",sort:o="liquidity",order:u="desc",showFarms:c=!1,nextPageId:d,pageSize:p=100}=t;return(await this.api.get((this.urlConfigs.POOL_LIST||Y.POOL_LIST)+`?size=${p}&hasReward=${c}${n&&n!=="all"?`&poolType=${n}`:""}${o?`&sortField=${o}`:""}${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,o=[],u=n.filter(d=>an.has(d)?(o.push(an.get(d)),!1):!0),c=[];return u.length&&(c=(await this.api.get((this.urlConfigs.POOL_KEY_BY_ID||Y.POOL_KEY_BY_ID)+`?ids=${u.join(",")}`)).data.filter(Boolean),c.forEach(p=>{an.set(p.id,p)})),o.concat(c)}async fetchPoolByMints(t){let{mint1:n,mint2:o,type:u="all",sort:c,order:d="desc",nextPageId:p}=t,[y,P]=[n&&ge(n).toBase58(),o&&o!=="undefined"?ge(o).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}`:""}${c?`&sortField=${c}`:""}${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=sn.get(this.cluster))!=null&&n.length)return sn.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 sn.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,on as Api,go as DEV_API_URLS,Jn as JupTokenType,eo as PoolFetchType,Po as SESSION_KEY,rn as STORAGE_KEY,LR as endlessRetry,ha as getSessionKey,Bt as updateReqHistory};
//# sourceMappingURL=index.mjs.map