UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 74.1 kB
var mo=Object.defineProperty,po=Object.defineProperties;var fo=Object.getOwnPropertyDescriptors;var nt=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(i,t,n)=>t in i?mo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,C=(i,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(i,n,t[n]);if(nt)for(var n of nt(t))un.call(t,n)&&an(i,n,t[n]);return i},V=(i,t)=>po(i,fo(t));var ue=(i,t)=>{var n={};for(var r in i)sn.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&&un.call(i,r)&&(n[r]=i[r]);return n};import It from"bn.js";import QR from"bn.js";import UR from"bn.js";import Te from"bn.js";import IR from"decimal.js";import ba from"big.js";import uR from"bn.js";import{get as cn,set as yo}from"lodash";var Bt=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}},ln={},bo={};function E(i){let t=cn(ln,i);if(!t){let n=cn(bo,i);t=new Bt({name:i,logLevel:n}),yo(ln,i,t)}return t}import{PublicKey as go}from"@solana/web3.js";import{MINT_SIZE as Ca,TOKEN_PROGRAM_ID as Ra,getTransferFeeConfig as La,unpackMint as Oa}from"@solana/spl-token";var St=E("Raydium_accountInfo_util");async function fe(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:d=100}=C({batchRequest:!1},n),p=Kt(t,d),f=new Array(p.length).fill([]);if(r){let g=p.map(O=>{let R=i._buildArgs([O.map(B=>B.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),S=Kt(g,10);f=(await(await Promise.all(S.map(async O=>await i._rpcBatchRequest(O)))).flat()).map(O=>(O.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${O.error.message}`),O.result.value.map(R=>{if(R){let{data:B,executable:M,lamports:P,owner:T,rentEpoch:I}=R;return B.length!==2&&B[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:M,lamports:P,owner:new go(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import De from"bn.js";var mn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof De)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new De(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=mn||i<=-mn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new De(String(i))):typeof i=="bigint"?new De(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new De(0))}import{merge as Gx}from"lodash";import Ga from"axios";var dn={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"},Po=V(C({},dn),{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 ps=E("Raydium_Api");import{PublicKey as Fc,SystemProgram as vc}from"@solana/web3.js";import{AccountLayout as Wc,createAssociatedTokenAccountIdempotentInstruction as qc,TOKEN_PROGRAM_ID as Uc,TOKEN_2022_PROGRAM_ID as Gc}from"@solana/spl-token";import{PublicKey as xe,sendAndConfirmTransaction as Nt,SystemProgram as Io,Transaction as Ue,TransactionMessage as Ge,VersionedTransaction as ze}from"@solana/web3.js";import Bo from"axios";import{PublicKey as xt,AddressLookupTableAccount as Se}from"@solana/web3.js";async function Ct({connection:i,address:t,cluster:n="mainnet"}){let r=await fe(i,[...new Set(t.map(d=>d.toString()))].map(d=>new xt(d))),u={};for(let d=0;d<t.length;d++){let p=r[d],f=t[d];if(!p)continue;let g=new Se({key:f,state:Se.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Be[f.toString()]=g:Ie[f.toString()]=g}return u}var Ie={},Rt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ie[t])return Ie;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Ie[t]=new Se({key:n,state:Se.deserialize(r.data)})),Ie},Be={},Lt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Be[t])return Be;let n=new xt(t),r=await i.getAccountInfo(n);return r&&(Be[t]=new Se({key:n,state:Se.deserialize(r.data)})),Be};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 yn,PublicKey as Ao,Transaction as bn,TransactionMessage as wo,VersionedTransaction as gn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ko}from"@solana/spl-token";var fn=E("Raydium_txUtil"),Pn=1644;function ot(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 Ke(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 Ot(i,t){i.length<1&&fn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&fn.logWithError(`no signers provided:, ${t.toString()}`);let n=new bn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Pn}catch{return!1}}function ce(i,t){let[n,r]=Ao.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function We({instructions:i,payer:t,signers:n}){return Ot(i,[t,...n])}function qe({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=yn.generate().publicKey.toString()}){let d=new wo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new gn(d).serialize()).toString("base64").length<Pn}catch{return!1}}var To=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),ho=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof gn&&(t=To(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Pe(i){let t=[];return i.forEach(n=>{n instanceof bn&&(n.recentBlockhash||(n.recentBlockhash=ko.toBase58()),n.feePayer||(n.feePayer=yn.generate().publicKey)),t.push(ho(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 Bo.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(Io.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new xe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...p.filter(f=>f!==xe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(V(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ue;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:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},S=d!=null?d:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=S,this.signers.length&&n.sign(...this.signers),Pe([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Nt(this.connection,n,this.signers.find(R=>R.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 O=await this.signAllTransactions([n]);if(this.signers.length)for(let R of O)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(O[0].serialize(),{skipPreflight:p}),signedTx:O[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var S;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),d=n.filter(b=>b.transaction.instructions.length>0),p=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:O,onTxUpdate:R,skipTxCount:B=0,recentBlockHash:M,skipPreflight:P=!0}=b||{},T=M!=null?M:await Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(O){let h=[],F=0;for(let v of p){if(++F,F<=B)continue;let y=await Nt(this.connection,v,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((v,y)=>(v.recentBlockhash=T,f[y].length&&v.sign(...f[y]),v));Pe(h);let F=await this.signAllTransactions(h);if(O){let v=0,y=[],A=async()=>{if(!F[v])return;let w=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:F[v]}),R==null||R([...y]),v++;let K=!1,L=null,_=null,ie=q=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=y.findIndex(j=>j.txId===w);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}R==null||R([...y]),q.err||A()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(K=!0,clearInterval(L),ie({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,w)}},rt)),_=this.connection.onSignature(w,q=>{if(K){this.connection.removeSignatureListener(_);return}K=!0,ie(q)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let A=await this.connection.sendRawTransaction(F[y].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,p=ue(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),S=[];for(let T of g)f[T]===void 0&&S.push(new xe(T));let b=await Ct({connection:this.connection,address:S});for(let[T,I]of Object.entries(b))f[T]=I;let O=u?xe.default.toBase58():d!=null?d:await Ke(this.connection,this.blockhashCommitment),R=new Ge({payerKey:this.feePayer,recentBlockhash:O,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((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 ze(R);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(Pe([B]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(B,{skipPreflight:I});return h&&await it(this.connection,y),{txId:y,signedTx:B}}if(this.signAllTransactions){let y=await this.signAllTransactions([B]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var S;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),d=n.filter(b=>b.builder.instructions.length>0),p=[u,...d.map(b=>b.transaction)],f=[this.signers,...d.map(b=>b.signers)],g=[...this.instructionTypes,...d.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&f.forEach(b=>{b.some(O=>O.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,O)=>{b.sign(f[O])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:O,onTxUpdate:R,recentBlockHash:B,skipPreflight:M=!0}=b||{};if(B&&p.forEach(T=>T.message.recentBlockhash=B),Pe(p),(P=this.owner)!=null&&P.isKeyPair){if(O){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await it(this.connection,h),T.push(h)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);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]}),R==null||R([...h]),I++;let y=!1,A=null,w=null,K=L=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=h.findIndex(ie=>ie.txId===v);if(_>-1){if(h[_].status==="error"||h[_].status==="success")return;h[_].status=L.err?"error":"success"}R==null||R([...h]),L.err||F()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var L;if(y){clearInterval(A);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(y=!0,clearInterval(A),K({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){y=!0,clearInterval(A),console.error("getTransaction timeout:",_,v)}},rt)),w=this.connection.onSignature(v,L=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,K(L)},"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 R;let O=t||{},{splitIns:n=[],computeBudgetConfig:r}=O,u=ue(O,["splitIns","computeBudgetConfig"]),d=r?ot(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((B,M)=>V(C({},B),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],S=[],b=0;if(this.allInstructions.forEach(B=>{let M=[...S,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 xe(h));if(B!==n[b]&&S.length<12&&(We({instructions:P,payer:this.feePayer,signers:I})||We({instructions:M,payer:this.feePayer,signers:I})))S.push(B);else{if(S.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,We({instructions:r?[...d.instructions,...S]:[...S],payer:this.feePayer,signers:I})?f.push(new Ue().add(...d.instructions,...S)):f.push(new Ue().add(...S)),g.push(Array.from(new Set(S.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),S=[B]}}),S.length>0){let M=[...new Set(S.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);We({instructions:r?[...d.instructions,...S]:[...S],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Ue().add(...d.instructions,...S)):f.push(new Ue().add(...S)),g.push(M)}return f.forEach(B=>B.feePayer=this.feePayer),(R=this.owner)!=null&&R.signer&&g.forEach(B=>{B.some(M=>M.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:f,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 Ke(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=F,g[A].length&&y.sign(...g[A])}),Pe(f),(v=this.owner)!=null&&v.isKeyPair){if(M){let y=0,A=[];for(let w of f){if(++y,y<=T){A.push("tx skipped");continue}let K=await Nt(this.connection,w,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(K)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...y];if(M){let w=0,K=[],L=async()=>{if(!A[w])return;w<T&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,L());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});K.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=K.findIndex(de=>de.txId===_);if(te>-1){if(K[te].status==="error"||K[te].status==="success")return;K[te].status=G.err?"error":"success"}P==null||P([...K]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(ie){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(ie=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){ie=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},rt)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:K.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let L=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:h});w.push(L)}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:p=12}=F,f=ue(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await Lt(this.connection):await Rt(this.connection)),u),S=Array.from(new Set([...this.lookupTableAddress,...d])),b=[];for(let y of S)g[y]===void 0&&b.push(new xe(y));let O=await Ct({connection:this.connection,address:b});for(let[y,A]of Object.entries(O))g[y]=A;let R=n?ot(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,A)=>V(C({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...R.instructions,...A]:A;if(y!==r[h]&&I.length<p&&(qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===r[h]?1:0;let K={};for(let L of[...new Set(S)])g[L]!==void 0&&(K[L]=g[L]);if(n&&qe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new ze(L))}else{let L=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new ze(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&qe({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let w=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new ze(w))}else{let w=new Ge({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new ze(w))}T.push(A)}return(v=this.owner)!=null&&v.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:L,skipPreflight:_=!0}=y||{};if(P.map(async(q,W)=>{T[W].length&&q.sign(T[W]),L&&(q.message.recentBlockhash=L)}),Pe(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let q=0,W=[];for(let j of P){if(++q,q<=K){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await it(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...q];if(A){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<K){G.push({txId:"",status:"success",signedTx:W[j]}),w==null||w([...G]),j++,te();return}let de=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:de,status:"sent",signedTx:W[j]}),w==null||w([...G]),j++;let Ve=!1,he=null,tt=null,rn=ge=>{he!==null&&clearInterval(he),tt!==null&&this.connection.removeSignatureListener(tt);let pe=G.findIndex(lo=>lo.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=ge.err?"error":"success"}w==null||w([...G]),ge.err||te()};this.loopMultiTxStatus&&(he=setInterval(async()=>{var ge;if(Ve){clearInterval(he);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:1});pe&&(Ve=!0,clearInterval(he),rn({err:((ge=pe.meta)==null?void 0:ge.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){Ve=!0,clearInterval(he),console.error("getTransaction timeout:",pe,de)}},rt)),tt=this.connection.onSignature(de,ge=>{if(Ve){this.connection.removeSignatureListener(tt);return}Ve=!0,rn(ge)},"confirmed"),this.connection.getSignatureStatus(de)};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:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Mt=(...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 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(Mt(t))}logInfo(...t){this.logger.info(Mt(t))}logAndCreateError(...t){let n=Mt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as dc,SystemProgram as fc}from"@solana/web3.js";import gc from"bn.js";import{createCloseAccountInstruction as kc,createInitializeAccountInstruction as Tc,createTransferInstruction as hc,TOKEN_PROGRAM_ID as Ic}from"@solana/spl-token";import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as An}from"@solana/spl-token";var st={chainId:101,address:So.default.toBase58(),programId:An.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:An.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 Ju,PublicKey as ec}from"@solana/web3.js";import oc from"bn.js";import{TOKEN_PROGRAM_ID as ac}from"@solana/spl-token";import{PublicKey as Vo}from"@solana/web3.js";import In,{isBN as Bn}from"bn.js";import{bits as Ko,BitStructure as iu,blob as xo,Blob as ru,cstr as au,f32 as su,f32be as uu,f64 as cu,f64be as lu,greedy as mu,Layout as Co,ns64 as du,ns64be as pu,nu64 as fu,nu64be as yu,offset as Ro,s16 as bu,s16be as gu,s24 as Pu,s24be as Au,s32 as Lo,s32be as wu,s40 as ku,s40be as Tu,s48 as hu,s48be as Iu,s8 as Bu,seq as Oo,struct as Su,Structure as No,u16 as Mo,u16be as Ku,u24 as xu,u24be as Cu,u32 as Fo,u32be as Ru,u40 as Lu,u40be as Ou,u48 as Nu,u48be as Mu,u8 as vo,UInt as _o,union as Fu,Union as vu,unionLayoutDiscriminator as _u,utf8 as Vu}from"@solana/buffer-layout";var ut=Co,wn=No;var Ft=_o;var kn=vo,Y=Mo;var ct=Fo;var ae=Lo;var Tn=Oo;var N=xo;var vt=Ko,hn=Ro;var we=class extends ut{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new In(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 In(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=vt(ct(),!1),this._upper=vt(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 C(C({},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 Ft(1,i)}function z(i){return new Ft(4,i)}function e(i){return new we(8,!1,i)}function x(i){return new we(16,!1,i)}function Sn(i){return new we(1,!0,i)}function Ce(i){return new we(8,!0,i)}function Kn(i){return new we(16,!0,i)}var Xe=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 Xe(N(32),t=>new Vo(t),t=>t.toBuffer(),i)}function re(i){return new Xe(kn(),Eo,Do,i)}function Eo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Do(i){return i?1:0}function Vt(i,t){let n=ct("length"),r=l([n,m(i,hn(n,-n.span),"values")]);return new Xe(r,({values:u})=>u,u=>({values:u}),t)}var _t=class extends wn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new _t(i,t,n)}function m(i,t,n){let r,u=typeof t=="number"?t:Bn(t)?t.toNumber():new Proxy(t,{get(d,p){if(!r){let f=Reflect.get(d,"count");r=Bn(f)?f.toNumber():f,Reflect.set(d,"count",r)}return Reflect.get(d,p)},set(d,p,f){return p==="count"&&(r=f),Reflect.set(d,p,f)}});return Tn(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 Sg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as xg}from"@solana/spl-token";import{PublicKey as $c}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Jc}from"@solana/spl-token";import{PublicKey as k}from"@solana/web3.js";var Cn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Rn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ln=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Et=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ol=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),qo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),On=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Nn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),il=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Uo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Mn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Go=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),zo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Fn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),rl=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Xo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Dt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Yo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),al=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ho=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Zo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),sl=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ul=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),cl=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ll=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ml=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={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 vn,SYSVAR_RENT_PUBKEY as $o}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as jo}from"@solana/spl-token";function Re({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var Jo=[Re({pubkey:jo,isWritable:!1}),Re({pubkey:vn.programId,isWritable:!1}),Re({pubkey:$o,isWritable:!1})];function _n({publicKey:i,transformSol:t}){let n=Vn(i.toString());if(n instanceof X)return t&&n.equals(ke)?ye:n;if(t&&n.toString()===ke.toBase58())return ye;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 Vn(i){try{return new X(i)}catch{return i}}var Wt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ye=new X("SysvarRent111111111111111111111111111111111"),bl=new X("SysvarC1ock11111111111111111111111111111111"),pt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),ei=new X("Sysvar1nstructions1111111111111111111111111"),ti=vn.programId,gl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Pl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Al=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),wl=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),kl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Tl=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),hl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Il=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Bl=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Sl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Kl=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new X("So11111111111111111111111111111111111111112"),ke=X.default;import Vg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as sy,TOKEN_2022_PROGRAM_ID as uy,TOKEN_PROGRAM_ID as cy}from"@solana/spl-token";import{PublicKey as my}from"@solana/web3.js";import py from"bn.js";import yy from"decimal.js";import{TOKEN_PROGRAM_ID as bm}from"@solana/spl-token";import{PublicKey as wm}from"@solana/web3.js";import{PublicKey as qt}from"@solana/web3.js";var Ut=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:d=!1,isToken2022:p=!1}){if(t===ke.toBase58()||t instanceof qt&&ke.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new qt(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?qt.default:_n({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ut;J.WSOL=new Ut(V(C({},le),{mint:le.address}));var Gt=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=Gt;ft.SOL=new Gt(st);import ni from"toformat";var oi=ni,He=oi;import bt from"big.js";import ri from"bn.js";import ai from"decimal.js-light";var yt=E("module/fraction"),zt=He(bt),Qe=He(ai),si={[0]:Qe.ROUND_DOWN,[1]:Qe.ROUND_HALF_UP,[2]:Qe.ROUND_UP},ui={[0]:bt.roundDown,[1]:bt.roundHalfUp,[2]:bt.roundUp},U=class{constructor(t,n=new ri(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)||yt.logWithError(`${t} is not an integer.`),t<=0&&yt.logWithError(`${t} is not positive.`),Qe.set({precision:t+1,rounding:si[r]});let u=new Qe(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.`),zt.DP=t,zt.RM=ui[r]||1,new zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import ci from"bn.js";var Ql=new U(new ci(100));var tm=E("Raydium_price");var li=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as xf,TOKEN_2022_PROGRAM_ID as Cf,TOKEN_PROGRAM_ID as Rf}from"@solana/spl-token";import{Keypair as Nf,PublicKey as Mf,SystemProgram as vf,TransactionInstruction as _f}from"@solana/web3.js";import Ef from"bn.js";import D from"bn.js";var Oe=new D(1).shln(64);var mi=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),di=new D(1).shln(128).subn(1);var Ne=new D("4295048016"),Me=new D("79226673521066979257578248091"),pi=new D("59543866431248"),fi=new D("184467440737095516"),yi=new D("15793534762490258745");var Yt=60,Om=new D("18446743708227953217"),bi=[{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 Ze=3,En=100;var Dn=10,Wn=100,gt=14;var Z=new D(0),Fe=new D(1),Nm=new D(-1);var Mm=new D("18446744073700000000");var gi=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)]),Pi=l([z("blockTimestamp"),Ce("tickCumulative"),m(e(),4)]),qn=l([N(8),re("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),m(Pi,En,"observations"),m(e(),4)]),Ai=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),ae("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),wi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),x("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),x("growthGlobalX64")]),Ht=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"),x("liquidity"),x("sqrtPriceX64"),ae("tickCurrent"),z(),x("feeGrowthGlobalX64A"),x("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(x(),4),c("status"),c("feeOn"),N(6),m(wi,Ze,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ai.replicate("dynamicFeeInfo"),m(e(),46)]),ki=l([x("growthInsideLastX64"),e("rewardAmountOwed")]),Ti=l([N(8),c("bump"),o("nftMint"),o("poolId"),ae("tickLower"),ae("tickUpper"),x("liquidity"),x("feeGrowthInsideLastX64A"),x("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(ki,Ze,"rewardInfos"),e("recentEpoch"),m(e(),7)]),Vm=l([N(8),c("bump"),o("poolId"),ae("tickLower"),ae("tickUpper"),x("liquidity"),x("feeGrowthInsideLastX64A"),x("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(x(),Ze,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),hi=l([ae("tick"),Kn("liquidityNet"),x("liquidityGross"),x("feeGrowthOutsideX64A"),x("feeGrowthOutsideX64B"),m(x(),Ze,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),x("unfilledRatioX64"),m(z(),3)]),Un=l([N(8),o("poolId"),ae("startTickIndex"),m(hi,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Ii=l([N(8),c("bump"),m(o(),Dn,"operationOwners"),m(o(),Wn,"whitelistMints")]),Bi=l([N(8),o("poolId"),o("owner"),ae("tick"),re("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),x("unfilledRatioX64"),m(e(),4)]),Gn=l([N(8),o("poolId"),N(8*8*gt,"positiveTickArrayBitmap"),N(8*8*gt,"negativeTickArrayBitmap")]),Em=l([N(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),m(e(),8)]),Si=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Dm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Ki=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Um from"bn.js";var ed=Buffer.from("amm_config","utf8"),Ci=Buffer.from("pool","utf8"),Ri=Buffer.from("pool_vault","utf8"),td=Buffer.from("pool_reward_vault","utf8"),nd=Buffer.from("position","utf8"),od=Buffer.from("tick_array","utf8"),id=Buffer.from("operation","utf8"),rd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),ad=Buffer.from("observation","utf8"),sd=Buffer.from("support_mint","utf8"),ud=Buffer.from("dynamic_fee_config","utf8"),cd=Buffer.from("permission","utf8");var ld=Buffer.from("locked_position","utf8");import{sha256 as zi}from"js-sha256";import Li from"bn.js";import fd from"decimal.js";var bd=new Li(1).shln(256).subn(1);import Md from"bn.js";import hd from"bn.js";import Bd from"decimal.js";import Ed from"bn.js";import Wd from"decimal.js";import{PublicKey as Kp}from"@solana/web3.js";import Cp from"bn.js";import{TOKEN_2022_PROGRAM_ID as _p,TOKEN_PROGRAM_ID as Vp}from"@solana/spl-token";import qp from"decimal.js";import bp from"bn.js";import op from"bn.js";import Jp from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(zi.digest(t)).slice(0,8)}qn.span;var Hf=E("Raydium_Clmm"),Qf={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as jt}from"@solana/web3.js";var Qi=l([c("instruction")]),Zi=l([c("instruction")]),$i=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),x("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"),x("perShareReward"),e("lastSlot"),e("perSlotReward")]),Ji=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),x("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),x("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),er=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),x("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),m($i,5,"rewardInfos"),o("creator"),o(),m(e(),32,"padding")]),tr=new Proxy(ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),nr=new Proxy(Ji,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},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)}}),$n=new Proxy(er,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(C({},u),{version:6,rewardInfos:u.rewardInfos.map(d=>{var p;return V(C({},d),{rewardType:((p=Object.entries(Je).find(f=>String(f[1])===d.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),or=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ir=l([c("instruction"),e("nonce"),m(or,5,"rewardTimeInfo")]),rr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),ar=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Gy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),1,"rewardDebts")]),jn=l([e("state"),o("id"),o("owner"),e("deposited"),m(x(),1,"rewardDebts"),e(""),e("voteLockedBalance"),m(e(),15)]),zy=l([e("state"),o("id"),o("owner"),e("deposited"),m(e(),2,"rewardDebts")]),sr=l([e("state"),o("id"),o("owner"),e("deposited"),m(x(),2,"rewardDebts"),m(e(),17)]),ur=l([e(),e("state"),o("id"),o("owner"),e("deposited"),m(x(),5,"rewardDebts"),m(e(),16)]),cr=l([c("instruction"),e("amount")]),lr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Sn("digitShift"),m(c(),7,"reserved1"),m(e(),7,"reserved2")]),mr=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),m(c(),32,"reserved1"),m(lr,4,"votingMints"),Ce("timeOffset"),c("bump"),m(c(),7,"reserved2"),m(e(),11,"reserved3")]),dr=l([Ce("startTime"),Ce("endTime"),c("kind"),m(c(),15,"reserved")]),pr=l([m(dr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),re("isUsed"),re("allowClawback"),c("votingMintConfigIdx"),m(c(),29,"reserved")]),fr=l([N(8),o("voterAuthority"),o("registrar"),m(pr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),m(c(),94,"reserved")]);import{NATIVE_MINT as eb}from"@solana/spl-token";var tb=E("Raydium_farm_config"),yr=new jt("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),br=new jt("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var nb=new jt("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var Je={"Standard SPL":0,"Option tokens":1},Jn={[Cn.toString()]:3,[Rn.toString()]:4,[Ln.toString()]:5,[Et.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Db,SystemProgram as Wb,SYSVAR_CLOCK_PUBKEY as qb,SYSVAR_RENT_PUBKEY as Ub,TransactionInstruction as Gb}from"@solana/web3.js";import Xb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Hb,createAssociatedTokenAccountIdempotentInstruction as Qb,TOKEN_PROGRAM_ID as Zb}from"@solana/spl-token";import bb from"bn.js";import{PublicKey as sb}from"@solana/web3.js";import cb from"bn.js";var Cb=E("Raydium.farm.util");var sg=E("Raydium_farm_instruction"),ug={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 Qg from"bn.js";import{PublicKey as ow}from"@solana/web3.js";import{AccountLayout as aw,MintLayout as sw,NATIVE_MINT as uw,TOKEN_PROGRAM_ID as lw}from"@solana/spl-token";import jg from"bn.js";import to from"bn.js";var Ir=new to(25),Br=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as wP,TOKEN_PROGRAM_ID as kP}from"@solana/spl-token";import{PublicKey as hP,SystemProgram as IP,SYSVAR_RENT_PUBKEY as BP,TransactionInstruction as SP}from"@solana/web3.js";import MP from"bn.js";var Sr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Kr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),bP=l([c("instruction"),c("nonce")]),xr=l([c("instruction"),c("nonce"),e("startTime")]),no=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"),x("swapBaseInAmount"),x("swapQuoteOutAmount"),e("swapBase2QuoteFee"),x("swapQuoteInAmount"),x("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")]),gP=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"),x("swapBaseInAmount"),x("swapQuoteOutAmount"),x("swapQuoteInAmount"),x("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")]),Cr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Rr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Lr=l([e("fee")]);var _P=E("Raydium_liquidity_instruction");var Or=5e4,Nr=l([e("x"),e("y"),e("price")]),WP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),m(Nr,Or,"DataElement")]);import{PublicKey as JP}from"@solana/web3.js";import tA from"decimal.js";import{TOKEN_PROGRAM_ID as oA}from"@solana/spl-token";import{PublicKey as zP}from"@solana/web3.js";var HP=E("Raydium_liquidity_serum");import Rw from"bn.js";import Ow from"decimal.js";import{TOKEN_PROGRAM_ID as RA}from"@solana/spl-token";import{PublicKey as OA}from"@solana/web3.js";import MA from"bn.js";import{SystemProgram as gA,SYSVAR_RENT_PUBKEY as PA,Transaction as AA,TransactionInstruction as wA}from"@solana/web3.js";import{createInitializeAccountInstruction as TA,TOKEN_PROGRAM_ID as hA}from"@solana/spl-token";function Mr(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 Fr=l([N(5),Mr("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 Vk}from"@solana/web3.js";import{AccountLayout as Dk,NATIVE_MINT as Wk,TOKEN_2022_PROGRAM_ID as qk,TOKEN_PROGRAM_ID as Uk,createAssociatedTokenAccountIdempotentInstruction as Gk}from"@solana/spl-token";import jk from"bn.js";import eT from"decimal.js";import{PublicKey as tk,TransactionInstruction as nk,Keypair as ik,SystemProgram as rk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as sk,TOKEN_2022_PROGRAM_ID as uk,TOKEN_PROGRAM_ID as ck}from"@solana/spl-token";var Dw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Ww=Buffer.from("amm_config","utf8"),qw=Buffer.from("pool","utf8"),Uw=Buffer.from("pool_lp_mint","utf8"),Gw=Buffer.from("pool_vault","utf8"),zw=Buffer.from("observation","utf8"),Xw=Buffer.from("permission","utf8"),Yw=Buffer.from("support_mint","utf8"),Hw=Buffer.from("creator_fee_share","utf8");var Qw=Buffer.from("locked_liquidity","utf8");var bk=E("Raydium_cpmm"),gk={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 Ur=l([N(8),c("bump"),re("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),m(e(),14)]),oo=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)]),wk=l([N(8),o("configId"),m(e(),30)]),kk=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),m(e(),8)]);import{PublicKey as pK,SystemProgram as fK}from"@solana/web3.js";import{createTransferInstruction as bK,TOKEN_PROGRAM_ID as gK,TOKEN_2022_PROGRAM_ID as PK,createAssociatedTokenAccountIdempotentInstruction as AK,createSyncNativeInstruction as kK,createTransferCheckedInstruction as TK}from"@solana/spl-token";import ma from"bn.js";import BK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ch,TOKEN_2022_PROGRAM_ID as lh,TOKEN_PROGRAM_ID as mh}from"@solana/spl-token";import{SystemProgram as yh,TransactionInstruction as bh}from"@solana/web3.js";import Xr from"bn.js";var HT=Buffer.from("vault_auth_seed","utf8"),QT=Buffer.from("global_config","utf8"),ZT=Buffer.from("pool_vesting","utf8"),$T=Buffer.from("platform_config","utf8"),jT=Buffer.from("platform_fee_vault_auth_seed","utf8"),JT=Buffer.from("creator_fee_vault_auth_seed","utf8"),eh=Buffer.from("platform_global_access","utf8"),th=Buffer.from("platform_allow_config","utf8"),nh=Buffer.from("platform_curve_rule","utf8");var Ah={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]),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]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var wh=new Xr("18446744073709551615");var Yr=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)]),Hr=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),Qr=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"),Hr.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)]),Ih=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),m(e(),8)]),Zr=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Bh=l([e("epoch"),c("index"),o("configId"),Zr.replicate("bondingCurveParam"),m(e(),50)]),ro=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"),c("restrictCurveParam"),o("curveRuleManager"),m(c(),78)]),$r=l([c("field"),c("op"),x("value")]),jr=l([Y("groupId"),e("epoch"),Vt($r,"constraints")]),Jr=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),m(e(),8),Vt(jr,"groups")]);import{TOKEN_2022_PROGRAM_ID as xh,TOKEN_PROGRAM_ID as Ch}from"@solana/spl-token";import ea from"bn.js";var Wh=new ea(1e6);import zh from"bn.js";import Yh from"decimal.js";import BI from"bn.js";import KI from"decimal.js";import Jh from"bn.js";import tI from"decimal.js";import mI from"bn.js";import pI from"decimal.js";import uo from"bn.js";import en from"decimal.js";var ht=class{static _multipler(t){return new en(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new en(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 uo(u.mul(this._Q64).toFixed(0))}};ht._Q64=new en(new uo(1).shln(64).toString());import{NATIVE_MINT as qB,TOKEN_2022_PROGRAM_ID as UB,TOKEN_PROGRAM_ID as GB,createAssociatedTokenAccountIdempotentInstruction as XB,createSyncNativeInstruction as YB,getTransferFeeConfig as HB,unpackMint as QB}from"@solana/spl-token";import H from"bn.js";import{PublicKey as ua,SystemProgram as jB}from"@solana/web3.js";import rS from"decimal.js";var aS={initPriceX64:new H("515752397214619"),supply:new H(1e15),totalSellA:new H(7931e11),totalFundRaisingB:new H(85e9),totalFundRaisingBUSD:new H(125e8),totalLockedAmount:new H("0"),cliffPeriod:new H("0"),unlockPeriod:new H("0"),decimals:6,virtualA:new H("1073471847374405"),virtualB:new H("30050573465"),realA:new H(0),realB:new H(0),protocolFee:new H(0),platformId:new ua("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},sS=new H(1e4);var ca={[On.toBase58()]:3};var la=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 LS}from"@solana/web3.js";var vS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as zS,TOKEN_2022_PROGRAM_ID as XS,TOKEN_PROGRAM_ID as YS}from"@solana/spl-token";import{PublicKey as QS,SystemProgram as ZS,TransactionInstruction as $S}from"@solana/web3.js";import JS from"bn.js";var tx=new ma(0);import{PublicKey as da,Transaction as tn,TransactionInstruction as pa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as fa}from"@solana/spl-token";import co from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return ce([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return ce([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new co(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:d}){if(r.length===0)return[];let p=r.map(b=>ee.getPdaPoolId(n,b).publicKey),f=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)f.push(...p.map(O=>ee.getPdaOwnerId(n,O,u,b).publicKey));let g=await fe(t,[...p,...f]),S=[];for(let b=0;b<g.length;b++){let O=Math.floor(b/r.length),R=b%r.length,B=p[R],M=f[b],P=g[R],T=g[r.length+b];if(!(P&&T)||P.data.length!==ee.POOL_LAYOUT.span||T.data.length!==ee.OWNER_LAYOUT.span)continue;let I=ee.POOL_LAYOUT.decode(P.data),h=ee.OWNER_LAYOUT.decode(T.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),y=h.tokenInfo.map(K=>K.debtAmount.gt(new co(0))).filter(K=>!K).length!==3,A=d>F&&d<v&&I.status===1,w=y&&A;S.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:M,snapshotLpAmount:h.lpAmount,project:ee.VERSION_PROJECT[O],openTime:F,endTime:v,canClaim:w,canClaimErrorType:y?A?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,L)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:h.tokenInfo[L].debtAmount.add(h.tokenInfo[L].claimedAmount)}))})}return S}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,p=[];for(let S of t.tokenInfo){let{account:b,instructionParams:O}=await this.scope.account.getOrCreateTokenAccount({mint:S.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:S.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!S.mintAddress.equals(J.WSOL.mint),associatedOnly:S.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});O&&u.addInstruction(O),p.push(b)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:d,ownerPda:t.ownerAccountId,claimAddress:p}})]});let{transaction:f,signers:g}=u.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),d=n.wallet||this.scope.ownerPubKey,p={};for(let b of t){let O=[];for(let R of b.tokenInfo){let{account:B,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:R.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:R.mintAddress.equals(J.WSOL.mint),createInfo:{payer:d,amount:0},skipCloseAccount:!R.mintAddress.equals(J.WSOL.mint),associatedOnly:R.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),B&&(p[R.mintAddress.toString()]=B,O.push(B))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:d,ownerPda:b.ownerAccountId,claimAddress:O}})]})}let{transaction:f,signers:g}=u.build(),S=u.allInstructions;return Ot(S,[d,...g.map(b=>b.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new tn().add(...S.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new tn().add(...S.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new tn().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:fa,isSigner:!1,isWritable:!1}],p=Buffer.alloc(u.span);u.encode({},p);let f=Buffer.from([10,66,208,184,161,6,191,98,...p]);return new pa({keys:d,programId:t,data:f})}},se=ee;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")]),ee.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")]),ee.CLAIMED_NUM,"tokenInfo"),m(e(),4,"padding")]),se.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new da(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 Px}from"@solana/web3.js";import{getTransferFeeConfig as wx,MintLayout as kx,TOKEN_2022_PROGRAM_ID as Tx,TOKEN_PROGRAM_ID as hx,unpackMint as Ix}from"@solana/spl-token";function Kt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import ya from"bn.js";var wt=new ya(1e6);var gR=E("Raydium_amount"),PR=He(ba);var MR=new Te(2),FR=new Te(3),vR=new Te(5),ga=new Te(10),_R=new Te(100),VR=new Te(1e3),ER=new Te(1e4);function on(i,t){if(t.isZero())throw Error("divisor is zero");return i.mod(t)}function Pa(i,t){if(t.isZero())throw Error("rhs is zero");let n=i.div(t);return on(i,t).gt(et)&&(n=n.add(new It(1))),[n,t]}var et=new It(0),nn=class{static swapBaseInputWithoutFees(t,n,r){let u=t.mul(r),d=n.add(t);return u.div(d)}static swapBaseOutputWithoutFees(t,n,r){let u=n.mul(t),d=r.sub(t),[p]=Pa(u,d);return p}static lpTokensToTradingTokens(t,n,r,u,d){let p=t.mul(r).div(n),f=t.mul(u).div(n);if(d===0)return{tokenAmount0:p,tokenAmount1:f};if(d===1)return on(t.mul(r),n).gt(et)&&p.gt(et)&&(p=p.add(new It(1))),on(t.mul(u),n).gt(et)&&f.gt(et)&&(f=f.add(new It(1))),{tokenAmount0:p,tokenAmount1:f};throw Error("roundDirection value error")}};export{nn as ConstantProductCurve};
//# sourceMappingURL=constantProduct.mjs.map