UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 73.5 kB
var fo=Object.defineProperty,yo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(i,t,n)=>t in i?fo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(i,n,t[n]);if(ot)for(var n of ot(t))sn.call(t,n)&&rn(i,n,t[n]);return i},_=(i,t)=>yo(i,bo(t));var ue=(i,t)=>{var n={};for(var r in i)an.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&ot)for(var r of ot(i))t.indexOf(r)<0&&sn.call(i,r)&&(n[r]=i[r]);return n};import Ia from"bn.js";import Pe from"bn.js";import KR from"decimal.js";import Ta from"big.js";import dR from"bn.js";import{get as un,set as go}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}},cn={},Po={};function E(i){let t=un(cn,i);if(!t){let n=un(Po,i);t=new St({name:i,logLevel:n}),go(cn,i,t)}return t}import{PublicKey as Ao}from"@solana/web3.js";import{MINT_SIZE as Fa,TOKEN_PROGRAM_ID as va,getTransferFeeConfig as Va,unpackMint as _a}from"@solana/spl-token";var xt=E("Raydium_accountInfo_util");async function be(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=K({batchRequest:!1},n),y=Kt(t,d),f=new Array(y.length).fill([]);if(r){let P=y.map(O=>{let C=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),x=Kt(P,10);f=(await(await Promise.all(x.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 Ao(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(y.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 qe from"bn.js";var ln=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof qe)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new qe(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=ln||i<=-ln)&&t.logWithError(`BigNumberish number overflow: ${i}`),new qe(String(i))):typeof i=="bigint"?new qe(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new qe(0))}import{merge as XK}from"lodash";import Ha from"axios";var mn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_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"},wo=_(K({},mn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var As=E("Raydium_Api");import{PublicKey as Dc,SystemProgram as Wc}from"@solana/web3.js";import{AccountLayout as Xc,createAssociatedTokenAccountIdempotentInstruction as Yc,TOKEN_PROGRAM_ID as Qc,TOKEN_2022_PROGRAM_ID as Zc}from"@solana/spl-token";import{PublicKey as Ce,sendAndConfirmTransaction as Mt,SystemProgram as So,Transaction as ze,TransactionMessage as Xe,VersionedTransaction as Ye}from"@solana/web3.js";import xo from"axios";import{PublicKey as Ct,AddressLookupTableAccount as xe}from"@solana/web3.js";async function Rt({connection:i,address:t,cluster:n="mainnet"}){let r=await be(i,[...new Set(t.map(d=>d.toString()))].map(d=>new Ct(d))),u={};for(let d=0;d<t.length;d++){let y=r[d],f=t[d];if(!y)continue;let P=new xe({key:f,state:xe.deserialize(y.data)});u[f.toString()]=P,n==="devnet"?Se[f.toString()]=P:Be[f.toString()]=P}return u}var Be={},Lt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Be[t])return Be;let n=new Ct(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new xe({key:n,state:xe.deserialize(r.data)})),Be},Se={},Ot=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Se[t])return Se;let n=new Ct(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 dn,Keypair as fn,PublicKey as ko,Transaction as yn,TransactionMessage as To,VersionedTransaction as bn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ho}from"@solana/spl-token";var pn=E("Raydium_txUtil"),gn=1644;function it(i){let t=[],n=[];return i.microLamports&&(t.push(dn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(dn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function 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 rt(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 Nt(i,t){i.length<1&&pn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new yn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<gn}catch{return!1}}function le(i,t){let[n,r]=ko.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ue({instructions:i,payer:t,signers:n}){return Nt(i,[t,...n])}function Ge({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=fn.generate().publicKey.toString()}){let d=new To({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new bn(d).serialize()).toString("base64").length<gn}catch{return!1}}var Io=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Bo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof bn&&(t=Io(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function we(i){let t=[];return i.forEach(n=>{n instanceof yn&&(n.recentBlockhash||(n.recentBlockhash=ho.toBase58()),n.feePayer||(n.feePayer=fn.generate().publicKey)),t.push(Bo(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 xo.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(So.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ce(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:y=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...y.filter(f=>f!==Ce.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(_(K({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:d,skipPreflight:y=!0,sendAndConfirm:f,notSendToRpc:P}=u||{},x=d!=null?d:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),we([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Mt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:y}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:y}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:y,signers:f,instructionTypes: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 Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of y){if(++F,F<=B)continue;let p=await 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(p)}return{txIds:h,signedTxs:y}}return{txIds:await await Promise.all(y.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:y}}if(this.signAllTransactions){let h=y.map((v,p)=>(v.recentBlockhash=T,f[p].length&&v.sign(...f[p]),v));we(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],w=async()=>{if(!F[v])return;let k=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});p.push({txId:k,status:"sent",signedTx:F[v]}),C==null||C([...p]),v++;let S=!1,R=null,V=null,ie=q=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let W=p.findIndex(j=>j.txId===k);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=q.err?"error":"success"}C==null||C([...p]),q.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var q;if(S){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(R),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){S=!0,clearInterval(R),console.error("getTransaction timeout:",W,k)}},at)),V=this.connection.onSignature(k,q=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:p.map(k=>k.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let w=await this.connection.sendRawTransaction(F[p].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:d}=M,y=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])),x=[];for(let T of P)f[T]===void 0&&x.push(new Ce(T));let b=await Rt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Ce.default.toBase58():d!=null?d:await Ke(this.connection,this.blockhashCommitment),C=new Xe({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 Ye(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(we([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await rt(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let w of p)try{w.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),y=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),y.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:y,signers:f,instructionTypes:P,buildProps:r,execute:async b=>{var A;let{sequentially:O,onTxUpdate:C,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&y.forEach(T=>T.message.recentBlockhash=B),we(y),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of y){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await rt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:y}}return{txIds:await Promise.all(y.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let T=await this.signAllTransactions(y);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let p=!1,w=null,k=null,S=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(p){clearInterval(w);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(p=!0,clearInterval(w),S({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){p=!0,clearInterval(w),console.error("getTransaction timeout:",V,v)}},at)),k=this.connection.onSignature(v,R=>{if(p){this.connection.removeSignatureListener(k);return}p=!0,S(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"]),d=r?it(r):{instructions:[],instructionTypes:[]},y=this.signers.reduce((B,M)=>_(K({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],P=[],x=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...x,B],A=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&&(Ue({instructions:A,payer:this.feePayer,signers:I})||Ue({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,Ue({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:I})?f.push(new ze().add(...d.instructions,...x)):f.push(new ze().add(...x)),P.push(Array.from(new Set(x.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>y[h]).filter(h=>h!==void 0)),x=[B]}}),x.length>0){let M=[...new Set(x.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>y[A]).filter(A=>A!==void 0);Ue({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new ze().add(...d.instructions,...x)):f.push(new ze().add(...x)),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 Ke(this.connection,this.blockhashCommitment);if(f.forEach(async(p,w)=>{p.recentBlockhash=F,P[w].length&&p.sign(...P[w])}),we(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,w=[];for(let k of f){if(++p,p<=T){w.push("tx skipped");continue}let S=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(S)}return{txIds:w,signedTxs:f}}return{txIds:await Promise.all(f.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let p=await this.signAllTransactions(f.slice(T,f.length)),w=[...f.slice(0,T),...p];if(M){let k=0,S=[],R=async()=>{if(!w[k])return;k<T&&(S.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...S]),k++,R());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});S.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...S]),k++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=S.findIndex(fe=>fe.txId===V);if(te>-1){if(S[te].status==="error"||S[te].status==="success")return;S[te].status=G.err?"error":"success"}A==null||A([...S]),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:S.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let S=0;S<w.length;S+=1){let R=await this.connection.sendRawTransaction(w[S].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:d=[],insCountLimit:y=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),x=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of x)P[p]===void 0&&b.push(new Ce(p));let O=await Rt({connection:this.connection,address:b});for(let[p,w]of Object.entries(O))P[p]=w;let C=n?it(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,w)=>_(K({},p),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let w=[...I,p],k=n?[...C.instructions,...w]:w;if(p!==r[h]&&I.length<y&&(Ge({instructions:k,payer:this.feePayer,lookupTableAddressAccount:P})||Ge({instructions:w,payer:this.feePayer,lookupTableAddressAccount:P})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let R of[...new Set(x)])P[R]!==void 0&&(S[R]=P[R]);if(n&&Ge({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let R=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Ye(R))}else{let R=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Ye(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=[p]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ge({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:P,recentBlockhash:B})){let k=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Ye(k))}else{let k=new Xe({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(P));A.push(new Ye(k))}T.push(w)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(w=>w.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),A.forEach((p,w)=>{p.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:S=0,recentBlockHash:R,skipPreflight:V=!0}=p||{};if(A.map(async(q,W)=>{T[W].length&&q.sign(T[W]),R&&(q.message.recentBlockhash=R)}),we(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let q=0,W=[];for(let j of A){if(++q,q<=S){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(S,A.length)),W=[...A.slice(0,S),...q];if(w){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<S){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[j]}),k==null||k([...G]),j++;let De=!1,Ie=null,nt=null,on=Ae=>{Ie!==null&&clearInterval(Ie),nt!==null&&this.connection.removeSignatureListener(nt);let ye=G.findIndex(po=>po.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||te()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var Ae;if(De){clearInterval(Ie);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(De=!0,clearInterval(Ie),on({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){De=!0,clearInterval(Ie),console.error("getTransaction timeout:",ye,fe)}},at)),nt=this.connection.onSignature(fe,Ae=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,on(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};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 gc,SystemProgram as Ac}from"@solana/web3.js";import Tc from"bn.js";import{createCloseAccountInstruction as Sc,createInitializeAccountInstruction as xc,createTransferInstruction as Kc,TOKEN_PROGRAM_ID as Cc}from"@solana/spl-token";import{PublicKey as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pn}from"@solana/spl-token";var ut={chainId:101,address:Ko.default.toBase58(),programId:Pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Pn.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{Keypair as ic,PublicKey as rc}from"@solana/web3.js";import uc from"bn.js";import{TOKEN_PROGRAM_ID as mc}from"@solana/spl-token";import{PublicKey as Wo}from"@solana/web3.js";import In,{isBN as Bn}from"bn.js";import{bits as Co,BitStructure as lu,blob as Ro,Blob as mu,cstr as du,f32 as pu,f32be as fu,f64 as yu,f64be as bu,greedy as gu,Layout as Lo,ns64 as Pu,ns64be as Au,nu64 as Oo,nu64be as wu,offset as No,s16 as ku,s16be as Tu,s24 as hu,s24be as Iu,s32 as Mo,s32be as Bu,s40 as Su,s40be as xu,s48 as Ku,s48be as Cu,s8 as Ru,seq as Fo,struct as Lu,Structure as vo,u16 as Vo,u16be as Ou,u24 as Nu,u24be as Mu,u32 as _o,u32be as Fu,u40 as vu,u40be as Vu,u48 as _u,u48be as Eu,u8 as Eo,UInt as Do,union as Du,Union as Wu,unionLayoutDiscriminator as qu,utf8 as Uu}from"@solana/buffer-layout";var ct=Lo,An=vo;var vt=Do;var wn=Eo,Z=Vo;var lt=_o;var kn=Oo;var ae=Mo;var Tn=Fo;var N=Ro;var Vt=Co,hn=No;var Te=class extends ct{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new In(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 In(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),d=this._upper.decode(n,r+this._lower.span);return K(K({},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 vt(1,i)}function z(i){return new vt(4,i)}function e(i){return new Te(8,!1,i)}function L(i){return new Te(16,!1,i)}function Sn(i){return new Te(1,!0,i)}function Re(i){return new Te(8,!0,i)}function xn(i){return new Te(16,!0,i)}var Qe=class extends ct{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 Qe(N(32),t=>new Wo(t),t=>t.toBuffer(),i)}function re(i){return new Qe(wn(),qo,Uo,i)}function qo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Uo(i){return i?1:0}function Kn(i,t){let n=lt("length"),r=l([n,m(i,hn(n,-n.span),"values")]);return new Qe(r,({values:u})=>u,u=>({values:u}),t)}var _t=class extends An{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new _t(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:Bn(t)?t.toNumber():new Proxy(t,{get(d,y){if(!r){let f=Reflect.get(d,"count");r=Bn(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,y)},set(d,y,f){return y==="count"&&(r=f),Reflect.set(d,y,f)}});return Tn(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 Sg,SystemProgram as xg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Cg}from"@solana/spl-token";import{PublicKey as nl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as il}from"@solana/spl-token";import{PublicKey as g}from"@solana/web3.js";var Rn=new g("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Ln=new g("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),On=new g("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Et=new g("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ul=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zo=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Nn=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Mn=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),cl=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xo=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fn=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yo=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ll=new g("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Zo=new g("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ho=new g("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),jo=new g("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),$o=new g("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Jo=new g("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Dt=new g("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ei=new g("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ml=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ti=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),oi=new g("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),dl=new g("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),pl=new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),fl=new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),yl=new g("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),bl=new g("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Ze={IDO_PROGRAM_ID_V1:Ho,IDO_PROGRAM_ID_V2:jo,IDO_PROGRAM_ID_V3:$o,IDO_PROGRAM_ID_V4:Jo};var ge={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 Vn,SYSVAR_RENT_PUBKEY as ii}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";function Le({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var ai=[Le({pubkey:ri,isWritable:!1}),Le({pubkey:Vn.programId,isWritable:!1}),Le({pubkey:ii,isWritable:!1})];function _n({publicKey:i,transformSol:t}){let n=En(i.toString());if(n instanceof X)return t&&n.equals(he)?ce:n;if(t&&n.toString()===he.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 En(i){try{return new X(i)}catch{return i}}var Wt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new X("SysvarRent111111111111111111111111111111111"),si=new X("SysvarC1ock11111111111111111111111111111111"),ft=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ui=new X("Sysvar1nstructions1111111111111111111111111"),Dn=Vn.programId,kl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Tl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),hl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Il=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Bl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Sl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Kl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Cl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Rl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ll=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new X("So11111111111111111111111111111111111111112"),he=X.default;import Eg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as iy,TOKEN_2022_PROGRAM_ID as ry,TOKEN_PROGRAM_ID as ay}from"@solana/spl-token";import{PublicKey as uy}from"@solana/web3.js";import ly from"bn.js";import dy from"decimal.js";import{TOKEN_PROGRAM_ID as wm}from"@solana/spl-token";import{PublicKey as Im}from"@solana/web3.js";import{PublicKey as qt}from"@solana/web3.js";var Ut=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:y=!1}){if(t===he.toBase58()||t instanceof qt&&he.equals(t)){this.decimals=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=d?qt.default:_n({publicKey:t}),this.isToken2022=y}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 ci from"toformat";var li=ci,He=li;import gt from"big.js";import di from"bn.js";import pi from"decimal.js-light";var bt=E("module/fraction"),zt=He(gt),je=He(pi),fi={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},yi={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},U=class{constructor(t,n=new di(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.`),je.set({precision:t+1,rounding:fi[r]});let u=new je(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=yi[r]||1,new zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import bi from"bn.js";var Jl=new U(new bi(100));var rm=E("Raydium_price");var gi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Sf,TOKEN_2022_PROGRAM_ID as xf,TOKEN_PROGRAM_ID as Kf}from"@solana/spl-token";import{Keypair as Lf,PublicKey as Of,SystemProgram as Mf,TransactionInstruction as Ff}from"@solana/web3.js";import Vf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var Pi=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),Ai=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),wi=new D("59543866431248"),ki=new D("184467440737095516"),Ti=new D("15793534762490258745");var Yt=60,vm=new D("18446743708227953217"),hi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var $e=3,Wn=100;var qn=10,Un=100,Pt=14;var H=new D(0),Ve=new D(1),Vm=new D(-1);var _m=new D("18446744073700000000");var Ii=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)]),Gn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(Bi,Wn,"observations"),m(e(),4)]),Si=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),xi=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"),m(L(),4),c("status"),c("feeOn"),N(6),m(xi,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Si.replicate("dynamicFeeInfo"),m(e(),46)]),Ki=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ci=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Ki,$e,"rewardInfos"),e("recentEpoch"),m(e(),7)]),qm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),$e,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ri=l([ae("tick"),xn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(z(),3)]),zn=l([N(8),o("poolId"),ae("startTickIndex"),m(Ri,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Li=l([N(8),c("bump"),m(o(),qn,"operationOwners"),m(o(),Un,"whitelistMints")]),Oi=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)]),Xn=l([N(8),o("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),Um=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Ni=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Gm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Mi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Ym from"bn.js";var id=Buffer.from("amm_config","utf8"),Fi=Buffer.from("pool","utf8"),vi=Buffer.from("pool_vault","utf8"),rd=Buffer.from("pool_reward_vault","utf8"),ad=Buffer.from("position","utf8"),sd=Buffer.from("tick_array","utf8"),ud=Buffer.from("operation","utf8"),cd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),ld=Buffer.from("observation","utf8"),md=Buffer.from("support_mint","utf8"),dd=Buffer.from("dynamic_fee_config","utf8");var pd=Buffer.from("locked_position","utf8");import{sha256 as ji}from"js-sha256";import Vi from"bn.js";import gd from"decimal.js";var Ad=new Vi(1).shln(256).subn(1);import Vd from"bn.js";import Sd from"bn.js";import Kd from"decimal.js";import qd from"bn.js";import Gd from"decimal.js";import{PublicKey as Rp}from"@solana/web3.js";import Op from"bn.js";import{TOKEN_2022_PROGRAM_ID as Dp}from"@solana/spl-token";import Gp from"decimal.js";import Ap from"bn.js";import ap from"bn.js";import Jp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(ji.digest(t)).slice(0,8)}Gn.span;var zf=E("Raydium_Clmm"),Xf={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 nr=l([c("instruction")]),or=l([c("instruction")]),ir=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalR