@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 73.8 kB
JavaScript
var lo=Object.defineProperty,mo=Object.defineProperties;var po=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(i,t,n)=>t in i?lo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,C=(i,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(i,n,t[n]);if(nt)for(var n of nt(t))sn.call(t,n)&&rn(i,n,t[n]);return i},V=(i,t)=>mo(i,po(t));var ue=(i,t)=>{var n={};for(var r in i)an.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&sn.call(i,r)&&(n[r]=i[r]);return n};import ga from"bn.js";import Pe from"bn.js";import FR from"decimal.js";import ya from"big.js";import AR from"bn.js";import{get as un,set as fo}from"lodash";var Bt=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}},cn={},yo={};function E(i){let t=un(cn,i);if(!t){let n=un(yo,i);t=new Bt({name:i,logLevel:n}),fo(cn,i,t)}return t}import{PublicKey as bo}from"@solana/web3.js";import{MINT_SIZE as xa,TOKEN_PROGRAM_ID as Ca,getTransferFeeConfig as Ra,unpackMint as La}from"@solana/spl-token";var St=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=C({batchRequest:!1},n),y=Kt(t,d),f=new Array(y.length).fill([]);if(r){let g=y.map(O=>{let R=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),x=Kt(g,10);f=(await(await Promise.all(x.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(R=>{if(R){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=R;return B.length!==2&&B[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new bo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(y.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import We from"bn.js";var ln=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof We)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new We(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=ln||i<=-ln)&&t.logWithError(`BigNumberish number overflow: ${i}`),new We(String(i))):typeof i=="bigint"?new We(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new We(0))}import{merge as tC}from"lodash";import Ua from"axios";var mn={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=V(C({},mn),{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 ds=E("Raydium_Api");import{PublicKey as Mc,SystemProgram as Fc}from"@solana/web3.js";import{AccountLayout as Dc,createAssociatedTokenAccountIdempotentInstruction as Wc,TOKEN_PROGRAM_ID as qc,TOKEN_2022_PROGRAM_ID as Uc}from"@solana/spl-token";import{PublicKey as Ce,sendAndConfirmTransaction as Nt,SystemProgram as ho,Transaction as Ge,TransactionMessage as ze,VersionedTransaction as Xe}from"@solana/web3.js";import Io from"axios";import{PublicKey as xt,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Ct({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(d=>d.toString()))].map(d=>new xt(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],f=t[d];if(!y)continue;let g=new Ke({key:f,state:Ke.deserialize(y.data)});u[f.toString()]=g,n==="devnet"?Se[f.toString()]=g:Be[f.toString()]=g}return u}var Be={},Rt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Be[t])return Be;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Be},Se={},Lt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Se[t])return Se;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Se};var Q={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 dn,Keypair as fn,PublicKey as Po,Transaction as yn,TransactionMessage as Ao,VersionedTransaction as bn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wo}from"@solana/spl-token";var pn=E("Raydium_txUtil"),gn=1644;function ot(i){let t=[],n=[];return i.microLamports&&(t.push(dn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(dn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function xe(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 it(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Ot(i,t){i.length<1&&pn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new yn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<gn}catch{return!1}}function ce(i,t){let[n,r]=Po.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function qe({instructions:i,payer:t,signers:n}){return Ot(i,[t,...n])}function Ue({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let d=new Ao({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new bn(d).serialize()).toString("base64").length<gn}catch{return!1}}var ko=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),To=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof bn&&(t=ko(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function we(i){let t=[];return i.forEach(n=>{n instanceof yn&&(n.recentBlockhash||(n.recentBlockhash=wo.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(To(n))}),console.log("simulate tx string:",t),t}var rt=2e3,at=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 Io.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}=ot(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ho.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ce(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.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:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(f=>f!==Ce.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(V(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ge;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:d,skipPreflight:y=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},x=d!=null?d:await xe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),we([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Nt(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let R of O)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:R,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await xe(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of y){if(++F,F<=B)continue;let p=await Nt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(p)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((v,p)=>(v.recentBlockhash=T,f[p].length&&v.sign(...f[p]),v));we(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});p.push({txId:w,status:"sent",signedTx:F[v]}),R==null||R([...p]),v++;let S=!1,L=null,_=null,ie=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=p.findIndex(j=>j.txId===w);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=q.err?"error":"success"}R==null||R([...p]),q.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(S){clearInterval(L);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(S=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){S=!0,clearInterval(L),console.error("getTransaction timeout:",W,w)}},rt)),_=this.connection.onSignature(w,q=>{if(S){this.connection.removeSignatureListener(_);return}S=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:p.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let A=await this.connection.sendRawTransaction(F[p].serialize(),{skipPreflight:P});v.push(A)}return{txIds:v,signedTxs:F}}}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 P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,y=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of g)f[T]===void 0&&x.push(new Ce(T));let b=await Ct({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Ce.default.toBase58():d!=null?d:await xe(this.connection,this.blockhashCommitment),R=new ze({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Xe(R);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(we([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await it(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let A of p)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:y,signers:f,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:R,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&y.forEach(T=>T.message.recentBlockhash=B),we(y),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await it(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),R==null||R([...h]),I++;let p=!1,A=null,w=null,S=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=h.findIndex(ie=>ie.txId===v);if(_>-1){if(h[_].status==="error"||h[_].status==="success")return;h[_].status=L.err?"error":"success"}R==null||R([...h]),L.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(p){clearInterval(A);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(p=!0,clearInterval(A),S({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){p=!0,clearInterval(A),console.error("getTransaction timeout:",_,v)}},rt)),w=this.connection.onSignature(v,L=>{if(p){this.connection.removeSignatureListener(w);return}p=!0,S(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?ot(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((B,M)=>V(C({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],x=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...x,B],P=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Ce(h));if(B!==n[b]&&x.length<12&&(qe({instructions:P,payer:this.feePayer,signers:I})||qe({instructions:M,payer:this.feePayer,signers:I})))x.push(B);else{if(x.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,qe({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:I})?f.push(new Ge().add(...d.instructions,...x)):f.push(new Ge().add(...x)),g.push(Array.from(new Set(x.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),x=[B]}}),x.length>0){let M=[...new Set(x.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>y[P]).filter(P=>P!==void 0);qe({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Ge().add(...d.instructions,...x)):f.push(new Ge().add(...x)),g.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await xe(this.connection,this.blockhashCommitment);if(f.forEach(async(p,A)=>{p.recentBlockhash=F,g[A].length&&p.sign(...g[A])}),we(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,A=[];for(let w of f){if(++p,p<=T){A.push("tx skipped");continue}let S=await Nt(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(S)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...p];if(M){let w=0,S=[],L=async()=>{if(!A[w])return;w<T&&(S.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...S]),w++,L());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});S.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...S]),w++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=S.findIndex(pe=>pe.txId===_);if(te>-1){if(S[te].status==="error"||S[te].status==="success")return;S[te].status=G.err?"error":"success"}P==null||P([...S]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},rt)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:S.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let S=0;S<A.length;S+=1){let L=await this.connection.sendRawTransaction(A[S].serialize(),{skipPreflight:h});w.push(L)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:y=12}=F,f=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),u),x=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of x)g[p]===void 0&&b.push(new Ce(p));let O=await Ct({connection:this.connection,address:b});for(let[p,A]of Object.entries(O))g[p]=A;let R=n?ot(n):{instructions:[],instructionTypes:[]},B=await xe(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,A)=>V(C({},p),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let A=[...I,p],w=n?[...R.instructions,...A]:A;if(p!==r[h]&&I.length<y&&(Ue({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Ue({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let L of[...new Set(x)])g[L]!==void 0&&(S[L]=g[L]);if(n&&Ue({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Xe(L))}else{let L=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Xe(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[p]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Ue({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Xe(w))}else{let w=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Xe(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(A=>A.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),P.forEach((p,A)=>{p.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:S=0,recentBlockHash:L,skipPreflight:_=!0}=p||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),L&&(q.message.recentBlockhash=L)}),we(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=S){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await it(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(S,P.length)),W=[...P.slice(0,S),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<S){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ee=!1,Ie=null,tt=null,on=Ae=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let fe=G.findIndex(co=>co.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}w==null||w([...G]),Ae.err||te()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var Ae;if(Ee){clearInterval(Ie);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:1});fe&&(Ee=!0,clearInterval(Ie),on({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ee=!0,clearInterval(Ie),console.error("getTransaction timeout:",fe,pe)}},rt)),tt=this.connection.onSignature(pe,Ae=>{if(Ee){this.connection.removeSignatureListener(tt);return}Ee=!0,on(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Mt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new at({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(Mt(t))}logInfo(...t){this.logger.info(Mt(t))}logAndCreateError(...t){let n=Mt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as mc,SystemProgram as pc}from"@solana/web3.js";import bc from"bn.js";import{createCloseAccountInstruction as wc,createInitializeAccountInstruction as kc,createTransferInstruction as Tc,TOKEN_PROGRAM_ID as hc}from"@solana/spl-token";import{PublicKey as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var st={chainId:101,address:Bo.default.toBase58(),programId:Pn.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:Pn.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{Keypair as ju,PublicKey as Ju}from"@solana/web3.js";import nc from"bn.js";import{TOKEN_PROGRAM_ID as rc}from"@solana/spl-token";import{PublicKey as _o}from"@solana/web3.js";import hn,{isBN as In}from"bn.js";import{bits as So,BitStructure as ou,blob as Ko,Blob as iu,cstr as ru,f32 as au,f32be as su,f64 as uu,f64be as cu,greedy as lu,Layout as xo,ns64 as mu,ns64be as du,nu64 as pu,nu64be as fu,offset as Co,s16 as yu,s16be as bu,s24 as gu,s24be as Pu,s32 as Ro,s32be as Au,s40 as wu,s40be as ku,s48 as Tu,s48be as hu,s8 as Iu,seq as Lo,struct as Bu,Structure as Oo,u16 as No,u16be as Su,u24 as Ku,u24be as xu,u32 as Mo,u32be as Cu,u40 as Ru,u40be as Lu,u48 as Ou,u48be as Nu,u8 as Fo,UInt as vo,union as Mu,Union as Fu,unionLayoutDiscriminator as vu,utf8 as _u}from"@solana/buffer-layout";var ut=xo,An=Oo;var Ft=vo;var wn=Fo,Y=No;var ct=Mo;var ae=Ro;var kn=Lo;var N=Ko;var vt=So,Tn=Co;var Te=class extends ut{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new hn(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 hn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},lt=class extends ut{constructor(n){super(8,n);this._lower=vt(ct(),!1),this._upper=vt(ct(),!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),d=this._upper.decode(n,r+this._lower.span);return C(C({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Ft(1,i)}function z(i){return new Ft(4,i)}function e(i){return new Te(8,!1,i)}function K(i){return new Te(16,!1,i)}function Bn(i){return new Te(1,!0,i)}function Re(i){return new Te(8,!0,i)}function Sn(i){return new Te(16,!0,i)}var Ye=class extends ut{constructor(n,r,u,d){super(n.span,d);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 Ye(N(32),t=>new _o(t),t=>t.toBuffer(),i)}function re(i){return new Ye(wn(),Vo,Eo,i)}function Vo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Eo(i){return i?1:0}function Vt(i,t){let n=ct("length"),r=l([n,m(i,Tn(n,-n.span),"values")]);return new Ye(r,({values:u})=>u,u=>({values:u}),t)}var _t=class extends An{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new _t(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:In(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let f=Reflect.get(d,"count");r=In(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,f){return y==="count"&&(r=f),Reflect.set(d,y,f)}});return kn(i,u,n)}var mt=l([o("mint"),o("owner"),e("amount"),z("delegateOption"),o("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Ig,SystemProgram as Bg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Kg}from"@solana/spl-token";import{PublicKey as Zc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jc}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var xn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Cn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Rn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Et=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),nl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ln=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),On=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ol=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Mn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),il=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Dt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),rl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ho=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Qo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),al=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),sl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ul=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),cl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ll=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as Fn,SYSVAR_RENT_PUBKEY as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as $o}from"@solana/spl-token";function Le({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var jo=[Le({pubkey:$o,isWritable:!1}),Le({pubkey:Fn.programId,isWritable:!1}),Le({pubkey:Zo,isWritable:!1})];function vn({publicKey:i,transformSol:t}){let n=_n(i.toString());if(n instanceof X)return t&&n.equals(he)?be:n;if(t&&n.toString()===he.toBase58())return be;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function _n(i){try{return new X(i)}catch{return i}}var Wt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),He=new X("SysvarRent111111111111111111111111111111111"),yl=new X("SysvarC1ock11111111111111111111111111111111"),pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new X("Sysvar1nstructions1111111111111111111111111"),ei=Fn.programId,bl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),gl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Pl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Al=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),wl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),kl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Tl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),hl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Il=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Bl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Sl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new X("So11111111111111111111111111111111111111112"),he=X.default;import _g from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ay,TOKEN_2022_PROGRAM_ID as sy,TOKEN_PROGRAM_ID as uy}from"@solana/spl-token";import{PublicKey as ly}from"@solana/web3.js";import dy from"bn.js";import fy from"decimal.js";import{TOKEN_PROGRAM_ID as ym}from"@solana/spl-token";import{PublicKey as Am}from"@solana/web3.js";import{PublicKey as qt}from"@solana/web3.js";var Ut=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===he.toBase58()||t instanceof qt&&he.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new qt(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=d?qt.default:vn({publicKey:t}),this.isToken2022=y}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ut;J.WSOL=new Ut(V(C({},le),{mint:le.address}));var Gt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ft=Gt;ft.SOL=new Gt(st);import ti from"toformat";var ni=ti,Qe=ni;import bt from"big.js";import ii from"bn.js";import ri from"decimal.js-light";var yt=E("module/fraction"),zt=Qe(bt),Ze=Qe(ri),ai={[0]:Ze.ROUND_DOWN,[1]:Ze.ROUND_HALF_UP,[2]:Ze.ROUND_UP},si={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},U=class{constructor(t,n=new ii(1)){this.numerator=ne(t),this.denominator=ne(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(ne(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(ne(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(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||yt.logWithError(`${t} is not an integer.`),t<=0&&yt.logWithError(`${t} is not positive.`),Ze.set({precision:t+1,rounding:ai[r]});let u=new Ze(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)||yt.logWithError(`${t} is not an integer.`),t<0&&yt.logWithError(`${t} is negative.`),zt.DP=t,zt.RM=si[r]||1,new zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import ui from"bn.js";var Hl=new U(new ui(100));var em=E("Raydium_price");var ci=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Kf,TOKEN_2022_PROGRAM_ID as xf,TOKEN_PROGRAM_ID as Cf}from"@solana/spl-token";import{Keypair as Of,PublicKey as Nf,SystemProgram as Ff,TransactionInstruction as vf}from"@solana/web3.js";import Vf from"bn.js";import D from"bn.js";var Ne=new D(1).shln(64);var li=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),mi=new D(1).shln(128).subn(1);var Me=new D("4295048016"),Fe=new D("79226673521066979257578248091"),di=new D("59543866431248"),pi=new D("184467440737095516"),fi=new D("15793534762490258745");var Yt=60,Lm=new D("18446743708227953217"),yi=[{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,Vn=100;var En=10,Dn=100,gt=14;var Z=new D(0),ve=new D(1),Om=new D(-1);var Nm=new D("18446744073700000000");var bi=l([N(8),c("bump"),Y("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),m(z(),1),o("fundOwner"),m(e(),3)]),gi=l([z("blockTimestamp"),Re("tickCumulative"),m(e(),4)]),Wn=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(gi,Vn,"observations"),m(e(),4)]),Pi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ai=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),K("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),K("growthGlobalX64")]),Ht=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),K("liquidity"),K("sqrtPriceX64"),ae("tickCurrent"),z(),K("feeGrowthGlobalX64A"),K("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(K(),4),c("status"),c("feeOn"),N(6),m(Ai,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Pi.replicate("dynamicFeeInfo"),m(e(),46)]),wi=l([K("growthInsideLastX64"),e("rewardAmountOwed")]),ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),K("liquidity"),K("feeGrowthInsideLastX64A"),K("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(wi,$e,"rewardInfos"),e("recentEpoch"),m(e(),7)]),_m=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),K("liquidity"),K("feeGrowthInsideLastX64A"),K("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(K(),$e,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ti=l([ae("tick"),Sn("liquidityNet"),K("liquidityGross"),K("feeGrowthOutsideX64A"),K("feeGrowthOutsideX64B"),m(K(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),K("unfilledRatioX64"),m(z(),3)]),qn=l([N(8),o("poolId"),ae("startTickIndex"),m(Ti,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),hi=l([N(8),c("bump"),m(o(),En,"operationOwners"),m(o(),Dn,"whitelistMints")]),Ii=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),K("unfilledRatioX64"),m(e(),4)]),Un=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),Vm=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Bi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Em=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Si=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import qm from"bn.js";var Jm=Buffer.from("amm_config","utf8"),xi=Buffer.from("pool","utf8"),Ci=Buffer.from("pool_vault","utf8"),ed=Buffer.from("pool_reward_vault","utf8"),td=Buffer.from("position","utf8"),nd=Buffer.from("tick_array","utf8"),od=Buffer.from("operation","utf8"),id=Buffer.from("pool_tick_array_bitmap_extension","utf8"),rd=Buffer.from("observation","utf8"),ad=Buffer.from("support_mint","utf8"),sd=Buffer.from("dynamic_fee_config","utf8"),ud=Buffer.from("permission","utf8");var cd=Buffer.from("locked_position","utf8");import{sha256 as Gi}from"js-sha256";import Ri from"bn.js";import pd from"decimal.js";var yd=new Ri(1).shln(256).subn(1);import Nd from"bn.js";import Td from"bn.js";import Id from"decimal.js";import Vd from"bn.js";import Dd from"decimal.js";import{PublicKey as Sp}from"@solana/web3.js";import xp from"bn.js";import{TOKEN_2022_PROGRAM_ID as vp,TOKEN_PROGRAM_ID as _p}from"@solana/spl-token";import Wp from"decimal.js";import yp from"bn.js";import np from"bn.js";import jp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(Gi.digest(t)).slice(0,8)}Wn.span;var Yf=E("Raydium_Clmm"),Hf={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 jt}from"@solana/web3.js";var Hi=l([c("instruction")]),Qi=l([c("instruction")]),Zi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),K("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),K("perShareReward"),e("lastSlot"),e("perSlotReward")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),K("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),K("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),Ji=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),K("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Zi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),er=new Proxy($i,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),tr=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(i,t,n)}}),Zn=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var y;return V(C({},d),{rewardType:((y=Object.entries(et).find(f=>String(f[1])===d.rewardType.toString()))!=null?y:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),nr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),or=l([c("instruction"),e("nonce"),m(nr,5,"rewardTimeInfo")]),ir=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),rr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Uy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),1,"rewardDebts")]),$n=l([e("state"),o("id"),o("owner"),e("deposited"),m(K(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),Gy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),ar=l([e("state"),o("id"),o("owner"),e("deposited"),m(K(),2,"rewardDebts"),m(e(),17)]),sr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(K(),5,"rewardDebts"),m(e(),16)]),ur=l([c("instruction"),e("amount")]),cr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Bn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),lr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(cr,4,"votingMints"),Re("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),mr=l([Re("startTime"),Re("endTime"),c("kind"),m(c(),15,"reserved")]),dr=l([m(mr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),pr=l([N(8),o("voterAuthority"),o("registrar"),m(dr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as Jy}from"@solana/spl-token";var eb=E("Raydium_farm_config"),fr=new jt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),yr=new jt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var tb=new jt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var et={"Standard SPL":0,"Option tokens":1},jn={[xn.toString()]:3,[Cn.toString()]:4,[Rn.toString()]:5,[Et.toString()]:6,[ge.FARM_PROGRAM_ID_V3.toString()]:3,[ge.FARM_PROGRAM_ID_V4.toString()]:4,[ge.FARM_PROGRAM_ID_V5.toString()]:5,[ge.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Eb,SystemProgram as Db,SYSVAR_CLOCK_PUBKEY as Wb,SYSVAR_RENT_PUBKEY as qb,TransactionInstruction as Ub}from"@solana/web3.js";import zb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Yb,createAssociatedTokenAccountIdempotentInstruction as Hb,TOKEN_PROGRAM_ID as Qb}from"@solana/spl-token";import yb from"bn.js";import{PublicKey as ab}from"@solana/web3.js";import ub from"bn.js";var xb=E("Raydium.farm.util");var ag=E("Raydium_farm_instruction"),sg={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 Hg from"bn.js";import{PublicKey as nw}from"@solana/web3.js";import{AccountLayout as rw,MintLayout as aw,NATIVE_MINT as sw,TOKEN_PROGRAM_ID as cw}from"@solana/spl-token";import $g from"bn.js";import eo from"bn.js";var hr=new eo(25),Ir=new eo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as AP,TOKEN_PROGRAM_ID as wP}from"@solana/spl-token";import{PublicKey as TP,SystemProgram as hP,SYSVAR_RENT_PUBKEY as IP,TransactionInstruction as BP}from"@solana/web3.js";import NP from"bn.js";var Br=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Sr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),yP=l([c("instruction"),c("nonce")]),Kr=l([c("instruction"),c("nonce"),e("startTime")]),to=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),K("swapBaseInAmount"),K("swapQuoteOutAmount"),e("swapBase2QuoteFee"),K("swapQuoteInAmount"),K("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"),m(e(),3,"padding")]),bP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),K("swapBaseInAmount"),K("swapQuoteOutAmount"),K("swapQuoteInAmount"),K("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"),m(e(),64,"padding")]),xr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Cr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Rr=l([e("fee")]);var vP=E("Raydium_liquidity_instruction");var Lr=5e4,Or=l([e("x"),e("y"),e("price")]),DP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Or,Lr,"DataElement")]);import{PublicKey as jP}from"@solana/web3.js";import eA from"decimal.js";import{TOKEN_PROGRAM_ID as nA}from"@solana/spl-token";import{PublicKey as GP}from"@solana/web3.js";var YP=E("Raydium_liquidity_serum");import Cw from"bn.js";import Lw from"decimal.js";import{TOKEN_PROGRAM_ID as CA}from"@solana/spl-token";import{PublicKey as LA}from"@solana/web3.js";import NA from"bn.js";import{SystemProgram as bA,SYSVAR_RENT_PUBKEY as gA,Transaction as PA,TransactionInstruction as AA}from"@solana/web3.js";import{createInitializeAccountInstruction as kA,TOKEN_PROGRAM_ID as TA}from"@solana/spl-token";function Nr(i="accountFlags"){let t=new lt(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 Mr=l([N(5),Nr("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 Zk}from"@solana/web3.js";import{AccountLayout as jk,NATIVE_MINT as Jk,TOKEN_2022_PROGRAM_ID as eT,TOKEN_PROGRAM_ID as tT,createAssociatedTokenAccountIdempotentInstruction as nT}from"@solana/spl-token";import Xw from"bn.js";import Wr from"bn.js";var Ww=new Wr(0);import lT from"bn.js";import dT from"decimal.js";import{PublicKey as dk,TransactionInstruction as pk,Keypair as yk,SystemProgram as bk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Pk,TOKEN_2022_PROGRAM_ID as Ak,TOKEN_PROGRAM_ID as wk}from"@solana/spl-token";var $w=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),jw=Buffer.from("amm_config","utf8"),Jw=Buffer.from("pool","utf8"),ek=Buffer.from("pool_lp_mint","utf8"),tk=Buffer.from("pool_vault","utf8"),nk=Buffer.from("observation","utf8"),ok=Buffer.from("permission","utf8"),ik=Buffer.from("support_mint","utf8"),rk=Buffer.from("creator_fee_share","utf8");var ak=Buffer.from("locked_liquidity","utf8");var Kk=E("Raydium_cpmm"),xk={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var Ur=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),no=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),re("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),Lk=l([N(8),o("configId"),m(e(),30)]),Ok=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as IK,SystemProgram as BK}from"@solana/web3.js";import{createTransferInstruction as KK,TOKEN_PROGRAM_ID as xK,TOKEN_2022_PROGRAM_ID as CK,createAssociatedTokenAccountIdempotentInstruction as RK,createSyncNativeInstruction as OK,createTransferCheckedInstruction as NK}from"@solana/spl-token";import la from"bn.js";import vK 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 Xr from"bn.js";var rh=Buffer.from("vault_auth_seed","utf8"),ah=Buffer.from("global_config","utf8"),sh=Buffer.from("pool_vesting","utf8"),uh=Buffer.from("platform_config","utf8"),ch=Buffer.from("platform_fee_vault_auth_seed","utf8"),lh=Buffer.from("creator_fee_vault_auth_seed","utf8"),mh=Buffer.from("platform_global_access","utf8"),dh=Buffer.from("platform_allow_config","utf8"),ph=Buffer.from("platform_curve_rule","utf8");var Rh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Lh=new Xr("18446744073709551615");var Yr=l([e(),e("epoch"),c("curveType"),Y("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"),m(e(),16)]),Hr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Qr=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Hr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),Fh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),Zr=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),vh=l([e("epoch"),c("index"),o("configId"),Zr.replicate("bondingCurveParam"),m(e(),50)]),io=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),m(c(),78)]),$r=l([c("field"),c("op"),K("value")]),jr=l([Y("groupId"),e("epoch"),Vt($r,"constraints")]),Jr=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),m(e(),8),Vt(jr,"groups")]);import{TOKEN_2022_PROGRAM_ID as Eh,TOKEN_PROGRAM_ID as Dh}from"@solana/spl-token";import ea from"bn.js";var jh=new ea(1e6);import nI from"bn.js";import iI from"decimal.js";import vI from"bn.js";import VI from"decimal.js";import lI from"bn.js";import dI from"decimal.js";import TI from"bn.js";import II from"decimal.js";import so from"bn.js";import tn from"decimal.js";var Tt=class{static _multipler(t){return new tn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new tn(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 so(u.mul(this._Q64).toFixed(0))}};Tt._Q64=new tn(new so(1).shln(64).toString());import{NATIVE_MINT as JB,TOKEN_2022_PROGRAM_ID as eS,TOKEN_PROGRAM_ID as tS,createAssociatedTokenAccountIdempotentInstruction as oS,createSyncNativeInstruction as iS,getTransferFeeConfig as rS,unpackMint as aS}from"@solana/spl-token";import H from"bn.js";import{PublicKey as sa,SystemProgram as cS}from"@solana/web3.js";import bS from"decimal.js";var gS={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new sa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},PS=new H(1e4);var ua={[Ln.toBase58()]:3};var ca=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as qS}from"@solana/web3.js";var YS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as nK,TOKEN_2022_PROGRAM_ID as oK,TOKEN_PROGRAM_ID as iK}from"@solana/spl-token";import{PublicKey as aK,SystemProgram as sK,TransactionInstruction as uK}from"@solana/web3.js";import lK from"bn.js";var dx=new la(0);import{PublicKey as ma,Transaction as nn,TransactionInstruction as da}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pa}from"@solana/spl-token";import uo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return ce([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return ce([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new uo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let y=r.map(b=>ee.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)f.push(...y.map(O=>ee.getPdaOwnerId(n,O,u,b).publicKey));let g=await ye(t,[...y,...f]),x=[];for(let b=0;b<g.length;b++){let O=Math.floor(b/r.length),R=b%r.length,B=y[R],M=f[b],P=g[R],T=g[r.length+b];if(!(P&&T)||P.data.length!==ee.POOL_LAYOUT.span||T.data.length!==ee.OWNER_LAYOUT.span)continue;let I=ee.POOL_LAYOUT.decode(P.data),h=ee.OWNER_LAYOUT.decode(T.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),p=h.tokenInfo.map(S=>S.debtAmount.gt(new uo(0))).filter(S=>!S).length!==3,A=d>F&&d<v&&I.status===1,w=p&&A;x.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:ee.VERSION_PROJECT[O],openTime:F,endTime:v,canClaim:w,canClaimErrorType:p?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((S,L)=>({mintAddress:S.mintAddress,mintVault:S.mintVault,mintDecimals:S.mintDecimals,perLpLoss:S.perLpLoss,debtAmount:h.tokenInfo[L].debtAmount.add(h.tokenInfo[L].claimedAmount)}))})}return x}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y=[];for(let x of t.tokenInfo){let{account:b,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:x.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:x.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!x.mintAddress.equals(J.WSOL.mint),associatedOnly:x.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),y.push(b)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:y}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,y={};for(let b of t){let O=[];for(let R of b.tokenInfo){let{account:B,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!R.mintAddress.equals(J.WSOL.mint),associatedOnly:R.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),B&&(y[R.mintAddress.toString()]=B,O.push(B))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:d,ownerPda:b.ownerAccountId,claimAddress:O}})]})}let{transaction:f,signers:g}=u.build(),x=u.allInstructions;return Ot(x,[d,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new nn().add(...x.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new nn().add(...x.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new nn().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),d=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:pa,isSigner:!1,isWritable:!1}],y=Buffer.alloc(u.span);u.encode({},y);let f=Buffer.from([10,66,208,184,161,6,191,98,...y]);return new da({keys:d,programId:t,data:f})}},se=ee;se.CLAIMED_NUM=3,se.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),m(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),se.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),m(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new ma(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Cx}from"@solana/web3.js";import{getTransferFeeConfig as Lx,MintLayout as Ox,TOKEN_2022_PROGRAM_ID as Nx,TOKEN_PROGRAM_ID as Mx,unpackMint as Fx}from"@solana/spl-token";function Kt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import fa from"bn.js";var de=new fa(1e6);var xR=E("Raydium_amount"),CR=Qe(ya);var zR=new Pe(2),XR=new Pe(3),YR=new Pe(5),ba=new Pe(10),HR=new Pe(100),QR=new Pe(1e3),ZR=new Pe(1e4);function ht(i,t,n){return i.mul(t).add(n).sub(new Pe(1)).div(n)}function It(i,t,n){return i.mul(t).div(n)}var en=class{static tradingFee(t,n){return ht(t,n,de)}static protocolFee(t,n){return It(t,n,de)}static fundFee(t,n){return It(t,n,de)}static creatorFee(t,n){return ht(t,n,de)}static splitCreatorFee(t,n,r){return It(t,r,n.add(r))}static calculatePreFeeAmount(t,n){if(n.isZero())return t;let r=t.mul(de),u=de.sub(n);return r.add(u).sub(new ga(1)).div(u)}};export{en as CpmmFee};
//# sourceMappingURL=fee.mjs.map