@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 81.1 kB
JavaScript
var xo=Object.defineProperty,Co=Object.defineProperties;var Ro=Object.getOwnPropertyDescriptors;var at=Object.getOwnPropertySymbols;var bn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var yn=(o,t,n)=>t in o?xo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,x=(o,t)=>{for(var n in t||(t={}))bn.call(t,n)&&yn(o,n,t[n]);if(at)for(var n of at(t))gn.call(t,n)&&yn(o,n,t[n]);return o},v=(o,t)=>Co(o,Ro(t));var de=(o,t)=>{var n={};for(var i in o)bn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&at)for(var i of at(o))t.indexOf(i)<0&&gn.call(o,i)&&(n[i]=o[i]);return n};import ie from"bn.js";import{PublicKey as No}from"@solana/web3.js";import{get as Pn,set as Lo}from"lodash";var Ct=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(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},Oo={};function V(o){let t=Pn(An,o);if(!t){let n=Pn(Oo,o);t=new Ct({name:o,logLevel:n}),Lo(An,o,t)}return t}import{MINT_SIZE as Qa,TOKEN_PROGRAM_ID as Za,getTransferFeeConfig as $a,unpackMint as ja}from"@solana/spl-token";var Rt=V("Raydium_accountInfo_util");async function pe(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=x({batchRequest:!1},n),d=Lt(t,m),f=new Array(d.length).fill([]);if(i){let g=d.map(C=>{let k=o._buildArgs([C.map(b=>b.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:k}}),P=Lt(g,10);f=(await(await Promise.all(P.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(k=>{if(k){let{data:b,executable:R,lamports:I,owner:A,rentEpoch:T}=k;return b.length!==2&&b[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(b[0],"base64"),executable:R,lamports:I,owner:new No(A),rentEpoch:T}}return null})))}else try{f=await Promise.all(d.map(g=>o.getMultipleAccountsInfo(g,a)))}catch(g){g instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}async function we(o,t,n){let i=await pe(o,t.map(a=>a.pubkey),n);return t.map((a,m)=>v(x({},a),{accountInfo:i[m]}))}import xe from"bn.js";import mR from"decimal.js";import Wo from"big.js";import ct from"bn.js";import Mo from"toformat";var Fo=Mo,Xe=Fo;import ut from"big.js";import _o from"bn.js";import Vo from"decimal.js-light";import Ye from"bn.js";var wn=9007199254740991;function U(o){let t=V("Raydium_parseBigNumberish");if(o instanceof Ye)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ye(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=wn||o<=-wn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ye(String(o))):typeof o=="bigint"?new Ye(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ye(0))}var st=V("module/fraction"),Ot=Xe(ut),He=Xe(Vo),Eo={[0]:He.ROUND_DOWN,[1]:He.ROUND_HALF_UP,[2]:He.ROUND_UP},Do={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},W=class{constructor(t,n=new _o(1)){this.numerator=U(t),this.denominator=U(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.add(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.sub(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),He.set({precision:t+1,rounding:Eo[i]});let a=new He(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Do[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var qo=V("Raydium_amount"),kn=Xe(Wo);function Uo(o,t){let n="0",i="0";if(o.includes(".")){let a=o.split(".");a.length===2?([n,i]=a,i=i.padEnd(t,"0")):qo.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ae=class extends W{constructor(n,i,a=!0,m){let d=new ct(0),f=Nt.pow(new ct(n.decimals));if(a)d=U(i);else{let g=new ct(0),P=new ct(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[y,C]=Uo(i.toString(),n.decimals);g=U(y),P=U(C)}g=g.mul(f),d=g.add(P)}super(d,f);this.logger=V(m||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new ae(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new ae(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,a=0){return super.toSignificant(n,i,a)}toFixed(n=this.token.decimals,i,a=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,a)}toExact(n={groupSeparator:""}){return kn.DP=this.token.decimals,new kn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var lt={chainId:101,address:Go.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.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{PublicKey as vt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as hn,SYSVAR_RENT_PUBKEY as zo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xo}from"@solana/spl-token";function Re({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Yo=[Re({pubkey:Xo,isWritable:!1}),Re({pubkey:hn.programId,isWritable:!1}),Re({pubkey:zo,isWritable:!1})];function In({publicKey:o,transformSol:t}){let n=Mt(o.toString());if(n instanceof X)return t&&n.equals(he)?Pe:n;if(t&&n.toString()===he.toBase58())return Pe;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 Mt(o){try{return new X(o)}catch{return o}}var Ft=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Qe=new X("SysvarRent111111111111111111111111111111111"),Rs=new X("SysvarC1ock11111111111111111111111111111111"),mt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ho=new X("Sysvar1nstructions1111111111111111111111111"),Qo=hn.programId,Ls=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Os=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ns=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ms=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Fs=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),vs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),_s=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Vs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Es=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ds=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ws=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Pe=new X("So11111111111111111111111111111111111111112"),he=X.default;var _t=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:m=!1,isToken2022:d=!1}){if(t===he.toBase58()||t instanceof vt&&he.equals(t)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new vt(fe.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=m?vt.default:In({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=_t;ee.WSOL=new _t(v(x({},fe),{mint:fe.address}));var Vt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},dt=Vt;dt.SOL=new Vt(lt);import Zo from"bn.js";var Bn=new W(new Zo(100)),Ae=class extends W{toSignificant(t=5,n,i){return this.mul(Bn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(Bn).toFixed(t,n,i)}};var $o=V("Raydium_price"),ce=class extends W{constructor(n){let{baseToken:i,quoteToken:a,numerator:m,denominator:d}=n;super(m,d);this.baseToken=i,this.quoteToken=a,this.scalar=new W(Et(i.decimals),Et(a.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ce({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&$o.logWithError("mul token not equals");let i=super.mul(n);return new ce({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,a){return this.adjusted.toSignificant(n,i,a)}toFixed(n=this.quoteToken.decimals,i,a){return this.adjusted.toFixed(n,i,a)}};import{merge as pC}from"lodash";import mu from"axios";var Sn={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"},jo=v(x({},Sn),{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 Mu=V("Raydium_Api");import{PublicKey as Jl,SystemProgram as em}from"@solana/web3.js";import{AccountLayout as rm,createAssociatedTokenAccountIdempotentInstruction as am,TOKEN_PROGRAM_ID as sm,TOKEN_2022_PROGRAM_ID as um}from"@solana/spl-token";import{PublicKey as Fe,sendAndConfirmTransaction as zt,SystemProgram as ii,Transaction as je,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ri from"axios";import{PublicKey as Dt,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let i=await pe(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Dt(m))),a={};for(let m=0;m<t.length;m++){let d=i[m],f=t[m];if(!d)continue;let g=new Ne({key:f,state:Ne.deserialize(d.data)});a[f.toString()]=g,n==="devnet"?Oe[f.toString()]=g:Le[f.toString()]=g}return a}var Le={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Le[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Le},Oe={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(i.data)})),Oe};var Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{ComputeBudgetProgram as Kn,Keypair as Cn,PublicKey as Jo,Transaction as Rn,TransactionMessage as ei,VersionedTransaction as Ln}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ti}from"@solana/spl-token";var xn=V("Raydium_txUtil"),On=1644;function pt(o){let t=[],n=[];return o.microLamports&&(t.push(Kn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Kn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Me(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function ft(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,m=>{if(clearTimeout(a),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function Gt(o,t){o.length<1&&xn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&xn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Rn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<On}catch{return!1}}function se(o,t){let[n,i]=Jo.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ze({instructions:o,payer:t,signers:n}){return Gt(o,[t,...n])}function $e({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=Cn.generate().publicKey.toString()}){let m=new ei({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Ln(m).serialize()).toString("base64").length<On}catch{return!1}}var ni=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),oi=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Ln&&(t=ni(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof Rn&&(n.recentBlockhash||(n.recentBlockhash=ti.toBase58()),n.feePayer||(n.feePayer=Cn.generate().publicKey)),t.push(oi(n))}),console.log("simulate tx string:",t),t}var yt=2e3,bt=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 i;let t=(await ri.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=pt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ii.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Fe(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(f=>f!==Fe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(v(x({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new je;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.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 a=>{var y;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:f,notSendToRpc:g}=a||{},P=m!=null?m:await Me(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),Ie([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await zt(this.connection,n,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let C=await this.signAllTransactions([n]);if(this.signers.length)for(let k of C)try{k.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:d}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),m=n.filter(y=>y.transaction.instructions.length>0),d=[a,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&f.forEach(y=>{y.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:f,instructionTypes:g,execute:async y=>{var T;let{sequentially:C,onTxUpdate:k,skipTxCount:b=0,recentBlockHash:R,skipPreflight:I=!0}=y||{},A=R!=null?R:await Me(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(C){let h=[],F=0;for(let _ of d){if(++F,F<=b)continue;let w=await zt(this.connection,_,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});h.push(w)}return{txIds:h,signedTxs:d}}return{txIds:await await Promise.all(d.map(async h=>(h.recentBlockhash=A,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:I})))),signedTxs:d}}if(this.signAllTransactions){let h=d.map((_,w)=>(_.recentBlockhash=A,f[w].length&&_.sign(...f[w]),_));Ie(h);let F=await this.signAllTransactions(h);if(C){let _=0,w=[],B=async()=>{if(!F[_])return;let S=await this.connection.sendRawTransaction(F[_].serialize(),{skipPreflight:I});w.push({txId:S,status:"sent",signedTx:F[_]}),k==null||k([...w]),_++;let L=!1,N=null,E=null,re=G=>{N!==null&&clearInterval(N),E!==null&&this.connection.removeSignatureListener(E);let q=w.findIndex(J=>J.txId===S);if(q>-1){if(w[q].status==="error"||w[q].status==="success")return;w[q].status=G.err?"error":"success"}k==null||k([...w]),G.err||B()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var G;if(L){clearInterval(N);return}try{let q=await this.connection.getTransaction(S,{commitment:"confirmed",maxSupportedTransactionVersion:1});q&&(L=!0,clearInterval(N),re({err:((G=q.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",S))}catch(q){L=!0,clearInterval(N),console.error("getTransaction timeout:",q,S)}},yt)),E=this.connection.onSignature(S,G=>{if(L){this.connection.removeSignatureListener(E);return}L=!0,re(G)},"confirmed"),this.connection.getSignatureStatus(S)};return await B(),{txIds:w.map(S=>S.txId),signedTxs:F}}else{let _=[];for(let w=0;w<F.length;w+=1){let B=await this.connection.sendRawTransaction(F[w].serialize(),{skipPreflight:I});_.push(B)}return{txIds:_,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var I;let R=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=R,d=de(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=x(x({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),P=[];for(let A of g)f[A]===void 0&&P.push(new Fe(A));let y=await Wt({connection:this.connection,address:P});for(let[A,T]of Object.entries(y))f[A]=T;let C=a?Fe.default.toBase58():m!=null?m:await Me(this.connection,this.blockhashCommitment),k=new Je({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((I=this.owner)==null?void 0:I.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let b=new et(k);return b.sign(this.signers),{builder:this,transaction:b,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var _;let{skipPreflight:T=!0,sendAndConfirm:h,notSendToRpc:F}=A||{};if(Ie([b]),(_=this.owner)!=null&&_.isKeyPair){let w=await this.connection.sendTransaction(b,{skipPreflight:T});return h&&await ft(this.connection,w),{txId:w,signedTx:b}}if(this.signAllTransactions){let w=await this.signAllTransactions([b]);if(this.signers.length)for(let B of w)try{B.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(w[0],{skipPreflight:T}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),m=n.filter(y=>y.builder.instructions.length>0),d=[a,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&f.forEach(y=>{y.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(y,C)=>{y.sign(f[C])}),{builder:this,transactions:d,signers:f,instructionTypes:g,buildProps:i,execute:async y=>{var I;let{sequentially:C,onTxUpdate:k,recentBlockHash:b,skipPreflight:R=!0}=y||{};if(b&&d.forEach(A=>A.message.recentBlockhash=b),Ie(d),(I=this.owner)!=null&&I.isKeyPair){if(C){let A=[];for(let T of d){let h=await this.connection.sendTransaction(T,{skipPreflight:R});await ft(this.connection,h),A.push(h)}return{txIds:A,signedTxs:d}}return{txIds:await Promise.all(d.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:R}))),signedTxs:d}}if(this.signAllTransactions){let A=await this.signAllTransactions(d);if(C){let T=0,h=[],F=async()=>{if(!A[T])return;let _=await this.connection.sendTransaction(A[T],{skipPreflight:R});h.push({txId:_,status:"sent",signedTx:A[T]}),k==null||k([...h]),T++;let w=!1,B=null,S=null,L=N=>{B!==null&&clearInterval(B),S!==null&&this.connection.removeSignatureListener(S);let E=h.findIndex(re=>re.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=N.err?"error":"success"}k==null||k([...h]),N.err||F()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var N;if(w){clearInterval(B);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});E&&(w=!0,clearInterval(B),L({err:((N=E.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){w=!0,clearInterval(B),console.error("getTransaction timeout:",E,_)}},yt)),S=this.connection.onSignature(_,N=>{if(w){this.connection.removeSignatureListener(S);return}w=!0,L(N)},"confirmed"),this.connection.getSignatureStatus(_)};return F(),{txIds:[],signedTxs:A}}else{let T=[];for(let h=0;h<A.length;h+=1){let F=await this.connection.sendTransaction(A[h],{skipPreflight:R});T.push(F)}return{txIds:T,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var k;let C=t||{},{splitIns:n=[],computeBudgetConfig:i}=C,a=de(C,["splitIns","computeBudgetConfig"]),m=i?pt(i):{instructions:[],instructionTypes:[]},d=this.signers.reduce((b,R)=>v(x({},b),{[R.publicKey.toBase58()]:R}),{}),f=[],g=[],P=[],y=0;if(this.allInstructions.forEach(b=>{let R=[...P,b],I=i?[...m.instructions,...R]:R,T=[...new Set(R.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new Fe(h));if(b!==n[y]&&P.length<12&&(Ze({instructions:I,payer:this.feePayer,signers:T})||Ze({instructions:R,payer:this.feePayer,signers:T})))P.push(b);else{if(P.length===0)throw Error("item ins too big");y+=b===n[y]?1:0,Ze({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:T})?f.push(new je().add(...m.instructions,...P)):f.push(new je().add(...P)),g.push(Array.from(new Set(P.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>d[h]).filter(h=>h!==void 0)),P=[b]}}),P.length>0){let R=[...new Set(P.map(I=>I.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(I=>d[I]).filter(I=>I!==void 0);Ze({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:R.map(I=>I.publicKey)})?f.push(new je().add(...m.instructions,...P)):f.push(new je().add(...P)),g.push(R)}return f.forEach(b=>b.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&g.forEach(b=>{b.some(R=>R.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async b=>{var _;let{sequentially:R,onTxUpdate:I,skipTxCount:A=0,recentBlockHash:T,skipPreflight:h=!0}=b||{},F=T!=null?T:await Me(this.connection,this.blockhashCommitment);if(f.forEach(async(w,B)=>{w.recentBlockhash=F,g[B].length&&w.sign(...g[B])}),Ie(f),(_=this.owner)!=null&&_.isKeyPair){if(R){let w=0,B=[];for(let S of f){if(++w,w<=A){B.push("tx skipped");continue}let L=await zt(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});B.push(L)}return{txIds:B,signedTxs:f}}return{txIds:await Promise.all(f.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let w=await this.signAllTransactions(f.slice(A,f.length)),B=[...f.slice(0,A),...w];if(R){let S=0,L=[],N=async()=>{if(!B[S])return;S<A&&(L.push({txId:"",status:"success",signedTx:B[S]}),I==null||I([...L]),S++,N());let E=await this.connection.sendRawTransaction(B[S].serialize(),{skipPreflight:h});L.push({txId:E,status:"sent",signedTx:B[S]}),I==null||I([...L]),S++;let re=!1,G=null,q=null,J=z=>{G!==null&&clearInterval(G),q!==null&&this.connection.removeSignatureListener(q);let ne=L.findIndex(be=>be.txId===E);if(ne>-1){if(L[ne].status==="error"||L[ne].status==="success")return;L[ne].status=z.err?"error":"success"}I==null||I([...L]),z.err||N()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var z;if(re){clearInterval(G);return}try{let ne=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(re=!0,clearInterval(G),J({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",E))}catch(ne){re=!0,clearInterval(G),console.error("getTransaction timeout:",ne,E)}},yt)),q=this.connection.onSignature(E,z=>{if(re){this.connection.removeSignatureListener(q);return}re=!0,J(z)},"confirmed"),this.connection.getSignatureStatus(E)};return await N(),{txIds:L.map(E=>E.txId),signedTxs:B}}else{let S=[];for(let L=0;L<B.length;L+=1){let N=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:h});S.push(N)}return{txIds:S,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var _;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:d=12}=F,f=de(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=x(x({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),a),P=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let w of P)g[w]===void 0&&y.push(new Fe(w));let C=await Wt({connection:this.connection,address:y});for(let[w,B]of Object.entries(C))g[w]=B;let k=n?pt(n):{instructions:[],instructionTypes:[]},b=await Me(this.connection,this.blockhashCommitment),R=this.signers.reduce((w,B)=>v(x({},w),{[B.publicKey.toBase58()]:B}),{}),I=[],A=[],T=[],h=0;if(this.allInstructions.forEach(w=>{let B=[...T,w],S=n?[...k.instructions,...B]:B;if(w!==i[h]&&T.length<d&&($e({instructions:S,payer:this.feePayer,lookupTableAddressAccount:g})||$e({instructions:B,payer:this.feePayer,lookupTableAddressAccount:g})))T.push(w);else{if(T.length===0)throw Error("item ins too big");h+=w===i[h]?1:0;let L={};for(let N of[...new Set(P)])g[N]!==void 0&&(L[N]=g[N]);if(n&&$e({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let N=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(N))}else{let N=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(N))}A.push(Array.from(new Set(T.map(N=>N.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(N=>R[N]).filter(N=>N!==void 0)),T=[w]}}),T.length>0){let B=[...new Set(T.map(S=>S.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(S=>R[S]).filter(S=>S!==void 0);if(n&&$e({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let S=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(S))}else{let S=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(S))}A.push(B)}return(_=this.owner)!=null&&_.signer&&A.forEach(w=>{w.some(B=>B.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),I.forEach((w,B)=>{w.sign(A[B])}),{builder:this,transactions:I,buildProps:t,signers:A,instructionTypes:this.instructionTypes,execute:async w=>{var re;let{sequentially:B,onTxUpdate:S,skipTxCount:L=0,recentBlockHash:N,skipPreflight:E=!0}=w||{};if(I.map(async(G,q)=>{A[q].length&&G.sign(A[q]),N&&(G.message.recentBlockhash=N)}),Ie(I),(re=this.owner)!=null&&re.isKeyPair){if(B){let G=0,q=[];for(let J of I){if(++G,G<=L){console.log("skip tx: ",G),q.push("tx skipped");continue}let z=await this.connection.sendTransaction(J,{skipPreflight:E});await ft(this.connection,z),q.push(z)}return{txIds:q,signedTxs:I}}return{txIds:await Promise.all(I.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:E}))),signedTxs:I}}if(this.signAllTransactions){let G=await this.signAllTransactions(I.slice(L,I.length)),q=[...I.slice(0,L),...G];if(B){let J=0,z=[],ne=async()=>{if(!q[J])return;if(J<L){z.push({txId:"",status:"success",signedTx:q[J]}),S==null||S([...z]),J++,ne();return}let be=await this.connection.sendTransaction(q[J],{skipPreflight:E});z.push({txId:be,status:"sent",signedTx:q[J]}),S==null||S([...z]),J++;let Ge=!1,Ce=null,rt=null,fn=Te=>{Ce!==null&&clearInterval(Ce),rt!==null&&this.connection.removeSignatureListener(rt);let ge=z.findIndex(Ko=>Ko.txId===be);if(ge>-1){if(z[ge].status==="error"||z[ge].status==="success")return;z[ge].status=Te.err?"error":"success"}S==null||S([...z]),Te.err||ne()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var Te;if(Ge){clearInterval(Ce);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:1});ge&&(Ge=!0,clearInterval(Ce),fn({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){Ge=!0,clearInterval(Ce),console.error("getTransaction timeout:",ge,be)}},yt)),rt=this.connection.onSignature(be,Te=>{if(Ge){this.connection.removeSignatureListener(rt);return}Ge=!0,fn(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return ne(),{txIds:[],signedTxs:q}}else{let J=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:E});J.push(ne)}return{txIds:J,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};var Xt=(...o)=>o.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=V(n)}createTxBuilder(t){return this.scope.checkOwner(),new bt({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(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Rl,SystemProgram as Ol}from"@solana/web3.js";import Fl from"bn.js";import{createCloseAccountInstruction as El,createInitializeAccountInstruction as Dl,createTransferInstruction as Wl,TOKEN_PROGRAM_ID as ql}from"@solana/spl-token";import{Keypair as gl,PublicKey as Pl}from"@solana/web3.js";import kl from"bn.js";import{TOKEN_PROGRAM_ID as Il}from"@solana/spl-token";import{PublicKey as gi}from"@solana/web3.js";import _n,{isBN as Vn}from"bn.js";import{bits as ai,BitStructure as Tc,blob as si,Blob as hc,cstr as Ic,f32 as Bc,f32be as Sc,f64 as Kc,f64be as xc,greedy as Cc,Layout as ui,ns64 as Rc,ns64be as Lc,nu64 as Oc,nu64be as Nc,offset as ci,s16 as Mc,s16be as Fc,s24 as vc,s24be as _c,s32 as li,s32be as Vc,s40 as Ec,s40be as Dc,s48 as Wc,s48be as qc,s8 as Uc,seq as mi,struct as Gc,Structure as di,u16 as pi,u16be as zc,u24 as Xc,u24be as Yc,u32 as fi,u32be as Hc,u40 as Qc,u40be as Zc,u48 as $c,u48be as jc,u8 as yi,UInt as bi,union as Jc,Union as el,unionLayoutDiscriminator as tl,utf8 as nl}from"@solana/buffer-layout";var gt=ui,Nn=di;var Yt=bi;var Mn=yi,H=pi;var Pt=fi;var le=li;var Fn=mi;var M=si;var Ht=ai,vn=ci;var Se=class extends gt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new _n(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new _n(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},At=class extends gt{constructor(n){super(8,n);this._lower=Ht(Pt(),!1),this._upper=Ht(Pt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return x(x({},a),m)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function c(o){return new Yt(1,o)}function Y(o){return new Yt(4,o)}function e(o){return new Se(8,!1,o)}function O(o){return new Se(16,!1,o)}function En(o){return new Se(1,!0,o)}function ve(o){return new Se(8,!0,o)}function Dn(o){return new Se(16,!0,o)}var tt=class extends gt{constructor(n,i,a,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new tt(M(32),t=>new gi(t),t=>t.toBuffer(),o)}function ue(o){return new tt(Mn(),Pi,Ai,o)}function Pi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ai(o){return o?1:0}function Zt(o,t){let n=Pt("length"),i=l([n,p(o,vn(n,-n.span),"values")]);return new tt(i,({values:a})=>a,a=>({values:a}),t)}var Qt=class extends Nn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Qt(o,t,n)}function p(o,t,n){let i,a=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!i){let f=Reflect.get(m,"count");i=Vn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,d)},set(m,d,f){return d==="count"&&(i=f),Reflect.set(m,d,f)}});return Fn(o,a,n)}var _e=l([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Tg,SystemProgram as hg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Bg}from"@solana/spl-token";import{PublicKey as ym}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gm}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var qn=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Un=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Gn=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),$t=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),km=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ki=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),zn=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Xn=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Tm=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ti=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Yn=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),hi=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ii=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Hn=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),hm=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Bi=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),jt=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Si=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Im=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Ki=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),xi=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ci=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Bm=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Sm=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Km=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),xm=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Cm=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={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 Fg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as My,TOKEN_2022_PROGRAM_ID as Fy,TOKEN_PROGRAM_ID as vy}from"@solana/spl-token";import{PublicKey as Vy}from"@solana/web3.js";import Dy from"bn.js";import qy from"decimal.js";import{TOKEN_PROGRAM_ID as Um}from"@solana/spl-token";import{PublicKey as Ym}from"@solana/web3.js";var Ri=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ty,TOKEN_2022_PROGRAM_ID as ny,TOKEN_PROGRAM_ID as oy}from"@solana/spl-token";import{Keypair as ay,PublicKey as sy,SystemProgram as cy,TransactionInstruction as ly}from"@solana/web3.js";import dy from"bn.js";import D from"bn.js";var Ve=new D(1).shln(64);var Li=new D(1).shln(128),Jt=new D(1).shln(64).subn(1),Oi=new D(1).shln(128).subn(1);var Ee=new D("4295048016"),De=new D("79226673521066979257578248091"),Ni=new D("59543866431248"),Mi=new D("184467440737095516"),Fi=new D("15793534762490258745");var en=60,rd=new D("18446743708227953217"),vi=[{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 nt=3,Qn=100;var Zn=10,$n=100,kt=14;var $=new D(0),We=new D(1),ad=new D(-1);var sd=new D("18446744073700000000");var _i=l([M(8),c("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),p(Y(),1),r("fundOwner"),p(e(),3)]),Vi=l([Y("blockTimestamp"),ve("tickCumulative"),p(e(),4)]),jn=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),p(Vi,Qn,"observations"),p(e(),4)]),Ei=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),p(c(),46)]),Di=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),tn=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),le("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),p(O(),4),c("status"),c("feeOn"),M(6),p(Di,nt,"rewardInfos"),M(8*16,"tickArrayBitmap"),p(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ei.replicate("dynamicFeeInfo"),p(e(),46)]),Wi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),qi=l([M(8),c("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),p(Wi,nt,"rewardInfos"),e("recentEpoch"),p(e(),7)]),md=l([M(8),c("bump"),r("poolId"),le("tickLower"),le("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),p(O(),nt,"rewardGrowthInside"),e("recentEpoch"),p(e(),7)]),Ui=l([le("tick"),Dn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),p(O(),nt,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),p(Y(),3)]),Jn=l([M(8),r("poolId"),le("startTickIndex"),p(Ui,en,"ticks"),c("initializedTickCount"),e("recentEpoch"),p(c(),107)]),Gi=l([M(8),c("bump"),p(r(),Zn,"operationOwners"),p(r(),$n,"whitelistMints")]),zi=l([M(8),r("poolId"),r("owner"),le("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),p(e(),4)]),eo=l([M(8),r("poolId"),M(8*8*kt,"positiveTickArrayBitmap"),M(8*8*kt,"negativeTickArrayBitmap")]),dd=l([M(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),p(e(),8)]),Xi=l([M(8),r("wallet"),c("nonceIndex"),e("orderNonce"),p(e(),4)]),pd=l([e(),c("bump"),r("owner"),r("poolId"),r("positionId"),r("nftAccount"),p(e(),8)]),Yi=l([M(8),c("bump"),r("lockOwner"),r("poolId"),r("positionId"),r("nftAccount"),r("lockNftMint"),e("recentEpoch"),p(e(),8)]);import bd from"bn.js";var Kd=Buffer.from("amm_config","utf8"),Qi=Buffer.from("pool","utf8"),Zi=Buffer.from("pool_vault","utf8"),xd=Buffer.from("pool_reward_vault","utf8"),Cd=Buffer.from("position","utf8"),Rd=Buffer.from("tick_array","utf8"),Ld=Buffer.from("operation","utf8"),Od=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Nd=Buffer.from("observation","utf8"),Md=Buffer.from("support_mint","utf8"),Fd=Buffer.from("dynamic_fee_config","utf8"),vd=Buffer.from("permission","utf8");var _d=Buffer.from("locked_position","utf8");import{sha256 as mr}from"js-sha256";import $i from"bn.js";import Wd from"decimal.js";var Ud=new $i(1).shln(256).subn(1);import sp from"bn.js";import Zd from"bn.js";import jd from"decimal.js";import dp from"bn.js";import fp from"decimal.js";import{PublicKey as ef}from"@solana/web3.js";import nf from"bn.js";import{TOKEN_2022_PROGRAM_ID as mf,TOKEN_PROGRAM_ID as df}from"@solana/spl-token";import bf from"decimal.js";import Up from"bn.js";import Rp from"bn.js";import Kf from"bn.js";function j(o){let t=`global:${o}`;return Buffer.from(mr.digest(t)).slice(0,8)}jn.span;var ky=V("Raydium_Clmm"),Ty={createPool:j("create_pool"),createCustomizablePool:j("create_customizable_pool"),createPermissionedPool:j("create_permissioned_pool"),openPositionV2:j("open_position_v2"),openPositionWithToken22Nft:j("open_position_with_token22_nft"),closePosition:j("close_position"),increaseLiquidityV2:j("increase_liquidity_v2"),decreaseLiquidityV2:j("decrease_liquidity_v2"),initializeReward:j("initialize_reward"),setRewardParams:j("set_reward_params"),updateRewardInfos:j("update_reward_infos"),collectRemainingRewards:j("collect_remaining_rewards"),swapV2:j("swap_v2"),openLimitOrder:j("open_limit_order"),increaseLimitOrder:j("increase_limit_order"),decreaseLimitOrder:j("decrease_limit_order"),settleLimitOrder:j("settle_limit_order"),closeLimitOrder:j("close_limit_order")};import{PublicKey as un}from"@solana/web3.js";var yr=l([c("instruction")]),br=l([c("instruction")]),gr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),r("rewardVault"),r("rewardMint"),r("rewardSender"),e("rewardType"),p(e(),15,"padding")]),Pr=l([e("state"),e("nonce"),r("lpVault"),r("rewardVault"),r(),r(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),Ar=l([e("state"),e("nonce"),r("lpVault"),r("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),r("rewardVaultB"),M(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),r()]),wr=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),r("lpMint"),r("lpVault"),p(gr,5,"rewardInfos"),r("creator"),r(),p(e(),32,"padding")]),so=new Proxy(Pr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return v(x({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),uo=new Proxy(Ar,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return v(x({},a),{version:5,rewardInfos:[{rewardVault:a.rewardVaultA,totalReward:a.totalRewardA,perSlotReward:a.perSlotRewardA,perShareReward:a.perShareRewardA},{rewardVault:a.rewardVaultB,totalReward:a.totalRewardB,perSlotReward:a.perSlotRewardB,perShareReward:a.perShareRewardB}]})}:Reflect.get(o,t,n)}}),an=new Proxy(wr,{get(o,t,n){return t==="decode"?(...i)=>{let a=o.decode(...i);return v(x({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var d;return v(x({},m),{rewardType:((d=Object.entries(Ue).find(f=>String(f[1])===m.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),kr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),Tr=l([c("instruction"),e("nonce"),p(kr,5,"rewardTimeInfo")]),hr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),Ir=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),gb=l([e("state"),r("id"),r("owner"),e("deposited"),p(e(),1,"rewardDebts")]),sn=l([e("state"),r("id"),r("owner"),e("deposited"),p(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),p(e(),15)]),Pb=l([e("state"),r("id"),r("owner"),e("deposited"),p(e(),2,"rewardDebts")]),co=l([e("state"),r("id"),r("owner"),e("deposited"),p(O(),2,"rewardDebts"),p(e(),17)]),lo=l([e(),e("state"),r("id"),r("owner"),e("deposited"),p(O(),5,"rewardDebts"),p(e(),16)]),Br=l([c("instruction"),e("amount")]),Sr=l([r("mint"),r("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),En("digitShift"),p(c(),7,"reserved1"),p(e(),7,"reserved2")]),mo=l([M(8),r("governanceProgramId"),r("realm"),r("realmGoverningTokenMint"),r("realmAuthority"),p(c(),32,"reserved1"),p(Sr,4,"votingMints"),ve("timeOffset"),c("bump"),p(c(),7,"reserved2"),p(e(),11,"reserved3")]),Kr=l([ve("startTime"),ve("endTime"),c("kind"),p(c(),15,"reserved")]),xr=l([p(Kr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ue("isUsed"),ue("allowClawback"),c("votingMintConfigIdx"),p(c(),29,"reserved")]),po=l([M(8),r("voterAuthority"),r("registrar"),p(xr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),p(c(),94,"reserved")]);import{NATIVE_MINT as Kb}from"@solana/spl-token";var xb=V("Raydium_farm_config"),Cr=new un("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Rr=new un("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Cb=new un("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),cn={3:so,5:uo,6:an},ln={3:sn,5:co,6:lo};var Ue={"Standard SPL":0,"Option tokens":1},fo={[qn.toString()]:3,[Un.toString()]:4,[Gn.toString()]:5,[$t.toString()]:6,[ke.FARM_PROGRAM_ID_V3.toString()]:3,[ke.FARM_PROGRAM_ID_V4.toString()]:4,[ke.FARM_PROGRAM_ID_V5.toString()]:5,[ke.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as Wb,SystemProgram as qb,SYSVAR_CLOCK_PUBKEY as Ub,SYSVAR_RENT_PUBKEY as Gb,TransactionInstruction as zb}from"@solana/web3.js";import Yb from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Qb,createAssociatedTokenAccountIdempotentInstruction as Zb,TOKEN_PROGRAM_ID as $b}from"@solana/spl-token";var ug=V("Raydium_farm_instruction"),cg={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 Xg from"bn.js";import{PublicKey as rw}from"@solana/web3.js";import{AccountLayout as uw,MintLayout as cw,NATIVE_MINT as lw,TOKEN_PROGRAM_ID as dw}from"@solana/spl-token";import Qg from"bn.js";import yo from"bn.js";var Dr=new yo(25),Wr=new yo(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as TP,TOKEN_PROGRAM_ID as hP}from"@solana/spl-token";import{PublicKey as BP,SystemProgram as SP,SYSVAR_RENT_PUBKEY as KP,TransactionInstruction as xP}from"@solana/web3.js";import{PublicKey as qr}from"@solana/web3.js";import Ur from"bn.js";function Gr(o){return typeof o=="object"&&o!==null&&![ee,ae,qr,W,Ur,ce,Ae].some(t=>typeof t=="object"&&o instanceof t)}function Ke(o){return typeof o=="string"?Mt(o):Array.isArray(o)?o.map(t=>Ke(t)):Gr(o)?Object.fromEntries(Object.entries(o).map(([t,n])=>[t,Ke(n)])):o}import vP from"bn.js";var zr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Xr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),PP=l([c("instruction"),c("nonce")]),Yr=l([c("instruction"),c("nonce"),e("startTime")]),bo=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("withdrawQueue"),r("lpVault"),r("owner"),e("lpReserve"),p(e(),3,"padding")]),AP=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"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),r("baseVault"),r("quoteVault"),r("baseMint"),r("quoteMint"),r("lpMint"),r("modelDataAccount"),r("openOrders"),r("marketId"),r("marketProgramId"),r("targetOrders"),r("owner"),p(e(),64,"padding")]),Hr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Qr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Zr=l([e("fee")]);var EP=V("Raydium_liquidity_instruction");var $r=5e4,jr=l([e("x"),e("y"),e("price")]),UP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),p(jr,$r,"DataElement")]);import{PublicKey as tA}from"@solana/web3.js";import oA from"decimal.js";import{TOKEN_PROGRAM_ID as rA}from"@solana/spl-token";import{PublicKey as YP}from"@solana/web3.js";var ZP=V("Raydium_liquidity_serum");import Ow from"bn.js";import Mw from"decimal.js";import{TOKEN_PROGRAM_ID as OA}from"@solana/spl-token";import{PublicKey as MA}from"@solana/web3.js";import vA from"bn.js";import{SystemProgram as AA,SYSVAR_RENT_PUBKEY as wA,Transaction as kA,TransactionInstruction as TA}from"@solana/web3.js";import{createInitializeAccountInstruction as IA,TOKEN_PROGRAM_ID as BA}from"@solana/spl-token";function Jr(o="accountFlags"){let t=new At(o);return t.addBoolean("initialized"),t.addBoolean("market"),t.addBoolean("openOrders"),t.addBoolean("requestQueue"),t.addBoolean("eventQueue"),t.addBoolean("bids"),t.addBoolean("asks"),t}var ea=l([M(5),Jr("accountFlags"),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as uT}from"@solana/web3.js";import{AccountLayout as lT,NATIVE_MINT as mT,TOKEN_2022_PROGRAM_ID as dT,TOKEN_PROGRAM_ID as pT,createAssociatedTokenAccountIdempotentInstruction as fT}from"@solana/spl-token";import ik from"bn.js";import sa from"bn.js";var Gw=new sa(0);import Zw from"bn.js";import ua from"bn.js";var It=new ua(1e6);import TT from"bn.js";import IT from"decimal.js";import{PublicKey as Ik,TransactionInstruction as Bk,Keypair as Kk,SystemProgram as xk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Rk,TOKEN_2022_PROGRAM_ID as Lk,TOKEN_PROGRAM_ID as Ok}from"@solana/spl-token";var ck=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),lk=Buffer.from("amm_config","utf8"),mk=Buffer.from("pool","utf8"),dk=Buffer.from("pool_lp_mint","utf8"),pk=Buffer.from("pool_vault","utf8"),fk=Buffer.from("observation","utf8"),yk=Buffer.from("permission","utf8"),bk=Buffer.from("support_mint","utf8"),gk=Buffer.from("creator_fee_share","utf8");var Pk=Buffer.from("locked_liquidity","utf8");var Ek=V("Raydium_cpmm"),Dk={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 ma=l([M(8),c("bump"),ue("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),r("protocolOwner"),r("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),p(e(),14)]),go=l([M(8),r("configId"),r("poolCreator"),r("vaultA"),r("vaultB"),r("mintLp"),r("mintA"),r("mintB"),r("mintProgramA"),r("mintProgramB"),r("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"),ue("enableCreatorFee"),p(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),p(e(),28)]),Uk=l([M(8),r("configId"),p(e(),30)]),Gk=l([M(8),c("bump"),r("creator"),r("ammConfig"),e("shareRate"),p(e(),8)]);import{PublicKey as vK,SystemProgram as _K}from"@solana/web3.js";import{createTransferInstruction as EK,TOKEN_PROGRAM_ID as DK,TOKEN_2022_PROGRAM_ID as WK,createAssociatedTokenAccountIdempotentInstruction as qK,createSyncNativeInstruction as GK,createTransferCheckedInstruction as zK}from"@solana/spl-token";import Oa from"bn.js";import HK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Oh,TOKEN_2022_PROGRAM_ID as Nh,TOKEN_PROGRAM_ID as Mh}from"@solana/spl-token";import{SystemProgram as Vh,TransactionInstruction as Eh}from"@solana/web3.js";import fa from"bn.js";var gh=Buffer.from("vault_auth_seed","utf8"),Ph=Buffer.from("global_config","utf8"),Ah=Buffer.from("pool_vesting","utf8"),wh=Buffer.from("platform_config","utf8"),kh=Buffer.from("platform_fee_vault_auth_seed","utf8"),Th=Buffer.from("creator_fee_vault_auth_seed","utf8"),hh=Buffer.from("platform_global_access","utf8"),Ih=Buffer.from("platform_allow_config","utf8"),Bh=Buffer.from("platform_curve_rule","utf8");var qh={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 Uh=new fa("18446744073709551615");var ya=l([e(),e("epoch"),c("curveType"),H("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),r("mintB"),r("protocolFeeOwner"),r("migrateFeeOwner"),r("migrateToAmmWallet"),r("migrateToCpmmWallet"),p(e(),16)]),ba=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ga=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"),ba.replicate("vestingSchedule"),r("configId"),r("platformId"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),p(c(),54)]),Yh=l([e(),e("epoch"),r("poolId"),r("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),p(e(),8)]),Pa=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),Hh=l([e("epoch"),c("index"),r("configId"),Pa.replicate("bondingCurveParam"),p(e(),50)]),Ao=l([e(),e("epoch"),r("platformClaimFeeWallet"),r("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),p(c(),64,"name"),p(c(),256,"web"),p(c(),256,"img"),r("cpConfigId"),e("creatorFeeRate"),r("transferFeeExtensionAuth"),r("platformVestingWallet"),e("platformVestingScale"),r("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),r("curveRuleManager"),p(c(),78)]),Aa=l([c("field"),c("op"),O("value")]),wa=l([H("groupId"),e("epoch"),Zt(Aa,"constraints")]),ka=l([e(),c("bump"),c("version"),r("platformId"),r("configId"),e("epoch"),p(e(),8),Zt(wa,"groups")]);import{TOKEN_2022_PROGRAM_ID as $h,TOKEN_PROGRAM_ID as jh}from"@solana/spl-token";import Ta from"bn.js";var lI=new Ta(1e6);import fI from"bn.js";import bI from"decimal.js";import HI from"bn.js";import ZI from"decimal.js";import TI from"bn.js";import II from"decimal.js";import MI from"bn.js";import vI from"decimal.js";import To from"bn.js";import dn from"decimal.js";var Kt=class{static _multipler(t){return new dn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:i}){return new dn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(i))}static getPriceX64({price:t,decimalA:n,decimalB:i}){let a=t.mul(this._multipler(i)).div(this._multipler(n));return new To(a.mul(this._Q64).toFixed(0))}};Kt._Q64=new dn(new To(1).shln(64).toString());import{NATIVE_MINT as mS,TOKEN_2022_PROGRAM_ID as dS,TOKEN_PROGRAM_ID as pS,createAssociatedTokenAccountIdempotentInstruction as yS,createSyncNativeInstruction as bS,getTransferFeeConfig as gS,unpackMint as PS}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Ca,SystemProgram as kS}from"@solana/web3.js";import xS from"decimal.js";var CS={initPriceX64:new Q("515752397214619"),supply:new Q(1e15),totalSellA:new Q(7931e11),totalFundRaisingB:new Q(85e9),totalFundRaisingBUSD:new Q(125e8),totalLockedAmount:new Q("0"),cliffPeriod:new Q("0"),unlockPeriod:new Q("0"),decimals:6,virtualA:new Q("1073471847374405"),virtualB:new Q("30050573465"),realA:new Q(0),realB:new Q(0),protocolFee:new Q(0),platformId:new Ca("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},RS=new Q(1e4);var Ra={[zn.toBase58()]:3};var La=l([M(5),M(8),r("ownAddress"),e("vaultSignerNonce"),r("baseMint"),r("quoteMint"),r("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),r("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),r("requestQueue"),r("eventQueue"),r("bids"),r("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as eK}from"@solana/web3.js";var rK=V("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as fK,TOKEN_2022_PROGRAM_ID as yK,TOKEN_PROGRAM_ID as bK}from"@solana/spl-token";import{PublicKey as PK,SystemProgram as AK,TransactionInstruction as wK}from"@solana/web3.js";import TK from"bn.js";var Ix=new Oa(0);import{PublicKey as Na,Transaction as pn,TransactionInstruction as Ma}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fa}from"@solana/spl-token";import ho from"bn.js";var te=class extends oe{static getPdaPoolId(t,n){return se([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,i,a){return se([te.SEED_CONFIG.owner.id,n.toBuffer(),i.toBuffer(),Buffer.from(new ho(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:i,wallet:a,chainTime:m}){if(i.length===0)return[];let d=i.map(y=>te.getPdaPoolId(n,y).publicKey),f=[];for(let y=0;y<te.VERSION_PROJECT.length;y++)f.push(...d.map(C=>te.getPdaOwnerId(n,C,a,y).publicKey));let g=await pe(t,[...d,...f]),P=[];for(let y=0;y<g.length;y++){let C=Math.floor(y/i.length),k=y%i.length,b=d[k],R=f[y],I=g[k],A=g[i.length+y];if(!(I&&A)||I.data.length!==te.POOL_LAYOUT.span||A.data.length!==te.OWNER_LAYOUT.span)continue;let T=te.POOL_LAYOUT.decode(I.data),h=te.OWNER_LAYOUT.decode(A.data),F=T.openTime.toNumber(),_=T.endTime.toNumber(),w=h.tokenInfo.map(L=>L.debtAmount.gt(new ho(0))).filter(L=>!L).length!==3,B=m>F&&m<_&&T.status===1,S=w&&B;P.push({programId:n,poolId:b,ammId:T.ammId,ownerAccountId:R,snapshotLpAmount:h.lpAmount,project:te.VERSION_PROJECT[C],openTime:F,endTime:_,canClaim:S,canClaimErrorType:w?B?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:T.tokenInfo.map((L,N)=>({mintAddress:L.mintAddress,mintVault:L.mintVault,mintDecimals:L.mintDecimals,perLpLoss:L.perLpLoss,debtAmount:h.tokenInfo[N].debtAmount.add(h.tokenInfo[N].claimedAmount)}))})}return P}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:i}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,d=[];for(let P of t.tokenInfo){let{account:y,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({mint:P.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:P.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!P.mintAddress.equals(ee.WSOL.mint),associatedOnly:P.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});C&&a.addInstruction(C),d.push(y)}a.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:f,signers:g}=a.build();return[{transaction:f,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:i}){let a=this.createTxBuilder(i),m=n.wallet||this.scope.ownerPubKey,d={};for(let y of t){let C=[];for(let k of y.tokenInfo){let{account:b,instructionParams:R}=await this.scope.account.getOrCreateTokenAccount({mint:k.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:k.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!k.mintAddress.equals(ee.WSOL.mint),associatedOnly:k.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});R&&a.addInstruction(R),b&&(d[k.mintAddress.toString()]=b,C.push(b))}a.addInstruction({instructions:[te.makeClaimInstruction({programId:y.programId,poolInfo:y,ownerInfo:{wallet:m,ownerPda:y.ownerAccountId,claimAddress:C}})]})}let{transaction:f,signers:g}=a.build(),P=a.allInstructions;return Gt(P,[m,...g.map(y=>y.publicKey)])?[{transaction:f,signer:g}]:[{transaction:new pn().add(...P.slice(0,a.AllTxData.instructions.length-1)),signer:g},{transaction:new pn().add(...P.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new pn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:i}){let a=l([]),m=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.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}],d=Buffer.alloc(a.span);a.encode({},d);let f=Buffer.from([10,66,208,184,161,6,191,98,...d]);return new Ma({keys:m,programId:t,data:f})}},me=te;me.CLAIMED_NUM=3,me.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),r("ammId"),p(l([c("mintDecimals"),r("mintAddress"),r("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),p(e(),10,"padding")]),me.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),r("poolId"),r("owner"),e("lpAmount"),p(l([r("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),p(e(),4,"padding")]),me.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Na(t)),me.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},me.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Wx}from"@solana/web3.js";import{getTransferFeeConfig as Ux,MintLayout as Gx,TOKEN_2022_PROGRAM_ID as zx,TOKEN_PROGRAM_ID as Xx,unpackMint as Yx}from"@solana/spl-token";var kR=new xe(2),TR=new xe(3),hR=new xe(5),Nt=new xe(10),IR=new xe(100),BR=new xe(1e3),SR=new xe(1e4);function Et(o){return Nt.pow(U(o))}var Io=o=>typeof o=="number",va=o=>o?new Date(o):new Date,xt=o=>va(o).getTime();function Bo(o,t,n){let i=Io(t)?t*((n==null?void 0:n.unit)==="s"?1e3:1):xt(t);return xt(o)<=i}function So(o,t,n){let i=Io(t)?t*((n==null?void 0:n.unit)==="s"?1e3:1):xt(t);return xt(o)>i}function Lt(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}var it=V("Raydium.farm.util");function vr({programId:o,poolId:t,mint:n,type:i}){let{publicKey:a}=se([t.toBuffer(),n.toBuffer(),Buffer.from(i==="lpVault"?"lp_vault_associated_seed":i==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],o);return a}function St({programId:o,poolId:t,owner:n,version:i}){let{publicKey:a}=se([t.toBuffer(),n.toBuffer(),Buffer.from(i===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],o);return a}var _r=({programId:o,poolId:t})=>se([t.toBuffer()],o);function Vr(o){return{isSet:new ie(1),rewardPerSecond:U(o.perSecond),rewardOpenTime:U(o.openTime),rewardEndTime:U(o.endTime),rewardType:U(Ue[o.rewardType])}}function Er(o){return U(o.endTime).sub(U(o.openTime)).mul(U(o.perSecond))}function mn(o){let t=ln[o];return t||it.logWithError("invalid version",o),t}function _a(o){let t=cn[o];return t||it.logWithError("invalid version",o),t}function Va(o,t,n,i){if(o.version===3||o.version===5){if(o.lastSlot.gte(new ie(n)))return o;let a=new ie(n).sub(o.lastSlot);o.lastSlot=new ie(n);for(let m of o.rewardInfos){if(t.amount.eq(new ie(0)))continue;let d=m.perSlotReward.mul(a);m.perShareReward=m.perShareReward.add(d.mul(new ie(10).pow(new ie(o.version===3?9:15))).div(t.amount)),m.totalReward=m.totalReward.add(d)}}else if(o.version===6)for(let a of o.rewardInfos){if(a.rewardState.eq(new ie(0)))continue;let m=ie.min(new ie(i),a.rewardEndTime);if(a.rewardOpenTime.gte(m))continue;let f=m.sub(a.rewardLastUpdateTime).mul(a.rewardPerSecond),g=a.totalReward.sub(a.totalRewardEmissioned);g.lt(f)?(f=g,a.rewardLastUpdateTime=a.rewardLastUpdateTime.add(g.div(a.rewardPerSecond))):a.rewardLastUpdateTime=m,!t.amount.eq(new ie(0))&&(a.accRewardPerShare=a.accRewardPerShare.add(f.mul(o.rewardMultiplier).div(t.amount)),a.totalRewardEmissioned=a.totalRewardEmissioned.add(f))}return o}async function uL({connection:o,farmPools:t,owner:n,config:i,chainTime:a}){let m=!1,d=!1,f=new ie(10),g=[];for(let k of t){let b=Ke(k);b.version===6?d=!0:m=!0,g.push({pubkey:b.id,version:b.version,key:"state",poolId:b.id},{pubkey:b.lpVault,version:b.version,key:"lpVault",poolId:b.id}),n&&g.push({pubkey:St({programId:b.programId,poolId:b.id,owner:n,version:k.version}),version:b.version,key:"ledger",poolId:b.id})}let P={},y=await we(o,g,i);for(let{pubkey:k,version:b,key:R,poolId:I,accountInfo:A}of y){let T=I.toBase58();if(P[T]=x({},P[T]),R==="state"){let h=_a(b);(!A||!A.data||A.data.length!==h.span)&&it.logWithError(`invalid farm state account info, pools.id, ${k}`),P[T].state=h.decode(A.data)}else if(R==="lpVault")(!A||!A.data||A.data.length!==_e.span)&&it.logWithError(`invalid farm lp vault account info, pools.lpVault, ${k}`),P[T].lpVault=_e.decode(A.data);else if(R==="ledger"){let h=mn(b);A&&A.data&&(A.data.length!==h.span&&it.logWithError(`invalid farm ledger account info, ledger, ${k}`),P[T].ledger=h.decode(A.data))}}let C=d||m?await o.getSlot():0;for(let k of Object.keys(P))P[k]!==void 0&&(P[k].state=Va(P[k].state,P[k].lpVault,C,a));for(let[k,{state:b,ledger:R}]of Object.entries(P))if(R){let I=b.version===6?b.rewardMultiplier:b.rewardInfos.length===1?f.pow(new ie(9)):f.pow(new ie(15)),A=b.rewardInfos.map((T,h)=>{let F=R.rewardDebts[h];return R.deposited.mul(b.version===6?T.accRewardPerShare:T.perShareReward).div(I).sub(F)});P[k].wrapped=v(x({},P[k].wrapped),{pendingRewards:A})}return P}function cL(o,t=Date.now()){if(o.version===6){let n=o.state.rewardInfos;if(n.every(({rewardOpenTime:i})=>Bo(t,i.toNumber(),{unit:"s"})))return"upcoming pool";if(n.every(({rewardEndTime:i})=>So(t,i.toNumber(),{unit:"s"})))return"closed pool"}else{let n=o.state.rewardInfos.map(({perSlotReward:i})=>i);if(n.length===2){if(String(n[0])==="0"&&String(n[1])!=="0")return"normal fusion pool";if(String(n[0])!=="0"&&String(n[1])!=="0")return"dual fusion pool";if(String(n[0])==="0"&&String(n[1])==="0")return"closed pool"}else if(n.length===1&&String(n[0])==="0")return"closed pool"}}async function Lr(o,t,n,i){let a=await o.getAccountInfo(t);if(a===null)throw Error("registrar info check error");let d=mo.decode(a.data).votingMints.findIndex(y=>y.mint.equals(i));if(d===-1)throw Error("find voter mint error");let f=await o.getAccountInfo(n);if(f===null)return{index:d,isInit:!1};let P=po.decode(f.data).deposits.findIndex(y=>y.isUsed&&y.votingMintConfigIdx===d);return P===-1?{index:d,isInit:!1}:{index:P,isInit:!0}}export{Er as calFarmRewardAmount,Vr as farmRewardInfoToConfig,uL as fetchMultipleFarmInfoAndUpdate,_r as getAssociatedAuthority,St as getAssociatedLedgerAccount,vr as getAssociatedLedgerPoolAccount,Lr as getDepositEntryIndex,mn as getFarmLedgerLayout,_a as getFarmStateLayout,cL as judgeFarmType,Va as updateFarmPoolInfo};
//# sourceMappingURL=util.mjs.map