@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 78.8 kB
JavaScript
var Ao=Object.defineProperty,wo=Object.defineProperties;var ko=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(i,t,n)=>t in i?Ao(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))ln.call(t,n)&&cn(i,n,t[n]);if(ot)for(var n of ot(t))mn.call(t,n)&&cn(i,n,t[n]);return i},F=(i,t)=>wo(i,ko(t));var se=(i,t)=>{var n={};for(var r in i)ln.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&ot)for(var r of ot(i))t.indexOf(r)<0&&mn.call(i,r)&&(n[r]=i[r]);return n};import go from"axios";import{PublicKey as Io}from"@solana/web3.js";import{get as dn,set as To}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(r=>typeof r=="object"?JSON.stringify(r):r).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={},ho={};function E(i){let t=dn(pn,i);if(!t){let n=dn(ho,i);t=new St({name:i,logLevel:n}),To(pn,i,t)}return t}import{MINT_SIZE as Oa,TOKEN_PROGRAM_ID as Na,getTransferFeeConfig as Ma,unpackMint as Fa}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:c=100}=R({batchRequest:!1},n),d=xt(t,c),p=new Array(d.length).fill([]);if(r){let y=d.map(h=>{let B=i._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 i._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 Io(I),rentEpoch:K}}return null})))}else try{p=await Promise.all(d.map(y=>i.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 CC from"decimal.js";import Oo from"big.js";import $a from"bn.js";import Bo from"toformat";var So=Bo,qe=So;import rt from"big.js";import xo from"bn.js";import Co from"decimal.js-light";import Ue from"bn.js";var fn=9007199254740991;function oe(i){let t=E("Raydium_parseBigNumberish");if(i instanceof Ue)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ue(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=fn||i<=-fn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ue(String(i))):typeof i=="bigint"?new Ue(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ue(0))}var it=E("module/fraction"),Ct=qe(rt),Ge=qe(Co),Ro={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Lo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new xo(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:""},r=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:Ro[r]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Lo[r]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ss=E("Raydium_amount"),us=qe(Oo);import{PublicKey as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var at={chainId:101,address:Mo.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 Fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as vo}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Vo=[Se({pubkey:vo,isWritable:!1}),Se({pubkey:bn.programId,isWritable:!1}),Se({pubkey:Fo,isWritable:!1})];function Rt({publicKey:i,transformSol:t}){let n=gn(i.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(i){try{return new z(i)}catch{return i}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),bs=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_o=new z("Sysvar1nstructions1111111111111111111111111"),Eo=bn.programId,gs=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ps=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),As=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),ws=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ks=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ts=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),hs=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Is=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Bs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ss=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ks=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(i){return Rt({publicKey:i,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:r,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=r||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:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import Do from"bn.js";var Es=new U(new Do(100));var zs=E("Raydium_price");import{merge as Lx}from"lodash";var X={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"},Pn=F(R({},X),{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 An="ray_tab_hash",Ft="ray_req_hash",Wo=()=>{if(typeof window===void 0)return"";let i=sessionStorage.getItem(An);return i||(i=`ray-${Date.now()}`,sessionStorage.setItem(An,i)),i},ct=async r=>{var u=r,{logCount:i=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(Ft)||"[]").slice(0,i-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:Wo()}));try{localStorage.setItem(Ft,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(Ft,JSON.stringify(c)),d=!0}catch{d=!1}}return new Promise(y=>y())}return ct(F(R({},n),{logCount:i,removeLastLog:!0}))}};import{PublicKey as pl,SystemProgram as fl}from"@solana/web3.js";import{AccountLayout as Al,createAssociatedTokenAccountIdempotentInstruction as wl,TOKEN_PROGRAM_ID as kl,TOKEN_2022_PROGRAM_ID as Tl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Wt,SystemProgram as Yo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Qo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function Vt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(c=>c.toString()))].map(c=>new vt(c))),u={};for(let c=0;c<t.length;c++){let d=r[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={},_t=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke},xe={},Et=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.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 wn,Keypair as Tn,PublicKey as qo,Transaction as hn,TransactionMessage as Uo,VersionedTransaction as In}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Go}from"@solana/spl-token";var kn=E("Raydium_txUtil"),Bn=1644;function lt(i){let t=[],n=[];return i.microLamports&&(t.push(wn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(H.SetComputeUnitPrice)),i.units&&(t.push(wn.setComputeUnitLimit({units:i.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function mt(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,c=>{if(clearTimeout(u),!c.err){n("");return}r(Object.assign(c.err,{txId:t}))},"confirmed")})}function Dt(i,t){i.length<1&&kn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&kn.logWithError(`no signers provided:, ${t.toString()}`);let n=new hn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Bn}catch{return!1}}function me(i,t){let[n,r]=qo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return Dt(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=Tn.generate().publicKey.toString()}){let c=new Uo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new In(c).serialize()).toString("base64").length<Bn}catch{return!1}}var zo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Xo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof In&&(t=zo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof hn&&(n.recentBlockhash||(n.recentBlockhash=Go.toBase58()),n.feePayer||(n.feePayer=Tn.generate().publicKey)),t.push(Xo(n))}),console.log("simulate tx string:",t),t}var dt=2e3,pt=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 r;let t=(await Qo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!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(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:c=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),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:r}){return t===0?await this.buildV0(F(R({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.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 Wt(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:r}=t,{transaction:u}=this.build(r),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 Wt(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)}},dt)),_=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:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:c}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(this.connection)),n),y=Array.from(new Set([...r,...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 mt(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:r}=t,{transaction:u}=await this.buildV0(r),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:r,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 mt(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)}},dt)),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:r||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:r}=h,u=se(h,["splitIns","computeBudgetConfig"]),c=r?lt(r):{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=r?[...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:r?[...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:r?[...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 Wt(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,_)}},dt)),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:r=[],lookupTableCache:u={},lookupTableAddress:c=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=R(R({},this.cluster==="devnet"?await Et(this.connection):await _t(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?lt(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!==r[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===r[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 mt(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(Po=>Po.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)}},dt)),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 qt=(...i)=>i.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 pt({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(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let n=qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Gc,SystemProgram as Xc}from"@solana/web3.js";import Zc from"bn.js";import{createCloseAccountInstruction as Jc,createInitializeAccountInstruction as el,createTransferInstruction as tl,TOKEN_PROGRAM_ID as nl}from"@solana/spl-token";import{Keypair as Lc,PublicKey as Oc}from"@solana/web3.js";import Fc from"bn.js";import{TOKEN_PROGRAM_ID as _c}from"@solana/spl-token";import{PublicKey as ai}from"@solana/web3.js";import Rn,{isBN as Ln}from"bn.js";import{bits as Zo,BitStructure as vu,blob as Ho,Blob as Vu,cstr as _u,f32 as Eu,f32be as Du,f64 as Wu,f64be as qu,greedy as Uu,Layout as jo,ns64 as Gu,ns64be as zu,nu64 as Xu,nu64be as Yu,offset as $o,s16 as Qu,s16be as Zu,s24 as Hu,s24be as ju,s32 as Jo,s32be as $u,s40 as Ju,s40be as ec,s48 as tc,s48be as nc,s8 as oc,seq as ei,struct as ic,Structure as ti,u16 as ni,u16be as rc,u24 as ac,u24be as sc,u32 as oi,u32be as uc,u40 as cc,u40be as lc,u48 as mc,u48be as dc,u8 as ii,UInt as ri,union as pc,Union as fc,unionLayoutDiscriminator as yc,utf8 as bc}from"@solana/buffer-layout";var ft=jo,Sn=ti;var Ut=ri;var Kn=ii,Q=ni;var yt=oi;var ue=Jo;var xn=ei;var N=Ho;var Gt=Zo,Cn=$o;var he=class extends ft{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Rn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Rn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},bt=class extends ft{constructor(n){super(8,n);this._lower=Gt(yt(),!1),this._upper=Gt(yt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),c=this._upper.decode(n,r+this._lower.span);return R(R({},u),c)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function l(i){return new Ut(1,i)}function Y(i){return new Ut(4,i)}function e(i){return new he(8,!1,i)}function O(i){return new he(16,!1,i)}function On(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Nn(i){return new he(16,!0,i)}var je=class extends ft{constructor(n,r,u,c){super(n.span,c);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new je(N(32),t=>new ai(t),t=>t.toBuffer(),i)}function ae(i){return new je(Kn(),si,ui,i)}function si(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function ui(i){return i?1:0}function Mn(i,t){let n=yt("length"),r=m([n,f(i,Cn(n,-n.span),"values")]);return new je(r,({values:u})=>u,u=>({values:u}),t)}var zt=class extends Sn{decode(t,n){return super.decode(t,n)}};function m(i,t,n){return new zt(i,t,n)}function f(i,t,n){let r,u=typeof t=="number"?t:Ln(t)?t.toNumber():new Proxy(t,{get(c,d){if(!r){let p=Reflect.get(c,"count");r=Ln(p)?p.toNumber():p,Reflect.set(c,"count",r)}return Reflect.get(c,d)},set(c,d,p){return d==="count"&&(r=p),Reflect.set(c,d,p)}});return xn(i,u,n)}var gt=m([o("mint"),o("owner"),e("amount"),Y("delegateOption"),o("delegate"),l("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as bg,SystemProgram as gg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Ag}from"@solana/spl-token";import{PublicKey as Cl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ll}from"@solana/spl-token";import{PublicKey as T}from"@solana/web3.js";var vn=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Vn=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_n=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Xt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Fl=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),li=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),vl=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),mi=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),di=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),pi=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),qn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Vl=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),fi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yt=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),_l=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),bi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),gi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Pi=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),El=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Dl=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Wl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ql=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Ul=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 Cg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Yf,TOKEN_2022_PROGRAM_ID as Qf,TOKEN_PROGRAM_ID as Zf}from"@solana/spl-token";import{PublicKey as jf}from"@solana/web3.js";import Jf from"bn.js";import ty from"decimal.js";import{TOKEN_PROGRAM_ID as om}from"@solana/spl-token";import{PublicKey as sm}from"@solana/web3.js";var Ai=m([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),l("decimals"),l("isInitialized"),Y("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as yf,TOKEN_2022_PROGRAM_ID as bf,TOKEN_PROGRAM_ID as gf}from"@solana/spl-token";import{Keypair as wf,PublicKey as kf,SystemProgram as hf,TransactionInstruction as If}from"@solana/web3.js";import Sf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var wi=new D(1).shln(128),Qt=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 Zt=60,Am=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 $e=3,Un=100;var Gn=10,zn=100,At=14;var j=new D(0),Ve=new D(1),wm=new D(-1);var km=new D("18446744073700000000");var Si=m([N(8),l("bump"),Q("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),Q("tickSpacing"),Y("fundFeeRate"),f(Y(),1),o("fundOwner"),f(e(),3)]),Ki=m([Y("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Xn=m([N(8),ae("initialized"),e("recentEpoch"),Q("observationIndex"),o("poolId"),f(Ki,Un,"observations"),f(e(),4)]),xi=m([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),f(l(),46)]),Ci=m([l("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),Ht=m([N(8),l("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),l("mintDecimalsA"),l("mintDecimalsB"),Q("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(O(),4),l("status"),l("feeOn"),N(6),f(Ci,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),xi.replicate("dynamicFeeInfo"),f(e(),46)]),Ri=m([O("growthInsideLastX64"),e("rewardAmountOwed")]),Li=m([N(8),l("bump"),o("nftMint"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Ri,$e,"rewardInfos"),e("recentEpoch"),f(e(),7)]),Bm=m([N(8),l("bump"),o("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(O(),$e,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Oi=m([ue("tick"),Nn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),f(O(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),f(Y(),3)]),Yn=m([N(8),o("poolId"),ue("startTickIndex"),f(Oi,Zt,"ticks"),l("initializedTickCount"),e("recentEpoch"),f(l(),107)]),Ni=m([N(8),l("bump"),f(o(),Gn,"operationOwners"),f(o(),zn,"whitelistMints")]),Mi=m([N(8),o("poolId"),o("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),f(e(),4)]),Qn=m([N(8),o("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),Sm=m([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),Fi=m([N(8),o("wallet"),l("nonceIndex"),e("orderNonce"),f(e(),4)]),Km=m([e(),l("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),f(e(),8)]),vi=m([N(8),l("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Rm from"bn.js";var Wm=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),qm=Buffer.from("pool_reward_vault","utf8"),Um=Buffer.from("position","utf8"),Gm=Buffer.from("tick_array","utf8"),zm=Buffer.from("operation","utf8"),Xm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Ym=Buffer.from("observation","utf8"),Qm=Buffer.from("support_mint","utf8"),Zm=Buffer.from("dynamic_fee_config","utf8"),Hm=Buffer.from("permission","utf8");var jm=Buffer.from("locked_position","utf8");import{sha256 as er}from"js-sha256";import Di from"bn.js";import td from"decimal.js";var od=new Di(1).shln(256).subn(1);import kd from"bn.js";import ld from"bn.js";import dd from"decimal.js";import Sd from"bn.js";import xd from"decimal.js";import{PublicKey as fp}from"@solana/web3.js";import bp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Ip,TOKEN_PROGRAM_ID as Bp}from"@solana/spl-token";import Cp from"decimal.js";import op from"bn.js";import Gd from"bn.js";import Dp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(er.digest(t)).slice(0,8)}Xn.span;var Mf=E("Raydium_Clmm"),Ff={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")};import{PublicKey as en}from"@solana/web3.js";var ir=m([l("instruction")]),rr=m([l("instruction")]),ar=m([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),f(e(),15,"padding")]),sr=m([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),ur=m([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),l("option"),o("rewardVaultB"),N(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),cr=m([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("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(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),mr=new Proxy(ur,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);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(i,t,n)}}),to=new Proxy(cr,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);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(i,t,n)}}),dr=m([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),pr=m([l("instruction"),e("nonce"),f(dr,5,"rewardTimeInfo")]),fr=m([l("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),yr=m([l("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),My=m([e("state"),o("id"),o("owner"),e("deposited"),f(e(),1,"rewardDebts")]),no=m([e("state"),o("id"),o("owner"),e("deposited"),f(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Fy=m([e("state"),o("id"),o("owner"),e("deposited"),f(e(),2,"rewardDebts")]),br=m([e("state"),o("id"),o("owner"),e("deposited"),f(O(),2,"rewardDebts"),f(e(),17)]),gr=m([e(),e("state"),o("id"),o("owner"),e("deposited"),f(O(),5,"rewardDebts"),f(e(),16)]),Pr=m([l("instruction"),e("amount")]),Ar=m([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),On("digitShift"),f(l(),7,"reserved1"),f(e(),7,"reserved2")]),wr=m([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),f(l(),32,"reserved1"),f(Ar,4,"votingMints"),Oe("timeOffset"),l("bump"),f(l(),7,"reserved2"),f(e(),11,"reserved3")]),kr=m([Oe("startTime"),Oe("endTime"),l("kind"),f(l(),15,"reserved")]),Tr=m([f(kr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),l("votingMintConfigIdx"),f(l(),29,"reserved")]),hr=m([N(8),o("voterAuthority"),o("registrar"),f(Tr,32,"deposits"),l("voterBump"),l("voterWweightRecordBump"),f(l(),94,"reserved")]);import{NATIVE_MINT as Gy}from"@solana/spl-token";var zy=E("Raydium_farm_config"),Ir=new en("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Br=new en("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Xy=new en("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},oo={[vn.toString()]:3,[Vn.toString()]:4,[_n.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 Lb,SystemProgram as Ob,SYSVAR_CLOCK_PUBKEY as Nb,SYSVAR_RENT_PUBKEY as Mb,TransactionInstruction as Fb}from"@solana/web3.js";import Vb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Eb,createAssociatedTokenAccountIdempotentInstruction as Db,TOKEN_PROGRAM_ID as Wb}from"@solana/spl-token";import sb from"bn.js";import{PublicKey as $y}from"@solana/web3.js";import eb from"bn.js";async function io(i){new Promise(t=>setTimeout(t,i))}var wb=E("Raydium.farm.util");var $b=E("Raydium_farm_instruction"),Jb={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 Dg from"bn.js";import{PublicKey as QA}from"@solana/web3.js";import{AccountLayout as jA,MintLayout as $A,NATIVE_MINT as JA,TOKEN_PROGRAM_ID as tw}from"@solana/spl-token";import Ug from"bn.js";import ao from"bn.js";var Nr=new ao(25),Mr=new ao(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as mP,TOKEN_PROGRAM_ID as dP}from"@solana/spl-token";import{PublicKey as fP,SystemProgram as yP,SYSVAR_RENT_PUBKEY as bP,TransactionInstruction as gP}from"@solana/web3.js";import BP from"bn.js";var Fr=m([l("instruction"),e("amountIn"),e("minAmountOut")]),vr=m([l("instruction"),e("maxAmountIn"),e("amountOut")]),sP=m([l("instruction"),l("nonce")]),Vr=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"),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")]),uP=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"),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")]),_r=m([l("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Er=m([l("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Dr=m([e("fee")]);var xP=E("Raydium_liquidity_instruction");var Wr=5e4,qr=m([e("x"),e("y"),e("price")]),OP=m([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(qr,Wr,"DataElement")]);import{PublicKey as GP}from"@solana/web3.js";import XP from"decimal.js";import{TOKEN_PROGRAM_ID as QP}from"@solana/spl-token";import{PublicKey as vP}from"@solana/web3.js";var EP=E("Raydium_liquidity_serum");import kw from"bn.js";import hw from"decimal.js";import{TOKEN_PROGRAM_ID as kA}from"@solana/spl-token";import{PublicKey as hA}from"@solana/web3.js";import BA from"bn.js";import{SystemProgram as uA,SYSVAR_RENT_PUBKEY as cA,Transaction as lA,TransactionInstruction as mA}from"@solana/web3.js";import{createInitializeAccountInstruction as pA,TOKEN_PROGRAM_ID as fA}from"@solana/spl-token";function Ur(i="accountFlags"){let t=new bt(i);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=m([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 Qk}from"@solana/web3.js";import{AccountLayout as Hk,NATIVE_MINT as jk,TOKEN_2022_PROGRAM_ID as $k,TOKEN_PROGRAM_ID as Jk,createAssociatedTokenAccountIdempotentInstruction as eT}from"@solana/spl-token";import Yw from"bn.js";import jr from"bn.js";var Nw=new jr(0);import Ew from"bn.js";import $r from"bn.js";var Tt=new $r(1e6);import uT from"bn.js";import lT from"decimal.js";import{PublicKey as mk,TransactionInstruction as dk,Keypair as fk,SystemProgram as yk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as gk,TOKEN_2022_PROGRAM_ID as Pk,TOKEN_PROGRAM_ID as Ak}from"@solana/spl-token";var $w=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Jw=Buffer.from("amm_config","utf8"),ek=Buffer.from("pool","utf8"),tk=Buffer.from("pool_lp_mint","utf8"),nk=Buffer.from("pool_vault","utf8"),ok=Buffer.from("observation","utf8"),ik=Buffer.from("permission","utf8"),rk=Buffer.from("support_mint","utf8");var ak=Buffer.from("locked_liquidity","utf8");var Sk=E("Raydium_cpmm"),Kk={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=m([N(8),l("bump"),ae("disableCreatePool"),Q("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),f(e(),15)]),uo=m([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("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)]),Rk=m([N(8),o("configId"),f(e(),30)]);import{PublicKey as tK,SystemProgram as nK}from"@solana/web3.js";import{createTransferInstruction as iK,TOKEN_PROGRAM_ID as rK,TOKEN_2022_PROGRAM_ID as aK,createAssociatedTokenAccountIdempotentInstruction as sK,createSyncNativeInstruction as cK,createTransferCheckedInstruction as lK}from"@solana/spl-token";import Pa from"bn.js";import pK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as wh,TOKEN_2022_PROGRAM_ID as kh,TOKEN_PROGRAM_ID as Th}from"@solana/spl-token";import{SystemProgram as Sh,TransactionInstruction as Kh}from"@solana/web3.js";import ua from"bn.js";var ia=m([e(),e("epoch"),l("curveType"),Q("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)]),ra=m([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),aa=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"),ra.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),l("mintProgramFlag"),l("cpmmCreatorFeeOn"),e("platformVestingShare"),f(l(),54)]),th=m([e(),e("epoch"),o("poolId"),o("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")]),sa=m([e("epoch"),l("index"),o("configId"),lo.replicate("bondingCurveParam"),f(e(),50)]),mo=m([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(l(),64,"name"),f(l(),256,"web"),f(l(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),l("restrictGlobalConfig"),f(l(),107),Mn(sa,"platformCurve")]);var ah=Buffer.from("vault_auth_seed","utf8"),sh=Buffer.from("global_config","utf8"),uh=Buffer.from("pool_vesting","utf8"),ch=Buffer.from("platform_config","utf8"),lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),mh=Buffer.from("creator_fee_vault_auth_seed","utf8"),dh=Buffer.from("platform_global_access","utf8"),ph=Buffer.from("platform_allow_config","utf8");var Lh={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 Oh=new ua("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as vh,TOKEN_PROGRAM_ID as Vh}from"@solana/spl-token";import Wh from"bn.js";import Uh from"decimal.js";import kI from"bn.js";import hI from"decimal.js";import Zh from"bn.js";import jh from"decimal.js";import sI from"bn.js";import cI from"decimal.js";import yo from"bn.js";import nn from"decimal.js";var Bt=class{static _multipler(t){return new nn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new nn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new yo(u.mul(this._Q64).toFixed(0))}};Bt._Q64=new nn(new yo(1).shln(64).toString());import{NATIVE_MINT as LB,TOKEN_2022_PROGRAM_ID as OB,TOKEN_PROGRAM_ID as NB,createAssociatedTokenAccountIdempotentInstruction as FB,createSyncNativeInstruction as vB,getTransferFeeConfig as VB,unpackMint as _B}from"@solana/spl-token";import Z from"bn.js";import{PublicKey as ya,SystemProgram as WB}from"@solana/web3.js";import QB from"decimal.js";var ZB={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 ya("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Z(0),cliffPeriod:new Z(0),unlockPeriod:new Z(0),startTime:new Z(0),totalAllocatedShare:new Z(0)}},HB=new Z(1e4);var ba={[En.toBase58()]:3};var ga=m([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 AS}from"@solana/web3.js";var IS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as NS,TOKEN_2022_PROGRAM_ID as MS,TOKEN_PROGRAM_ID as FS}from"@solana/spl-token";import{PublicKey as VS,SystemProgram as _S,TransactionInstruction as ES}from"@solana/web3.js";import WS from"bn.js";var UK=new Pa(0);import{PublicKey as Aa,Transaction as on,TransactionInstruction as wa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ka}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,r,u){return me([te.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new bo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:c}){if(r.length===0)return[];let d=r.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/r.length),B=b%r.length,x=d[B],M=p[b],A=y[B],I=y[r.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:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),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:r}){let u=this.createTxBuilder(r),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 Dt(P,[c,...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:r}){let u=m([]),c=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:ka,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 wa({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"),o("ammId"),f(m([l("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=m([N(8),l("bump"),l("version"),o("poolId"),o("owner"),e("lpAmount"),f(m([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 Aa(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 ax}from"@solana/web3.js";import{getTransferFeeConfig as ux,MintLayout as cx,TOKEN_2022_PROGRAM_ID as lx,TOKEN_PROGRAM_ID as mx,unpackMint as dx}from"@solana/spl-token";var EC=new Ie(2),DC=new Ie(3),WC=new Ie(5),No=new Ie(10),qC=new Ie(100),UC=new Ie(1e3),GC=new Ie(1e4);function xt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}var De=E("Raydium_Api"),an=new Map,sn=new Map;async function vR(i,t,n=1e3){let r;for(;r==null;)try{De.debug(`Request ${i} through endlessRetry`),r=await t()}catch(u){De.error(`Request ${i} failed, retry after ${n} ms`,u),await io(n)}return r}var rn=class{constructor({cluster:t,timeout:n,logRequests:r,logCount:u,urlConfigs:c}){this.cluster=t,this.urlConfigs=c||{},this.logCount=u||1e3,this.api=go.create({baseURL:this.urlConfigs.BASE_HOST||(this.cluster==="devnet"?Pn.BASE_HOST:X.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 r&&ct({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 r&&ct({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||X.CLMM_CONFIG)).data}async getClmmDynamicConfigs(){return(await this.api.get(this.urlConfigs.CLMM_DYNAMIC_CONFIG||X.CLMM_DYNAMIC_CONFIG)).data}async getCpmmConfigs(){return(await this.api.get(this.urlConfigs.CPMM_CONFIG||X.CPMM_CONFIG)).data}async getClmmPoolLines(t){return(await this.api.get(`${this.urlConfigs.POOL_POSITION_LINE||X.POOL_POSITION_LINE}?id=${t}`)).data}async getBlockSlotCountForSecond(t){if(!t)return 2;let r=(await go.post(t,{id:"getRecentPerformanceSamples",jsonrpc:"2.0",method:"getRecentPerformanceSamples",params:[4]})).result.map(u=>u.numSlots);return r.reduce((u,c)=>u+c,0)/r.length/60}async getChainTimeOffset(){return(await this.api.get(this.urlConfigs.CHAIN_TIME||X.CHAIN_TIME)).data}async getRpcs(){return this.api.get(this.urlConfigs.RPCS||X.RPCS)}async getTokenList(){return(await this.api.get(this.urlConfigs.TOKEN_LIST||X.TOKEN_LIST)).data}async getJupTokenList(){return(await this.api.get("",{baseURL:this.urlConfigs.JUP_TOKEN_LIST||X.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||X.MINT_INFO_ID)+`?mints=${t.map(r=>r.toString()).join(",")}`)).data}async getPoolList(t={}){let{type:n="all",sort:r="liquidity",order:u="desc",showFarms:c=!1,nextPageId:d,pageSize:p=100}=t;return(await this.api.get((this.urlConfigs.POOL_LIST||X.POOL_LIST)+`?size=${p}&hasReward=${c}${n&&n!=="all"?`&poolType=${n}`:""}${r?`&sortField=${r}`:""}${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||X.POOL_SEARCH_BY_ID)+`?ids=${n}`)).data}async fetchPoolKeysById(t){let{idList:n}=t,r=[],u=n.filter(d=>an.has(d)?(r.push(an.get(d)),!1):!0),c=[];return u.length&&(c=(await this.api.get((this.urlConfigs.POOL_KEY_BY_ID||X.POOL_KEY_BY_ID)+`?ids=${u.join(",")}`)).data.filter(Boolean),c.forEach(p=>{an.set(p.id,p)})),r.concat(c)}async fetchPoolByMints(t){let{mint1:n,mint2:r,type:u="all",sort:c,order:d="desc",nextPageId:p}=t,[y,P]=[n&&ge(n).toBase58(),r&&r!=="undefined"?ge(r).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||X.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||X.POOL_SEARCH_LP)+`?lps=${n}`)).data}async fetchFarmInfoById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_INFO||X.FARM_INFO)+`?ids=${n}`)).data}async fetchFarmKeysById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_KEYS||X.FARM_KEYS)+`?ids=${n}`)).data}async fetchAvailabilityStatus(){return(await this.api.get(this.urlConfigs.CHECK_AVAILABILITY||X.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||X.OWNER_BASE_HOST}`+(this.urlConfigs.OWNER_STAKE_FARMS||X.OWNER_STAKE_FARMS).replace("{owner}",t))).data}async fetchCpmmLockInfo(t){return await this.api.get(`${this.urlConfigs.CPMM_LOCK||X.CPMM_LOCK}?id=${t.toString()}`)}};export{rn as Api,vR as endlessRetry};
//# sourceMappingURL=api.mjs.map