UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 74.8 kB
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var rt=Object.getOwnPropertySymbols;var ln=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable;var cn=(i,t,n)=>t in i?Po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,O=(i,t)=>{for(var n in t||(t={}))ln.call(t,n)&&cn(i,n,t[n]);if(rt)for(var n of rt(t))mn.call(t,n)&&cn(i,n,t[n]);return i},D=(i,t)=>Ao(i,wo(t));var ce=(i,t)=>{var n={};for(var r in i)ln.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&rt)for(var r of rt(i))t.indexOf(r)<0&&mn.call(i,r)&&(n[r]=i[r]);return n};import bo from"bn.js";import at from"bn.js";function Ct(i,t){if(t.isZero())throw Error("divisor is zero");return i.mod(t)}function ko(i,t){if(t.isZero())throw Error("rhs is zero");let n=i.div(t);return Ct(i,t).gt(We)&&(n=n.add(new at(1))),[n,t]}var We=new at(0),qe=class{static swapBaseInputWithoutFees(t,n,r){let u=t.mul(r),m=n.add(t);return u.div(m)}static swapBaseOutputWithoutFees(t,n,r){let u=n.mul(t),m=r.sub(t),[p]=ko(u,m);return p}static lpTokensToTradingTokens(t,n,r,u,m){let p=t.mul(r).div(n),f=t.mul(u).div(n);if(m===0)return{tokenAmount0:p,tokenAmount1:f};if(m===1)return Ct(t.mul(r),n).gt(We)&&p.gt(We)&&(p=p.add(new at(1))),Ct(t.mul(u),n).gt(We)&&f.gt(We)&&(f=f.add(new at(1))),{tokenAmount0:p,tokenAmount1:f};throw Error("roundDirection value error")}};import wa from"bn.js";import Ae from"bn.js";import GC from"decimal.js";import Pa from"big.js";import KC from"bn.js";import{get as pn,set as To}from"lodash";var Rt=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}},fn={},ho={};function _(i){let t=pn(fn,i);if(!t){let n=pn(ho,i);t=new Rt({name:i,logLevel:n}),To(fn,i,t)}return t}import{PublicKey as Io}from"@solana/web3.js";import{MINT_SIZE as Va,TOKEN_PROGRAM_ID as _a,getTransferFeeConfig as Ea,unpackMint as Da}from"@solana/spl-token";var Lt=_("Raydium_accountInfo_util");async function be(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=O({batchRequest:!1},n),p=Ot(t,m),f=new Array(p.length).fill([]);if(r){let g=p.map(I=>{let x=i._buildArgs([I.map(k=>k.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:x}}),w=Ot(g,10);f=(await(await Promise.all(w.map(async I=>await i._rpcBatchRequest(I)))).flat()).map(I=>(I.error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${I.error.message}`),I.result.value.map(x=>{if(x){let{data:k,executable:R,lamports:A,owner:P,rentEpoch:B}=x;return k.length!==2&&k[1]!=="base64"&&Lt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(k[0],"base64"),executable:R,lamports:A,owner:new Io(P),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import Ge from"bn.js";var yn=9007199254740991;function ne(i){let t=_("Raydium_parseBigNumberish");if(i instanceof Ge)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ge(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=yn||i<=-yn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ge(String(i))):typeof i=="bigint"?new Ge(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ge(0))}import{merge as lK}from"lodash";import $a from"axios";var bn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Bo=D(O({},bn),{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 ks=_("Raydium_Api");import{PublicKey as Uc,SystemProgram as Gc}from"@solana/web3.js";import{AccountLayout as Zc,createAssociatedTokenAccountIdempotentInstruction as Hc,TOKEN_PROGRAM_ID as jc,TOKEN_2022_PROGRAM_ID as $c}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as _t,SystemProgram as Lo,Transaction as Ye,TransactionMessage as Qe,VersionedTransaction as Ze}from"@solana/web3.js";import Oo from"axios";import{PublicKey as Nt,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Mt({connection:i,address:t,cluster:n="mainnet"}){let r=await be(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Nt(m))),u={};for(let m=0;m<t.length;m++){let p=r[m],f=t[m];if(!p)continue;let g=new Ke({key:f,state:Ke.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?xe[f.toString()]=g:Se[f.toString()]=g}return u}var Se={},Ft=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new Nt(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Se},xe={},vt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new Nt(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 gn,Keypair as An,PublicKey as So,Transaction as wn,TransactionMessage as xo,VersionedTransaction as kn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ko}from"@solana/spl-token";var Pn=_("Raydium_txUtil"),Tn=1644;function st(i){let t=[],n=[];return i.microLamports&&(t.push(gn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(gn.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 ut(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Vt(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 wn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function le(i,t){let[n,r]=So.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function ze({instructions:i,payer:t,signers:n}){return Vt(i,[t,...n])}function Xe({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=An.generate().publicKey.toString()}){let m=new xo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new kn(m).serialize()).toString("base64").length<Tn}catch{return!1}}var Co=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ro=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof kn&&(t=Co(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof wn&&(n.recentBlockhash||(n.recentBlockhash=Ko.toBase58()),n.feePayer||(n.feePayer=An.generate().publicKey)),t.push(Ro(n))}),console.log("simulate tx string:",t),t}var ct=2e3,lt=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 Oo.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}=st(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Lo.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:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Re.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(O({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ye;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 y;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},w=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=w,this.signers.length&&n.sign(...this.signers),ke([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await _t(this.connection,n,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let I=await this.signAllTransactions([n]);if(this.signers.length)for(let x of I)try{x.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(I[0].serialize(),{skipPreflight:p}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var w;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(y=>y.transaction.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&f.forEach(y=>{y.some(I=>I.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var B;let{sequentially:I,onTxUpdate:x,skipTxCount:k=0,recentBlockHash:R,skipPreflight:A=!0}=y||{},P=R!=null?R:await Ce(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(I){let K=[],F=0;for(let v of p){if(++F,F<=k)continue;let b=await _t(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});K.push(b)}return{txIds:K,signedTxs:p}}return{txIds:await await Promise.all(p.map(async K=>(K.recentBlockhash=P,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let K=p.map((v,b)=>(v.recentBlockhash=P,f[b].length&&v.sign(...f[b]),v));ke(K);let F=await this.signAllTransactions(K);if(I){let v=0,b=[],T=async()=>{if(!F[v])return;let h=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});b.push({txId:h,status:"sent",signedTx:F[v]}),x==null||x([...b]),v++;let C=!1,L=null,V=null,re=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=b.findIndex(j=>j.txId===h);if(W>-1){if(b[W].status==="error"||b[W].status==="success")return;b[W].status=q.err?"error":"success"}x==null||x([...b]),q.err||T()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(C){clearInterval(L);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(L),console.error("getTransaction timeout:",W,h)}},ct)),V=this.connection.onSignature(h,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(h)};return await T(),{txIds:b.map(h=>h.txId),signedTxs:F}}else{let v=[];for(let b=0;b<F.length;b+=1){let T=await this.connection.sendRawTransaction(F[b].serialize(),{skipPreflight:A});v.push(T)}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 R=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=R,p=ce(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=O(O({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),w=[];for(let P of g)f[P]===void 0&&w.push(new Re(P));let y=await Mt({connection:this.connection,address:w});for(let[P,B]of Object.entries(y))f[P]=B;let I=u?Re.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),x=new Qe({payerKey:this.feePayer,recentBlockhash:I,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new Ze(x);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:B=!0,sendAndConfirm:K,notSendToRpc:F}=P||{};if(ke([k]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(k,{skipPreflight:B});return K&&await ut(this.connection,b),{txId:b,signedTx:k}}if(this.signAllTransactions){let b=await this.signAllTransactions([k]);if(this.signers.length)for(let T of b)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var w;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(y=>y.builder.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&f.forEach(y=>{y.some(I=>I.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,I)=>{y.sign(f[I])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:r,execute:async y=>{var A;let{sequentially:I,onTxUpdate:x,recentBlockHash:k,skipPreflight:R=!0}=y||{};if(k&&p.forEach(P=>P.message.recentBlockhash=k),ke(p),(A=this.owner)!=null&&A.isKeyPair){if(I){let P=[];for(let B of p){let K=await this.connection.sendTransaction(B,{skipPreflight:R});await ut(this.connection,K),P.push(K)}return{txIds:P,signedTxs:p}}return{txIds:await Promise.all(p.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:R}))),signedTxs:p}}if(this.signAllTransactions){let P=await this.signAllTransactions(p);if(I){let B=0,K=[],F=async()=>{if(!P[B])return;let v=await this.connection.sendTransaction(P[B],{skipPreflight:R});K.push({txId:v,status:"sent",signedTx:P[B]}),x==null||x([...K]),B++;let b=!1,T=null,h=null,C=L=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let V=K.findIndex(re=>re.txId===v);if(V>-1){if(K[V].status==="error"||K[V].status==="success")return;K[V].status=L.err?"error":"success"}x==null||x([...K]),L.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var L;if(b){clearInterval(T);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(b=!0,clearInterval(T),C({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){b=!0,clearInterval(T),console.error("getTransaction timeout:",V,v)}},ct)),h=this.connection.onSignature(v,L=>{if(b){this.connection.removeSignatureListener(h);return}b=!0,C(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let B=[];for(let K=0;K<P.length;K+=1){let F=await this.connection.sendTransaction(P[K],{skipPreflight:R});B.push(F)}return{txIds:B,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var x;let I=t||{},{splitIns:n=[],computeBudgetConfig:r}=I,u=ce(I,["splitIns","computeBudgetConfig"]),m=r?st(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((k,R)=>D(O({},k),{[R.publicKey.toBase58()]:R}),{}),f=[],g=[],w=[],y=0;if(this.allInstructions.forEach(k=>{let R=[...w,k],A=r?[...m.instructions,...R]:R,B=[...new Set(R.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(K=>new Re(K));if(k!==n[y]&&w.length<12&&(ze({instructions:A,payer:this.feePayer,signers:B})||ze({instructions:R,payer:this.feePayer,signers:B})))w.push(k);else{if(w.length===0)throw Error("item ins too big");y+=k===n[y]?1:0,ze({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:B})?f.push(new Ye().add(...m.instructions,...w)):f.push(new Ye().add(...w)),g.push(Array.from(new Set(w.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(K=>p[K]).filter(K=>K!==void 0)),w=[k]}}),w.length>0){let R=[...new Set(w.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);ze({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:R.map(A=>A.publicKey)})?f.push(new Ye().add(...m.instructions,...w)):f.push(new Ye().add(...w)),g.push(R)}return f.forEach(k=>k.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&g.forEach(k=>{k.some(R=>R.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:R,onTxUpdate:A,skipTxCount:P=0,recentBlockHash:B,skipPreflight:K=!0}=k||{},F=B!=null?B:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(b,T)=>{b.recentBlockhash=F,g[T].length&&b.sign(...g[T])}),ke(f),(v=this.owner)!=null&&v.isKeyPair){if(R){let b=0,T=[];for(let h of f){if(++b,b<=P){T.push("tx skipped");continue}let C=await _t(this.connection,h,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});T.push(C)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:K}))),signedTxs:f}}if(this.signAllTransactions){let b=await this.signAllTransactions(f.slice(P,f.length)),T=[...f.slice(0,P),...b];if(R){let h=0,C=[],L=async()=>{if(!T[h])return;h<P&&(C.push({txId:"",status:"success",signedTx:T[h]}),A==null||A([...C]),h++,L());let V=await this.connection.sendRawTransaction(T[h].serialize(),{skipPreflight:K});C.push({txId:V,status:"sent",signedTx:T[h]}),A==null||A([...C]),h++;let re=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=C.findIndex(fe=>fe.txId===V);if(te>-1){if(C[te].status==="error"||C[te].status==="success")return;C[te].status=G.err?"error":"success"}A==null||A([...C]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(re=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},ct)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:C.map(V=>V.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let L=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:K});h.push(L)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=F,f=ce(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=O(O({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),u),w=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let b of w)g[b]===void 0&&y.push(new Re(b));let I=await Mt({connection:this.connection,address:y});for(let[b,T]of Object.entries(I))g[b]=T;let x=n?st(n):{instructions:[],instructionTypes:[]},k=await Ce(this.connection,this.blockhashCommitment),R=this.signers.reduce((b,T)=>D(O({},b),{[T.publicKey.toBase58()]:T}),{}),A=[],P=[],B=[],K=0;if(this.allInstructions.forEach(b=>{let T=[...B,b],h=n?[...x.instructions,...T]:T;if(b!==r[K]&&B.length<p&&(Xe({instructions:h,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:T,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");K+=b===r[K]?1:0;let C={};for(let L of[...new Set(w)])g[L]!==void 0&&(C[L]=g[L]);if(n&&Xe({instructions:[...x.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:k})){let L=new Qe({payerKey:this.feePayer,recentBlockhash:k,instructions:[...x.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Ze(L))}else{let L=new Qe({payerKey:this.feePayer,recentBlockhash:k,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Ze(L))}P.push(Array.from(new Set(B.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>R[L]).filter(L=>L!==void 0)),B=[b]}}),B.length>0){let T=[...new Set(B.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(h=>R[h]).filter(h=>h!==void 0);if(n&&Xe({instructions:[...x.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:k})){let h=new Qe({payerKey:this.feePayer,recentBlockhash:k,instructions:[...x.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Ze(h))}else{let h=new Qe({payerKey:this.feePayer,recentBlockhash:k,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Ze(h))}P.push(T)}return(v=this.owner)!=null&&v.signer&&P.forEach(b=>{b.some(T=>T.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,T)=>{b.sign(P[T])}),{builder:this,transactions:A,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async b=>{var re;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:L,skipPreflight:V=!0}=b||{};if(A.map(async(q,W)=>{P[W].length&&q.sign(P[W]),L&&(q.message.recentBlockhash=L)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(T){let q=0,W=[];for(let j of A){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:V});await ut(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(C,A.length)),W=[...A.slice(0,C),...q];if(T){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),h==null||h([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:fe,status:"sent",signedTx:W[j]}),h==null||h([...G]),j++;let De=!1,Be=null,it=null,un=we=>{Be!==null&&clearInterval(Be),it!==null&&this.connection.removeSignatureListener(it);let ye=G.findIndex(go=>go.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=we.err?"error":"success"}h==null||h([...G]),we.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var we;if(De){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(De=!0,clearInterval(Be),un({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){De=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},ct)),it=this.connection.onSignature(fe,we=>{if(De){this.connection.removeSignatureListener(it);return}De=!0,un(we)},"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 Et=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new lt({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(Et(t))}logInfo(...t){this.logger.info(Et(t))}logAndCreateError(...t){let n=Et(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as wc,SystemProgram as Tc}from"@solana/web3.js";import Bc from"bn.js";import{createCloseAccountInstruction as Cc,createInitializeAccountInstruction as Rc,createTransferInstruction as Lc,TOKEN_PROGRAM_ID as Oc}from"@solana/spl-token";import{PublicKey as No}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as hn}from"@solana/spl-token";var mt={chainId:101,address:No.default.toBase58(),programId:hn.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:hn.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 sc,PublicKey as uc}from"@solana/web3.js";import mc from"bn.js";import{TOKEN_PROGRAM_ID as fc}from"@solana/spl-token";import{PublicKey as zo}from"@solana/web3.js";import Kn,{isBN as Cn}from"bn.js";import{bits as Mo,BitStructure as du,blob as Fo,Blob as pu,cstr as fu,f32 as yu,f32be as bu,f64 as gu,f64be as Pu,greedy as Au,Layout as vo,ns64 as wu,ns64be as ku,nu64 as Tu,nu64be as hu,offset as Vo,s16 as Iu,s16be as Bu,s24 as Su,s24be as xu,s32 as _o,s32be as Ku,s40 as Cu,s40be as Ru,s48 as Lu,s48be as Ou,s8 as Nu,seq as Eo,struct as Mu,Structure as Do,u16 as Wo,u16be as Fu,u24 as vu,u24be as Vu,u32 as qo,u32be as _u,u40 as Eu,u40be as Du,u48 as Wu,u48be as qu,u8 as Uo,UInt as Go,union as Uu,Union as Gu,unionLayoutDiscriminator as zu,utf8 as Xu}from"@solana/buffer-layout";var dt=vo,In=Do;var Dt=Go;var Bn=Uo,Z=Wo;var pt=qo;var se=_o;var Sn=Eo;var M=Fo;var Wt=Mo,xn=Vo;var he=class extends dt{constructor(n,r,u){super(n,u);this.blob=M(n),this.signed=r}decode(n,r=0){let u=new Kn(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 Kn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ft=class extends dt{constructor(n){super(8,n);this._lower=Wt(pt(),!1),this._upper=Wt(pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return O(O({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Dt(1,i)}function z(i){return new Dt(4,i)}function e(i){return new he(8,!1,i)}function N(i){return new he(16,!1,i)}function Rn(i){return new he(1,!0,i)}function Le(i){return new he(8,!0,i)}function Ln(i){return new he(16,!0,i)}var He=class extends dt{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new He(M(32),t=>new zo(t),t=>t.toBuffer(),i)}function ae(i){return new He(Bn(),Xo,Yo,i)}function Xo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Yo(i){return i?1:0}function On(i,t){let n=pt("length"),r=l([n,d(i,xn(n,-n.span),"values")]);return new He(r,({values:u})=>u,u=>({values:u}),t)}var qt=class extends In{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new qt(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:Cn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!r){let f=Reflect.get(m,"count");r=Cn(f)?f.toNumber():f,Reflect.set(m,"count",r)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(r=f),Reflect.set(m,p,f)}});return Sn(i,u,n)}var yt=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 Ng,SystemProgram as Mg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as vg}from"@solana/spl-token";import{PublicKey as rl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as sl}from"@solana/spl-token";import{PublicKey as S}from"@solana/web3.js";var Mn=new S("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new S("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new S("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ut=new S("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ml=new S("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Zo=new S("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Vn=new S("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),_n=new S("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),dl=new S("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ho=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new S("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),jo=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$o=new S("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),pl=new S("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Jo=new S("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Gt=new S("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ei=new S("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),fl=new S("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ti=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new S("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),oi=new S("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),yl=new S("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),bl=new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),gl=new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Pl=new S("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Al=new S("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new S("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new S("Ray1111111111111111111111111111111111111111"),AMM_V4:new S("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new S("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new S("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new S("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new S("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new S("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new S("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new S("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:S.default,Router:new S("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new S("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new S("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new S("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new S("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new S("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new S("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new S("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new S("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as Wn,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:Wn.programId,isWritable:!1}),Oe({pubkey:ii,isWritable:!1})];function qn({publicKey:i,transformSol:t}){let n=Un(i.toString());if(n instanceof X)return t&&n.equals(Ie)?ge:n;if(t&&n.toString()===Ie.toBase58())return ge;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Un(i){try{return new X(i)}catch{return i}}var zt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),je=new X("SysvarRent111111111111111111111111111111111"),Il=new X("SysvarC1ock11111111111111111111111111111111"),gt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),si=new X("Sysvar1nstructions1111111111111111111111111"),ui=Wn.programId,Bl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),xl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Kl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Cl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Rl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ll=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ol=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Nl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ml=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Fl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new X("So11111111111111111111111111111111111111112"),Ie=X.default;import Xg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as my,TOKEN_2022_PROGRAM_ID as dy,TOKEN_PROGRAM_ID as py}from"@solana/spl-token";import{PublicKey as yy}from"@solana/web3.js";import gy from"bn.js";import Ay from"decimal.js";import{TOKEN_PROGRAM_ID as Im}from"@solana/spl-token";import{PublicKey as Km}from"@solana/web3.js";import{PublicKey as Xt}from"@solana/web3.js";var Yt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===Ie.toBase58()||t instanceof Xt&&Ie.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Xt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Xt.default:qn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Yt;J.WSOL=new Yt(D(O({},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}},Pt=Qt;Pt.SOL=new Qt(mt);import ci from"toformat";var li=ci,$e=li;import wt from"big.js";import di from"bn.js";import pi from"decimal.js-light";var At=_("module/fraction"),Zt=$e(wt),Je=$e(pi),fi={[0]:Je.ROUND_DOWN,[1]:Je.ROUND_HALF_UP,[2]:Je.ROUND_UP},yi={[0]:wt.roundDown,[1]:wt.roundHalfUp,[2]:wt.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)||At.logWithError(`${t} is not an integer.`),t<=0&&At.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)||At.logWithError(`${t} is not an integer.`),t<0&&At.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 om=new U(new bi(100));var cm=_("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 Nf,TOKEN_2022_PROGRAM_ID as Mf,TOKEN_PROGRAM_ID as Ff}from"@solana/spl-token";import{Keypair as _f,PublicKey as Ef,SystemProgram as Wf,TransactionInstruction as qf}from"@solana/web3.js";import Gf from"bn.js";import E from"bn.js";var Me=new E(1).shln(64);var Pi=new E(1).shln(128),Ht=new E(1).shln(64).subn(1),Ai=new E(1).shln(128).subn(1);var Fe=new E("4295048016"),ve=new E("79226673521066979257578248091"),wi=new E("59543866431248"),ki=new E("184467440737095516"),Ti=new E("15793534762490258745");var jt=60,Dm=new E("18446743708227953217"),hi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var et=3,Gn=100;var zn=10,Xn=100,kt=14;var H=new E(0),Ve=new E(1),Wm=new E(-1);var qm=new E("18446744073700000000");var Ii=l([M(8),c("bump"),Z("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Z("tickSpacing"),z("fundFeeRate"),d(z(),1),o("fundOwner"),d(e(),3)]),Bi=l([z("blockTimestamp"),Le("tickCumulative"),d(e(),4)]),Yn=l([M(8),ae("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),d(Bi,Gn,"observations"),d(e(),4)]),Si=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),xi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),N("growthGlobalX64")]),$t=l([M(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Z("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),se("tickCurrent"),z(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(N(),4),c("status"),c("feeOn"),M(6),d(xi,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Si.replicate("dynamicFeeInfo"),d(e(),46)]),Ki=l([N("growthInsideLastX64"),e("rewardAmountOwed")]),Ci=l([M(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ki,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Xm=l([M(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(N(),et,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ri=l([se("tick"),Ln("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),d(N(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),d(z(),3)]),Qn=l([M(8),o("poolId"),se("startTickIndex"),d(Ri,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Li=l([M(8),c("bump"),d(o(),zn,"operationOwners"),d(o(),Xn,"whitelistMints")]),Oi=l([M(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),N("unfilledRatioX64"),d(e(),4)]),Zn=l([M(8),o("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),Ym=l([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Ni=l([M(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),Qm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),Mi=l([M(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import jm from"bn.js";var ud=Buffer.from("amm_config","utf8"),Fi=Buffer.from("pool","utf8"),vi=Buffer.from("pool_vault","utf8"),cd=Buffer.from("pool_reward_vault","utf8"),ld=Buffer.from("position","utf8"),md=Buffer.from("tick_array","utf8"),dd=Buffer.from("operation","utf8"),pd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),fd=Buffer.from("observation","utf8"),yd=Buffer.from("support_mint","utf8"),bd=Buffer.from("dynamic_fee_config","utf8");var gd=Buffer.from("locked_position","utf8");import{sha256 as ji}from"js-sha256";import Vi from"bn.js";import kd from"decimal.js";var hd=new Vi(1).shln(256).subn(1);import Wd from"bn.js";import Rd from"bn.js";import Od from"decimal.js";import Xd from"bn.js";import Qd from"decimal.js";import{PublicKey as Mp}from"@solana/web3.js";import vp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Gp,TOKEN_PROGRAM_ID as zp}from"@solana/spl-token";import Zp from"decimal.js";import hp from"bn.js";import lp from"bn.js";import sf from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(ji.digest(t)).slice(0,8)}Yn.span;var $f=_("Raydium_Clmm"),Jf={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