UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 73.6 kB
var lo=Object.defineProperty,mo=Object.defineProperties;var po=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var nn=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable;var tn=(i,t,n)=>t in i?lo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,R=(i,t)=>{for(var n in t||(t={}))nn.call(t,n)&&tn(i,n,t[n]);if(nt)for(var n of nt(t))on.call(t,n)&&tn(i,n,t[n]);return i},D=(i,t)=>mo(i,po(t));var ue=(i,t)=>{var n={};for(var r in i)nn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&nt)for(var r of nt(i))t.indexOf(r)<0&&on.call(i,r)&&(n[r]=i[r]);return n};import he from"bn.js";import lR from"decimal.js";import da from"big.js";import QC from"bn.js";import{get as rn,set as fo}from"lodash";var ht=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}},an={},yo={};function _(i){let t=rn(an,i);if(!t){let n=rn(yo,i);t=new ht({name:i,logLevel:n}),fo(an,i,t)}return t}import{PublicKey as bo}from"@solana/web3.js";import{MINT_SIZE as Ia,TOKEN_PROGRAM_ID as Ba,getTransferFeeConfig as Sa,unpackMint as Ka}from"@solana/spl-token";var It=_("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=R({batchRequest:!1},n),f=Bt(t,d),y=new Array(f.length).fill([]);if(r){let g=f.map(O=>{let x=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:x}}),K=Bt(g,10);y=(await(await Promise.all(K.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&It.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(x=>{if(x){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=x;return B.length!==2&&B[1]!=="base64"&&It.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new bo(T),rentEpoch:I}}return null})))}else try{y=await Promise.all(f.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&It.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return y.flat()}import We from"bn.js";var sn=9007199254740991;function J(i){let t=_("Raydium_parseBigNumberish");if(i instanceof We)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new We(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=sn||i<=-sn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new We(String(i))):typeof i=="bigint"?new We(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new We(0))}import{merge as Ox}from"lodash";import Ea from"axios";var un={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},go=D(R({},un),{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 us=_("Raydium_Api");import{PublicKey as Rc,SystemProgram as Lc}from"@solana/web3.js";import{AccountLayout as vc,createAssociatedTokenAccountIdempotentInstruction as Vc,TOKEN_PROGRAM_ID as _c,TOKEN_2022_PROGRAM_ID as Ec}from"@solana/spl-token";import{PublicKey as Ce,sendAndConfirmTransaction as Lt,SystemProgram as ho,Transaction as Ge,TransactionMessage as ze,VersionedTransaction as Xe}from"@solana/web3.js";import Io from"axios";import{PublicKey as St,AddressLookupTableAccount as Ke}from"@solana/web3.js";async function Kt({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(d=>d.toString()))].map(d=>new St(d))),u={};for(let d=0;d<t.length;d++){let f=r[d],y=t[d];if(!f)continue;let g=new Ke({key:y,state:Ke.deserialize(f.data)});u[y.toString()]=g,n==="devnet"?Se[y.toString()]=g:Be[y.toString()]=g}return u}var Be={},xt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Be[t])return Be;let n=new St(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Be},Se={},Ct=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Se[t])return Se;let n=new St(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new Ke({key:n,state:Ke.deserialize(r.data)})),Se};var Z={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 cn,Keypair as mn,PublicKey as Po,Transaction as dn,TransactionMessage as Ao,VersionedTransaction as pn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wo}from"@solana/spl-token";var ln=_("Raydium_txUtil"),fn=1644;function ot(i){let t=[],n=[];return i.microLamports&&(t.push(cn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(cn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function xe(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 it(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}r(Object.assign(d.err,{txId:t}))},"confirmed")})}function Rt(i,t){i.length<1&&ln.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&ln.logWithError(`no signers provided:, ${t.toString()}`);let n=new dn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<fn}catch{return!1}}function ce(i,t){let[n,r]=Po.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function qe({instructions:i,payer:t,signers:n}){return Rt(i,[t,...n])}function Ue({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=mn.generate().publicKey.toString()}){let d=new Ao({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new pn(d).serialize()).toString("base64").length<fn}catch{return!1}}var ko=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),To=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof pn&&(t=ko(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(i){let t=[];return i.forEach(n=>{n instanceof dn&&(n.recentBlockhash||(n.recentBlockhash=wo.toBase58()),n.feePayer||(n.feePayer=mn.generate().publicKey)),t.push(To(n))}),console.log("simulate tx string:",t),t}var rt=2e3,at=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 Io.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}=ot(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ho.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ce(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...f.filter(y=>y!==Ce.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(R({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ge;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:d,skipPreflight:f=!0,sendAndConfirm:y,notSendToRpc:g}=u||{},K=d!=null?d:await xe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=K,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:y?await Lt(this.connection,n,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let O=await this.signAllTransactions([n]);if(this.signers.length)for(let x of O)try{x.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:f}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var K;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(K=this.owner)!=null&&K.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:y,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:x,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await xe(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of f){if(++F,F<=B)continue;let p=await Lt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(p)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((v,p)=>(v.recentBlockhash=T,y[p].length&&v.sign(...y[p]),v));Ae(h);let F=await this.signAllTransactions(h);if(O){let v=0,p=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});p.push({txId:w,status:"sent",signedTx:F[v]}),x==null||x([...p]),v++;let S=!1,C=null,V=null,ie=U=>{C!==null&&clearInterval(C),V!==null&&this.connection.removeSignatureListener(V);let W=p.findIndex($=>$.txId===w);if(W>-1){if(p[W].status==="error"||p[W].status==="success")return;p[W].status=U.err?"error":"success"}x==null||x([...p]),U.err||A()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var U;if(S){clearInterval(C);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(S=!0,clearInterval(C),ie({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){S=!0,clearInterval(C),console.error("getTransaction timeout:",W,w)}},rt)),V=this.connection.onSignature(w,U=>{if(S){this.connection.removeSignatureListener(V);return}S=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:p.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let p=0;p<F.length;p+=1){let A=await this.connection.sendRawTransaction(F[p].serialize(),{skipPreflight:P});v.push(A)}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 P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:d}=M,f=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),y=R(R({},this.cluster==="devnet"?await Ct(this.connection):await xt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),K=[];for(let T of g)y[T]===void 0&&K.push(new Ce(T));let b=await Kt({connection:this.connection,address:K});for(let[T,I]of Object.entries(b))y[T]=I;let O=u?Ce.default.toBase58():d!=null?d:await xe(this.connection,this.blockhashCommitment),x=new ze({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(y));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new Xe(x);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:F}=T||{};if(Ae([B]),(v=this.owner)!=null&&v.isKeyPair){let p=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await it(this.connection,p),{txId:p,signedTx:B}}if(this.signAllTransactions){let p=await this.signAllTransactions([B]);if(this.signers.length)for(let A of p)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(p[0],{skipPreflight:I}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var K;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),f=[u,...d.map(b=>b.transaction)],y=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(K=this.owner)!=null&&K.signer&&y.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,O)=>{b.sign(y[O])}),{builder:this,transactions:f,signers:y,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:x,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&f.forEach(T=>T.message.recentBlockhash=B),Ae(f),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await it(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);if(O){let I=0,h=[],F=async()=>{if(!T[I])return;let v=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:v,status:"sent",signedTx:T[I]}),x==null||x([...h]),I++;let p=!1,A=null,w=null,S=C=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let V=h.findIndex(ie=>ie.txId===v);if(V>-1){if(h[V].status==="error"||h[V].status==="success")return;h[V].status=C.err?"error":"success"}x==null||x([...h]),C.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var C;if(p){clearInterval(A);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(p=!0,clearInterval(A),S({err:((C=V.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){p=!0,clearInterval(A),console.error("getTransaction timeout:",V,v)}},rt)),w=this.connection.onSignature(v,C=>{if(p){this.connection.removeSignatureListener(w);return}p=!0,S(C)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let F=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(F)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var x;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?ot(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((B,M)=>D(R({},B),{[M.publicKey.toBase58()]:M}),{}),y=[],g=[],K=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...K,B],P=r?[...d.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Ce(h));if(B!==n[b]&&K.length<12&&(qe({instructions:P,payer:this.feePayer,signers:I})||qe({instructions:M,payer:this.feePayer,signers:I})))K.push(B);else{if(K.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,qe({instructions:r?[...d.instructions,...K]:[...K],payer:this.feePayer,signers:I})?y.push(new Ge().add(...d.instructions,...K)):y.push(new Ge().add(...K)),g.push(Array.from(new Set(K.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>f[h]).filter(h=>h!==void 0)),K=[B]}}),K.length>0){let M=[...new Set(K.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>f[P]).filter(P=>P!==void 0);qe({instructions:r?[...d.instructions,...K]:[...K],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?y.push(new Ge().add(...d.instructions,...K)):y.push(new Ge().add(...K)),g.push(M)}return y.forEach(B=>B.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:y,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:M,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=B||{},F=I!=null?I:await xe(this.connection,this.blockhashCommitment);if(y.forEach(async(p,A)=>{p.recentBlockhash=F,g[A].length&&p.sign(...g[A])}),Ae(y),(v=this.owner)!=null&&v.isKeyPair){if(M){let p=0,A=[];for(let w of y){if(++p,p<=T){A.push("tx skipped");continue}let S=await Lt(this.connection,w,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(S)}return{txIds:A,signedTxs:y}}return{txIds:await Promise.all(y.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:h}))),signedTxs:y}}if(this.signAllTransactions){let p=await this.signAllTransactions(y.slice(T,y.length)),A=[...y.slice(0,T),...p];if(M){let w=0,S=[],C=async()=>{if(!A[w])return;w<T&&(S.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...S]),w++,C());let V=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});S.push({txId:V,status:"sent",signedTx:A[w]}),P==null||P([...S]),w++;let ie=!1,U=null,W=null,$=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=S.findIndex(pe=>pe.txId===V);if(ne>-1){if(S[ne].status==="error"||S[ne].status==="success")return;S[ne].status=G.err?"error":"success"}P==null||P([...S]),G.err||C()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),$({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},rt)),W=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await C(),{txIds:S.map(V=>V.txId),signedTxs:A}}else{let w=[];for(let S=0;S<A.length;S+=1){let C=await this.connection.sendRawTransaction(A[S].serialize(),{skipPreflight:h});w.push(C)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:f=12}=F,y=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await Ct(this.connection):await xt(this.connection)),u),K=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let p of K)g[p]===void 0&&b.push(new Ce(p));let O=await Kt({connection:this.connection,address:b});for(let[p,A]of Object.entries(O))g[p]=A;let x=n?ot(n):{instructions:[],instructionTypes:[]},B=await xe(this.connection,this.blockhashCommitment),M=this.signers.reduce((p,A)=>D(R({},p),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(p=>{let A=[...I,p],w=n?[...x.instructions,...A]:A;if(p!==r[h]&&I.length<f&&(Ue({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Ue({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(p);else{if(I.length===0)throw Error("item ins too big");h+=p===r[h]?1:0;let S={};for(let C of[...new Set(K)])g[C]!==void 0&&(S[C]=g[C]);if(n&&Ue({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let C=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Xe(C))}else{let C=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Xe(C))}T.push(Array.from(new Set(I.map(C=>C.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(C=>M[C]).filter(C=>C!==void 0)),I=[p]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(S=>S.isSigner).map(S=>S.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Ue({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new Xe(w))}else{let w=new ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new Xe(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(p=>{p.some(A=>A.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),P.forEach((p,A)=>{p.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async p=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:S=0,recentBlockHash:C,skipPreflight:V=!0}=p||{};if(P.map(async(U,W)=>{T[W].length&&U.sign(T[W]),C&&(U.message.recentBlockhash=C)}),Ae(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let U=0,W=[];for(let $ of P){if(++U,U<=S){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await it(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(S,P.length)),W=[...P.slice(0,S),...U];if(A){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<S){G.push({txId:"",status:"success",signedTx:W[$]}),w==null||w([...G]),$++,ne();return}let pe=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[$]}),w==null||w([...G]),$++;let Ee=!1,Ie=null,tt=null,en=Pe=>{Ie!==null&&clearInterval(Ie),tt!==null&&this.connection.removeSignatureListener(tt);let fe=G.findIndex(co=>co.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Pe.err?"error":"success"}w==null||w([...G]),Pe.err||ne()};this.loopMultiTxStatus&&(Ie=setInterval(async()=>{var Pe;if(Ee){clearInterval(Ie);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(Ee=!0,clearInterval(Ie),en({err:((Pe=fe.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){Ee=!0,clearInterval(Ie),console.error("getTransaction timeout:",fe,pe)}},rt)),tt=this.connection.onSignature(pe,Pe=>{if(Ee){this.connection.removeSignatureListener(tt);return}Ee=!0,en(Pe)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:y||{}}}};var Ot=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new at({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(Ot(t))}logInfo(...t){this.logger.info(Ot(t))}logAndCreateError(...t){let n=Ot(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as sc,SystemProgram as cc}from"@solana/web3.js";import dc from"bn.js";import{createCloseAccountInstruction as bc,createInitializeAccountInstruction as gc,createTransferInstruction as Pc,TOKEN_PROGRAM_ID as Ac}from"@solana/spl-token";import{PublicKey as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as yn}from"@solana/spl-token";var st={chainId:101,address:Bo.default.toBase58(),programId:yn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:yn.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 Qu,PublicKey as Zu}from"@solana/web3.js";import $u from"bn.js";import{TOKEN_PROGRAM_ID as tc}from"@solana/spl-token";import{PublicKey as Vo}from"@solana/web3.js";import wn,{isBN as kn}from"bn.js";import{bits as So,BitStructure as Js,blob as Ko,Blob as eu,cstr as tu,f32 as nu,f32be as ou,f64 as iu,f64be as ru,greedy as au,Layout as xo,ns64 as su,ns64be as uu,nu64 as cu,nu64be as lu,offset as Co,s16 as mu,s16be as du,s24 as pu,s24be as fu,s32 as Ro,s32be as yu,s40 as bu,s40be as gu,s48 as Pu,s48be as Au,s8 as wu,seq as Lo,struct as ku,Structure as Oo,u16 as No,u16be as Tu,u24 as hu,u24be as Iu,u32 as Mo,u32be as Bu,u40 as Su,u40be as Ku,u48 as xu,u48be as Cu,u8 as Fo,UInt as vo,union as Ru,Union as Lu,unionLayoutDiscriminator as Ou,utf8 as Nu}from"@solana/buffer-layout";var ut=xo,bn=Oo;var Nt=vo;var gn=Fo,Y=No;var ct=Mo;var ae=Ro;var Pn=Lo;var N=Ko;var Mt=So,An=Co;var ke=class extends ut{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new wn(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 wn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},lt=class extends ut{constructor(n){super(8,n);this._lower=Mt(ct(),!1),this._upper=Mt(ct(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),d=this._upper.decode(n,r+this._lower.span);return R(R({},u),d)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Nt(1,i)}function z(i){return new Nt(4,i)}function e(i){return new ke(8,!1,i)}function L(i){return new ke(16,!1,i)}function Tn(i){return new ke(1,!0,i)}function Re(i){return new ke(8,!0,i)}function hn(i){return new ke(16,!0,i)}var Ye=class extends ut{constructor(n,r,u,d){super(n.span,d);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new Ye(N(32),t=>new Vo(t),t=>t.toBuffer(),i)}function re(i){return new Ye(gn(),_o,Eo,i)}function _o(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Eo(i){return i?1:0}function In(i,t){let n=ct("length"),r=l([n,m(i,An(n,-n.span),"values")]);return new Ye(r,({values:u})=>u,u=>({values:u}),t)}var Ft=class extends bn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new Ft(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:kn(t)?t.toNumber():new Proxy(t,{get(d,f){if(!r){let y=Reflect.get(d,"count");r=kn(y)?y.toNumber():y,Reflect.set(d,"count",r)}return Reflect.get(d,f)},set(d,f,y){return f==="count"&&(r=y),Reflect.set(d,f,y)}});return Pn(i,u,n)}var mt=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 bg,SystemProgram as gg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Ag}from"@solana/spl-token";import{PublicKey as Xc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Qc}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Sn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Kn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),xn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),vt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),$c=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Cn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Rn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Jc=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ln=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),On=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),el=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Vt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),tl=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Zo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),nl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ol=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),il=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),rl=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),al=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={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 Nn,SYSVAR_RENT_PUBKEY as Ho}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jo}from"@solana/spl-token";function Le({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var $o=[Le({pubkey:jo,isWritable:!1}),Le({pubkey:Nn.programId,isWritable:!1}),Le({pubkey:Ho,isWritable:!1})];function Mn({publicKey:i,transformSol:t}){let n=Fn(i.toString());if(n instanceof X)return t&&n.equals(Te)?be:n;if(t&&n.toString()===Te.toBase58())return be;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 Fn(i){try{return new X(i)}catch{return i}}var _t=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qe=new X("SysvarRent111111111111111111111111111111111"),ml=new X("SysvarC1ock11111111111111111111111111111111"),pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Jo=new X("Sysvar1nstructions1111111111111111111111111"),ei=Nn.programId,dl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),pl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),fl=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),yl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),bl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),gl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Pl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Al=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),wl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),kl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Tl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new X("So11111111111111111111111111111111111111112"),Te=X.default;import Cg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Qf,TOKEN_2022_PROGRAM_ID as Zf,TOKEN_PROGRAM_ID as Hf}from"@solana/spl-token";import{PublicKey as $f}from"@solana/web3.js";import ey from"bn.js";import ny from"decimal.js";import{TOKEN_PROGRAM_ID as im}from"@solana/spl-token";import{PublicKey as um}from"@solana/web3.js";import{PublicKey as Et}from"@solana/web3.js";var Dt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:f=!1}){if(t===Te.toBase58()||t instanceof Et&&Te.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Et(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Et.default:Mn({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Dt;ee.WSOL=new Dt(D(R({},le),{mint:le.address}));var Wt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ft=Wt;ft.SOL=new Wt(st);import ti from"toformat";var ni=ti,Ze=ni;import bt from"big.js";import ii from"bn.js";import ri from"decimal.js-light";var yt=_("module/fraction"),qt=Ze(bt),He=Ze(ri),ai={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},si={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},q=class{constructor(t,n=new ii(1)){this.numerator=J(t),this.denominator=J(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(J(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(J(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(J(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||yt.logWithError(`${t} is not an integer.`),t<=0&&yt.logWithError(`${t} is not positive.`),He.set({precision:t+1,rounding:ai[r]});let u=new He(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)||yt.logWithError(`${t} is not an integer.`),t<0&&yt.logWithError(`${t} is negative.`),qt.DP=t,qt.RM=si[r]||1,new qt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import ui from"bn.js";var Gl=new q(new ui(100));var ci=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as bf,TOKEN_2022_PROGRAM_ID as gf,TOKEN_PROGRAM_ID as Pf}from"@solana/spl-token";import{Keypair as kf,PublicKey as Tf,SystemProgram as If,TransactionInstruction as Bf}from"@solana/web3.js";import Kf from"bn.js";import E from"bn.js";var Ne=new E(1).shln(64);var li=new E(1).shln(128),Ut=new E(1).shln(64).subn(1),mi=new E(1).shln(128).subn(1);var Me=new E("4295048016"),Fe=new E("79226673521066979257578248091"),di=new E("59543866431248"),pi=new E("184467440737095516"),fi=new E("15793534762490258745");var Gt=60,wm=new E("18446743708227953217"),yi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var je=3,vn=100;var Vn=10,_n=100,gt=14;var H=new E(0),ve=new E(1),km=new E(-1);var Tm=new E("18446744073700000000");var bi=l([N(8),c("bump"),Y("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),m(z(),1),o("fundOwner"),m(e(),3)]),gi=l([z("blockTimestamp"),Re("tickCumulative"),m(e(),4)]),En=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(gi,vn,"observations"),m(e(),4)]),Pi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ai=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),zt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ae("tickCurrent"),z(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(L(),4),c("status"),c("feeOn"),N(6),m(Ai,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Pi.replicate("dynamicFeeInfo"),m(e(),46)]),wi=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),ki=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(wi,je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Sm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(L(),je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ti=l([ae("tick"),hn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),m(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),m(z(),3)]),Dn=l([N(8),o("poolId"),ae("startTickIndex"),m(Ti,Gt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),hi=l([N(8),c("bump"),m(o(),Vn,"operationOwners"),m(o(),_n,"whitelistMints")]),Ii=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),m(e(),4)]),Wn=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),Km=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Bi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),xm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Si=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Lm from"bn.js";var qm=Buffer.from("amm_config","utf8"),xi=Buffer.from("pool","utf8"),Ci=Buffer.from("pool_vault","utf8"),Um=Buffer.from("pool_reward_vault","utf8"),Gm=Buffer.from("position","utf8"),zm=Buffer.from("tick_array","utf8"),Xm=Buffer.from("operation","utf8"),Ym=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Qm=Buffer.from("observation","utf8"),Zm=Buffer.from("support_mint","utf8"),Hm=Buffer.from("dynamic_fee_config","utf8"),jm=Buffer.from("permission","utf8");var $m=Buffer.from("locked_position","utf8");import{sha256 as Gi}from"js-sha256";import Ri from"bn.js";import nd from"decimal.js";var id=new Ri(1).shln(256).subn(1);import Td from"bn.js";import md from"bn.js";import pd from"decimal.js";import Kd from"bn.js";import Cd from"decimal.js";import{PublicKey as yp}from"@solana/web3.js";import gp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Bp,TOKEN_PROGRAM_ID as Sp}from"@solana/spl-token";import Rp from"decimal.js";import ip from"bn.js";import zd from"bn.js";import Wp from"bn.js";function j(i){let t=`global:${i}`;return Buffer.from(Gi.digest(t)).slice(0,8)}En.span;var Ff=_("Raydium_Clmm"),vf={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as Zt}from"@solana/web3.js";var Qi=l([c("instruction")]),Zi=l([c("instruction")]),Hi=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),m(e(),15,"padding")]),ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),$i=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),Ji=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m(Hi,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),er=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),tr=new Proxy($i,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(i,t,n)}}),Qn=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return D(R({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var f;return D(R({},d),{rewardType:((f=Object.entries(et).find(y=>String(y[1])===d.rewardType.toString()))!=null?f:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),nr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),or=l([c("instruction"),e("nonce"),m(nr,5,"rewardTimeInfo")]),ir=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),rr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Fy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),1,"rewardDebts")]),Zn=l([e("state"),o("id"),o("owner"),e("deposited"),m(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),vy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),ar=l([e("state"),o("id"),o("owner"),e("deposited"),m(L(),2,"rewardDebts"),m(e(),17)]),sr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(L(),5,"rewardDebts"),m(e(),16)]),ur=l([c("instruction"),e("amount")]),cr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Tn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),lr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(cr,4,"votingMints"),Re("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),mr=l([Re("startTime"),Re("endTime"),c("kind"),m(c(),15,"reserved")]),dr=l([m(mr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),pr=l([N(8),o("voterAuthority"),o("registrar"),m(dr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as zy}from"@solana/spl-token";var Xy=_("Raydium_farm_config"),fr=new Zt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),yr=new Zt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Yy=new Zt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var et={"Standard SPL":0,"Option tokens":1},Hn={[Sn.toString()]:3,[Kn.toString()]:4,[xn.toString()]:5,[vt.toString()]:6,[ge.FARM_PROGRAM_ID_V3.toString()]:3,[ge.FARM_PROGRAM_ID_V4.toString()]:4,[ge.FARM_PROGRAM_ID_V5.toString()]:5,[ge.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Lb,SystemProgram as Ob,SYSVAR_CLOCK_PUBKEY as Nb,SYSVAR_RENT_PUBKEY as Mb,TransactionInstruction as Fb}from"@solana/web3.js";import Vb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Eb,createAssociatedTokenAccountIdempotentInstruction as Db,TOKEN_PROGRAM_ID as Wb}from"@solana/spl-token";import sb from"bn.js";import{PublicKey as $y}from"@solana/web3.js";import eb from"bn.js";var wb=_("Raydium.farm.util");var $b=_("Raydium_farm_instruction"),Jb={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import Dg from"bn.js";import{PublicKey as QA}from"@solana/web3.js";import{AccountLayout as jA,MintLayout as $A,NATIVE_MINT as JA,TOKEN_PROGRAM_ID as tw}from"@solana/spl-token";import Ug from"bn.js";import $n from"bn.js";var hr=new $n(25),Ir=new $n(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as mP,TOKEN_PROGRAM_ID as dP}from"@solana/spl-token";import{PublicKey as fP,SystemProgram as yP,SYSVAR_RENT_PUBKEY as bP,TransactionInstruction as gP}from"@solana/web3.js";import BP from"bn.js";var Br=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Sr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),sP=l([c("instruction"),c("nonce")]),Kr=l([c("instruction"),c("nonce"),e("startTime")]),Jn=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),m(e(),3,"padding")]),uP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),m(e(),64,"padding")]),xr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Cr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Rr=l([e("fee")]);var xP=_("Raydium_liquidity_instruction");var Lr=5e4,Or=l([e("x"),e("y"),e("price")]),OP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Or,Lr,"DataElement")]);import{PublicKey as GP}from"@solana/web3.js";import XP from"decimal.js";import{TOKEN_PROGRAM_ID as QP}from"@solana/spl-token";import{PublicKey as vP}from"@solana/web3.js";var EP=_("Raydium_liquidity_serum");import kw from"bn.js";import hw from"decimal.js";import{TOKEN_PROGRAM_ID as kA}from"@solana/spl-token";import{PublicKey as hA}from"@solana/web3.js";import BA from"bn.js";import{SystemProgram as uA,SYSVAR_RENT_PUBKEY as cA,Transaction as lA,TransactionInstruction as mA}from"@solana/web3.js";import{createInitializeAccountInstruction as pA,TOKEN_PROGRAM_ID as fA}from"@solana/spl-token";function Nr(i="accountFlags"){let t=new lt(i);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var Mr=l([N(5),Nr("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as Qk}from"@solana/web3.js";import{AccountLayout as Hk,NATIVE_MINT as jk,TOKEN_2022_PROGRAM_ID as $k,TOKEN_PROGRAM_ID as Jk,createAssociatedTokenAccountIdempotentInstruction as eT}from"@solana/spl-token";import Yw from"bn.js";import Wr from"bn.js";var Nw=new Wr(0);import Ew from"bn.js";import qr from"bn.js";var wt=new qr(1e6);import uT from"bn.js";import lT from"decimal.js";import{PublicKey as mk,TransactionInstruction as dk,Keypair as fk,SystemProgram as yk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as gk,TOKEN_2022_PROGRAM_ID as Pk,TOKEN_PROGRAM_ID as Ak}from"@solana/spl-token";var $w=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Jw=Buffer.from("amm_config","utf8"),ek=Buffer.from("pool","utf8"),tk=Buffer.from("pool_lp_mint","utf8"),nk=Buffer.from("pool_vault","utf8"),ok=Buffer.from("observation","utf8"),ik=Buffer.from("permission","utf8"),rk=Buffer.from("support_mint","utf8");var ak=Buffer.from("locked_liquidity","utf8");var Sk=_("Raydium_cpmm"),Kk={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var zr=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),m(e(),15)]),eo=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),re("enableCreatorFee"),m(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),m(e(),28)]),Rk=l([N(8),o("configId"),m(e(),30)]);import{PublicKey as tK,SystemProgram as nK}from"@solana/web3.js";import{createTransferInstruction as iK,TOKEN_PROGRAM_ID as rK,TOKEN_2022_PROGRAM_ID as aK,createAssociatedTokenAccountIdempotentInstruction as sK,createSyncNativeInstruction as cK,createTransferCheckedInstruction as lK}from"@solana/spl-token";import ua from"bn.js";import pK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as wh,TOKEN_2022_PROGRAM_ID as kh,TOKEN_PROGRAM_ID as Th}from"@solana/spl-token";import{SystemProgram as Sh,TransactionInstruction as Kh}from"@solana/web3.js";import $r from"bn.js";var Qr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),o("mintB"),o("protocolFeeOwner"),o("migrateFeeOwner"),o("migrateToAmmWallet"),o("migrateToCpmmWallet"),m(e(),16)]),Zr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Hr=l([e(),e("epoch"),c("bump"),c("status"),c("mintDecimalsA"),c("mintDecimalsB"),c("migrateType"),e("supply"),e("totalSellA"),e("virtualA"),e("virtualB"),e("realA"),e("realB"),e("totalFundRaisingB"),e("protocolFee"),e("platformFee"),e("migrateFee"),Zr.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),m(c(),54)]),th=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),no=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),jr=l([e("epoch"),c("index"),o("configId"),no.replicate("bondingCurveParam"),m(e(),50)]),oo=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),m(c(),64,"name"),m(c(),256,"web"),m(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),m(c(),107),In(jr,"platformCurve")]);var ah=Buffer.from("vault_auth_seed","utf8"),sh=Buffer.from("global_config","utf8"),uh=Buffer.from("pool_vesting","utf8"),ch=Buffer.from("platform_config","utf8"),lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),mh=Buffer.from("creator_fee_vault_auth_seed","utf8"),dh=Buffer.from("platform_global_access","utf8"),ph=Buffer.from("platform_allow_config","utf8");var Lh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Oh=new $r("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as vh,TOKEN_PROGRAM_ID as Vh}from"@solana/spl-token";import Wh from"bn.js";import Uh from"decimal.js";import kI from"bn.js";import hI from"decimal.js";import Zh from"bn.js";import jh from"decimal.js";import sI from"bn.js";import cI from"decimal.js";import ao from"bn.js";import jt from"decimal.js";var Tt=class{static _multipler(t){return new jt(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new jt(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let u=t.mul(this._multipler(r)).div(this._multipler(n));return new ao(u.mul(this._Q64).toFixed(0))}};Tt._Q64=new jt(new ao(1).shln(64).toString());import{NATIVE_MINT as LB,TOKEN_2022_PROGRAM_ID as OB,TOKEN_PROGRAM_ID as NB,createAssociatedTokenAccountIdempotentInstruction as FB,createSyncNativeInstruction as vB,getTransferFeeConfig as VB,unpackMint as _B}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as ra,SystemProgram as WB}from"@solana/web3.js";import QB from"decimal.js";var ZB={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new ra("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},HB=new Q(1e4);var aa={[Cn.toBase58()]:3};var sa=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as AS}from"@solana/web3.js";var IS=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as NS,TOKEN_2022_PROGRAM_ID as MS,TOKEN_PROGRAM_ID as FS}from"@solana/spl-token";import{PublicKey as VS,SystemProgram as _S,TransactionInstruction as ES}from"@solana/web3.js";import WS from"bn.js";var UK=new ua(0);import{PublicKey as ca,Transaction as $t,TransactionInstruction as la}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ma}from"@solana/spl-token";import so from"bn.js";var te=class extends oe{static getPdaPoolId(t,n){return ce([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return ce([te.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new so(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let f=r.map(b=>te.getPdaPoolId(n,b).publicKey),y=[];for(let b=0;b<te.VERSION_PROJECT.length;b++)y.push(...f.map(O=>te.getPdaOwnerId(n,O,u,b).publicKey));let g=await ye(t,[...f,...y]),K=[];for(let b=0;b<g.length;b++){let O=Math.floor(b/r.length),x=b%r.length,B=f[x],M=y[b],P=g[x],T=g[r.length+b];if(!(P&&T)||P.data.length!==te.POOL_LAYOUT.span||T.data.length!==te.OWNER_LAYOUT.span)continue;let I=te.POOL_LAYOUT.decode(P.data),h=te.OWNER_LAYOUT.decode(T.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),p=h.tokenInfo.map(S=>S.debtAmount.gt(new so(0))).filter(S=>!S).length!==3,A=d>F&&d<v&&I.status===1,w=p&&A;K.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:te.VERSION_PROJECT[O],openTime:F,endTime:v,canClaim:w,canClaimErrorType:p?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((S,C)=>({mintAddress:S.mintAddress,mintVault:S.mintVault,mintDecimals:S.mintDecimals,perLpLoss:S.perLpLoss,debtAmount:h.tokenInfo[C].debtAmount.add(h.tokenInfo[C].claimedAmount)}))})}return K}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,f=[];for(let K of t.tokenInfo){let{account:b,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:K.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:K.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!K.mintAddress.equals(ee.WSOL.mint),associatedOnly:K.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),f.push(b)}u.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:f}})]});let{transaction:y,signers:g}=u.build();return[{transaction:y,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,f={};for(let b of t){let O=[];for(let x of b.tokenInfo){let{account:B,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:x.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:x.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!x.mintAddress.equals(ee.WSOL.mint),associatedOnly:x.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),B&&(f[x.mintAddress.toString()]=B,O.push(B))}u.addInstruction({instructions:[te.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:d,ownerPda:b.ownerAccountId,claimAddress:O}})]})}let{transaction:y,signers:g}=u.build(),K=u.allInstructions;return Rt(K,[d,...g.map(b=>b.publicKey)])?[{transaction:y,signer:g}]:[{transaction:new $t().add(...K.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new $t().add(...K.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new $t().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),d=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:ma,isSigner:!1,isWritable:!1}],f=Buffer.alloc(u.span);u.encode({},f);let y=Buffer.from([10,66,208,184,161,6,191,98,...f]);return new la({keys:d,programId:t,data:y})}},se=te;se.CLAIMED_NUM=3,se.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),m(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),m(e(),10,"padding")]),se.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),m(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new ca(t)),se.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},se.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as ax}from"@solana/web3.js";import{getTransferFeeConfig as ux,MintLayout as cx,TOKEN_2022_PROGRAM_ID as lx,TOKEN_PROGRAM_ID as mx,unpackMint as dx}from"@solana/spl-token";function Bt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}var oR=_("Raydium_amount"),iR=Ze(da);var wR=new he(2),kR=new he(3),TR=new he(5),uo=new he(10),hR=new he(100),IR=new he(1e3),BR=new he(1e4);function Jt(i){return uo.pow(J(i))}var pa=_("Raydium_price"),de=class extends q{constructor(n){let{baseToken:r,quoteToken:u,numerator:d,denominator:f}=n;super(d,f);this.baseToken=r,this.quoteToken=u,this.scalar=new q(Jt(r.decimals),Jt(u.decimals))}get raw(){return new q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new de({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&pa.logWithError("mul token not equals");let r=super.mul(n);return new de({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:r.denominator,numerator:r.numerator})}toSignificant(n=this.quoteToken.decimals,r,u){return this.adjusted.toSignificant(n,r,u)}toFixed(n=this.quoteToken.decimals,r,u){return this.adjusted.toFixed(n,r,u)}};export{de as Price};
//# sourceMappingURL=price.mjs.map