UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 75.9 kB
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var rt=Object.getOwnPropertySymbols;var mn=Object.prototype.hasOwnProperty,dn=Object.prototype.propertyIsEnumerable;var ln=(i,t,n)=>t in i?Po(i,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[t]=n,O=(i,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(i,n,t[n]);if(rt)for(var n of rt(t))dn.call(t,n)&&ln(i,n,t[n]);return i},V=(i,t)=>Ao(i,wo(t));var ce=(i,t)=>{var n={};for(var r in i)mn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&rt)for(var r of rt(i))t.indexOf(r)<0&&dn.call(i,r)&&(n[r]=i[r]);return n};import bo from"bn.js";import at from"bn.js";function Ct(i,t){if(t.isZero())throw Error("divisor is zero");return i.mod(t)}function ko(i,t){if(t.isZero())throw Error("rhs is zero");let n=i.div(t);return Ct(i,t).gt(We)&&(n=n.add(new at(1))),[n,t]}var We=new at(0),qe=class{static swapBaseInputWithoutFees(t,n,r){let u=t.mul(r),m=n.add(t);return u.div(m)}static swapBaseOutputWithoutFees(t,n,r){let u=n.mul(t),m=r.sub(t),[p]=ko(u,m);return p}static lpTokensToTradingTokens(t,n,r,u,m){let p=t.mul(r).div(n),f=t.mul(u).div(n);if(m===0)return{tokenAmount0:p,tokenAmount1:f};if(m===1)return Ct(t.mul(r),n).gt(We)&&p.gt(We)&&(p=p.add(new at(1))),Ct(t.mul(u),n).gt(We)&&f.gt(We)&&(f=f.add(new at(1))),{tokenAmount0:p,tokenAmount1:f};throw Error("roundDirection value error")}};import Ia from"bn.js";import Ae from"bn.js";import FR from"decimal.js";import Ta from"big.js";import AR from"bn.js";import{get as fn,set as To}from"lodash";var Rt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},yn={},ho={};function E(i){let t=fn(yn,i);if(!t){let n=fn(ho,i);t=new Rt({name:i,logLevel:n}),To(yn,i,t)}return t}import{PublicKey as Io}from"@solana/web3.js";import{MINT_SIZE as Wa,TOKEN_PROGRAM_ID as qa,getTransferFeeConfig as Ua,unpackMint as Ga}from"@solana/spl-token";var Lt=E("Raydium_accountInfo_util");async function be(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=O({batchRequest:!1},n),p=Ot(t,m),f=new Array(p.length).fill([]);if(r){let g=p.map(I=>{let K=i._buildArgs([I.map(k=>k.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:K}}),w=Ot(g,10);f=(await(await Promise.all(w.map(async I=>await i._rpcBatchRequest(I)))).flat()).map(I=>(I.error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${I.error.message}`),I.result.value.map(K=>{if(K){let{data:k,executable:L,lamports:A,owner:P,rentEpoch:B}=K;return k.length!==2&&k[1]!=="base64"&&Lt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(k[0],"base64"),executable:L,lamports:A,owner:new Io(P),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>i.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Lt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import Ge from"bn.js";var bn=9007199254740991;function ne(i){let t=E("Raydium_parseBigNumberish");if(i instanceof Ge)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ge(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=bn||i<=-bn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ge(String(i))):typeof i=="bigint"?new Ge(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ge(0))}import{merge as tC}from"lodash";import ns from"axios";var gn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Bo=V(O({},gn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Bs=E("Raydium_Api");import{PublicKey as Yc,SystemProgram as Hc}from"@solana/web3.js";import{AccountLayout as Jc,createAssociatedTokenAccountIdempotentInstruction as el,TOKEN_PROGRAM_ID as tl,TOKEN_2022_PROGRAM_ID as nl}from"@solana/spl-token";import{PublicKey as Re,sendAndConfirmTransaction as Vt,SystemProgram as Lo,Transaction as Ye,TransactionMessage as He,VersionedTransaction as Qe}from"@solana/web3.js";import Oo from"axios";import{PublicKey as Nt,AddressLookupTableAccount as xe}from"@solana/web3.js";async function Mt({connection:i,address:t,cluster:n="mainnet"}){let r=await be(i,[...new Set(t.map(m=>m.toString()))].map(m=>new Nt(m))),u={};for(let m=0;m<t.length;m++){let p=r[m],f=t[m];if(!p)continue;let g=new xe({key:f,state:xe.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Ke[f.toString()]=g:Se[f.toString()]=g}return u}var Se={},Ft=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Se[t])return Se;let n=new Nt(t),r=await i.getAccountInfo(n);return r&&(Se[t]=new xe({key:n,state:xe.deserialize(r.data)})),Se},Ke={},vt=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ke[t])return Ke;let n=new Nt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new xe({key:n,state:xe.deserialize(r.data)})),Ke};var Q={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Pn,Keypair as wn,PublicKey as So,Transaction as kn,TransactionMessage as Ko,VersionedTransaction as Tn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";var An=E("Raydium_txUtil"),hn=1644;function st(i){let t=[],n=[];return i.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Q.SetComputeUnitPrice)),i.units&&(t.push(Pn.setComputeUnitLimit({units:i.units})),n.push(Q.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function ut(i,t){return i.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);i.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function _t(i,t){i.length<1&&An.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function le(i,t){let[n,r]=So.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function ze({instructions:i,payer:t,signers:n}){return _t(i,[t,...n])}function Xe({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=wn.generate().publicKey.toString()}){let m=new Ko({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var Co=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),Ro=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Tn&&(t=Co(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(i){let t=[];return i.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=xo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Ro(n))}),console.log("simulate tx string:",t),t}var ct=2e3,lt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await Oo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=st(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Lo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Re(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Re.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(V(O({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Ye;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var y;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},w=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=w,this.signers.length&&n.sign(...this.signers),ke([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await Vt(this.connection,n,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let I=await this.signAllTransactions([n]);if(this.signers.length)for(let K of I)try{K.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(I[0].serialize(),{skipPreflight:p}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var w;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(y=>y.transaction.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&f.forEach(y=>{y.some(I=>I.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var B;let{sequentially:I,onTxUpdate:K,skipTxCount:k=0,recentBlockHash:L,skipPreflight:A=!0}=y||{},P=L!=null?L:await Ce(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(I){let x=[],F=0;for(let v of p){if(++F,F<=k)continue;let b=await Vt(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});x.push(b)}return{txIds:x,signedTxs:p}}return{txIds:await await Promise.all(p.map(async x=>(x.recentBlockhash=P,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:A})))),signedTxs:p}}if(this.signAllTransactions){let x=p.map((v,b)=>(v.recentBlockhash=P,f[b].length&&v.sign(...f[b]),v));ke(x);let F=await this.signAllTransactions(x);if(I){let v=0,b=[],T=async()=>{if(!F[v])return;let h=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});b.push({txId:h,status:"sent",signedTx:F[v]}),K==null||K([...b]),v++;let C=!1,N=null,_=null,re=q=>{N!==null&&clearInterval(N),_!==null&&this.connection.removeSignatureListener(_);let W=b.findIndex(j=>j.txId===h);if(W>-1){if(b[W].status==="error"||b[W].status==="success")return;b[W].status=q.err?"error":"success"}K==null||K([...b]),q.err||T()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var q;if(C){clearInterval(N);return}try{let W=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(C=!0,clearInterval(N),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",h))}catch(W){C=!0,clearInterval(N),console.error("getTransaction timeout:",W,h)}},ct)),_=this.connection.onSignature(h,q=>{if(C){this.connection.removeSignatureListener(_);return}C=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(h)};return await T(),{txIds:b.map(h=>h.txId),signedTxs:F}}else{let v=[];for(let b=0;b<F.length;b+=1){let T=await this.connection.sendRawTransaction(F[b].serialize(),{skipPreflight:A});v.push(T)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let L=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=L,p=ce(L,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=O(O({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),w=[];for(let P of g)f[P]===void 0&&w.push(new Re(P));let y=await Mt({connection:this.connection,address:w});for(let[P,B]of Object.entries(y))f[P]=B;let I=u?Re.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),K=new He({payerKey:this.feePayer,recentBlockhash:I,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(P=>P.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let k=new Qe(K);return k.sign(this.signers),{builder:this,transaction:k,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async P=>{var v;let{skipPreflight:B=!0,sendAndConfirm:x,notSendToRpc:F}=P||{};if(ke([k]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(k,{skipPreflight:B});return x&&await ut(this.connection,b),{txId:b,signedTx:k}}if(this.signAllTransactions){let b=await this.signAllTransactions([k]);if(this.signers.length)for(let T of b)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var w;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(y=>y.builder.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(w=this.owner)!=null&&w.signer&&f.forEach(y=>{y.some(I=>I.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,I)=>{y.sign(f[I])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:r,execute:async y=>{var A;let{sequentially:I,onTxUpdate:K,recentBlockHash:k,skipPreflight:L=!0}=y||{};if(k&&p.forEach(P=>P.message.recentBlockhash=k),ke(p),(A=this.owner)!=null&&A.isKeyPair){if(I){let P=[];for(let B of p){let x=await this.connection.sendTransaction(B,{skipPreflight:L});await ut(this.connection,x),P.push(x)}return{txIds:P,signedTxs:p}}return{txIds:await Promise.all(p.map(async P=>await this.connection.sendTransaction(P,{skipPreflight:L}))),signedTxs:p}}if(this.signAllTransactions){let P=await this.signAllTransactions(p);if(I){let B=0,x=[],F=async()=>{if(!P[B])return;let v=await this.connection.sendTransaction(P[B],{skipPreflight:L});x.push({txId:v,status:"sent",signedTx:P[B]}),K==null||K([...x]),B++;let b=!1,T=null,h=null,C=N=>{T!==null&&clearInterval(T),h!==null&&this.connection.removeSignatureListener(h);let _=x.findIndex(re=>re.txId===v);if(_>-1){if(x[_].status==="error"||x[_].status==="success")return;x[_].status=N.err?"error":"success"}K==null||K([...x]),N.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var N;if(b){clearInterval(T);return}try{let _=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:1});_&&(b=!0,clearInterval(T),C({err:((N=_.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",v))}catch(_){b=!0,clearInterval(T),console.error("getTransaction timeout:",_,v)}},ct)),h=this.connection.onSignature(v,N=>{if(b){this.connection.removeSignatureListener(h);return}b=!0,C(N)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:P}}else{let B=[];for(let x=0;x<P.length;x+=1){let F=await this.connection.sendTransaction(P[x],{skipPreflight:L});B.push(F)}return{txIds:B,signedTxs:P}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var K;let I=t||{},{splitIns:n=[],computeBudgetConfig:r}=I,u=ce(I,["splitIns","computeBudgetConfig"]),m=r?st(r):{instructions:[],instructionTypes:[]},p=this.signers.reduce((k,L)=>V(O({},k),{[L.publicKey.toBase58()]:L}),{}),f=[],g=[],w=[],y=0;if(this.allInstructions.forEach(k=>{let L=[...w,k],A=r?[...m.instructions,...L]:L,B=[...new Set(L.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new Re(x));if(k!==n[y]&&w.length<12&&(ze({instructions:A,payer:this.feePayer,signers:B})||ze({instructions:L,payer:this.feePayer,signers:B})))w.push(k);else{if(w.length===0)throw Error("item ins too big");y+=k===n[y]?1:0,ze({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:B})?f.push(new Ye().add(...m.instructions,...w)):f.push(new Ye().add(...w)),g.push(Array.from(new Set(w.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>p[x]).filter(x=>x!==void 0)),w=[k]}}),w.length>0){let L=[...new Set(w.map(A=>A.keys.filter(P=>P.isSigner).map(P=>P.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);ze({instructions:r?[...m.instructions,...w]:[...w],payer:this.feePayer,signers:L.map(A=>A.publicKey)})?f.push(new Ye().add(...m.instructions,...w)):f.push(new Ye().add(...w)),g.push(L)}return f.forEach(k=>k.feePayer=this.feePayer),(K=this.owner)!=null&&K.signer&&g.forEach(k=>{k.some(L=>L.publicKey.equals(this.owner.publicKey))||k.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async k=>{var v;let{sequentially:L,onTxUpdate:A,skipTxCount:P=0,recentBlockHash:B,skipPreflight:x=!0}=k||{},F=B!=null?B:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(b,T)=>{b.recentBlockhash=F,g[T].length&&b.sign(...g[T])}),ke(f),(v=this.owner)!=null&&v.isKeyPair){if(L){let b=0,T=[];for(let h of f){if(++b,b<=P){T.push("tx skipped");continue}let C=await Vt(this.connection,h,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});T.push(C)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:x}))),signedTxs:f}}if(this.signAllTransactions){let b=await this.signAllTransactions(f.slice(P,f.length)),T=[...f.slice(0,P),...b];if(L){let h=0,C=[],N=async()=>{if(!T[h])return;h<P&&(C.push({txId:"",status:"success",signedTx:T[h]}),A==null||A([...C]),h++,N());let _=await this.connection.sendRawTransaction(T[h].serialize(),{skipPreflight:x});C.push({txId:_,status:"sent",signedTx:T[h]}),A==null||A([...C]),h++;let re=!1,q=null,W=null,j=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=C.findIndex(fe=>fe.txId===_);if(te>-1){if(C[te].status==="error"||C[te].status==="success")return;C[te].status=G.err?"error":"success"}A==null||A([...C]),G.err||N()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});te&&(re=!0,clearInterval(q),j({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,_)}},ct)),W=this.connection.onSignature(_,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,j(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await N(),{txIds:C.map(_=>_.txId),signedTxs:T}}else{let h=[];for(let C=0;C<T.length;C+=1){let N=await this.connection.sendRawTransaction(T[C].serialize(),{skipPreflight:x});h.push(N)}return{txIds:h,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=F,f=ce(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=O(O({},this.cluster==="devnet"?await vt(this.connection):await Ft(this.connection)),u),w=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let b of w)g[b]===void 0&&y.push(new Re(b));let I=await Mt({connection:this.connection,address:y});for(let[b,T]of Object.entries(I))g[b]=T;let K=n?st(n):{instructions:[],instructionTypes:[]},k=await Ce(this.connection,this.blockhashCommitment),L=this.signers.reduce((b,T)=>V(O({},b),{[T.publicKey.toBase58()]:T}),{}),A=[],P=[],B=[],x=0;if(this.allInstructions.forEach(b=>{let T=[...B,b],h=n?[...K.instructions,...T]:T;if(b!==r[x]&&B.length<p&&(Xe({instructions:h,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:T,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");x+=b===r[x]?1:0;let C={};for(let N of[...new Set(w)])g[N]!==void 0&&(C[N]=g[N]);if(n&&Xe({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:k})){let N=new He({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Qe(N))}else{let N=new He({payerKey:this.feePayer,recentBlockhash:k,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Qe(N))}P.push(Array.from(new Set(B.map(N=>N.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(N=>L[N]).filter(N=>N!==void 0)),B=[b]}}),B.length>0){let T=[...new Set(B.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(h=>L[h]).filter(h=>h!==void 0);if(n&&Xe({instructions:[...K.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:k})){let h=new He({payerKey:this.feePayer,recentBlockhash:k,instructions:[...K.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new Qe(h))}else{let h=new He({payerKey:this.feePayer,recentBlockhash:k,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new Qe(h))}P.push(T)}return(v=this.owner)!=null&&v.signer&&P.forEach(b=>{b.some(T=>T.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,T)=>{b.sign(P[T])}),{builder:this,transactions:A,buildProps:t,signers:P,instructionTypes:this.instructionTypes,execute:async b=>{var re;let{sequentially:T,onTxUpdate:h,skipTxCount:C=0,recentBlockHash:N,skipPreflight:_=!0}=b||{};if(A.map(async(q,W)=>{P[W].length&&q.sign(P[W]),N&&(q.message.recentBlockhash=N)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(T){let q=0,W=[];for(let j of A){if(++q,q<=C){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(j,{skipPreflight:_});await ut(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:_}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(C,A.length)),W=[...A.slice(0,C),...q];if(T){let j=0,G=[],te=async()=>{if(!W[j])return;if(j<C){G.push({txId:"",status:"success",signedTx:W[j]}),h==null||h([...G]),j++,te();return}let fe=await this.connection.sendTransaction(W[j],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[j]}),h==null||h([...G]),j++;let De=!1,Be=null,it=null,cn=we=>{Be!==null&&clearInterval(Be),it!==null&&this.connection.removeSignatureListener(it);let ye=G.findIndex(go=>go.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=we.err?"error":"success"}h==null||h([...G]),we.err||te()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var we;if(De){clearInterval(Be);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:1});ye&&(De=!0,clearInterval(Be),cn({err:((we=ye.meta)==null?void 0:we.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){De=!0,clearInterval(Be),console.error("getTransaction timeout:",ye,fe)}},ct)),it=this.connection.onSignature(fe,we=>{if(De){this.connection.removeSignatureListener(it);return}De=!0,cn(we)},"confirmed"),this.connection.getSignatureStatus(fe)};return te(),{txIds:[],signedTxs:W}}else{let j=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:_});j.push(te)}return{txIds:j,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Et=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new lt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Et(t))}logInfo(...t){this.logger.info(Et(t))}logAndCreateError(...t){let n=Et(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Ic,SystemProgram as Sc}from"@solana/web3.js";import Cc from"bn.js";import{createCloseAccountInstruction as Nc,createInitializeAccountInstruction as Mc,createTransferInstruction as Fc,TOKEN_PROGRAM_ID as vc}from"@solana/spl-token";import{PublicKey as No}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as In}from"@solana/spl-token";var mt={chainId:101,address:No.default.toBase58(),programId:In.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},me={chainId:101,address:"So11111111111111111111111111111111111111112",programId:In.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{Keypair as mc,PublicKey as dc}from"@solana/web3.js";import yc from"bn.js";import{TOKEN_PROGRAM_ID as Pc}from"@solana/spl-token";import{PublicKey as zo}from"@solana/web3.js";import Cn,{isBN as Rn}from"bn.js";import{bits as Mo,BitStructure as bu,blob as Fo,Blob as gu,cstr as Pu,f32 as Au,f32be as wu,f64 as ku,f64be as Tu,greedy as hu,Layout as vo,ns64 as Iu,ns64be as Bu,nu64 as Su,nu64be as Ku,offset as _o,s16 as xu,s16be as Cu,s24 as Ru,s24be as Lu,s32 as Vo,s32be as Ou,s40 as Nu,s40be as Mu,s48 as Fu,s48be as vu,s8 as _u,seq as Eo,struct as Vu,Structure as Do,u16 as Wo,u16be as Eu,u24 as Du,u24be as Wu,u32 as qo,u32be as qu,u40 as Uu,u40be as Gu,u48 as zu,u48be as Xu,u8 as Uo,UInt as Go,union as Yu,Union as Hu,unionLayoutDiscriminator as Qu,utf8 as Zu}from"@solana/buffer-layout";var dt=vo,Bn=Do;var Dt=Go;var Sn=Uo,Y=Wo;var pt=qo;var se=Vo;var Kn=Eo;var M=Fo;var Wt=Mo,xn=_o;var he=class extends dt{constructor(n,r,u){super(n,u);this.blob=M(n),this.signed=r}decode(n,r=0){let u=new Cn(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 Cn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},ft=class extends dt{constructor(n){super(8,n);this._lower=Wt(pt(),!1),this._upper=Wt(pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return O(O({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(i){return new Dt(1,i)}function z(i){return new Dt(4,i)}function e(i){return new he(8,!1,i)}function R(i){return new he(16,!1,i)}function Ln(i){return new he(1,!0,i)}function Le(i){return new he(8,!0,i)}function On(i){return new he(16,!0,i)}var Ze=class extends dt{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function o(i){return new Ze(M(32),t=>new zo(t),t=>t.toBuffer(),i)}function ae(i){return new Ze(Sn(),Xo,Yo,i)}function Xo(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function Yo(i){return i?1:0}function Ut(i,t){let n=pt("length"),r=l([n,d(i,xn(n,-n.span),"values")]);return new Ze(r,({values:u})=>u,u=>({values:u}),t)}var qt=class extends Bn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new qt(i,t,n)}function d(i,t,n){let r,u=typeof t=="number"?t:Rn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!r){let f=Reflect.get(m,"count");r=Rn(f)?f.toNumber():f,Reflect.set(m,"count",r)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(r=f),Reflect.set(m,p,f)}});return Kn(i,u,n)}var yt=l([o("mint"),o("owner"),e("amount"),z("delegateOption"),o("delegate"),c("state"),z("isNativeOption"),e("isNative"),e("delegatedAmount"),z("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as _g,SystemProgram as Vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Dg}from"@solana/spl-token";import{PublicKey as cl}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ml}from"@solana/spl-token";import{PublicKey as S}from"@solana/web3.js";var Mn=new S("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Fn=new S("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),vn=new S("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Gt=new S("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),yl=new S("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Qo=new S("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),_n=new S("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Vn=new S("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),bl=new S("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Zo=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),En=new S("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),$o=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),jo=new S("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Dn=new S("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),gl=new S("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Jo=new S("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),zt=new S("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ei=new S("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Pl=new S("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ti=new S("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ni=new S("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),oi=new S("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Al=new S("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),wl=new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),kl=new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Tl=new S("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),hl=new S("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new S("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new S("Ray1111111111111111111111111111111111111111"),AMM_V4:new S("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new S("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new S("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new S("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new S("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new S("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new S("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new S("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new S("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:S.default,Router:new S("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new S("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new S("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new S("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new S("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new S("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new S("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new S("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new S("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new S("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new S("Ray1111111111111111111111111111111111111111")};import{PublicKey as X,SystemProgram as Wn,SYSVAR_RENT_PUBKEY as ii}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ri}from"@solana/spl-token";function Oe({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var ai=[Oe({pubkey:ri,isWritable:!1}),Oe({pubkey:Wn.programId,isWritable:!1}),Oe({pubkey:ii,isWritable:!1})];function qn({publicKey:i,transformSol:t}){let n=Un(i.toString());if(n instanceof X)return t&&n.equals(Ie)?ge:n;if(t&&n.toString()===Ie.toBase58())return ge;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Un(i){try{return new X(i)}catch{return i}}var Xt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),$e=new X("SysvarRent111111111111111111111111111111111"),xl=new X("SysvarC1ock11111111111111111111111111111111"),gt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),si=new X("Sysvar1nstructions1111111111111111111111111"),ui=Wn.programId,Cl=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rl=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ll=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ol=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Nl=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ml=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Fl=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),vl=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),_l=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Vl=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),El=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ge=new X("So11111111111111111111111111111111111111112"),Ie=X.default;import Zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ay,TOKEN_2022_PROGRAM_ID as wy,TOKEN_PROGRAM_ID as ky}from"@solana/spl-token";import{PublicKey as hy}from"@solana/web3.js";import By from"bn.js";import Ky from"decimal.js";import{TOKEN_PROGRAM_ID as xm}from"@solana/spl-token";import{PublicKey as Om}from"@solana/web3.js";import{PublicKey as Yt}from"@solana/web3.js";var Ht=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===Ie.toBase58()||t instanceof Yt&&Ie.equals(t)){this.decimals=me.decimals,this.symbol=me.symbol,this.name=me.name,this.mint=new Yt(me.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Yt.default:qn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Ht;J.WSOL=new Ht(V(O({},me),{mint:me.address}));var Qt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},Pt=Qt;Pt.SOL=new Qt(mt);import ci from"toformat";var li=ci,je=li;import wt from"big.js";import di from"bn.js";import pi from"decimal.js-light";var At=E("module/fraction"),Zt=je(wt),Je=je(pi),fi={[0]:Je.ROUND_DOWN,[1]:Je.ROUND_HALF_UP,[2]:Je.ROUND_UP},yi={[0]:wt.roundDown,[1]:wt.roundHalfUp,[2]:wt.roundUp},U=class{constructor(t,n=new di(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||At.logWithError(`${t} is not an integer.`),t<=0&&At.logWithError(`${t} is not positive.`),Je.set({precision:t+1,rounding:fi[r]});let u=new Je(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||At.logWithError(`${t} is not an integer.`),t<0&&At.logWithError(`${t} is negative.`),Zt.DP=t,Zt.RM=yi[r]||1,new Zt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import bi from"bn.js";var sm=new U(new bi(100));var pm=E("Raydium_price");var gi=l([z("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),z("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Df,TOKEN_2022_PROGRAM_ID as Wf,TOKEN_PROGRAM_ID as qf}from"@solana/spl-token";import{Keypair as zf,PublicKey as Xf,SystemProgram as Hf,TransactionInstruction as Qf}from"@solana/web3.js";import $f from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var Pi=new D(1).shln(128),$t=new D(1).shln(64).subn(1),Ai=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),wi=new D("59543866431248"),ki=new D("184467440737095516"),Ti=new D("15793534762490258745");var jt=60,Gm=new D("18446743708227953217"),hi=[{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 et=3,Gn=100;var zn=10,Xn=100,kt=14;var Z=new D(0),_e=new D(1),zm=new D(-1);var Xm=new D("18446744073700000000");var Ii=l([M(8),c("bump"),Y("index"),o("owner"),z("protocolFeeRate"),z("tradeFeeRate"),Y("tickSpacing"),z("fundFeeRate"),d(z(),1),o("fundOwner"),d(e(),3)]),Bi=l([z("blockTimestamp"),Le("tickCumulative"),d(e(),4)]),Yn=l([M(8),ae("initialized"),e("recentEpoch"),Y("observationIndex"),o("poolId"),d(Bi,Gn,"observations"),d(e(),4)]),Si=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),z("volatilityReference"),z("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ki=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),R("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),R("growthGlobalX64")]),Jt=l([M(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),R("liquidity"),R("sqrtPriceX64"),se("tickCurrent"),z(),R("feeGrowthGlobalX64A"),R("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(R(),4),c("status"),c("feeOn"),M(6),d(Ki,et,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Si.replicate("dynamicFeeInfo"),d(e(),46)]),xi=l([R("growthInsideLastX64"),e("rewardAmountOwed")]),Ci=l([M(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(xi,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Zm=l([M(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),R("liquidity"),R("feeGrowthInsideLastX64A"),R("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(R(),et,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ri=l([se("tick"),On("liquidityNet"),R("liquidityGross"),R("feeGrowthOutsideX64A"),R("feeGrowthOutsideX64B"),d(R(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),R("unfilledRatioX64"),d(z(),3)]),Hn=l([M(8),o("poolId"),se("startTickIndex"),d(Ri,jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Li=l([M(8),c("bump"),d(o(),zn,"operationOwners"),d(o(),Xn,"whitelistMints")]),Oi=l([M(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),R("unfilledRatioX64"),d(e(),4)]),Qn=l([M(8),o("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),$m=l([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),z("dynamicFeeControl"),z("maxVolatilityAccumulator"),d(e(),8)]),Ni=l([M(8),o("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),jm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),d(e(),8)]),Mi=l([M(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),d(e(),8)]);import td from"bn.js";var dd=Buffer.from("amm_config","utf8"),vi=Buffer.from("pool","utf8"),_i=Buffer.from("pool_vault","utf8"),pd=Buffer.from("pool_reward_vault","utf8"),fd=Buffer.from("position","utf8"),yd=Buffer.from("tick_array","utf8"),bd=Buffer.from("operation","utf8"),gd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Pd=Buffer.from("observation","utf8"),Ad=Buffer.from("support_mint","utf8"),wd=Buffer.from("dynamic_fee_config","utf8"),kd=Buffer.from("permission","utf8");var Td=Buffer.from("locked_position","utf8");import{sha256 as ji}from"js-sha256";import Vi from"bn.js";import Sd from"decimal.js";var xd=new Vi(1).shln(256).subn(1);import Xd from"bn.js";import Fd from"bn.js";import _d from"decimal.js";import $d from"bn.js";import Jd from"decimal.js";import{PublicKey as Ep}from"@solana/web3.js";import Wp from"bn.js";import{TOKEN_2022_PROGRAM_ID as Qp,TOKEN_PROGRAM_ID as Zp}from"@solana/spl-token";import ef from"decimal.js";import xp from"bn.js";import yp from"bn.js";import df from"bn.js";function $(i){let t=`global:${i}`;return Buffer.from(ji.digest(t)).slice(0,8)}Yn.span;var ay=E("Raydium_Clmm"),sy={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 on}from"@solana/web3.js";var nr=l([c("instruction")]),or=l([c("instruction")]),ir=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),R("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),d(e(),15,"padding")]),rr=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),R("perShareReward"),e("lastSlot"),e("perSlotReward")]),ar=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),R("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),M(7),e("totalRewardB"),R("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),sr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),R("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),d(ir,5,"rewardInfos"),o("creator"),o(),d(e(),32,"padding")]),ur=new Proxy(rr,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(O({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),cr=new Proxy(ar,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(O({},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)}}),no=new Proxy(sr,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return V(O({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var p;return V(O({},m),{rewardType:((p=Object.entries(ot).find(f=>String(f[1])===m.rewardType.toString()))!=null?p:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),lr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),mr=l([c("instruction"),e("nonce"),d(lr,5,"rewardTimeInfo")]),dr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),pr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),nb=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),1,"rewardDebts")]),oo=l([e("state"),o("id"),o("owner"),e("deposited"),d(R(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),ob=l([e("state"),o("id"),o("owner"),e("deposited"),d(e(),2,"rewardDebts")]),fr=l([e("state"),o("id"),o("owner"),e("deposited"),d(R(),2,"rewardDebts"),d(e(),17)]),yr=l([e(),e("state"),o("id"),o("owner"),e("deposited"),d(R(),5,"rewardDebts"),d(e(),16)]),br=l([c("instruction"),e("amount")]),gr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Ln("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),Pr=l([M(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),d(c(),32,"reserved1"),d(gr,4,"votingMints"),Le("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),Ar=l([Le("startTime"),Le("endTime"),c("kind"),d(c(),15,"reserved")]),wr=l([d(Ar,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),kr=l([M(8),o("voterAuthority"),o("registrar"),d(wr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as db}from"@solana/spl-token";var pb=E("Raydium_farm_config"),Tr=new on("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),hr=new on("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var fb=new on("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var ot={"Standard SPL":0,"Option tokens":1},io={[Mn.toString()]:3,[Fn.toString()]:4,[vn.toString()]:5,[Gt.toString()]:6,[Pe.FARM_PROGRAM_ID_V3.toString()]:3,[Pe.FARM_PROGRAM_ID_V4.toString()]:4,[Pe.FARM_PROGRAM_ID_V5.toString()]:5,[Pe.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as jb,SystemProgram as Jb,SYSVAR_CLOCK_PUBKEY as eg,SYSVAR_RENT_PUBKEY as tg,TransactionInstruction as ng}from"@solana/web3.js";import ig from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ag,createAssociatedTokenAccountIdempotentInstruction as sg,TOKEN_PROGRAM_ID as ug}from"@solana/spl-token";import xb from"bn.js";import{PublicKey as Ab}from"@solana/web3.js";import kb from"bn.js";var Wb=E("Raydium.farm.util");var Ag=E("Raydium_farm_instruction"),wg={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 sP from"bn.js";import{PublicKey as yw}from"@solana/web3.js";import{AccountLayout as Pw,MintLayout as Aw,NATIVE_MINT as ww,TOKEN_PROGRAM_ID as Tw}from"@solana/spl-token";import lP from"bn.js";import ao from"bn.js";var Lr=new ao(25),Or=new ao(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as OP,TOKEN_PROGRAM_ID as NP}from"@solana/spl-token";import{PublicKey as FP,SystemProgram as vP,SYSVAR_RENT_PUBKEY as _P,TransactionInstruction as VP}from"@solana/web3.js";import XP from"bn.js";var Nr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Mr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),xP=l([c("instruction"),c("nonce")]),Fr=l([c("instruction"),c("nonce"),e("startTime")]),so=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"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),e("swapBase2QuoteFee"),R("swapQuoteInAmount"),R("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"),d(e(),3,"padding")]),CP=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"),R("swapBaseInAmount"),R("swapQuoteOutAmount"),R("swapQuoteInAmount"),R("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"),d(e(),64,"padding")]),vr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),_r=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Vr=l([e("fee")]);var QP=E("Raydium_liquidity_instruction");var Er=5e4,Dr=l([e("x"),e("y"),e("price")]),JP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(Dr,Er,"DataElement")]);import{PublicKey as mA}from"@solana/web3.js";import pA from"decimal.js";import{TOKEN_PROGRAM_ID as yA}from"@solana/spl-token";import{PublicKey as oA}from"@solana/web3.js";var aA=E("Raydium_liquidity_serum");import qw from"bn.js";import Gw from"decimal.js";import{TOKEN_PROGRAM_ID as qA}from"@solana/spl-token";import{PublicKey as GA}from"@solana/web3.js";import XA from"bn.js";import{SystemProgram as CA,SYSVAR_RENT_PUBKEY as RA,Transaction as LA,TransactionInstruction as OA}from"@solana/web3.js";import{createInitializeAccountInstruction as MA,TOKEN_PROGRAM_ID as FA}from"@solana/spl-token";function Wr(i="accountFlags"){let t=new ft(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 qr=l([M(5),Wr("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"),M(7)]);import{PublicKey as Zk}from"@solana/web3.js";import{AccountLayout as jk,NATIVE_MINT as Jk,TOKEN_2022_PROGRAM_ID as eT,TOKEN_PROGRAM_ID as tT,createAssociatedTokenAccountIdempotentInstruction as nT}from"@solana/spl-token";import lT from"bn.js";import dT from"decimal.js";import{PublicKey as pk,TransactionInstruction as fk,Keypair as bk,SystemProgram as gk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ak,TOKEN_2022_PROGRAM_ID as wk,TOKEN_PROGRAM_ID as kk}from"@solana/spl-token";var jw=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"),ak=Buffer.from("creator_fee_share","utf8");var sk=Buffer.from("locked_liquidity","utf8");var xk=E("Raydium_cpmm"),Ck={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([M(8),c("bump"),ae("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),d(e(),14)]),uo=l([M(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"),ae("enableCreatorFee"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),Ok=l([M(8),o("configId"),d(e(),30)]),Nk=l([M(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),d(e(),8)]);import{PublicKey as IK,SystemProgram as BK}from"@solana/web3.js";import{createTransferInstruction as KK,TOKEN_PROGRAM_ID as xK,TOKEN_2022_PROGRAM_ID as CK,createAssociatedTokenAccountIdempotentInstruction as RK,createSyncNativeInstruction as OK,createTransferCheckedInstruction as NK}from"@solana/spl-token";import ga from"bn.js";import vK 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 Jr from"bn.js";var rh=Buffer.from("vault_auth_seed","utf8"),ah=Buffer.from("global_config","utf8"),sh=Buffer.from("pool_vesting","utf8"),uh=Buffer.from("platform_config","utf8"),ch=Buffer.from("platform_fee_vault_auth_seed","utf8"),lh=Buffer.from("creator_fee_vault_auth_seed","utf8"),mh=Buffer.from("platform_global_access","utf8"),dh=Buffer.from("platform_allow_config","utf8"),ph=Buffer.from("platform_curve_rule","utf8");var Rh={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 Lh=new Jr("18446744073709551615");var ea=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"),d(e(),16)]),ta=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),na=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"),ta.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),Fh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),oa=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),vh=l([e("epoch"),c("index"),o("configId"),oa.replicate("bondingCurveParam"),d(e(),50)]),lo=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),d(c(),78)]),ia=l([c("field"),c("op"),R("value")]),ra=l([Y("groupId"),e("epoch"),Ut(ia,"constraints")]),aa=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),d(e(),8),Ut(ra,"groups")]);import{TOKEN_2022_PROGRAM_ID as Eh,TOKEN_PROGRAM_ID as Dh}from"@solana/spl-token";import sa from"bn.js";var jh=new sa(1e6);import nI from"bn.js";import iI from"decimal.js";import vI from"bn.js";import VI from"decimal.js";import lI from"bn.js";import dI from"decimal.js";import TI from"bn.js";import II from"decimal.js";import fo from"bn.js";import sn from"decimal.js";var St=class{static _multipler(t){return new sn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new sn(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 fo(u.mul(this._Q64).toFixed(0))}};St._Q64=new sn(new fo(1).shln(64).toString());import{NATIVE_MINT as JB,TOKEN_2022_PROGRAM_ID as eS,TOKEN_PROGRAM_ID as tS,createAssociatedTokenAccountIdempotentInstruction as oS,createSyncNativeInstruction as iS,getTransferFeeConfig as rS,unpackMint as aS}from"@solana/spl-token";import H from"bn.js";import{PublicKey as fa,SystemProgram as cS}from"@solana/web3.js";import bS from"decimal.js";var gS={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 fa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new H(0),cliffPeriod:new H(0),unlockPeriod:new H(0),startTime:new H(0),totalAllocatedShare:new H(0)}},PS=new H(1e4);var ya={[_n.toBase58()]:3};var ba=l([M(5),M(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"),M(7)]);import{PublicKey as qS}from"@solana/web3.js";var YS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as nK,TOKEN_2022_PROGRAM_ID as oK,TOKEN_PROGRAM_ID as iK}from"@solana/spl-token";import{PublicKey as aK,SystemProgram as sK,TransactionInstruction as uK}from"@solana/web3.js";import lK from"bn.js";var dx=new ga(0);import{PublicKey as Pa,Transaction as un,TransactionInstruction as Aa}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wa}from"@solana/spl-token";import yo from"bn.js";var ee=class extends oe{static getPdaPoolId(t,n){return le([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return le([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new yo(u).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:u,chainTime:m}){if(r.length===0)return[];let p=r.map(y=>ee.getPdaPoolId(n,y).publicKey),f=[];for(let y=0;y<ee.VERSION_PROJECT.length;y++)f.push(...p.map(I=>ee.getPdaOwnerId(n,I,u,y).publicKey));let g=await be(t,[...p,...f]),w=[];for(let y=0;y<g.length;y++){let I=Math.floor(y/r.length),K=y%r.length,k=p[K],L=f[y],A=g[K],P=g[r.length+y];if(!(A&&P)||A.data.length!==ee.POOL_LAYOUT.span||P.data.length!==ee.OWNER_LAYOUT.span)continue;let B=ee.POOL_LAYOUT.decode(A.data),x=ee.OWNER_LAYOUT.decode(P.data),F=B.openTime.toNumber(),v=B.endTime.toNumber(),b=x.tokenInfo.map(C=>C.debtAmount.gt(new yo(0))).filter(C=>!C).length!==3,T=m>F&&m<v&&B.status===1,h=b&&T;w.push({programId:n,poolId:k,ammId:B.ammId,ownerAccountId:L,snapshotLpAmount:x.lpAmount,project:ee.VERSION_PROJECT[I],openTime:F,endTime:v,canClaim:h,canClaimErrorType:b?T?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:B.tokenInfo.map((C,N)=>({mintAddress:C.mintAddress,mintVault:C.mintVault,mintDecimals:C.mintDecimals,perLpLoss:C.perLpLoss,debtAmount:x.tokenInfo[N].debtAmount.add(x.tokenInfo[N].claimedAmount)}))})}return w}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,p=[];for(let w of t.tokenInfo){let{account:y,instructionParams:I}=await this.scope.account.getOrCreateTokenAccount({mint:w.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:w.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!w.mintAddress.equals(J.WSOL.mint),associatedOnly:w.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});I&&u.addInstruction(I),p.push(y)}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,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),m=n.wallet||this.scope.ownerPubKey,p={};for(let y of t){let I=[];for(let K of y.tokenInfo){let{account:k,instructionParams:L}=await this.scope.account.getOrCreateTokenAccount({mint:K.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:K.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!K.mintAddress.equals(J.WSOL.mint),associatedOnly:K.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});L&&u.addInstruction(L),k&&(p[K.mintAddress.toString()]=k,I.push(k))}u.addInstruction({instructions:[ee.makeClaimInstruction({programId:y.programId,poolInfo:y,ownerInfo:{wallet:m,ownerPda:y.ownerAccountId,claimAddress:I}})]})}let{transaction:f,signers:g}=u.build(),w=u.allInstructions;return _t(w,[m,...g.map(y=>y.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new un().add(...w.slice(0,u.AllTxData.instructions.length-1)),signer:g},{transaction:new un().add(...w.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new un().add(...u.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let u=l([]),m=[{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:wa,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 Aa({keys:m,programId:t,data:f})}},ue=ee;ue.CLAIMED_NUM=3,ue.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),d(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),ue.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),d(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),ue.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Pa(t)),ue.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ue.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Cx}from"@solana/web3.js";import{getTransferFeeConfig as Lx,MintLayout as Ox,TOKEN_2022_PROGRAM_ID as Nx,TOKEN_PROGRAM_ID as Mx,unpackMint as Fx}from"@solana/spl-token";function Ot(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import ka from"bn.js";var pe=new ka(1e6);var xR=E("Raydium_amount"),CR=je(Ta);var zR=new Ae(2),XR=new Ae(3),YR=new Ae(5),ha=new Ae(10),HR=new Ae(100),QR=new Ae(1e3),ZR=new Ae(1e4);function Kt(i,t,n){return i.mul(t).add(n).sub(new Ae(1)).div(n)}function xt(i,t,n){return i.mul(t).div(n)}var ie=class{static tradingFee(t,n){return Kt(t,n,pe)}static protocolFee(t,n){return xt(t,n,pe)}static fundFee(t,n){return xt(t,n,pe)}static creatorFee(t,n){return Kt(t,n,pe)}static splitCreatorFee(t,n,r){return xt(t,r,n.add(r))}static calculatePreFeeAmount(t,n){if(n.isZero())return t;let r=t.mul(pe),u=pe.sub(n);return r.add(u).sub(new Ia(1)).div(u)}};var pn=(n=>(n[n.Floor=0]="Floor",n[n.Ceiling=1]="Ceiling",n))(pn||{}),Ba=(n=>(n[n.ZeroForOne=0]="ZeroForOne",n[n.OneForZero=1]="OneForZero",n))(Ba||{}),Sa=(n=>(n[n.OneForZero=0]="OneForZero",n[n.ZeroForOne=1]="ZeroForOne",n))(Sa||{}),an=class{static validate_supply(t,n){if(t.isZero())throw Error("tokenAmount0 is zero");if(n.isZero())throw Error("tokenAmount1 is zero")}static swapBaseInput(t,n,r,u,m,p,f,g){let w=new bo(0),y=ie.tradingFee(t,u),I;g?(w=ie.creatorFee(t,m),I=t.sub(y).sub(w)):I=t.sub(y);let K=ie.protocolFee(y,p),k=ie.protocolFee(y,f),L=qe.swapBaseInputWithoutFees(I,n,r),A;return g?A=L:(w=ie.creatorFee(L,m),A=L.sub(w)),{newInputVaultAmount:n.add(I),newOutputVaultAmount:r.sub(L),inputAmount:t,outputAmount:A,tradeFee:y,protocolFee:K,fundFee:k,creatorFee:w}}static swapBaseOutput(t,n,r,u,m,p,f,g){let w,y=new bo(0),I;if(g)I=t;else{let P=ie.calculatePreFeeAmount(t,m);y=P.sub(t),I=P}let K=qe.swapBaseOutputWithoutFees(I,n,r),k;if(g){let P=ie.calculatePreFeeAmount(K,u.add(m)),B=P.sub(K);y=ie.splitCreatorFee(B,u,m),w=B.sub(y),k=P}else{let P=ie.calculatePreFeeAmount(K,u);w=P.sub(K),k=P}let L=ie.protocolFee(w,p),A=ie.fundFee(w,f);return{newInputVaultAmount:n.add(K),newOutputVaultAmount:r.sub(I),inputAmount:k,outputAmount:t,tradeFee:w,protocolFee:L,fundFee:A,creatorFee:y}}};export{an as CurveCalculator,pn as RoundDirection,Ba as TradeDirection,Sa as TradeDirectionOpposite};
//# sourceMappingURL=calculator.mjs.map