@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 73.8 kB
JavaScript
var yo=Object.defineProperty,bo=Object.defineProperties;var go=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(i,t,n)=>t in i?yo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(i,n,t[n]);if(ot)for(var n of ot(t))un.call(t,n)&&an(i,n,t[n]);return i},_=(i,t)=>bo(i,go(t));var ue=(i,t)=>{var n={};for(var r in i)sn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&ot)for(var r of ot(i))t.indexOf(r)<0&&un.call(i,r)&&(n[r]=i[r]);return n};import Bt from"bn.js";import qR from"bn.js";import vR from"bn.js";import Te from"bn.js";import gR from"decimal.js";import ha from"big.js";import tR from"bn.js";import{get as cn,set as Po}from"lodash";var St=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},ln={},Ao={};function E(i){let t=cn(ln,i);if(!t){let n=cn(Ao,i);t=new St({name:i,logLevel:n}),Po(ln,i,t)}return t}import{PublicKey as wo}from"@solana/web3.js";import{MINT_SIZE as va,TOKEN_PROGRAM_ID as Va,getTransferFeeConfig as _a,unpackMint as Ea}from"@solana/spl-token";var xt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=K({batchRequest:!1},n),p=Kt(t,m),f=new Array(p.length).fill([]);if(r){let P=p.map(O=>{let C=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),S=Kt(P,10);f=(await(await Promise.all(S.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(C=>{if(C){let{data:B,executable:M,lamports:A,owner:T,rentEpoch:I}=C;return B.length!==2&&B[1]!=="base64"&&xt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:A,owner:new wo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&xt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return f.flat()}import We from"bn.js";var mn=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>=mn||i<=-mn)&&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 FK}from"lodash";import ja from"axios";var dn={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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},ko=_(K({},dn),{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 ws=E("Raydium_Api");import{PublicKey as Wc,SystemProgram as qc}from"@solana/web3.js";import{AccountLayout as Yc,createAssociatedTokenAccountIdempotentInstruction as Qc,TOKEN_PROGRAM_ID as Zc,TOKEN_2022_PROGRAM_ID as Hc}from"@solana/spl-token";import{PublicKey as Ke,sendAndConfirmTransaction as Mt,SystemProgram as xo,Transaction as Ge,TransactionMessage as ze,VersionedTransaction as Xe}from"@solana/web3.js";import Ko from"axios";import{PublicKey as Ct,AddressLookupTableAccount as Se}from"@solana/web3.js";async function Rt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Ct(m))),u={};for(let m=0;m<t.length;m++){let p=r[m],f=t[m];if(!p)continue;let P=new Se({key:f,state:Se.deserialize(p.data)});u[f.toString()]=P,n==="devnet"?Be[f.toString()]=P:Ie[f.toString()]=P}return u}var Ie={},Lt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ie[t])return Ie;let n=new Ct(t),r=await i.getAccountInfo(n);return r&&(Ie[t]=new Se({key:n,state:Se.deserialize(r.data)})),Ie},Be={},Ot=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Be[t])return Be;let n=new Ct(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new Se({key:n,state:Se.deserialize(r.data)})),Be};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 pn,Keypair as yn,PublicKey as To,Transaction as bn,TransactionMessage as ho,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Io}from"@solana/spl-token";var fn=E("Raydium_txUtil"),Pn=1644;function it(i){let t=[],n=[];return i.microLamports&&(t.push(pn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(pn.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 rt(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Nt(i,t){i.length<1&&fn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&fn.logWithError(`no signers provided:, ${t.toString()}`);let n=new bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Pn}catch{return!1}}function le(i,t){let[n,r]=To.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function qe({instructions:i,payer:t,signers:n}){return Nt(i,[t,...n])}function Ue({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=yn.generate().publicKey.toString()}){let m=new ho({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(m).serialize()).toString("base64").length<Pn}catch{return!1}}var Bo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),So=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof gn&&(t=Bo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Pe(i){let t=[];return i.forEach(n=>{n instanceof bn&&(n.recentBlockhash||(n.recentBlockhash=Io.toBase58()),n.feePayer||(n.feePayer=yn.generate().publicKey)),t.push(So(n))}),console.log("simulate tx string:",t),t}var at=2e3,st=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 Ko.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}=it(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(xo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ke(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:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Ke.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(K({},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:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:P}=u||{},S=m!=null?m:await xe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=S,this.signers.length&&n.sign(...this.signers),Pe([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Mt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:p}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var S;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:P,execute:async b=>{var I;let{sequentially:O,onTxUpdate:C,skipTxCount:B=0,recentBlockHash:M,skipPreflight:A=!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 p){if(++F,F<=B)continue;let y=await Mt(this.connection,v,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(y)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((v,y)=>(v.recentBlockhash=T,f[y].length&&v.sign(...f[y]),v));Pe(h);let F=await this.signAllTransactions(h);if(O){let v=0,y=[],w=async()=>{if(!F[v])return;let k=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});y.push({txId:k,status:"sent",signedTx:F[v]}),C==null||C([...y]),v++;let x=!1,R=null,V=null,ie=q=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex(j=>j.txId===k);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}C==null||C([...y]),q.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(x){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){x=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},at)),V=this.connection.onSignature(k,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:y.map(k=>k.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let w=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:A});v.push(w)}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 A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,p=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=K(K({},this.cluster==="devnet"?await Ot(this.connection):await Lt(this.connection)),n),P=Array.from(new Set([...r,...this.lookupTableAddress])),S=[];for(let T of P)f[T]===void 0&&S.push(new Ke(T));let b=await Rt({connection:this.connection,address:S});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Ke.default.toBase58():m!=null?m:await xe(this.connection,this.blockhashCommitment),C=new ze({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Xe(C);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(Pe([B]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await rt(this.connection,y),{txId:y,signedTx:B}}if(this.signAllTransactions){let y=await this.signAllTransactions([B]);if(this.signers.length)for(let w of y)try{w.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var S;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],P=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:p,signers:f,instructionTypes:P,buildProps:r,execute:async b=>{var A;let{sequentially:O,onTxUpdate:C,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&p.forEach(T=>T.message.recentBlockhash=B),Pe(p),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await rt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);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]}),C==null||C([...h]),I++;let y=!1,w=null,k=null,x=R=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=R.err?"error":"success"}C==null||C([...h]),R.err||F()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var R;if(y){clearInterval(w);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(w),x({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(w),console.error("getTransaction timeout:",V,v)}},at)),k=this.connection.onSignature(v,R=>{if(y){this.connection.removeSignatureListener(k);return}y=!0,x(R)},"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 C;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),m=r?it(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((B,M)=>_(K({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],P=[],S=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...S,B],A=r?[...m.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 Ke(h));if(B!==n[b]&&S.length<12&&(qe({instructions:A,payer:this.feePayer,signers:I})||qe({instructions:M,payer:this.feePayer,signers:I})))S.push(B);else{if(S.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,qe({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:I})?f.push(new Ge().add(...m.instructions,...S)):f.push(new Ge().add(...S)),P.push(Array.from(new Set(S.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),S=[B]}}),S.length>0){let M=[...new Set(S.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);qe({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new Ge().add(...m.instructions,...S)):f.push(new Ge().add(...S)),P.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&P.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,signers:P,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await xe(this.connection,this.blockhashCommitment);if(f.forEach(async(y,w)=>{y.recentBlockhash=F,P[w].length&&y.sign(...P[w])}),Pe(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let y=0,w=[];for(let k of f){if(++y,y<=T){w.push("tx skipped");continue}let x=await Mt(this.connection,k,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});w.push(x)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),w=[...f.slice(0,T),...y];if(M){let k=0,x=[],R=async()=>{if(!w[k])return;k<T&&(x.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...x]),k++,R());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});x.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...x]),k++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(pe=>pe.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}A==null||A([...x]),G.err||R()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},at)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await R(),{txIds:x.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let R=await this.connection.sendRawTransaction(w[x].serialize(),{skipPreflight:h});k.push(R)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=F,f=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=K(K({},this.cluster==="devnet"?await Ot(this.connection):await Lt(this.connection)),u),S=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of S)P[y]===void 0&&b.push(new Ke(y));let O=await Rt({connection:this.connection,address:b});for(let[y,w]of Object.entries(O))P[y]=w;let C=n?it(n):{instructions:[],instructionTypes:[]},B=await xe(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,w)=>_(K({},y),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let w=[...I,y],k=n?[...C.instructions,...w]:w;if(y!==r[h]&&I.length<p&&(Ue({instructions:k,payer:this.feePayer,lookupTableAddressAccount:P})||Ue({instructions:w,payer:this.feePayer,lookupTableAddressAccount:P})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===r[h]?1:0;let x={};for(let R of[...new Set(S)])P[R]!==void 0&&(x[R]=P[R]);if(n&&Ue({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let R=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Xe(R))}else{let R=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Xe(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),I=[y]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ue({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let k=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Xe(k))}else{let k=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Xe(k))}T.push(w)}return(v=this.owner)!=null&&v.signer&&T.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),A.forEach((y,w)=>{y.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:x=0,recentBlockHash:R,skipPreflight:V=!0}=y||{};if(A.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),Pe(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let j of A){if(++q,q<=x){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await rt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(x,A.length)),W=[...A.slice(0,x),...q];if(w){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<x){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,te();return}let pe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[j]}),k==null||k([...G]),j++;let Ee=!1,he=null,nt=null,rn=ge=>{he!==null&&clearInterval(he),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(fo=>fo.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=ge.err?"error":"success"}k==null||k([...G]),ge.err||te()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var ge;if(Ee){clearInterval(he);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(Ee=!0,clearInterval(he),rn({err:((ge=fe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ee=!0,clearInterval(he),console.error("getTransaction timeout:",fe,pe)}},at)),nt=this.connection.onSignature(pe,ge=>{if(Ee){this.connection.removeSignatureListener(nt);return}Ee=!0,rn(ge)},"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:V});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Ft=(...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 st({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(Ft(t))}logInfo(...t){this.logger.info(Ft(t))}logAndCreateError(...t){let n=Ft(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Pc,SystemProgram as wc}from"@solana/web3.js";import hc from"bn.js";import{createCloseAccountInstruction as xc,createInitializeAccountInstruction as Kc,createTransferInstruction as Cc,TOKEN_PROGRAM_ID as Rc}from"@solana/spl-token";import{PublicKey as Co}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as An}from"@solana/spl-token";var ut={chainId:101,address:Co.default.toBase58(),programId:An.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:An.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 rc,PublicKey as ac}from"@solana/web3.js";import cc from"bn.js";import{TOKEN_PROGRAM_ID as dc}from"@solana/spl-token";import{PublicKey as qo}from"@solana/web3.js";import Bn,{isBN as Sn}from"bn.js";import{bits as Ro,BitStructure as mu,blob as Lo,Blob as du,cstr as pu,f32 as fu,f32be as yu,f64 as bu,f64be as gu,greedy as Pu,Layout as Oo,ns64 as Au,ns64be as wu,nu64 as No,nu64be as ku,offset as Mo,s16 as Tu,s16be as hu,s24 as Iu,s24be as Bu,s32 as Fo,s32be as Su,s40 as xu,s40be as Ku,s48 as Cu,s48be as Ru,s8 as Lu,seq as vo,struct as Ou,Structure as Vo,u16 as _o,u16be as Nu,u24 as Mu,u24be as Fu,u32 as Eo,u32be as vu,u40 as Vu,u40be as _u,u48 as Eu,u48be as Du,u8 as Do,UInt as Wo,union as Wu,Union as qu,unionLayoutDiscriminator as Uu,utf8 as Gu}from"@solana/buffer-layout";var ct=Oo,wn=Vo;var vt=Wo;var kn=Do,Z=_o;var lt=Eo;var Tn=No;var ae=Fo;var hn=vo;var N=Lo;var Vt=Ro,In=Mo;var we=class extends ct{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Bn(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 Bn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},mt=class extends ct{constructor(n){super(8,n);this._lower=Vt(lt(),!1),this._upper=Vt(lt(),!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),m=this._upper.decode(n,r+this._lower.span);return K(K({},u),m)}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 vt(1,i)}function z(i){return new vt(4,i)}function e(i){return new we(8,!1,i)}function L(i){return new we(16,!1,i)}function xn(i){return new we(1,!0,i)}function Ce(i){return new we(8,!0,i)}function Kn(i){return new we(16,!0,i)}var Ye=class extends ct{constructor(n,r,u,m){super(n.span,m);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 qo(t),t=>t.toBuffer(),i)}function re(i){return new Ye(kn(),Uo,Go,i)}function Uo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Go(i){return i?1:0}function Cn(i,t){let n=lt("length"),r=l([n,d(i,In(n,-n.span),"values")]);return new Ye(r,({values:u})=>u,u=>({values:u}),t)}var _t=class extends wn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new _t(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:Sn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!r){let f=Reflect.get(m,"count");r=Sn(f)?f.toNumber():f,Reflect.set(m,"count",r)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(r=f),Reflect.set(m,p,f)}});return hn(i,u,n)}var dt=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 xg,SystemProgram as Kg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Rg}from"@solana/spl-token";import{PublicKey as ol}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as rl}from"@solana/spl-token";import{PublicKey as g}from"@solana/web3.js";var Ln=new g("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),On=new g("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Nn=new g("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Et=new g("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),cl=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Xo=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Mn=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Fn=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ll=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Yo=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vn=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Qo=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Zo=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Vn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ml=new g("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ho=new g("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),jo=new g("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),$o=new g("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Jo=new g("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),ei=new g("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Dt=new g("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ti=new g("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),dl=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ni=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),oi=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ii=new g("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),pl=new g("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),fl=new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),yl=new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),bl=new g("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),gl=new g("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Qe={IDO_PROGRAM_ID_V1:jo,IDO_PROGRAM_ID_V2:$o,IDO_PROGRAM_ID_V3:Jo,IDO_PROGRAM_ID_V4:ei};var be={OPEN_BOOK_PROGRAM:new g("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new g("Ray1111111111111111111111111111111111111111"),AMM_V4:new g("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new g("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new g("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new g("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new g("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new g("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new g("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new g("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new g("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:g.default,Router:new g("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new g("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new g("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new g("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new g("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new g("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new g("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new g("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new g("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as _n,SYSVAR_RENT_PUBKEY as ri}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ai}from"@solana/spl-token";function Re({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var si=[Re({pubkey:ai,isWritable:!1}),Re({pubkey:_n.programId,isWritable:!1}),Re({pubkey:ri,isWritable:!1})];function En({publicKey:i,transformSol:t}){let n=Dn(i.toString());if(n instanceof X)return t&&n.equals(ke)?ce:n;if(t&&n.toString()===ke.toBase58())return ce;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 Dn(i){try{return new X(i)}catch{return i}}var Wt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Le=new X("SysvarRent111111111111111111111111111111111"),ui=new X("SysvarC1ock11111111111111111111111111111111"),ft=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ci=new X("Sysvar1nstructions1111111111111111111111111"),Wn=_n.programId,Tl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Il=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Bl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Sl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),xl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Kl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Cl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Rl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ll=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ol=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new X("So11111111111111111111111111111111111111112"),ke=X.default;import Dg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ry,TOKEN_2022_PROGRAM_ID as ay,TOKEN_PROGRAM_ID as sy}from"@solana/spl-token";import{PublicKey as cy}from"@solana/web3.js";import my from"bn.js";import py from"decimal.js";import{TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{PublicKey as Bm}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:m=!1,isToken2022:p=!1}){if(t===ke.toBase58()||t instanceof qt&&ke.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new qt(me.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=m?qt.default:En({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ut;J.WSOL=new Ut(_(K({},me),{mint:me.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}},yt=Gt;yt.SOL=new Gt(ut);import li from"toformat";var mi=li,Ze=mi;import gt from"big.js";import pi from"bn.js";import fi from"decimal.js-light";var bt=E("module/fraction"),zt=Ze(gt),He=Ze(fi),yi={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},bi={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},U=class{constructor(t,n=new pi(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)||bt.logWithError(`${t} is not an integer.`),t<=0&&bt.logWithError(`${t} is not positive.`),He.set({precision:t+1,rounding:yi[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)||bt.logWithError(`${t} is not an integer.`),t<0&&bt.logWithError(`${t} is negative.`),zt.DP=t,zt.RM=bi[r]||1,new zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import gi from"bn.js";var em=new U(new gi(100));var am=E("Raydium_price");var Pi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as xf,TOKEN_2022_PROGRAM_ID as Kf,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 _f from"bn.js";import D from"bn.js";var Ne=new D(1).shln(64);var Ai=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),wi=new D(1).shln(128).subn(1);var Me=new D("4295048016"),Fe=new D("79226673521066979257578248091"),ki=new D("59543866431248"),Ti=new D("184467440737095516"),hi=new D("15793534762490258745");var Yt=60,Vm=new D("18446743708227953217"),Ii=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var je=3,qn=100;var Un=10,Gn=100,Pt=14;var H=new D(0),ve=new D(1),_m=new D(-1);var Em=new D("18446744073700000000");var Bi=l([N(8),c("bump"),Z("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Z("tickSpacing"),z("fundFeeRate"),d(z(),1),o("fundOwner"),d(e(),3)]),Si=l([z("blockTimestamp"),Ce("tickCumulative"),d(e(),4)]),zn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),d(Si,qn,"observations"),d(e(),4)]),xi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ki=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Qt=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"),d(L(),4),c("status"),c("feeOn"),N(6),d(Ki,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),xi.replicate("dynamicFeeInfo"),d(e(),46)]),Ci=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ri=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ci,je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Um=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(L(),je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Li=l([ae("tick"),Kn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),d(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),d(z(),3)]),Xn=l([N(8),o("poolId"),ae("startTickIndex"),d(Li,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Oi=l([N(8),c("bump"),d(o(),Un,"operationOwners"),d(o(),Gn,"whitelistMints")]),Ni=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"),d(e(),4)]),Yn=l([N(8),o("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),Gm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Mi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),zm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),Fi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import Qm from"bn.js";var rd=Buffer.from("amm_config","utf8"),vi=Buffer.from("pool","utf8"),Vi=Buffer.from("pool_vault","utf8"),ad=Buffer.from("pool_reward_vault","utf8"),sd=Buffer.from("position","utf8"),ud=Buffer.from("tick_array","utf8"),cd=Buffer.from("operation","utf8"),ld=Buffer.from("pool_tick_array_bitmap_extension","utf8"),md=Buffer.from("observation","utf8"),dd=Buffer.from("support_mint","utf8"),pd=Buffer.from("dynamic_fee_config","utf8");var fd=Buffer.from("locked_position","utf8");import{sha256 as $i}from"js-sha256";import _i from"bn.js";import Pd from"decimal.js";var wd=new _i(1).shln(256).subn(1);import _d from"bn.js";import xd from"bn.js";import Cd from"decimal.js";import Ud from"bn.js";import zd from"decimal.js";import{PublicKey as Lp}from"@solana/web3.js";import Np from"bn.js";import{TOKEN_2022_PROGRAM_ID as Wp}from"@solana/spl-token";import zp from"decimal.js";import wp from"bn.js";import sp from"bn.js";import ef from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from($i.digest(t)).slice(0,8)}zn.span;var Xf=E("Raydium_Clmm"),Yf={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 Jt}from"@solana/web3.js";var or=l([c("instruction")]),ir=l([c("instruction")]),rr=l([e("rewardState"),e("rewardOpenTime"),e("rewardE