UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 73.4 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 Ba from"bn.js";import Pe from"bn.js";import BR from"decimal.js";import ha from"big.js";import cR 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 va,TOKEN_PROGRAM_ID as Va,getTransferFeeConfig as _a,unpackMint as Ea}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 UK}from"lodash";import ja 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 ws=E("Raydium_Api");import{PublicKey as Wc,SystemProgram as qc}from"@solana/web3.js";import{AccountLayout as Xc,createAssociatedTokenAccountIdempotentInstruction as Qc,TOKEN_PROGRAM_ID as Zc,TOKEN_2022_PROGRAM_ID as Hc}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as Mt,SystemProgram as So,Transaction as ze,TransactionMessage as Ye,VersionedTransaction as Xe}from"@solana/web3.js";import xo from"axios";import{PublicKey as Ct,AddressLookupTableAccount as Ke}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 Ke({key:f,state:Ke.deserialize(y.data)});u[f.toString()]=P,n==="devnet"?xe[f.toString()]=P:Se[f.toString()]=P}return u}var Se={},Lt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new Ct(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Se},xe={},Ot=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Ct(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),xe};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 Ce(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 Re(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!==Re.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 Ce(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 Ce(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 Re(T));let b=await Rt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?Re.default.toBase58():d!=null?d:await Ce(this.connection,this.blockhashCommitment),C=new Ye({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(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 Re(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 Ce(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 Re(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 Ce(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 Ye({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Xe(R))}else{let R=new Ye({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=[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 Ye({payerKey:this.feePayer,recentBlockhash:B,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(P));A.push(new Xe(k))}else{let k=new Ye({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(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,Be=null,nt=null,on=Ae=>{Be!==null&&clearInterval(Be),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&&(Be=setInterval(async()=>{var Ae;if(De){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(De=!0,clearInterval(Be),on({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){De=!0,clearInterval(Be),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 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 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 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 Wo}from"@solana/web3.js";import In,{isBN as Bn}from"bn.js";import{bits as Co,BitStructure as mu,blob as Ro,Blob as du,cstr as pu,f32 as fu,f32be as yu,f64 as bu,f64be as gu,greedy as Pu,Layout as Lo,ns64 as Au,ns64be as wu,nu64 as Oo,nu64be as ku,offset as No,s16 as Tu,s16be as hu,s24 as Iu,s24be as Bu,s32 as Mo,s32be as Su,s40 as xu,s40be as Ku,s48 as Cu,s48be as Ru,s8 as Lu,seq as Fo,struct as Ou,Structure as vo,u16 as Vo,u16be as Nu,u24 as Mu,u24be as Fu,u32 as _o,u32be as vu,u40 as Vu,u40be as _u,u48 as Eu,u48be as Du,u8 as Eo,UInt as Do,union as Wu,Union as qu,unionLayoutDiscriminator as Uu,utf8 as Gu}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 Le(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 ol}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as rl}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"),cl=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zo=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Nn=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Mn=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),ll=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Yo=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Fn=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Xo=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),vn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ml=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"),dl=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ti=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),oi=new g("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),pl=new g("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),fl=new g("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),yl=new g("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),bl=new g("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),gl=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 Y,SystemProgram as Vn,SYSVAR_RENT_PUBKEY as ii}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";function Oe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var ai=[Oe({pubkey:ri,isWritable:!1}),Oe({pubkey:Vn.programId,isWritable:!1}),Oe({pubkey:ii,isWritable:!1})];function _n({publicKey:i,transformSol:t}){let n=En(i.toString());if(n instanceof Y)return t&&n.equals(he)?ce:n;if(t&&n.toString()===he.toBase58())return ce;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function En(i){try{return new Y(i)}catch{return i}}var Wt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new Y("SysvarRent111111111111111111111111111111111"),si=new Y("SysvarC1ock11111111111111111111111111111111"),ft=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ui=new Y("Sysvar1nstructions1111111111111111111111111"),Dn=Vn.programId,Tl=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hl=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Il=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Bl=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Sl=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),xl=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Kl=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Cl=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Rl=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ll=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ol=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new Y("So11111111111111111111111111111111111111112"),he=Y.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 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: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 em=new U(new bi(100));var am=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 Ie=new D(1).shln(64);var Pi=new D(1).shln(128),Yt=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 Xt=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),_m=new D(-1);var Em=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"),Le("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)]),Um=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,Xt,"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)]),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"),m(e(),8)]),Ni=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),zm=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 Qm from"bn.js";var rd=Buffer.from("amm_config","utf8"),Fi=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 Vi from"bn.js";import Pd from"decimal.js";var wd=new Vi(1).shln(256).subn(1);import _d from"bn.js";import xd from"bn.js";import Cd from"decimal.js";import Yd from"bn.js";import Qd 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($i.digest(t)).slice(0,8)}Gn.span;var zf=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("rewardEndTime"),e("rewardLastUpdateTime"),e("totalR