@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 73.1 kB
JavaScript
var co=Object.defineProperty,lo=Object.defineProperties;var mo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var nn=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable;var tn=(i,t,n)=>t in i?co(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))nn.call(t,n)&&tn(i,n,t[n]);if(nt)for(var n of nt(t))on.call(t,n)&&tn(i,n,t[n]);return i},D=(i,t)=>lo(i,mo(t));var ue=(i,t)=>{var n={};for(var r in i)nn.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&&on.call(i,r)&&(n[r]=i[r]);return n};import he from"bn.js";import UC from"decimal.js";import ma from"big.js";import xC from"bn.js";import{get as rn,set as po}from"lodash";var ht=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}},an={},fo={};function _(i){let t=rn(an,i);if(!t){let n=rn(fo,i);t=new ht({name:i,logLevel:n}),po(an,i,t)}return t}import{PublicKey as yo}from"@solana/web3.js";import{MINT_SIZE as ha,TOKEN_PROGRAM_ID as Ia,getTransferFeeConfig as Ba,unpackMint as Sa}from"@solana/spl-token";var It=_("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=R({batchRequest:!1},n),f=Bt(t,d),y=new Array(f.length).fill([]);if(r){let g=f.map(O=>{let K=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),x=Bt(g,10);y=(await(await Promise.all(x.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&It.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(K=>{if(K){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=K;return B.length!==2&&B[1]!=="base64"&&It.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new yo(T),rentEpoch:I}}return null})))}else try{y=await Promise.all(f.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&It.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return y.flat()}import We from"bn.js";var sn=9007199254740991;function J(i){let t=_("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>=sn||i<=-sn)&&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 mK}from"lodash";import _a from"axios";var un={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},bo=D(R({},un),{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 ss=_("Raydium_Api");import{PublicKey as Cc,SystemProgram as Rc}from"@solana/web3.js";import{AccountLayout as Fc,createAssociatedTokenAccountIdempotentInstruction as vc,TOKEN_PROGRAM_ID as Vc,TOKEN_2022_PROGRAM_ID as _c}from"@solana/spl-token";import{PublicKey as Ce,sendAndConfirmTransaction as Lt,SystemProgram as To,Transaction as Ge,TransactionMessage as ze,VersionedTransaction as Xe}from"@solana/web3.js";import ho from"axios";import{PublicKey as St,AddressLookupTableAccount as xe}from"@solana/web3.js";async function xt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(d=>d.toString()))].map(d=>new St(d))),u={};for(let d=0;d<t.length;d++){let f=r[d],y=t[d];if(!f)continue;let g=new xe({key:y,state:xe.deserialize(f.data)});u[y.toString()]=g,n==="devnet"?Se[y.toString()]=g:Be[y.toString()]=g}return u}var Be={},Kt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Be[t])return Be;let n=new St(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new xe({key:n,state:xe.deserialize(r.data)})),Be},Se={},Ct=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Se[t])return Se;let n=new St(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new xe({key:n,state:xe.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 cn,Keypair as mn,PublicKey as go,Transaction as dn,TransactionMessage as Po,VersionedTransaction as pn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ao}from"@solana/spl-token";var ln=_("Raydium_txUtil"),fn=1644;function ot(i){let t=[],n=[];return i.microLamports&&(t.push(cn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(cn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ke(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 Rt(i,t){i.length<1&&ln.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new dn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<fn}catch{return!1}}function ce(i,t){let[n,r]=go.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function qe({instructions:i,payer:t,signers:n}){return Rt(i,[t,...n])}function Ue({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=mn.generate().publicKey.toString()}){let d=new Po({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new pn(d).serialize()).toString("base64").length<fn}catch{return!1}}var wo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ko=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof pn&&(t=wo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(i){let t=[];return i.forEach(n=>{n instanceof dn&&(n.recentBlockhash||(n.recentBlockhash=Ao.toBase58()),n.feePayer||(n.feePayer=mn.generate().publicKey)),t.push(ko(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 ho.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(To.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:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...f.filter(y=>y!==Ce.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(R({},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:f=!0,sendAndConfirm:y,notSendToRpc:g}=u||{},x=d!=null?d:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:y?await Lt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let K of O)try{K.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:f}),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),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:y,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:K,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of f){if(++F,F<=B)continue;let p=await Lt(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:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((v,p)=>(v.recentBlockhash=T,y[p].length&&v.sign(...y[p]),v));Ae(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]}),K==null||K([...p]),v++;let S=!1,C=null,V=null,ie=U=>{C!==null&&clearInterval(C),V!==null&&this.connection.removeSignatureListener(V);let W=p.findIndex(j=>j.txId===w);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=U.err?"error":"success"}K==null||K([...p]),U.err||A()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var U;if(S){clearInterval(C);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(C),ie({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){S=!0,clearInterval(C),console.error("getTransaction timeout:",W,w)}},rt)),V=this.connection.onSignature(w,U=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,ie(U)},"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,f=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),y=R(R({},this.cluster==="devnet"?await Ct(this.connection):await Kt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of g)y[T]===void 0&&x.push(new Ce(T));let b=await xt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))y[T]=I;let O=u?Ce.default.toBase58():d!=null?d:await Ke(this.connection,this.blockhashCommitment),K=new ze({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(y));((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(K);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(Ae([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:f||{}}}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),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,O)=>{b.sign(y[O])}),{builder:this,transactions:f,signers:y,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:K,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&f.forEach(T=>T.message.recentBlockhash=B),Ae(f),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await it(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);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]}),K==null||K([...h]),I++;let p=!1,A=null,w=null,S=C=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=C.err?"error":"success"}K==null||K([...h]),C.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var C;if(p){clearInterval(A);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(p=!0,clearInterval(A),S({err:((C=V.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){p=!0,clearInterval(A),console.error("getTransaction timeout:",V,v)}},rt)),w=this.connection.onSignature(v,C=>{if(p){this.connection.removeSignatureListener(w);return}p=!0,S(C)},"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 K;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?ot(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((B,M)=>D(R({},B),{[M.publicKey.toBase58()]:M}),{}),y=[],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})?y.push(new Ge().add(...d.instructions,...x)):y.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=>f[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=>f[P]).filter(P=>P!==void 0);qe({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?y.push(new Ge().add(...d.instructions,...x)):y.push(new Ge().add(...x)),g.push(M)}return y.forEach(B=>B.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:y,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 Ke(this.connection,this.blockhashCommitment);if(y.forEach(async(p,A)=>{p.recentBlockhash=F,g[A].length&&p.sign(...g[A])}),Ae(y),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,A=[];for(let w of y){if(++p,p<=T){A.push("tx skipped");continue}let S=await Lt(this.connection,w,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(S)}return{txIds:A,signedTxs:y}}return{txIds:await Promise.all(y.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:y}}if(this.signAllTransactions){let p=await this.signAllTransactions(y.slice(T,y.length)),A=[...y.slice(0,T),...p];if(M){let w=0,S=[],C=async()=>{if(!A[w])return;w<T&&(S.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...S]),w++,C());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});S.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...S]),w++;let ie=!1,U=null,W=null,j=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=S.findIndex(pe=>pe.txId===V);if(ne>-1){if(S[ne].status==="error"||S[ne].status==="success")return;S[ne].status=G.err?"error":"success"}P==null||P([...S]),G.err||C()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},rt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await C(),{txIds:S.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let S=0;S<A.length;S+=1){let C=await this.connection.sendRawTransaction(A[S].serialize(),{skipPreflight:h});w.push(C)}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:f=12}=F,y=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await Ct(this.connection):await Kt(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 xt({connection:this.connection,address:b});for(let[p,A]of Object.entries(O))g[p]=A;let K=n?ot(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,A)=>D(R({},p),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let A=[...I,p],w=n?[...K.instructions,...A]:A;if(p!==r[h]&&I.length<f&&(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 C of[...new Set(x)])g[C]!==void 0&&(S[C]=g[C]);if(n&&Ue({instructions:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let C=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Xe(C))}else{let C=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Xe(C))}T.push(Array.from(new Set(I.map(C=>C.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(C=>M[C]).filter(C=>C!==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:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.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:C,skipPreflight:V=!0}=p||{};if(P.map(async(U,W)=>{T[W].length&&U.sign(T[W]),C&&(U.message.recentBlockhash=C)}),Ae(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let U=0,W=[];for(let j of P){if(++U,U<=S){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await it(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(S,P.length)),W=[...P.slice(0,S),...U];if(A){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<S){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,ne();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ee=!1,Ie=null,tt=null,en=Pe=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let fe=G.findIndex(uo=>uo.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Pe.err?"error":"success"}w==null||w([...G]),Pe.err||ne()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var Pe;if(Ee){clearInterval(Ie);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(Ee=!0,clearInterval(Ie),en({err:((Pe=fe.meta)==null?void 0:Pe.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,Pe=>{if(Ee){this.connection.removeSignatureListener(tt);return}Ee=!0,en(Pe)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}};var Ot=(...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=_(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(Ot(t))}logInfo(...t){this.logger.info(Ot(t))}logAndCreateError(...t){let n=Ot(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as ac,SystemProgram as uc}from"@solana/web3.js";import mc from"bn.js";import{createCloseAccountInstruction as yc,createInitializeAccountInstruction as bc,createTransferInstruction as gc,TOKEN_PROGRAM_ID as Pc}from"@solana/spl-token";import{PublicKey as Io}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var st={chainId:101,address:Io.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{Keypair as Yu,PublicKey as Qu}from"@solana/web3.js";import ju from"bn.js";import{TOKEN_PROGRAM_ID as ec}from"@solana/spl-token";import{PublicKey as vo}from"@solana/web3.js";import wn,{isBN as kn}from"bn.js";import{bits as Bo,BitStructure as $s,blob as So,Blob as Js,cstr as eu,f32 as tu,f32be as nu,f64 as ou,f64be as iu,greedy as ru,Layout as xo,ns64 as au,ns64be as su,nu64 as uu,nu64be as cu,offset as Ko,s16 as lu,s16be as mu,s24 as du,s24be as pu,s32 as Co,s32be as fu,s40 as yu,s40be as bu,s48 as gu,s48be as Pu,s8 as Au,seq as Ro,struct as wu,Structure as Lo,u16 as Oo,u16be as ku,u24 as Tu,u24be as hu,u32 as No,u32be as Iu,u40 as Bu,u40be as Su,u48 as xu,u48be as Ku,u8 as Mo,UInt as Fo,union as Cu,Union as Ru,unionLayoutDiscriminator as Lu,utf8 as Ou}from"@solana/buffer-layout";var ut=xo,bn=Lo;var Nt=Fo;var gn=Mo,Z=Oo;var ct=No;var ae=Co;var Pn=Ro;var N=So;var Mt=Bo,An=Ko;var ke=class extends ut{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new wn(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 wn(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=Mt(ct(),!1),this._upper=Mt(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 R(R({},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 Nt(1,i)}function z(i){return new Nt(4,i)}function e(i){return new ke(8,!1,i)}function L(i){return new ke(16,!1,i)}function Tn(i){return new ke(1,!0,i)}function Re(i){return new ke(8,!0,i)}function hn(i){return new ke(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 vo(t),t=>t.toBuffer(),i)}function re(i){return new Ye(gn(),Vo,_o,i)}function Vo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function _o(i){return i?1:0}function In(i,t){let n=ct("length"),r=l([n,m(i,An(n,-n.span),"values")]);return new Ye(r,({values:u})=>u,u=>({values:u}),t)}var Ft=class extends bn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Ft(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:kn(t)?t.toNumber():new Proxy(t,{get(d,f){if(!r){let y=Reflect.get(d,"count");r=kn(y)?y.toNumber():y,Reflect.set(d,"count",r)}return Reflect.get(d,f)},set(d,f,y){return f==="count"&&(r=y),Reflect.set(d,f,y)}});return Pn(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 dg,SystemProgram as pg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as yg}from"@solana/spl-token";import{PublicKey as zc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yc}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Sn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Kn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),vt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),jc=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Do=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Cn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Rn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$c=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Wo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ln=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),qo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Uo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),On=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Jc=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Go=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Vt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),zo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),el=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Xo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Qo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),tl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ol=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),il=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),rl=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 Nn,SYSVAR_RENT_PUBKEY as Zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ho}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:Ho,isWritable:!1}),Le({pubkey:Nn.programId,isWritable:!1}),Le({pubkey:Zo,isWritable:!1})];function Mn({publicKey:i,transformSol:t}){let n=Fn(i.toString());if(n instanceof X)return t&&n.equals(Te)?be:n;if(t&&n.toString()===Te.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 Fn(i){try{return new X(i)}catch{return i}}var _t=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qe=new X("SysvarRent111111111111111111111111111111111"),ll=new X("SysvarC1ock11111111111111111111111111111111"),pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new X("Sysvar1nstructions1111111111111111111111111"),Jo=Nn.programId,ml=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),dl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),pl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),fl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),yl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),bl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),gl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Pl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Al=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),wl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),kl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new X("So11111111111111111111111111111111111111112"),Te=X.default;import Bg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Gf,TOKEN_2022_PROGRAM_ID as zf,TOKEN_PROGRAM_ID as Xf}from"@solana/spl-token";import{PublicKey as Qf}from"@solana/web3.js";import Hf from"bn.js";import $f from"decimal.js";import{TOKEN_PROGRAM_ID as om}from"@solana/spl-token";import{PublicKey as sm}from"@solana/web3.js";import{PublicKey as Et}from"@solana/web3.js";var Dt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:f=!1}){if(t===Te.toBase58()||t instanceof Et&&Te.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Et(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?Et.default:Mn({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Dt;ee.WSOL=new Dt(D(R({},le),{mint:le.address}));var Wt=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=Wt;ft.SOL=new Wt(st);import ei from"toformat";var ti=ei,Ze=ti;import bt from"big.js";import oi from"bn.js";import ii from"decimal.js-light";var yt=_("module/fraction"),qt=Ze(bt),He=Ze(ii),ri={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},ai={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},q=class{constructor(t,n=new oi(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(J(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(J(t));return new q(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.`),He.set({precision:t+1,rounding:ri[r]});let u=new He(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.`),qt.DP=t,qt.RM=ai[r]||1,new qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import si from"bn.js";var Ul=new q(new si(100));var ui=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as df,TOKEN_2022_PROGRAM_ID as pf,TOKEN_PROGRAM_ID as ff}from"@solana/spl-token";import{Keypair as gf,PublicKey as Pf,SystemProgram as wf,TransactionInstruction as kf}from"@solana/web3.js";import hf from"bn.js";import E from"bn.js";var Ne=new E(1).shln(64);var ci=new E(1).shln(128),Ut=new E(1).shln(64).subn(1),li=new E(1).shln(128).subn(1);var Me=new E("4295048016"),Fe=new E("79226673521066979257578248091"),mi=new E("59543866431248"),di=new E("184467440737095516"),pi=new E("15793534762490258745");var Gt=60,Am=new E("18446743708227953217"),fi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var je=3,vn=100;var Vn=10,_n=100,gt=14;var H=new E(0),ve=new E(1),wm=new E(-1);var km=new E("18446744073700000000");var yi=l([N(8),c("bump"),Z("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Z("tickSpacing"),z("fundFeeRate"),m(z(),1),o("fundOwner"),m(e(),3)]),bi=l([z("blockTimestamp"),Re("tickCumulative"),m(e(),4)]),En=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(bi,vn,"observations"),m(e(),4)]),gi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Pi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),zt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Z("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),z(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Pi,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),gi.replicate("dynamicFeeInfo"),m(e(),46)]),Ai=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),wi=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Ai,je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Bm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),ki=l([ae("tick"),hn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(z(),3)]),Dn=l([N(8),o("poolId"),ae("startTickIndex"),m(ki,Gt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ti=l([N(8),c("bump"),m(o(),Vn,"operationOwners"),m(o(),_n,"whitelistMints")]),hi=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Wn=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),Sm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Ii=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),xm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Bi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Rm from"bn.js";var Wm=Buffer.from("amm_config","utf8"),Si=Buffer.from("pool","utf8"),xi=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");var Hm=Buffer.from("locked_position","utf8");import{sha256 as qi}from"js-sha256";import Ki from"bn.js";import ed from"decimal.js";var nd=new Ki(1).shln(256).subn(1);import wd from"bn.js";import cd from"bn.js";import md from"decimal.js";import Bd from"bn.js";import xd from"decimal.js";import{PublicKey as pp}from"@solana/web3.js";import yp from"bn.js";import{TOKEN_2022_PROGRAM_ID as hp,TOKEN_PROGRAM_ID as Ip}from"@solana/spl-token";import Kp from"decimal.js";import np from"bn.js";import Ud from"bn.js";import Ep from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(qi.digest(t)).slice(0,8)}En.span;var Lf=_("Raydium_Clmm"),Of={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_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 Zt}from"@solana/web3.js";var Yi=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"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),Hi=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L