@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 75.6 kB
JavaScript
var ko=Object.defineProperty,To=Object.defineProperties;var ho=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(i,t,n)=>t in i?ko(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,L=(i,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(i,n,t[n]);if(at)for(var n of at(t))dn.call(t,n)&&ln(i,n,t[n]);return i},_=(i,t)=>To(i,ho(t));var ce=(i,t)=>{var n={};for(var r in i)mn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&at)for(var r of at(i))t.indexOf(r)<0&&dn.call(i,r)&&(n[r]=i[r]);return n};import Ao from"bn.js";import st from"bn.js";function Rt(i,t){if(t.isZero())throw Error("divisor is zero");return i.mod(t)}function Io(i,t){if(t.isZero())throw Error("rhs is zero");let n=i.div(t);return Rt(i,t).gt(qe)&&(n=n.add(new st(1))),[n,t]}var qe=new st(0),Ue=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]=Io(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 Rt(t.mul(r),n).gt(qe)&&p.gt(qe)&&(p=p.add(new st(1))),Rt(t.mul(u),n).gt(qe)&&f.gt(qe)&&(f=f.add(new st(1))),{tokenAmount0:p,tokenAmount1:f};throw Error("roundDirection value error")}};import La from"bn.js";import Ae from"bn.js";import KR from"decimal.js";import Ca from"big.js";import dR from"bn.js";import{get as fn,set as Bo}from"lodash";var Lt=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}},yn={},So={};function E(i){let t=fn(yn,i);if(!t){let n=fn(So,i);t=new Lt({name:i,logLevel:n}),Bo(yn,i,t)}return t}import{PublicKey as xo}from"@solana/web3.js";import{MINT_SIZE as Qa,TOKEN_PROGRAM_ID as Za,getTransferFeeConfig as Ha,unpackMint as ja}from"@solana/spl-token";var Ot=E("Raydium_accountInfo_util");async function ge(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=L({batchRequest:!1},n),p=Nt(t,m),f=new Array(p.length).fill([]);if(r){let g=p.map(B=>{let x=i._buildArgs([B.map(T=>T.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:x}}),w=Nt(g,10);f=(await(await Promise.all(w.map(async B=>await i._rpcBatchRequest(B)))).flat()).map(B=>(B.error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${B.error.message}`),B.result.value.map(x=>{if(x){let{data:T,executable:R,lamports:A,owner:P,rentEpoch:S}=x;return T.length!==2&&T[1]!=="base64"&&Ot.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(T[0],"base64"),executable:R,lamports:A,owner:new xo(P),rentEpoch:S}}return null})))}else try{f=await Promise.all(p.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import ze from"bn.js";var bn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof ze)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new ze(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=bn||i<=-bn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new ze(String(i))):typeof i=="bigint"?new ze(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new ze(0))}import{merge as XK}from"lodash";import cs from"axios";var gn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Ko=_(L({},gn),{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 Os=E("Raydium_Api");import{PublicKey as Jc,SystemProgram as el}from"@solana/web3.js";import{AccountLayout as rl,createAssociatedTokenAccountIdempotentInstruction as al,TOKEN_PROGRAM_ID as sl,TOKEN_2022_PROGRAM_ID as ul}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as Et,SystemProgram as Mo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Fo from"axios";import{PublicKey as Mt,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Ft({connection:i,address:t,cluster:n="mainnet"}){let r=await ge(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Mt(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={},vt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new Mt(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 Mt(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 Pn,Keypair as wn,PublicKey as Co,Transaction as kn,TransactionMessage as Ro,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Lo}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function ut(i){let t=[],n=[];return i.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(Pn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function 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 ct(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 _t(i,t){i.length<1&&An.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function me(i,t){let[n,r]=Co.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return _t(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=wn.generate().publicKey.toString()}){let m=new Ro({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var Oo=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),No=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Tn&&(t=Oo(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 kn&&(n.recentBlockhash||(n.recentBlockhash=Lo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(No(n))}),console.log("simulate tx string:",t),t}var lt=2e3,mt=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 Fo.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}=ut(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Mo.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(_(L({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;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 Et(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 B=await this.signAllTransactions([n]);if(this.signers.length)for(let x of B)try{x.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(B[0].serialize(),{skipPreflight:p}),signedTx:B[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(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var S;let{sequentially:B,onTxUpdate:x,skipTxCount:T=0,recentBlockHash:R,skipPreflight:A=!0}=y||{},P=R!=null?R:await Ce(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(B){let K=[],F=0;for(let v of p){if(++F,F<=T)continue;let b=await Et(this.connection,v,this.signers.find(h=>h.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(B){let v=0,b=[],h=async()=>{if(!F[v])return;let I=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});b.push({txId:I,status:"sent",signedTx:F[v]}),x==null||x([...b]),v++;let C=!1,O=null,V=null,re=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=b.findIndex(j=>j.txId===I);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||h()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(C){clearInterval(O);return}try{let W=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(C=!0,clearInterval(O),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",I))}catch(W){C=!0,clearInterval(O),console.error("getTransaction timeout:",W,I)}},lt)),V=this.connection.onSignature(I,q=>{if(C){this.connection.removeSignatureListener(V);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(I)};return await h(),{txIds:b.map(I=>I.txId),signedTxs:F}}else{let v=[];for(let b=0;b<F.length;b+=1){let h=await this.connection.sendRawTransaction(F[b].serialize(),{skipPreflight:A});v.push(h)}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=L(L({},this.cluster==="devnet"?await Vt(this.connection):await vt(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 Ft({connection:this.connection,address:w});for(let[P,S]of Object.entries(y))f[P]=S;let B=u?Re.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),x=new Ze({payerKey:this.feePayer,recentBlockhash:B,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 T=new He(x);return T.sign(this.signers),{builder:this,transaction:T,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:S=!0,sendAndConfirm:K,notSendToRpc:F}=P||{};if(ke([T]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(T,{skipPreflight:S});return K&&await ct(this.connection,b),{txId:b,signedTx:T}}if(this.signAllTransactions){let b=await this.signAllTransactions([T]);if(this.signers.length)for(let h of b)try{h.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(b[0],{skipPreflight:S}),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(B=>B.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,B)=>{y.sign(f[B])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:r,execute:async y=>{var A;let{sequentially:B,onTxUpdate:x,recentBlockHash:T,skipPreflight:R=!0}=y||{};if(T&&p.forEach(P=>P.message.recentBlockhash=T),ke(p),(A=this.owner)!=null&&A.isKeyPair){if(B){let P=[];for(let S of p){let K=await this.connection.sendTransaction(S,{skipPreflight:R});await ct(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(B){let S=0,K=[],F=async()=>{if(!P[S])return;let v=await this.connection.sendTransaction(P[S],{skipPreflight:R});K.push({txId:v,status:"sent",signedTx:P[S]}),x==null||x([...K]),S++;let b=!1,h=null,I=null,C=O=>{h!==null&&clearInterval(h),I!==null&&this.connection.removeSignatureListener(I);let V=K.findIndex(re=>re.txId===v);if(V>-1){if(K[V].status==="error"||K[V].status==="success")return;K[V].status=O.err?"error":"success"}x==null||x([...K]),O.err||F()};this.loopMultiTxStatus&&(h=setInterval(async()=>{var O;if(b){clearInterval(h);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(b=!0,clearInterval(h),C({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){b=!0,clearInterval(h),console.error("getTransaction timeout:",V,v)}},lt)),I=this.connection.onSignature(v,O=>{if(b){this.connection.removeSignatureListener(I);return}b=!0,C(O)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let S=[];for(let K=0;K<P.length;K+=1){let F=await this.connection.sendTransaction(P[K],{skipPreflight:R});S.push(F)}return{txIds:S,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var x;let B=t||{},{splitIns:n=[],computeBudgetConfig:r}=B,u=ce(B,["splitIns","computeBudgetConfig"]),m=r?ut(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((T,R)=>_(L({},T),{[R.publicKey.toBase58()]:R}),{}),f=[],g=[],w=[],y=0;if(this.allInstructions.forEach(T=>{let R=[...w,T],A=r?[...m.instructions,...R]:R,S=[...new Set(R.map(K=>K.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(K=>new Re(K));if(T!==n[y]&&w.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:S})||Xe({instructions:R,payer:this.feePayer,signers:S})))w.push(T);else{if(w.length===0)throw Error("item ins too big");y+=T===n[y]?1:0,Xe({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:S})?f.push(new Qe().add(...m.instructions,...w)):f.push(new Qe().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=[T]}}),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);Xe({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:R.map(A=>A.publicKey)})?f.push(new Qe().add(...m.instructions,...w)):f.push(new Qe().add(...w)),g.push(R)}return f.forEach(T=>T.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&g.forEach(T=>{T.some(R=>R.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async T=>{var v;let{sequentially:R,onTxUpdate:A,skipTxCount:P=0,recentBlockHash:S,skipPreflight:K=!0}=T||{},F=S!=null?S:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(b,h)=>{b.recentBlockhash=F,g[h].length&&b.sign(...g[h])}),ke(f),(v=this.owner)!=null&&v.isKeyPair){if(R){let b=0,h=[];for(let I of f){if(++b,b<=P){h.push("tx skipped");continue}let C=await Et(this.connection,I,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});h.push(C)}return{txIds:h,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)),h=[...f.slice(0,P),...b];if(R){let I=0,C=[],O=async()=>{if(!h[I])return;I<P&&(C.push({txId:"",status:"success",signedTx:h[I]}),A==null||A([...C]),I++,O());let V=await this.connection.sendRawTransaction(h[I].serialize(),{skipPreflight:K});C.push({txId:V,status:"sent",signedTx:h[I]}),A==null||A([...C]),I++;let re=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=C.findIndex(ye=>ye.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||O()};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)}},lt)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:C.map(V=>V.txId),signedTxs:h}}else{let I=[];for(let C=0;C<h.length;C+=1){let O=await this.connection.sendRawTransaction(h[C].serialize(),{skipPreflight:K});I.push(O)}return{txIds:I,signedTxs:h}}}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=L(L({},this.cluster==="devnet"?await Vt(this.connection):await vt(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 B=await Ft({connection:this.connection,address:y});for(let[b,h]of Object.entries(B))g[b]=h;let x=n?ut(n):{instructions:[],instructionTypes:[]},T=await Ce(this.connection,this.blockhashCommitment),R=this.signers.reduce((b,h)=>_(L({},b),{[h.publicKey.toBase58()]:h}),{}),A=[],P=[],S=[],K=0;if(this.allInstructions.forEach(b=>{let h=[...S,b],I=n?[...x.instructions,...h]:h;if(b!==r[K]&&S.length<p&&(Ye({instructions:I,payer:this.feePayer,lookupTableAddressAccount:g})||Ye({instructions:h,payer:this.feePayer,lookupTableAddressAccount:g})))S.push(b);else{if(S.length===0)throw Error("item ins too big");K+=b===r[K]?1:0;let C={};for(let O of[...new Set(w)])g[O]!==void 0&&(C[O]=g[O]);if(n&&Ye({instructions:[...x.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:T})){let O=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...S]}).compileToV0Message(Object.values(g));A.push(new He(O))}else{let O=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(g));A.push(new He(O))}P.push(Array.from(new Set(S.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>R[O]).filter(O=>O!==void 0)),S=[b]}}),S.length>0){let h=[...new Set(S.map(I=>I.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(I=>R[I]).filter(I=>I!==void 0);if(n&&Ye({instructions:[...x.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:T})){let I=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...x.instructions,...S]}).compileToV0Message(Object.values(g));A.push(new He(I))}else{let I=new Ze({payerKey:this.feePayer,recentBlockhash:T,instructions:[...S]}).compileToV0Message(Object.values(g));A.push(new He(I))}P.push(h)}return(v=this.owner)!=null&&v.signer&&P.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,h)=>{b.sign(P[h])}),{builder:this,transactions:A,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async b=>{var re;let{sequentially:h,onTxUpdate:I,skipTxCount:C=0,recentBlockHash:O,skipPreflight:V=!0}=b||{};if(A.map(async(q,W)=>{P[W].length&&q.sign(P[W]),O&&(q.message.recentBlockhash=O)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(h){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 ct(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(h){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),I==null||I([...G]),j++,te();return}let ye=await this.connection.sendTransaction(W[j],{skipPreflight:V});G.push({txId:ye,status:"sent",signedTx:W[j]}),I==null||I([...G]),j++;let We=!1,Be=null,rt=null,cn=we=>{Be!==null&&clearInterval(Be),rt!==null&&this.connection.removeSignatureListener(rt);let be=G.findIndex(wo=>wo.txId===ye);if(be>-1){if(G[be].status==="error"||G[be].status==="success")return;G[be].status=we.err?"error":"success"}I==null||I([...G]),we.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var we;if(We){clearInterval(Be);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(We=!0,clearInterval(Be),cn({err:((we=be.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){We=!0,clearInterval(Be),console.error("getTransaction timeout:",be,ye)}},lt)),rt=this.connection.onSignature(ye,we=>{if(We){this.connection.removeSignatureListener(rt);return}We=!0,cn(we)},"confirmed"),this.connection.getSignatureStatus(ye)};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 Dt=(...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 mt({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(Dt(t))}logInfo(...t){this.logger.info(Dt(t))}logAndCreateError(...t){let n=Dt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Rc,SystemProgram as Oc}from"@solana/web3.js";import Fc from"bn.js";import{createCloseAccountInstruction as Ec,createInitializeAccountInstruction as Dc,createTransferInstruction as Wc,TOKEN_PROGRAM_ID as qc}from"@solana/spl-token";import{PublicKey as vo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as In}from"@solana/spl-token";var dt={chainId:101,address:vo.default.toBase58(),programId:In.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:In.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 gc,PublicKey as Pc}from"@solana/web3.js";import kc from"bn.js";import{TOKEN_PROGRAM_ID as Ic}from"@solana/spl-token";import{PublicKey as Zo}from"@solana/web3.js";import Rn,{isBN as Ln}from"bn.js";import{bits as Vo,BitStructure as hu,blob as _o,Blob as Iu,cstr as Bu,f32 as Su,f32be as xu,f64 as Ku,f64be as Cu,greedy as Ru,Layout as Eo,ns64 as Lu,ns64be as Ou,nu64 as Do,nu64be as Nu,offset as Wo,s16 as Mu,s16be as Fu,s24 as vu,s24be as Vu,s32 as qo,s32be as _u,s40 as Eu,s40be as Du,s48 as Wu,s48be as qu,s8 as Uu,seq as Uo,struct as Gu,Structure as Go,u16 as zo,u16be as zu,u24 as Xu,u24be as Yu,u32 as Xo,u32be as Qu,u40 as Zu,u40be as Hu,u48 as ju,u48be as $u,u8 as Yo,UInt as Qo,union as Ju,Union as ec,unionLayoutDiscriminator as tc,utf8 as nc}from"@solana/buffer-layout";var pt=Eo,Bn=Go;var Wt=Qo;var Sn=Yo,Z=zo;var ft=Xo;var xn=Do;var se=qo;var Kn=Uo;var M=_o;var qt=Vo,Cn=Wo;var he=class extends pt{constructor(n,r,u){super(n,u);this.blob=M(n),this.signed=r}decode(n,r=0){let u=new Rn(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 Rn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},yt=class extends pt{constructor(n){super(8,n);this._lower=qt(ft(),!1),this._upper=qt(ft(),!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 L(L({},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 Wt(1,i)}function z(i){return new Wt(4,i)}function e(i){return new he(8,!1,i)}function N(i){return new he(16,!1,i)}function On(i){return new he(1,!0,i)}function Le(i){return new he(8,!0,i)}function Nn(i){return new he(16,!0,i)}var je=class extends pt{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 je(M(32),t=>new Zo(t),t=>t.toBuffer(),i)}function ae(i){return new je(Sn(),Ho,jo,i)}function Ho(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function jo(i){return i?1:0}function Mn(i,t){let n=ft("length"),r=l([n,d(i,Cn(n,-n.span),"values")]);return new je(r,({values:u})=>u,u=>({values:u}),t)}var Ut=class extends Bn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Ut(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:Ln(t)?t.toNumber():new Proxy(t,{get(m,p){if(!r){let f=Reflect.get(m,"count");r=Ln(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 Kn(i,u,n)}var bt=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 Eg,SystemProgram as Dg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as qg}from"@solana/spl-token";import{PublicKey as yl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gl}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var vn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Vn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),_n=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Gt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),kl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ei=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),qn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),hl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),oi=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),ii=new k("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),ri=new k("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),ai=new k("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),si=new k("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),zt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ui=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Il=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ci=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),li=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),mi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Bl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Sl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),xl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Kl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Cl=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),$e={IDO_PROGRAM_ID_V1:ii,IDO_PROGRAM_ID_V2:ri,IDO_PROGRAM_ID_V3:ai,IDO_PROGRAM_ID_V4:si};var Pe={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as Un,SYSVAR_RENT_PUBKEY as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";function Oe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var fi=[Oe({pubkey:pi,isWritable:!1}),Oe({pubkey:Un.programId,isWritable:!1}),Oe({pubkey:di,isWritable:!1})];function Gn({publicKey:i,transformSol:t}){let n=zn(i.toString());if(n instanceof X)return t&&n.equals(Ie)?le:n;if(t&&n.toString()===Ie.toBase58())return le;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 zn(i){try{return new X(i)}catch{return i}}var Xt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new X("SysvarRent111111111111111111111111111111111"),yi=new X("SysvarC1ock11111111111111111111111111111111"),Pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bi=new X("Sysvar1nstructions1111111111111111111111111"),Xn=Un.programId,Ml=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),vl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Vl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),_l=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),El=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Dl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Wl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ql=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ul=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Gl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new X("So11111111111111111111111111111111111111112"),Ie=X.default;import $g from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as gy,TOKEN_2022_PROGRAM_ID as Py,TOKEN_PROGRAM_ID as Ay}from"@solana/spl-token";import{PublicKey as ky}from"@solana/web3.js";import hy from"bn.js";import By from"decimal.js";import{TOKEN_PROGRAM_ID as Nm}from"@solana/spl-token";import{PublicKey as Vm}from"@solana/web3.js";import{PublicKey as Yt}from"@solana/web3.js";var Qt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===Ie.toBase58()||t instanceof Yt&&Ie.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Yt(de.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?Yt.default:Gn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Qt;J.WSOL=new Qt(_(L({},de),{mint:de.address}));var Zt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},At=Zt;At.SOL=new Zt(dt);import gi from"toformat";var Pi=gi,Je=Pi;import kt from"big.js";import wi from"bn.js";import ki from"decimal.js-light";var wt=E("module/fraction"),Ht=Je(kt),et=Je(ki),Ti={[0]:et.ROUND_DOWN,[1]:et.ROUND_HALF_UP,[2]:et.ROUND_UP},hi={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},U=class{constructor(t,n=new wi(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)||wt.logWithError(`${t} is not an integer.`),t<=0&&wt.logWithError(`${t} is not positive.`),et.set({precision:t+1,rounding:Ti[r]});let u=new et(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)||wt.logWithError(`${t} is not an integer.`),t<0&&wt.logWithError(`${t} is negative.`),Ht.DP=t,Ht.RM=hi[r]||1,new Ht(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Ii from"bn.js";var dm=new U(new Ii(100));var Pm=E("Raydium_price");var Bi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Ef,TOKEN_2022_PROGRAM_ID as Df,TOKEN_PROGRAM_ID as Wf}from"@solana/spl-token";import{Keypair as Gf,PublicKey as zf,SystemProgram as Yf,TransactionInstruction as Qf}from"@solana/web3.js";import Hf from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var Si=new D(1).shln(128),jt=new D(1).shln(64).subn(1),xi=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Ki=new D("59543866431248"),Ci=new D("184467440737095516"),Ri=new D("15793534762490258745");var $t=60,Zm=new D("18446743708227953217"),Li=[{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 tt=3,Yn=100;var Qn=10,Zn=100,Tt=14;var H=new D(0),_e=new D(1),Hm=new D(-1);var jm=new D("18446744073700000000");var Oi=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)]),Ni=l([z("blockTimestamp"),Le("tickCumulative"),d(e(),4)]),Hn=l([M(8),ae("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),d(Ni,Yn,"observations"),d(e(),4)]),Mi=l([Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Fi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),N("growthGlobalX64")]),Jt=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(Fi,tt,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Mi.replicate("dynamicFeeInfo"),d(e(),46)]),vi=l([N("growthInsideLastX64"),e("rewardAmountOwed")]),Vi=l([M(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(vi,tt,"rewardInfos"),e("recentEpoch"),d(e(),7)]),td=l([M(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(N(),tt,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),_i=l([se("tick"),Nn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),d(N(),tt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),d(z(),3)]),jn=l([M(8),o("poolId"),se("startTickIndex"),d(_i,$t,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Ei=l([M(8),c("bump"),d(o(),Qn,"operationOwners"),d(o(),Zn,"whitelistMints")]),Di=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)]),$n=l([M(8),o("poolId"),M(8*8*Tt,"positiveTickArrayBitmap"),M(8*8*Tt,"negativeTickArrayBitmap")]),nd=l([M(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Wi=l([M(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),od=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),qi=l([M(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ad from"bn.js";var gd=Buffer.from("amm_config","utf8"),Ui=Buffer.from("pool","utf8"),Gi=Buffer.from("pool_vault","utf8"),Pd=Buffer.from("pool_reward_vault","utf8"),Ad=Buffer.from("position","utf8"),wd=Buffer.from("tick_array","utf8"),kd=Buffer.from("operation","utf8"),Td=Buffer.from("pool_tick_array_bitmap_extension","utf8"),hd=Buffer.from("observation","utf8"),Id=Buffer.from("support_mint","utf8"),Bd=Buffer.from("dynamic_fee_config","utf8");var Sd=Buffer.from("locked_position","utf8");import{sha256 as rr}from"js-sha256";import zi from"bn.js";import Rd from"decimal.js";var Od=new zi(1).shln(256).subn(1);import Hd from"bn.js";import Ed from"bn.js";import Wd from"decimal.js";import tp from"bn.js";import op from"decimal.js";import{PublicKey as Up}from"@solana/web3.js";import zp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Jp}from"@solana/spl-token";import of from"decimal.js";import Op from"bn.js";import Ap from"bn.js";import pf from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(rr.digest(t)).slice(0,8)}Hn.span;var iy=E("Raydium_Clmm"),ry={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22N