UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 75.5 kB
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 Oa from"bn.js";import Ae from"bn.js";import BR from"decimal.js";import Ra from"big.js";import cR 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 Za,TOKEN_PROGRAM_ID as Ha,getTransferFeeConfig as ja,unpackMint as $a}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 UK}from"lodash";import ls 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 Ns=E("Raydium_Api");import{PublicKey as el,SystemProgram as tl}from"@solana/web3.js";import{AccountLayout as al,createAssociatedTokenAccountIdempotentInstruction as sl,TOKEN_PROGRAM_ID as ul,TOKEN_2022_PROGRAM_ID as cl}from"@solana/spl-token";import{PublicKey as Le,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 Ce}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 Ce({key:f,state:Ce.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Ke[f.toString()]=g:xe[f.toString()]=g}return u}var xe={},vt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(xe[t])return xe;let n=new Mt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe},Ke={},Vt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Mt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke};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 Re(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 Ye({instructions:i,payer:t,signers:n}){return _t(i,[t,...n])}function Xe({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 Le(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!==Le.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 Re(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 Re(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 Le(P));let y=await Ft({connection:this.connection,address:w});for(let[P,S]of Object.entries(y))f[P]=S;let B=u?Le.default.toBase58():m!=null?m:await Re(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 Le(K));if(T!==n[y]&&w.length<12&&(Ye({instructions:A,payer:this.feePayer,signers:S})||Ye({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,Ye({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);Ye({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 Re(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 Le(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 Re(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&&(Xe({instructions:I,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({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&&Xe({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&&Xe({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,Se=null,rt=null,cn=we=>{Se!==null&&clearInterval(Se),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&&(Se=setInterval(async()=>{var we;if(We){clearInterval(Se);return}try{let be=await this.connection.getTransaction(ye,{commitment:"confirmed",maxSupportedTransactionVersion:0});be&&(We=!0,clearInterval(Se),cn({err:((we=be.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",ye))}catch(be){We=!0,clearInterval(Se),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 Lc,SystemProgram as Nc}from"@solana/web3.js";import vc from"bn.js";import{createCloseAccountInstruction as Dc,createInitializeAccountInstruction as Wc,createTransferInstruction as qc,TOKEN_PROGRAM_ID as Uc}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 Pc,PublicKey as Ac}from"@solana/web3.js";import Tc from"bn.js";import{TOKEN_PROGRAM_ID as Bc}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 Iu,blob as _o,Blob as Bu,cstr as Su,f32 as xu,f32be as Ku,f64 as Cu,f64be as Ru,greedy as Lu,Layout as Eo,ns64 as Ou,ns64be as Nu,nu64 as Do,nu64be as Mu,offset as Wo,s16 as Fu,s16be as vu,s24 as Vu,s24be as _u,s32 as qo,s32be as Eu,s40 as Du,s40be as Wu,s48 as qu,s48be as Uu,s8 as Gu,seq as Uo,struct as zu,Structure as Go,u16 as zo,u16be as Yu,u24 as Xu,u24be as Qu,u32 as Yo,u32be as Zu,u40 as Hu,u40be as ju,u48 as $u,u48be as Ju,u8 as Xo,UInt as Qo,union as ec,Union as tc,unionLayoutDiscriminator as nc,utf8 as oc}from"@solana/buffer-layout";var pt=Eo,Bn=Go;var Wt=Qo;var Sn=Xo,Z=zo;var ft=Yo;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 Oe(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 bl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Pl}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"),Tl=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Jo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),hl=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),ei=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ti=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),qn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Il=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"),Bl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ci=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),li=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),mi=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Sl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),xl=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Kl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Cl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Rl=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 Y,SystemProgram as Un,SYSVAR_RENT_PUBKEY as di}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pi}from"@solana/spl-token";function Ne({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var fi=[Ne({pubkey:pi,isWritable:!1}),Ne({pubkey:Un.programId,isWritable:!1}),Ne({pubkey:di,isWritable:!1})];function Gn({publicKey:i,transformSol:t}){let n=zn(i.toString());if(n instanceof Y)return t&&n.equals(Ie)?le:n;if(t&&n.toString()===Ie.toBase58())return le;if(typeof n=="string"){if(n===Y.default.toBase58())return Y.default;try{return new Y(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function zn(i){try{return new Y(i)}catch{return i}}var Yt=new Y("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Me=new Y("SysvarRent111111111111111111111111111111111"),yi=new Y("SysvarC1ock11111111111111111111111111111111"),Pt=new Y("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),bi=new Y("Sysvar1nstructions1111111111111111111111111"),Yn=Un.programId,Fl=new Y("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),vl=new Y("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Vl=new Y("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),_l=new Y("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),El=new Y("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Dl=new Y("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Wl=new Y("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ql=new Y("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ul=new Y("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Gl=new Y("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),zl=new Y("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),le=new Y("So11111111111111111111111111111111111111112"),Ie=Y.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 Mm}from"@solana/spl-token";import{PublicKey as _m}from"@solana/web3.js";import{PublicKey as Xt}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 Xt&&Ie.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Xt(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?Xt.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 pm=new U(new Ii(100));var Am=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 Xf,TransactionInstruction as Qf}from"@solana/web3.js";import Hf from"bn.js";import D from"bn.js";var Be=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,Hm=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,Xn=100;var Qn=10,Zn=100,Tt=14;var H=new D(0),_e=new D(1),jm=new D(-1);var $m=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"),Oe("tickCumulative"),d(e(),4)]),Hn=l([M(8),ae("initialized"),e("recentEpoch"),Z("observationIndex"),o("poolId"),d(Ni,Xn,"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)]),nd=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")]),od=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)]),id=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 sd from"bn.js";var Pd=Buffer.from("amm_config","utf8"),Ui=Buffer.from("pool","utf8"),Gi=Buffer.from("pool_vault","utf8"),Ad=Buffer.from("pool_reward_vault","utf8"),wd=Buffer.from("position","utf8"),kd=Buffer.from("tick_array","utf8"),Td=Buffer.from("operation","utf8"),hd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Id=Buffer.from("observation","utf8"),Bd=Buffer.from("support_mint","utf8"),Sd=Buffer.from("dynamic_fee_config","utf8");var xd=Buffer.from("locked_position","utf8");import{sha256 as ar}from"js-sha256";import zi from"bn.js";import Ld from"decimal.js";var Nd=new zi(1).shln(256).subn(1);import jd from"bn.js";import Dd from"bn.js";import qd from"decimal.js";import rp from"bn.js";import sp 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(ar.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