@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 73.8 kB
JavaScript
var po=Object.defineProperty,fo=Object.defineProperties;var yo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var on=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var nn=(i,t,n)=>t in i?po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,K=(i,t)=>{for(var n in t||(t={}))on.call(t,n)&&nn(i,n,t[n]);if(ot)for(var n of ot(t))rn.call(t,n)&&nn(i,n,t[n]);return i},_=(i,t)=>fo(i,yo(t));var ue=(i,t)=>{var n={};for(var r in i)on.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&&rn.call(i,r)&&(n[r]=i[r]);return n};import Ie from"bn.js";import IR from"decimal.js";import ha from"big.js";import uR from"bn.js";import{get as an,set as bo}from"lodash";var It=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}},sn={},go={};function E(i){let t=an(sn,i);if(!t){let n=an(go,i);t=new It({name:i,logLevel:n}),bo(sn,i,t)}return t}import{PublicKey as Po}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 Bt=E("Raydium_accountInfo_util");async function be(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=K({batchRequest:!1},n),f=St(t,d),y=new Array(f.length).fill([]);if(r){let P=f.map(O=>{let C=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),x=St(P,10);y=(await(await Promise.all(x.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&Bt.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"&&Bt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:A,owner:new Po(T),rentEpoch:I}}return null})))}else try{y=await Promise.all(f.map(P=>i.getMultipleAccountsInfo(P,u)))}catch(P){P instanceof Error&&Bt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.message}`)}return y.flat()}import qe from"bn.js";var un=9007199254740991;function J(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>=un||i<=-un)&&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 GK}from"lodash";import Ha from"axios";var cn={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"},Ao=_(K({},cn),{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 Yc,createAssociatedTokenAccountIdempotentInstruction as Xc,TOKEN_PROGRAM_ID as Qc,TOKEN_2022_PROGRAM_ID as Zc}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as Ot,SystemProgram as Bo,Transaction as ze,TransactionMessage as Ye,VersionedTransaction as Xe}from"@solana/web3.js";import So from"axios";import{PublicKey as xt,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Kt({connection:i,address:t,cluster:n="mainnet"}){let r=await be(i,[...new Set(t.map(d=>d.toString()))].map(d=>new xt(d))),u={};for(let d=0;d<t.length;d++){let f=r[d],y=t[d];if(!f)continue;let P=new Ke({key:y,state:Ke.deserialize(f.data)});u[y.toString()]=P,n==="devnet"?xe[y.toString()]=P:Se[y.toString()]=P}return u}var Se={},Ct=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Se},xe={},Rt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new xt(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 ln,Keypair as dn,PublicKey as wo,Transaction as pn,TransactionMessage as ko,VersionedTransaction as fn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as To}from"@solana/spl-token";var mn=E("Raydium_txUtil"),yn=1644;function it(i){let t=[],n=[];return i.microLamports&&(t.push(ln.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(ln.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 Lt(i,t){i.length<1&&mn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&mn.logWithError(`no signers provided:, ${t.toString()}`);let n=new pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<yn}catch{return!1}}function le(i,t){let[n,r]=wo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Ue({instructions:i,payer:t,signers:n}){return Lt(i,[t,...n])}function Ge({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=dn.generate().publicKey.toString()}){let d=new ko({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new fn(d).serialize()).toString("base64").length<yn}catch{return!1}}var ho=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Io=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof fn&&(t=ho(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(i){let t=[];return i.forEach(n=>{n instanceof pn&&(n.recentBlockhash||(n.recentBlockhash=To.toBase58()),n.feePayer||(n.feePayer=dn.generate().publicKey)),t.push(Io(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 So.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(Bo.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:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...f.filter(y=>y!==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:f=!0,sendAndConfirm:y,notSendToRpc:P}=u||{},x=d!=null?d:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=x,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:y?await Ot(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let C of O)try{C.sign(...this.signers)}catch{}return{txId:P?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:f}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var x;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:y,instructionTypes: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 f){if(++F,F<=B)continue;let p=await Ot(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:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((v,p)=>(v.recentBlockhash=T,y[p].length&&v.sign(...y[p]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],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=U=>{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=U.err?"error":"success"}C==null||C([...p]),U.err||w()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var U;if(S){clearInterval(R);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(R),ie({err:((U=W.meta)==null?void 0:U.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,U=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,ie(U)},"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,f=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),y=K(K({},this.cluster==="devnet"?await Rt(this.connection):await Ct(this.connection)),n),P=Array.from(new Set([...r,...this.lookupTableAddress])),x=[];for(let T of P)y[T]===void 0&&x.push(new Re(T));let b=await Kt({connection:this.connection,address:x});for(let[T,I]of Object.entries(b))y[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(y));((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(Ae([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:f||{}}}async buildV0MultiTx(t){var x;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],P=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(x=this.owner)!=null&&x.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,O)=>{b.sign(y[O])}),{builder:this,transactions:f,signers:y,instructionTypes:P,buildProps:r,execute:async b=>{var A;let{sequentially:O,onTxUpdate:C,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&f.forEach(T=>T.message.recentBlockhash=B),Ae(f),(A=this.owner)!=null&&A.isKeyPair){if(O){let T=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await rt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),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:[]},f=this.signers.reduce((B,M)=>_(K({},B),{[M.publicKey.toBase58()]:M}),{}),y=[],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})?y.push(new ze().add(...d.instructions,...x)):y.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=>f[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=>f[A]).filter(A=>A!==void 0);Ue({instructions:r?[...d.instructions,...x]:[...x],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?y.push(new ze().add(...d.instructions,...x)):y.push(new ze().add(...x)),P.push(M)}return y.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:y,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(y.forEach(async(p,w)=>{p.recentBlockhash=F,P[w].length&&p.sign(...P[w])}),Ae(y),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,w=[];for(let k of y){if(++p,p<=T){w.push("tx skipped");continue}let S=await Ot(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:y}}return{txIds:await Promise.all(y.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:y}}if(this.signAllTransactions){let p=await this.signAllTransactions(y.slice(T,y.length)),w=[...y.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,U=null,W=null,j=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=S.findIndex(fe=>fe.txId===V);if(ne>-1){if(S[ne].status==="error"||S[ne].status==="success")return;S[ne].status=G.err?"error":"success"}A==null||A([...S]),G.err||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),j({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},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:f=12}=F,y=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),P=K(K({},this.cluster==="devnet"?await Rt(this.connection):await Ct(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 Kt({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<f&&(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(U,W)=>{T[W].length&&U.sign(T[W]),R&&(U.message.recentBlockhash=R)}),Ae(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let U=0,W=[];for(let j of A){if(++U,U<=S){console.log("skip tx: ",U),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 U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(S,A.length)),W=[...A.slice(0,S),...U];if(w){let j=0,G=[],ne=async()=>{if(!W[j])return;if(j<S){G.push({txId:"",status:"success",signedTx:W[j]}),k==null||k([...G]),j++,ne();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,tn=Pe=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let ye=G.findIndex(mo=>mo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Pe.err?"error":"success"}k==null||k([...G]),Pe.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Pe;if(De){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(De=!0,clearInterval(Be),tn({err:((Pe=ye.meta)==null?void 0:Pe.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,Pe=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,tn(Pe)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});j.push(ne)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}};var Nt=(...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(Nt(t))}logInfo(...t){this.logger.info(Nt(t))}logAndCreateError(...t){let n=Nt(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 xo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bn}from"@solana/spl-token";var ut={chainId:101,address:xo.default.toBase58(),programId:bn.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:bn.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 Do}from"@solana/web3.js";import Tn,{isBN as hn}from"bn.js";import{bits as Ko,BitStructure as lu,blob as Co,Blob as mu,cstr as du,f32 as pu,f32be as fu,f64 as yu,f64be as bu,greedy as gu,Layout as Ro,ns64 as Pu,ns64be as Au,nu64 as Lo,nu64be as wu,offset as Oo,s16 as ku,s16be as Tu,s24 as hu,s24be as Iu,s32 as No,s32be as Bu,s40 as Su,s40be as xu,s48 as Ku,s48be as Cu,s8 as Ru,seq as Mo,struct as Lu,Structure as Fo,u16 as vo,u16be as Ou,u24 as Nu,u24be as Mu,u32 as Vo,u32be as Fu,u40 as vu,u40be as Vu,u48 as _u,u48be as Eu,u8 as _o,UInt as Eo,union as Du,Union as Wu,unionLayoutDiscriminator as qu,utf8 as Uu}from"@solana/buffer-layout";var ct=Ro,gn=Fo;var Mt=Eo;var Pn=_o,Z=vo;var lt=Vo;var An=Lo;var ae=No;var wn=Mo;var N=Co;var Ft=Ko,kn=Oo;var ke=class extends ct{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Tn(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 Tn(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=Ft(lt(),!1),this._upper=Ft(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 Mt(1,i)}function z(i){return new Mt(4,i)}function e(i){return new ke(8,!1,i)}function L(i){return new ke(16,!1,i)}function In(i){return new ke(1,!0,i)}function Le(i){return new ke(8,!0,i)}function Bn(i){return new ke(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 Do(t),t=>t.toBuffer(),i)}function re(i){return new Qe(Pn(),Wo,qo,i)}function Wo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function qo(i){return i?1:0}function Sn(i,t){let n=lt("length"),r=l([n,m(i,kn(n,-n.span),"values")]);return new Qe(r,({values:u})=>u,u=>({values:u}),t)}var vt=class extends gn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new vt(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:hn(t)?t.toNumber():new Proxy(t,{get(d,f){if(!r){let y=Reflect.get(d,"count");r=hn(y)?y.toNumber():y,Reflect.set(d,"count",r)}return Reflect.get(d,f)},set(d,f,y){return f==="count"&&(r=y),Reflect.set(d,f,y)}});return wn(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 Pg,SystemProgram as Ag}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as kg}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 Kn=new g("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Cn=new g("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Rn=new g("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vt=new g("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ul=new g("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Go=new g("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ln=new g("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),On=new g("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),cl=new g("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),zo=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Nn=new g("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yo=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Xo=new g("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Mn=new g("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ll=new g("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Qo=new g("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Zo=new g("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Ho=new g("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),jo=new g("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),$o=new g("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),_t=new g("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Jo=new g("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ml=new g("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ei=new g("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ti=new g("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ni=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:Zo,IDO_PROGRAM_ID_V2:Ho,IDO_PROGRAM_ID_V3:jo,IDO_PROGRAM_ID_V4:$o};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 Fn,SYSVAR_RENT_PUBKEY as oi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ii}from"@solana/spl-token";function Oe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var ri=[Oe({pubkey:ii,isWritable:!1}),Oe({pubkey:Fn.programId,isWritable:!1}),Oe({pubkey:oi,isWritable:!1})];function vn({publicKey:i,transformSol:t}){let n=Vn(i.toString());if(n instanceof Y)return t&&n.equals(Te)?ce:n;if(t&&n.toString()===Te.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 Vn(i){try{return new Y(i)}catch{return i}}var Et=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new Y("SysvarRent111111111111111111111111111111111"),ai=new Y("SysvarC1ock11111111111111111111111111111111"),ft=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),si=new Y("Sysvar1nstructions1111111111111111111111111"),_n=Fn.programId,kl=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Tl=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),hl=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Il=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Bl=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Sl=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),xl=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Kl=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Cl=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Rl=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ll=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ce=new Y("So11111111111111111111111111111111111111112"),Te=Y.default;import Lg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Hf,TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as $f}from"@solana/spl-token";import{PublicKey as ey}from"@solana/web3.js";import ny from"bn.js";import iy from"decimal.js";import{TOKEN_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as gm}from"@solana/web3.js";import{PublicKey as Dt}from"@solana/web3.js";var Wt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:f=!1}){if(t===Te.toBase58()||t instanceof Dt&&Te.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Dt(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?Dt.default:vn({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Wt;ee.WSOL=new Wt(_(K({},me),{mint:me.address}));var qt=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=qt;yt.SOL=new qt(ut);import ui from"toformat";var ci=ui,He=ci;import gt from"big.js";import mi from"bn.js";import di from"decimal.js-light";var bt=E("module/fraction"),Ut=He(gt),je=He(di),pi={[0]:je.ROUND_DOWN,[1]:je.ROUND_HALF_UP,[2]:je.ROUND_UP},fi={[0]:gt.roundDown,[1]:gt.roundHalfUp,[2]:gt.roundUp},q=class{constructor(t,n=new mi(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(J(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(J(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||bt.logWithError(`${t} is not an integer.`),t<=0&&bt.logWithError(`${t} is not positive.`),je.set({precision:t+1,rounding:pi[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.`),Ut.DP=t,Ut.RM=fi[r]||1,new Ut(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import yi from"bn.js";var Jl=new q(new yi(100));var bi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Pf,TOKEN_2022_PROGRAM_ID as Af,TOKEN_PROGRAM_ID as wf}from"@solana/spl-token";import{Keypair as hf,PublicKey as If,SystemProgram as Sf,TransactionInstruction as xf}from"@solana/web3.js";import Cf from"bn.js";import D from"bn.js";var he=new D(1).shln(64);var gi=new D(1).shln(128),Gt=new D(1).shln(64).subn(1),Pi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),Ai=new D("59543866431248"),wi=new D("184467440737095516"),ki=new D("15793534762490258745");var zt=60,Cm=new D("18446743708227953217"),Ti=[{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,En=100;var Dn=10,Wn=100,Pt=14;var H=new D(0),Ve=new D(1),Rm=new D(-1);var Lm=new D("18446744073700000000");var hi=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)]),Ii=l([z("blockTimestamp"),Le("tickCumulative"),m(e(),4)]),qn=l([N(8),re("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),m(Ii,En,"observations"),m(e(),4)]),Bi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Si=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),Yt=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(Si,$e,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Bi.replicate("dynamicFeeInfo"),m(e(),46)]),xi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(xi,$e,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Fm=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)]),Ci=l([ae("tick"),Bn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),$e,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(z(),3)]),Un=l([N(8),o("poolId"),ae("startTickIndex"),m(Ci,zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ri=l([N(8),c("bump"),m(o(),Dn,"operationOwners"),m(o(),Wn,"whitelistMints")]),Li=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)]),Gn=l([N(8),o("poolId"),N(8*8*Pt,"positiveTickArrayBitmap"),N(8*8*Pt,"negativeTickArrayBitmap")]),vm=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Oi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Vm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Ni=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Dm from"bn.js";var jm=Buffer.from("amm_config","utf8"),Mi=Buffer.from("pool","utf8"),Fi=Buffer.from("pool_vault","utf8"),$m=Buffer.from("pool_reward_vault","utf8"),Jm=Buffer.from("position","utf8"),ed=Buffer.from("tick_array","utf8"),td=Buffer.from("operation","utf8"),nd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),od=Buffer.from("observation","utf8"),id=Buffer.from("support_mint","utf8"),rd=Buffer.from("dynamic_fee_config","utf8");var ad=Buffer.from("locked_position","utf8");import{sha256 as ji}from"js-sha256";import vi from"bn.js";import ld from"decimal.js";var dd=new vi(1).shln(256).subn(1);import Rd from"bn.js";import Ad from"bn.js";import kd from"decimal.js";import _d from"bn.js";import Dd from"decimal.js";import{PublicKey as Tp}from"@solana/web3.js";import Ip from"bn.js";import{TOKEN_2022_PROGRAM_ID as Op}from"@solana/spl-token";import vp from"decimal.js";import mp from"bn.js";import $d from"bn.js";import zp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(ji.digest(t)).slice(0,8)}qn.span;var Vf=E("Raydium_Clmm"),_f={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("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed")