@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 79.4 kB
JavaScript
var Po=Object.defineProperty,Ao=Object.defineProperties;var wo=Object.getOwnPropertyDescriptors;var ot=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,C=(i,t)=>{for(var n in t||(t={}))mn.call(t,n)&&ln(i,n,t[n]);if(ot)for(var n of ot(t))dn.call(t,n)&&ln(i,n,t[n]);return i},F=(i,t)=>Ao(i,wo(t));var se=(i,t)=>{var n={};for(var r in i)mn.call(i,r)&&t.indexOf(r)<0&&(n[r]=i[r]);if(i!=null&&ot)for(var r of ot(i))t.indexOf(r)<0&&dn.call(i,r)&&(n[r]=i[r]);return n};import bo from"axios";import{PublicKey as ho}from"@solana/web3.js";import{get as pn,set as ko}from"lodash";var St=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}},fn={},To={};function E(i){let t=pn(fn,i);if(!t){let n=pn(To,i);t=new St({name:i,logLevel:n}),ko(fn,i,t)}return t}import{MINT_SIZE as Fa,TOKEN_PROGRAM_ID as va,getTransferFeeConfig as _a,unpackMint as Va}from"@solana/spl-token";var Kt=E("Raydium_accountInfo_util");async function ye(i,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=C({batchRequest:!1},n),d=xt(t,m),p=new Array(d.length).fill([]);if(r){let y=d.map(h=>{let B=i._buildArgs([h.map(x=>x.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:B}}),P=xt(y,10);p=(await(await Promise.all(P.map(async h=>await i._rpcBatchRequest(h)))).flat()).map(h=>(h.error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${h.error.message}`),h.result.value.map(B=>{if(B){let{data:x,executable:M,lamports:A,owner:I,rentEpoch:K}=B;return x.length!==2&&x[1]!=="base64"&&Kt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(x[0],"base64"),executable:M,lamports:A,owner:new ho(I),rentEpoch:K}}return null})))}else try{p=await Promise.all(d.map(y=>i.getMultipleAccountsInfo(y,u)))}catch(y){y instanceof Error&&Kt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${y.message}`)}return p.flat()}import Ie from"bn.js";import JC from"decimal.js";import Lo from"big.js";import ts from"bn.js";import Io from"toformat";var Bo=Io,qe=Bo;import rt from"big.js";import Ko from"bn.js";import xo from"decimal.js-light";import Ue from"bn.js";var yn=9007199254740991;function oe(i){let t=E("Raydium_parseBigNumberish");if(i instanceof Ue)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new Ue(i);t.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&t.logWithError(`BigNumberish number underflow: ${i}`),(i>=yn||i<=-yn)&&t.logWithError(`BigNumberish number overflow: ${i}`),new Ue(String(i))):typeof i=="bigint"?new Ue(i.toString()):(t.error(`invalid BigNumberish value: ${i}`),new Ue(0))}var it=E("module/fraction"),Ct=qe(rt),Ge=qe(xo),Co={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Ro={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},U=class{constructor(t,n=new Ko(1)){this.numerator=oe(t),this.denominator=oe(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(oe(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(oe(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(oe(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(oe(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Co[r]});let u=new Ge(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)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Ct.DP=t,Ct.RM=Ro[r]||1,new Ct(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var ls=E("Raydium_amount"),ms=qe(Lo);import{PublicKey as No}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bn}from"@solana/spl-token";var at={chainId:101,address:No.default.toBase58(),programId:bn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},le={chainId:101,address:"So11111111111111111111111111111111111111112",programId:bn.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 Ot}from"@solana/web3.js";import{PublicKey as z,SystemProgram as gn,SYSVAR_RENT_PUBKEY as Mo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fo}from"@solana/spl-token";function Se({pubkey:i,isSigner:t=!1,isWritable:n=!0}){return{pubkey:i,isWritable:n,isSigner:t}}var vo=[Se({pubkey:Fo,isWritable:!1}),Se({pubkey:gn.programId,isWritable:!1}),Se({pubkey:Mo,isWritable:!1})];function Rt({publicKey:i,transformSol:t}){let n=Pn(i.toString());if(n instanceof z)return t&&n.equals(we)?be:n;if(t&&n.toString()===we.toBase58())return be;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Pn(i){try{return new z(i)}catch{return i}}var Lt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ze=new z("SysvarRent111111111111111111111111111111111"),As=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_o=new z("Sysvar1nstructions1111111111111111111111111"),Vo=gn.programId,ws=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ks=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ts=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),hs=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Is=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Bs=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ss=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ks=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),xs=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Cs=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Rs=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(i){return Rt({publicKey:i,transformSol:!0})}var Nt=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:d=!1}){if(t===we.toBase58()||t instanceof Ot&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ot(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Ot.default:Rt({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Nt;ee.WSOL=new Nt(F(C({},le),{mint:le.address}));var Mt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},ut=Mt;ut.SOL=new Mt(at);import Eo from"bn.js";var qs=new U(new Eo(100));var Hs=E("Raydium_price");import{merge as tC}from"lodash";var X={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"},An=F(C({},X),{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 wn="ray_tab_hash",Ft="ray_req_hash",Do=()=>{if(typeof window===void 0)return"";let i=sessionStorage.getItem(wn);return i||(i=`ray-${Date.now()}`,sessionStorage.setItem(wn,i)),i},ct=async r=>{var u=r,{logCount:i=1e3,removeLastLog:t}=u,n=se(u,["logCount","removeLastLog"]);if(typeof window===void 0)return new Promise(d=>d());let m=JSON.parse(localStorage.getItem(Ft)||"[]").slice(0,i-1);t&&m.pop(),new Blob([JSON.stringify(n.data)]).size>1024&&(n.data=JSON.stringify(n.data).substring(0,200)+"..."),m.unshift(F(C({},n),{time:Date.now(),session:Do()}));try{localStorage.setItem(Ft,JSON.stringify(m))}catch{if(t){let d=!1,p=JSON.stringify(n.data).substring(0,100);for(m[0].data=p+(p.length>100?"...":"");!d;){m.pop();let y=JSON.stringify(n.data).substring(0,100);m[0].data=y+(y.length>100?"...":"");try{localStorage.setItem(Ft,JSON.stringify(m)),d=!0}catch{d=!1}}return new Promise(y=>y())}return ct(F(C({},n),{logCount:i,removeLastLog:!0}))}};import{PublicKey as bl,SystemProgram as gl}from"@solana/web3.js";import{AccountLayout as Tl,createAssociatedTokenAccountIdempotentInstruction as hl,TOKEN_PROGRAM_ID as Il,TOKEN_2022_PROGRAM_ID as Bl}from"@solana/spl-token";import{PublicKey as Le,sendAndConfirmTransaction as Wt,SystemProgram as Xo,Transaction as He,TransactionMessage as Qe,VersionedTransaction as Ze}from"@solana/web3.js";import Yo from"axios";import{PublicKey as vt,AddressLookupTableAccount as Ce}from"@solana/web3.js";async function _t({connection:i,address:t,cluster:n="mainnet"}){let r=await ye(i,[...new Set(t.map(m=>m.toString()))].map(m=>new vt(m))),u={};for(let m=0;m<t.length;m++){let d=r[m],p=t[m];if(!d)continue;let y=new Ce({key:p,state:Ce.deserialize(d.data)});u[p.toString()]=y,n==="devnet"?xe[p.toString()]=y:Ke[p.toString()]=y}return u}var Ke={},Vt=async i=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(Ke[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),Ke},xe={},Et=async i=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(xe[t])return xe;let n=new vt(t),r=await i.getAccountInfo(n);return r&&(xe[t]=new Ce({key:n,state:Ce.deserialize(r.data)})),xe};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 hn,PublicKey as Wo,Transaction as In,TransactionMessage as qo,VersionedTransaction as Bn}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Uo}from"@solana/spl-token";var Tn=E("Raydium_txUtil"),Sn=1644;function lt(i){let t=[],n=[];return i.microLamports&&(t.push(kn.setComputeUnitPrice({microLamports:i.microLamports})),n.push(Z.SetComputeUnitPrice)),i.units&&(t.push(kn.setComputeUnitLimit({units:i.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(i,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=i.getLatestBlockhash)==null?void 0:r.call(i,{commitment:n})))==null?void 0:u.blockhash}async function mt(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 Dt(i,t){i.length<1&&Tn.logWithError(`no instructions provided: ${i.toString()}`),t.length<1&&Tn.logWithError(`no signers provided:, ${t.toString()}`);let n=new In;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...i);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Sn}catch{return!1}}function me(i,t){let[n,r]=Wo.findProgramAddressSync(i,t);return{publicKey:n,nonce:r}}function Xe({instructions:i,payer:t,signers:n}){return Dt(i,[t,...n])}function Ye({instructions:i,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=hn.generate().publicKey.toString()}){let m=new qo({payerKey:t,recentBlockhash:r,instructions:i}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Bn(m).serialize()).toString("base64").length<Sn}catch{return!1}}var Go=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),zo=i=>{let t=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Bn&&(t=Go(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 In&&(n.recentBlockhash||(n.recentBlockhash=Uo.toBase58()),n.feePayer||(n.feePayer=hn.generate().publicKey)),t.push(zo(n))}),console.log("simulate tx string:",t),t}var dt=2e3,pt=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 Yo.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}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Xo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(C({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new He;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:y}=u||{},P=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Wt(this.connection,n,this.signers.find(B=>B.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 h=await this.signAllTransactions([n]);if(this.signers.length)for(let B of h)try{B.sign(...this.signers)}catch{}return{txId:y?"":await this.connection.sendRawTransaction(h[0].serialize(),{skipPreflight:d}),signedTx:h[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:y,execute:async b=>{var K;let{sequentially:h,onTxUpdate:B,skipTxCount:x=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},I=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(h){let S=[],v=0;for(let _ of d){if(++v,v<=x)continue;let g=await Wt(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});S.push(g)}return{txIds:S,signedTxs:d}}return{txIds:await await Promise.all(d.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:A})))),signedTxs:d}}if(this.signAllTransactions){let S=d.map((_,g)=>(_.recentBlockhash=I,p[g].length&&_.sign(...p[g]),_));ke(S);let v=await this.signAllTransactions(S);if(h){let _=0,g=[],w=async()=>{if(!v[_])return;let k=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:A});g.push({txId:k,status:"sent",signedTx:v[_]}),B==null||B([...g]),_++;let R=!1,O=null,V=null,re=q=>{O!==null&&clearInterval(O),V!==null&&this.connection.removeSignatureListener(V);let W=g.findIndex(J=>J.txId===k);if(W>-1){if(g[W].status==="error"||g[W].status==="success")return;g[W].status=q.err?"error":"success"}B==null||B([...g]),q.err||w()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var q;if(R){clearInterval(O);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(R=!0,clearInterval(O),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){R=!0,clearInterval(O),console.error("getTransaction timeout:",W,k)}},dt)),V=this.connection.onSignature(k,q=>{if(R){this.connection.removeSignatureListener(V);return}R=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:g.map(k=>k.txId),signedTxs:v}}else{let _=[];for(let g=0;g<v.length;g+=1){let w=await this.connection.sendRawTransaction(v[g].serialize(),{skipPreflight:A});_.push(w)}return{txIds:_,signedTxs:v}}}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 M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,d=se(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=C(C({},this.cluster==="devnet"?await Et(this.connection):await Vt(this.connection)),n),y=Array.from(new Set([...r,...this.lookupTableAddress])),P=[];for(let I of y)p[I]===void 0&&P.push(new Le(I));let b=await _t({connection:this.connection,address:P});for(let[I,K]of Object.entries(b))p[I]=K;let h=u?Le.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),B=new Qe({payerKey:this.feePayer,recentBlockhash:h,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let x=new Ze(B);return x.sign(this.signers),{builder:this,transaction:x,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:K=!0,sendAndConfirm:S,notSendToRpc:v}=I||{};if(ke([x]),(_=this.owner)!=null&&_.isKeyPair){let g=await this.connection.sendTransaction(x,{skipPreflight:K});return S&&await mt(this.connection,g),{txId:g,signedTx:x}}if(this.signAllTransactions){let g=await this.signAllTransactions([x]);if(this.signers.length)for(let w of g)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(g[0],{skipPreflight:K}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),d=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],y=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(b=>{b.some(h=>h.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(b,h)=>{b.sign(p[h])}),{builder:this,transactions:d,signers:p,instructionTypes:y,buildProps:r,execute:async b=>{var A;let{sequentially:h,onTxUpdate:B,recentBlockHash:x,skipPreflight:M=!0}=b||{};if(x&&d.forEach(I=>I.message.recentBlockhash=x),ke(d),(A=this.owner)!=null&&A.isKeyPair){if(h){let I=[];for(let K of d){let S=await this.connection.sendTransaction(K,{skipPreflight:M});await mt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:d}}return{txIds:await Promise.all(d.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:M}))),signedTxs:d}}if(this.signAllTransactions){let I=await this.signAllTransactions(d);if(h){let K=0,S=[],v=async()=>{if(!I[K])return;let _=await this.connection.sendTransaction(I[K],{skipPreflight:M});S.push({txId:_,status:"sent",signedTx:I[K]}),B==null||B([...S]),K++;let g=!1,w=null,k=null,R=O=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=S.findIndex(re=>re.txId===_);if(V>-1){if(S[V].status==="error"||S[V].status==="success")return;S[V].status=O.err?"error":"success"}B==null||B([...S]),O.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var O;if(g){clearInterval(w);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:1});V&&(g=!0,clearInterval(w),R({err:((O=V.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){g=!0,clearInterval(w),console.error("getTransaction timeout:",V,_)}},dt)),k=this.connection.onSignature(_,O=>{if(g){this.connection.removeSignatureListener(k);return}g=!0,R(O)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let K=[];for(let S=0;S<I.length;S+=1){let v=await this.connection.sendTransaction(I[S],{skipPreflight:M});K.push(v)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var B;let h=t||{},{splitIns:n=[],computeBudgetConfig:r}=h,u=se(h,["splitIns","computeBudgetConfig"]),m=r?lt(r):{instructions:[],instructionTypes:[]},d=this.signers.reduce((x,M)=>F(C({},x),{[M.publicKey.toBase58()]:M}),{}),p=[],y=[],P=[],b=0;if(this.allInstructions.forEach(x=>{let M=[...P,x],A=r?[...m.instructions,...M]:M,K=[...new Set(M.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(S=>new Le(S));if(x!==n[b]&&P.length<12&&(Xe({instructions:A,payer:this.feePayer,signers:K})||Xe({instructions:M,payer:this.feePayer,signers:K})))P.push(x);else{if(P.length===0)throw Error("item ins too big");b+=x===n[b]?1:0,Xe({instructions:r?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:K})?p.push(new He().add(...m.instructions,...P)):p.push(new He().add(...P)),y.push(Array.from(new Set(P.map(S=>S.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(S=>d[S]).filter(S=>S!==void 0)),P=[x]}}),P.length>0){let M=[...new Set(P.map(A=>A.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(A=>d[A]).filter(A=>A!==void 0);Xe({instructions:r?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new He().add(...m.instructions,...P)):p.push(new He().add(...P)),y.push(M)}return p.forEach(x=>x.feePayer=this.feePayer),(B=this.owner)!=null&&B.signer&&y.forEach(x=>{x.some(M=>M.publicKey.equals(this.owner.publicKey))||x.push(this.owner.signer)}),{builder:this,transactions:p,signers:y,instructionTypes:this.instructionTypes,execute:async x=>{var _;let{sequentially:M,onTxUpdate:A,skipTxCount:I=0,recentBlockHash:K,skipPreflight:S=!0}=x||{},v=K!=null?K:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(g,w)=>{g.recentBlockhash=v,y[w].length&&g.sign(...y[w])}),ke(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let g=0,w=[];for(let k of p){if(++g,g<=I){w.push("tx skipped");continue}let R=await Wt(this.connection,k,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});w.push(R)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async g=>await this.connection.sendRawTransaction(g.serialize(),{skipPreflight:S}))),signedTxs:p}}if(this.signAllTransactions){let g=await this.signAllTransactions(p.slice(I,p.length)),w=[...p.slice(0,I),...g];if(M){let k=0,R=[],O=async()=>{if(!w[k])return;k<I&&(R.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...R]),k++,O());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:S});R.push({txId:V,status:"sent",signedTx:w[k]}),A==null||A([...R]),k++;let re=!1,q=null,W=null,J=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let ne=R.findIndex(pe=>pe.txId===V);if(ne>-1){if(R[ne].status==="error"||R[ne].status==="success")return;R[ne].status=G.err?"error":"success"}A==null||A([...R]),G.err||O()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:1});ne&&(re=!0,clearInterval(q),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){re=!0,clearInterval(q),console.error("getTransaction timeout:",ne,V)}},dt)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await O(),{txIds:R.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let R=0;R<w.length;R+=1){let O=await this.connection.sendRawTransaction(w[R].serialize(),{skipPreflight:S});k.push(O)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let v=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:d=12}=v,p=se(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),y=C(C({},this.cluster==="devnet"?await Et(this.connection):await Vt(this.connection)),u),P=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let g of P)y[g]===void 0&&b.push(new Le(g));let h=await _t({connection:this.connection,address:b});for(let[g,w]of Object.entries(h))y[g]=w;let B=n?lt(n):{instructions:[],instructionTypes:[]},x=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((g,w)=>F(C({},g),{[w.publicKey.toBase58()]:w}),{}),A=[],I=[],K=[],S=0;if(this.allInstructions.forEach(g=>{let w=[...K,g],k=n?[...B.instructions,...w]:w;if(g!==r[S]&&K.length<d&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:y})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:y})))K.push(g);else{if(K.length===0)throw Error("item ins too big");S+=g===r[S]?1:0;let R={};for(let O of[...new Set(P)])y[O]!==void 0&&(R[O]=y[O]);if(n&&Ye({instructions:[...B.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:x})){let O=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new Ze(O))}else{let O=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new Ze(O))}I.push(Array.from(new Set(K.map(O=>O.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(O=>M[O]).filter(O=>O!==void 0)),K=[g]}}),K.length>0){let w=[...new Set(K.map(k=>k.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Ye({instructions:[...B.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:y,recentBlockhash:x})){let k=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...B.instructions,...K]}).compileToV0Message(Object.values(y));A.push(new Ze(k))}else{let k=new Qe({payerKey:this.feePayer,recentBlockhash:x,instructions:[...K]}).compileToV0Message(Object.values(y));A.push(new Ze(k))}I.push(w)}return(_=this.owner)!=null&&_.signer&&I.forEach(g=>{g.some(w=>w.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),A.forEach((g,w)=>{g.sign(I[w])}),{builder:this,transactions:A,buildProps:t,signers:I,instructionTypes:this.instructionTypes,execute:async g=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:R=0,recentBlockHash:O,skipPreflight:V=!0}=g||{};if(A.map(async(q,W)=>{I[W].length&&q.sign(I[W]),O&&(q.message.recentBlockhash=O)}),ke(A),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let J of A){if(++q,q<=R){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:V});await mt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let q=await this.signAllTransactions(A.slice(R,A.length)),W=[...A.slice(0,R),...q];if(w){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<R){G.push({txId:"",status:"success",signedTx:W[J]}),k==null||k([...G]),J++,ne();return}let pe=await this.connection.sendTransaction(W[J],{skipPreflight:V});G.push({txId:pe,status:"sent",signedTx:W[J]}),k==null||k([...G]),J++;let We=!1,Be=null,nt=null,cn=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(go=>go.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(We){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:1});fe&&(We=!0,clearInterval(Be),cn({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){We=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},dt)),nt=this.connection.onSignature(pe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,cn(Ae)},"confirmed"),this.connection.getSignatureStatus(pe)};return ne(),{txIds:[],signedTxs:W}}else{let J=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:V});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var qt=(...i)=>i.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),ie=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=E(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({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(qt(t))}logInfo(...t){this.logger.info(qt(t))}logAndCreateError(...t){let n=qt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Yc,SystemProgram as Qc}from"@solana/web3.js";import jc from"bn.js";import{createCloseAccountInstruction as nl,createInitializeAccountInstruction as ol,createTransferInstruction as il,TOKEN_PROGRAM_ID as rl}from"@solana/spl-token";import{Keypair as Mc,PublicKey as Fc}from"@solana/web3.js";import Vc from"bn.js";import{TOKEN_PROGRAM_ID as Wc}from"@solana/spl-token";import{PublicKey as ri}from"@solana/web3.js";import Ln,{isBN as On}from"bn.js";import{bits as Ho,BitStructure as Eu,blob as Qo,Blob as Du,cstr as Wu,f32 as qu,f32be as Uu,f64 as Gu,f64be as zu,greedy as Xu,Layout as Zo,ns64 as Yu,ns64be as Hu,nu64 as Qu,nu64be as Zu,offset as $o,s16 as $u,s16be as ju,s24 as Ju,s24be as ec,s32 as jo,s32be as tc,s40 as nc,s40be as oc,s48 as ic,s48be as rc,s8 as ac,seq as Jo,struct as sc,Structure as ei,u16 as ti,u16be as uc,u24 as cc,u24be as lc,u32 as ni,u32be as mc,u40 as dc,u40be as pc,u48 as fc,u48be as yc,u8 as oi,UInt as ii,union as bc,Union as gc,unionLayoutDiscriminator as Pc,utf8 as Ac}from"@solana/buffer-layout";var ft=Zo,Kn=ei;var Ut=ii;var xn=oi,H=ti;var yt=ni;var ue=jo;var Cn=Jo;var N=Qo;var Gt=Ho,Rn=$o;var he=class extends ft{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Ln(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 Ln(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},bt=class extends ft{constructor(n){super(8,n);this._lower=Gt(yt(),!1),this._upper=Gt(yt(),!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 C(C({},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 Ut(1,i)}function Y(i){return new Ut(4,i)}function e(i){return new he(8,!1,i)}function L(i){return new he(16,!1,i)}function Nn(i){return new he(1,!0,i)}function Oe(i){return new he(8,!0,i)}function Mn(i){return new he(16,!0,i)}var $e=class extends ft{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 $e(N(32),t=>new ri(t),t=>t.toBuffer(),i)}function ae(i){return new $e(xn(),ai,si,i)}function ai(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function si(i){return i?1:0}function Xt(i,t){let n=yt("length"),r=l([n,f(i,Rn(n,-n.span),"values")]);return new $e(r,({values:u})=>u,u=>({values:u}),t)}var zt=class extends Kn{decode(t,n){return super.decode(t,n)}};function l(i,t,n){return new zt(i,t,n)}function f(i,t,n){let r,u=typeof t=="number"?t:On(t)?t.toNumber():new Proxy(t,{get(m,d){if(!r){let p=Reflect.get(m,"count");r=On(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(r=p),Reflect.set(m,d,p)}});return Cn(i,u,n)}var gt=l([o("mint"),o("owner"),e("amount"),Y("delegateOption"),o("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as bg,SystemProgram as gg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Ag}from"@solana/spl-token";import{PublicKey as Ol}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ml}from"@solana/spl-token";import{PublicKey as T}from"@solana/web3.js";var vn=new T("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),_n=new T("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Vn=new T("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Yt=new T("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Vl=new T("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ci=new T("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),En=new T("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Dn=new T("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),El=new T("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),li=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Wn=new T("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),mi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),di=new T("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),qn=new T("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Dl=new T("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),pi=new T("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ht=new T("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),fi=new T("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Wl=new T("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),yi=new T("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),bi=new T("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),gi=new T("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ql=new T("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Ul=new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Gl=new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),zl=new T("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Xl=new T("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Pe={OPEN_BOOK_PROGRAM:new T("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new T("Ray1111111111111111111111111111111111111111"),AMM_V4:new T("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new T("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new T("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new T("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new T("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new T("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new T("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new T("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new T("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:T.default,Router:new T("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new T("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new T("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new T("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new T("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new T("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new T("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new T("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new T("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new T("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new T("Ray1111111111111111111111111111111111111111")};import Cg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as $f,TOKEN_2022_PROGRAM_ID as jf,TOKEN_PROGRAM_ID as Jf}from"@solana/spl-token";import{PublicKey as ty}from"@solana/web3.js";import oy from"bn.js";import ry from"decimal.js";import{TOKEN_PROGRAM_ID as am}from"@solana/spl-token";import{PublicKey as lm}from"@solana/web3.js";var Pi=l([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Pf,TOKEN_2022_PROGRAM_ID as Af,TOKEN_PROGRAM_ID as wf}from"@solana/spl-token";import{Keypair as hf,PublicKey as If,SystemProgram as Sf,TransactionInstruction as Kf}from"@solana/web3.js";import Cf from"bn.js";import D from"bn.js";var Me=new D(1).shln(64);var Ai=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),wi=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),ki=new D("59543866431248"),Ti=new D("184467440737095516"),hi=new D("15793534762490258745");var Zt=60,Tm=new D("18446743708227953217"),Ii=[{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 je=3,Un=100;var Gn=10,zn=100,At=14;var $=new D(0),_e=new D(1),hm=new D(-1);var Im=new D("18446744073700000000");var Bi=l([N(8),c("bump"),H("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),f(Y(),1),o("fundOwner"),f(e(),3)]),Si=l([Y("blockTimestamp"),Oe("tickCumulative"),f(e(),4)]),Xn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),f(Si,Un,"observations"),f(e(),4)]),Ki=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),f(c(),46)]),xi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),L("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),L("growthGlobalX64")]),$t=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),L("liquidity"),L("sqrtPriceX64"),ue("tickCurrent"),Y(),L("feeGrowthGlobalX64A"),L("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(L(),4),c("status"),c("feeOn"),N(6),f(xi,je,"rewardInfos"),N(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ki.replicate("dynamicFeeInfo"),f(e(),46)]),Ci=l([L("growthInsideLastX64"),e("rewardAmountOwed")]),Ri=l([N(8),c("bump"),o("nftMint"),o("poolId"),ue("tickLower"),ue("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Ci,je,"rewardInfos"),e("recentEpoch"),f(e(),7)]),xm=l([N(8),c("bump"),o("poolId"),ue("tickLower"),ue("tickUpper"),L("liquidity"),L("feeGrowthInsideLastX64A"),L("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(L(),je,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),Li=l([ue("tick"),Mn("liquidityNet"),L("liquidityGross"),L("feeGrowthOutsideX64A"),L("feeGrowthOutsideX64B"),f(L(),je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),L("unfilledRatioX64"),f(Y(),3)]),Yn=l([N(8),o("poolId"),ue("startTickIndex"),f(Li,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),f(c(),107)]),Oi=l([N(8),c("bump"),f(o(),Gn,"operationOwners"),f(o(),zn,"whitelistMints")]),Ni=l([N(8),o("poolId"),o("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),L("unfilledRatioX64"),f(e(),4)]),Hn=l([N(8),o("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),Cm=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),f(e(),8)]),Mi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),f(e(),4)]),Rm=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),f(e(),8)]),Fi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),f(e(),8)]);import Nm from"bn.js";var Gm=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Vi=Buffer.from("pool_vault","utf8"),zm=Buffer.from("pool_reward_vault","utf8"),Xm=Buffer.from("position","utf8"),Ym=Buffer.from("tick_array","utf8"),Hm=Buffer.from("operation","utf8"),Qm=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Zm=Buffer.from("observation","utf8"),$m=Buffer.from("support_mint","utf8"),jm=Buffer.from("dynamic_fee_config","utf8"),Jm=Buffer.from("permission","utf8");var ed=Buffer.from("locked_position","utf8");import{sha256 as Ji}from"js-sha256";import Ei from"bn.js";import id from"decimal.js";var ad=new Ei(1).shln(256).subn(1);import Id from"bn.js";import pd from"bn.js";import yd from"decimal.js";import Cd from"bn.js";import Ld from"decimal.js";import{PublicKey as gp}from"@solana/web3.js";import Ap from"bn.js";import{TOKEN_2022_PROGRAM_ID as Kp,TOKEN_PROGRAM_ID as xp}from"@solana/spl-token";import Op from"decimal.js";import ap from"bn.js";import Yd from"bn.js";import Up from"bn.js";function j(i){let t=`global:${i}`;return Buffer.from(Ji.digest(t)).slice(0,8)}Xn.span;var Vf=E("Raydium_Clmm"),Ef={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 tn}from"@solana/web3.js";var or=l([c("instruction")]),ir=l([c("instruction")]),rr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),L("accRewardPerShare"),o("rewardVault"),o("rewardMint"),o("rewardSender"),e("rewardType"),f(e(),15,"padding")]),ar=l([e("state"),e("nonce"),o("lpVault"),o("rewardVault"),o(),o(),e(),e(),e("totalReward"),L("perShareReward"),e("lastSlot"),e("perSlotReward")]),sr=l([e("state"),e("nonce"),o("lpVault"),o("rewardVaultA"),e("totalRewardA"),L("perShareRewardA"),e("perSlotRewardA"),c("option"),o("rewardVaultB"),N(7),e("totalRewardB"),L("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),o()]),ur=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),L("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),o("lpMint"),o("lpVault"),f(rr,5,"rewardInfos"),o("creator"),o(),f(e(),32,"padding")]),cr=new Proxy(ar,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(C({},u),{version:3,rewardInfos:[{rewardVault:u.rewardVault,totalReward:u.totalReward,perSlotReward:u.perSlotReward,perShareReward:u.perShareReward}]})}:Reflect.get(i,t,n)}}),lr=new Proxy(sr,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(C({},u),{version:5,rewardInfos:[{rewardVault:u.rewardVaultA,totalReward:u.totalRewardA,perSlotReward:u.perSlotRewardA,perShareReward:u.perShareRewardA},{rewardVault:u.rewardVaultB,totalReward:u.totalRewardB,perSlotReward:u.perSlotRewardB,perShareReward:u.perShareRewardB}]})}:Reflect.get(i,t,n)}}),to=new Proxy(ur,{get(i,t,n){return t==="decode"?(...r)=>{let u=i.decode(...r);return F(C({},u),{version:6,rewardInfos:u.rewardInfos.map(m=>{var d;return F(C({},m),{rewardType:((d=Object.entries(tt).find(p=>String(p[1])===m.rewardType.toString()))!=null?d:["Standard SPL"])[0]})})})}:Reflect.get(i,t,n)}}),mr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),dr=l([c("instruction"),e("nonce"),f(mr,5,"rewardTimeInfo")]),pr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),fr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),My=l([e("state"),o("id"),o("owner"),e("deposited"),f(e(),1,"rewardDebts")]),no=l([e("state"),o("id"),o("owner"),e("deposited"),f(L(),1,"rewardDebts"),e(""),e("voteLockedBalance"),f(e(),15)]),Fy=l([e("state"),o("id"),o("owner"),e("deposited"),f(e(),2,"rewardDebts")]),yr=l([e("state"),o("id"),o("owner"),e("deposited"),f(L(),2,"rewardDebts"),f(e(),17)]),br=l([e(),e("state"),o("id"),o("owner"),e("deposited"),f(L(),5,"rewardDebts"),f(e(),16)]),gr=l([c("instruction"),e("amount")]),Pr=l([o("mint"),o("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Nn("digitShift"),f(c(),7,"reserved1"),f(e(),7,"reserved2")]),Ar=l([N(8),o("governanceProgramId"),o("realm"),o("realmGoverningTokenMint"),o("realmAuthority"),f(c(),32,"reserved1"),f(Pr,4,"votingMints"),Oe("timeOffset"),c("bump"),f(c(),7,"reserved2"),f(e(),11,"reserved3")]),wr=l([Oe("startTime"),Oe("endTime"),c("kind"),f(c(),15,"reserved")]),kr=l([f(wr,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),f(c(),29,"reserved")]),Tr=l([N(8),o("voterAuthority"),o("registrar"),f(kr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),f(c(),94,"reserved")]);import{NATIVE_MINT as Gy}from"@solana/spl-token";var zy=E("Raydium_farm_config"),hr=new tn("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ir=new tn("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var Xy=new tn("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},oo={[vn.toString()]:3,[_n.toString()]:4,[Vn.toString()]:5,[Yt.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 Lb,SystemProgram as Ob,SYSVAR_CLOCK_PUBKEY as Nb,SYSVAR_RENT_PUBKEY as Mb,TransactionInstruction as Fb}from"@solana/web3.js";import _b from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Eb,createAssociatedTokenAccountIdempotentInstruction as Db,TOKEN_PROGRAM_ID as Wb}from"@solana/spl-token";import sb from"bn.js";import{PublicKey as jy}from"@solana/web3.js";import eb from"bn.js";async function io(i){new Promise(t=>setTimeout(t,i))}var wb=E("Raydium.farm.util");var jb=E("Raydium_farm_instruction"),Jb={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};import Dg from"bn.js";import{PublicKey as HA}from"@solana/web3.js";import{AccountLayout as $A,MintLayout as jA,NATIVE_MINT as JA,TOKEN_PROGRAM_ID as tw}from"@solana/spl-token";import Ug from"bn.js";import ao from"bn.js";var Or=new ao(25),Nr=new ao(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as mP,TOKEN_PROGRAM_ID as dP}from"@solana/spl-token";import{PublicKey as fP,SystemProgram as yP,SYSVAR_RENT_PUBKEY as bP,TransactionInstruction as gP}from"@solana/web3.js";import BP from"bn.js";var Mr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Fr=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),sP=l([c("instruction"),c("nonce")]),vr=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"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),e("swapBase2QuoteFee"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("withdrawQueue"),o("lpVault"),o("owner"),e("lpReserve"),f(e(),3,"padding")]),uP=l([e("accountType"),e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalsValue"),e("abortTradeFactor"),e("priceTickMultiplier"),e("priceTick"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),L("swapBaseInAmount"),L("swapQuoteOutAmount"),L("swapQuoteInAmount"),L("swapBaseOutAmount"),e("swapQuote2BaseFee"),e("swapBase2QuoteFee"),o("baseVault"),o("quoteVault"),o("baseMint"),o("quoteMint"),o("lpMint"),o("modelDataAccount"),o("openOrders"),o("marketId"),o("marketProgramId"),o("targetOrders"),o("owner"),f(e(),64,"padding")]),_r=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Vr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var Er=l([e("fee")]);var xP=E("Raydium_liquidity_instruction");var Dr=5e4,Wr=l([e("x"),e("y"),e("price")]),OP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),f(Wr,Dr,"DataElement")]);import{PublicKey as GP}from"@solana/web3.js";import XP from"decimal.js";import{TOKEN_PROGRAM_ID as HP}from"@solana/spl-token";import{PublicKey as vP}from"@solana/web3.js";var EP=E("Raydium_liquidity_serum");import kw from"bn.js";import hw from"decimal.js";import{TOKEN_PROGRAM_ID as kA}from"@solana/spl-token";import{PublicKey as hA}from"@solana/web3.js";import BA from"bn.js";import{SystemProgram as uA,SYSVAR_RENT_PUBKEY as cA,Transaction as lA,TransactionInstruction as mA}from"@solana/web3.js";import{createInitializeAccountInstruction as pA,TOKEN_PROGRAM_ID as fA}from"@solana/spl-token";function qr(i="accountFlags"){let t=new bt(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 Ur=l([N(5),qr("accountFlags"),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as $k}from"@solana/web3.js";import{AccountLayout as Jk,NATIVE_MINT as eT,TOKEN_2022_PROGRAM_ID as tT,TOKEN_PROGRAM_ID as nT,createAssociatedTokenAccountIdempotentInstruction as oT}from"@solana/spl-token";import Yw from"bn.js";import Zr from"bn.js";var Nw=new Zr(0);import Ew from"bn.js";import $r from"bn.js";var Tt=new $r(1e6);import mT from"bn.js";import pT 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 ea=l([N(8),c("bump"),ae("disableCreatePool"),H("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),o("protocolOwner"),o("fundOwner"),e("creatorFeeRate"),e("creatorFeeShareRate"),f(e(),14)]),uo=l([N(8),o("configId"),o("poolCreator"),o("vaultA"),o("vaultB"),o("mintLp"),o("mintA"),o("mintB"),o("mintProgramA"),o("mintProgramB"),o("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ae("enableCreatorFee"),f(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),f(e(),28)]),Ok=l([N(8),o("configId"),f(e(),30)]),Nk=l([N(8),c("bump"),o("creator"),o("ammConfig"),e("shareRate"),f(e(),8)]);import{PublicKey as BK,SystemProgram as SK}from"@solana/web3.js";import{createTransferInstruction as xK,TOKEN_PROGRAM_ID as CK,TOKEN_2022_PROGRAM_ID as RK,createAssociatedTokenAccountIdempotentInstruction as LK,createSyncNativeInstruction as NK,createTransferCheckedInstruction as MK}from"@solana/spl-token";import ka from"bn.js";import _K from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as kh,TOKEN_2022_PROGRAM_ID as Th,TOKEN_PROGRAM_ID as hh}from"@solana/spl-token";import{SystemProgram as Kh,TransactionInstruction as xh}from"@solana/web3.js";import oa from"bn.js";var ah=Buffer.from("vault_auth_seed","utf8"),sh=Buffer.from("global_config","utf8"),uh=Buffer.from("pool_vesting","utf8"),ch=Buffer.from("platform_config","utf8"),lh=Buffer.from("platform_fee_vault_auth_seed","utf8"),mh=Buffer.from("creator_fee_vault_auth_seed","utf8"),dh=Buffer.from("platform_global_access","utf8"),ph=Buffer.from("platform_allow_config","utf8"),fh=Buffer.from("platform_curve_rule","utf8");var Lh={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),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 Oh=new oa("18446744073709551615");var ia=l([e(),e("epoch"),c("curveType"),H("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"),f(e(),16)]),ra=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),aa=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"),ra.replicate("vestingSchedule"),o("configId"),o("platformId"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),f(c(),54)]),vh=l([e(),e("epoch"),o("poolId"),o("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),f(e(),8)]),sa=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),_h=l([e("epoch"),c("index"),o("configId"),sa.replicate("bondingCurveParam"),f(e(),50)]),lo=l([e(),e("epoch"),o("platformClaimFeeWallet"),o("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),f(c(),64,"name"),f(c(),256,"web"),f(c(),256,"img"),o("cpConfigId"),e("creatorFeeRate"),o("transferFeeExtensionAuth"),o("platformVestingWallet"),e("platformVestingScale"),o("platformCpCreator"),c("restrictGlobalConfig"),c("restrictCurveParam"),o("curveRuleManager"),f(c(),78)]),ua=l([c("field"),c("op"),L("value")]),ca=l([H("groupId"),e("epoch"),Xt(ua,"constraints")]),la=l([e(),c("bump"),c("version"),o("platformId"),o("configId"),e("epoch"),f(e(),8),Xt(ca,"groups")]);import{TOKEN_2022_PROGRAM_ID as Dh,TOKEN_PROGRAM_ID as Wh}from"@solana/spl-token";import ma from"bn.js";var Jh=new ma(1e6);import oI from"bn.js";import rI from"decimal.js";import _I from"bn.js";import EI from"decimal.js";import mI from"bn.js";import pI from"decimal.js";import hI from"bn.js";import BI from"decimal.js";import fo from"bn.js";import on from"decimal.js";var Bt=class{static _multipler(t){return new on(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new on(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))}};Bt._Q64=new on(new fo(1).shln(64).toString());import{NATIVE_MINT as eS,TOKEN_2022_PROGRAM_ID as tS,TOKEN_PROGRAM_ID as nS,createAssociatedTokenAccountIdempotentInstruction as iS,createSyncNativeInstruction as rS,getTransferFeeConfig as aS,unpackMint as sS}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as Pa,SystemProgram as lS}from"@solana/web3.js";import gS from"decimal.js";var PS={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 Pa("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},AS=new Q(1e4);var Aa={[En.toBase58()]:3};var wa=l([N(5),N(8),o("ownAddress"),e("vaultSignerNonce"),o("baseMint"),o("quoteMint"),o("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),o("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),o("requestQueue"),o("eventQueue"),o("bids"),o("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),N(7)]);import{PublicKey as US}from"@solana/web3.js";var HS=E("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as oK,TOKEN_2022_PROGRAM_ID as iK,TOKEN_PROGRAM_ID as rK}from"@solana/spl-token";import{PublicKey as sK,SystemProgram as uK,TransactionInstruction as cK}from"@solana/web3.js";import mK from"bn.js";var px=new ka(0);import{PublicKey as Ta,Transaction as rn,TransactionInstruction as ha}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ia}from"@solana/spl-token";import yo from"bn.js";var te=class extends ie{static getPdaPoolId(t,n){return me([te.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,u){return me([te.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 d=r.map(b=>te.getPdaPoolId(n,b).publicKey),p=[];for(let b=0;b<te.VERSION_PROJECT.length;b++)p.push(...d.map(h=>te.getPdaOwnerId(n,h,u,b).publicKey));let y=await ye(t,[...d,...p]),P=[];for(let b=0;b<y.length;b++){let h=Math.floor(b/r.length),B=b%r.length,x=d[B],M=p[b],A=y[B],I=y[r.length+b];if(!(A&&I)||A.data.length!==te.POOL_LAYOUT.span||I.data.length!==te.OWNER_LAYOUT.span)continue;let K=te.POOL_LAYOUT.decode(A.data),S=te.OWNER_LAYOUT.decode(I.data),v=K.openTime.toNumber(),_=K.endTime.toNumber(),g=S.tokenInfo.map(R=>R.debtAmount.gt(new yo(0))).filter(R=>!R).length!==3,w=m>v&&m<_&&K.status===1,k=g&&w;P.push({programId:n,poolId:x,ammId:K.ammId,ownerAccountId:M,snapshotLpAmount:S.lpAmount,project:te.VERSION_PROJECT[h],openTime:v,endTime:_,canClaim:k,canClaimErrorType:g?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((R,O)=>({mintAddress:R.mintAddress,mintVault:R.mintVault,mintDecimals:R.mintDecimals,perLpLoss:R.perLpLoss,debtAmount:S.tokenInfo[O].debtAmount.add(S.tokenInfo[O].claimedAmount)}))})}return P}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,d=[];for(let P of t.tokenInfo){let{account:b,instructionParams:h}=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});h&&u.addInstruction(h),d.push(b)}u.addInstruction({instructions:[te.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:d}})]});let{transaction:p,signers:y}=u.build();return[{transaction:p,signer:y}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let u=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,d={};for(let b of t){let h=[];for(let B of b.tokenInfo){let{account:x,instructionParams:M}=await this.scope.account.getOrCreateTokenAccount({mint:B.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:B.mintAddress.equals(ee.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!B.mintAddress.equals(ee.WSOL.mint),associatedOnly:B.mintAddress.equals(ee.WSOL.mint)?!1:n.associatedOnly});M&&u.addInstruction(M),x&&(d[B.mintAddress.toString()]=x,h.push(x))}u.addInstruction({instructions:[te.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:h}})]})}let{transaction:p,signers:y}=u.build(),P=u.allInstructions;return Dt(P,[m,...y.map(b=>b.publicKey)])?[{transaction:p,signer:y}]:[{transaction:new rn().add(...P.slice(0,u.AllTxData.instructions.length-1)),signer:y},{transaction:new rn().add(...P.slice(u.AllTxData.instructions.length-1)),signer:[]},{transaction:new rn().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(y=>({pubkey:y,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:y})=>({pubkey:y,isSigner:!1,isWritable:!0})),{pubkey:Ia,isSigner:!1,isWritable:!1}],d=Buffer.alloc(u.span);u.encode({},d);let p=Buffer.from([10,66,208,184,161,6,191,98,...d]);return new ha({keys:m,programId:t,data:p})}},ce=te;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=l([N(8),c("bump"),c("status"),e("openTime"),e("endTime"),o("ammId"),f(l([c("mintDecimals"),o("mintAddress"),o("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),10,"padding")]),ce.OWNER_LAYOUT=l([N(8),c("bump"),c("version"),o("poolId"),o("owner"),e("lpAmount"),f(l([o("mintAddress"),e("debtAmount"),e("claimedAmount")]),te.CLAIMED_NUM,"tokenInfo"),f(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new Ta(t)),ce.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ce.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];import{PublicKey as Rx}from"@solana/web3.js";import{getTransferFeeConfig as Ox,MintLayout as Nx,TOKEN_2022_PROGRAM_ID as Mx,TOKEN_PROGRAM_ID as Fx,unpackMint as vx}from"@solana/spl-token";var cR=new Ie(2),lR=new Ie(3),mR=new Ie(5),Oo=new Ie(10),dR=new Ie(100),pR=new Ie(1e3),fR=new Ie(1e4);function xt(i,t=1,n=[]){let r=[...i];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}var De=E("Raydium_Api"),sn=new Map,un=new Map;async function aL(i,t,n=1e3){let r;for(;r==null;)try{De.debug(`Request ${i} through endlessRetry`),r=await t()}catch(u){De.error(`Request ${i} failed, retry after ${n} ms`,u),await io(n)}return r}var an=class{constructor({cluster:t,timeout:n,logRequests:r,logCount:u,urlConfigs:m}){this.cluster=t,this.urlConfigs=m||{},this.logCount=u||1e3,this.api=bo.create({baseURL:this.urlConfigs.BASE_HOST||(this.cluster==="devnet"?An.BASE_HOST:X.BASE_HOST),timeout:n}),this.api.interceptors.request.use(d=>{let{method:p,baseURL:y,url:P}=d;return De.debug(`${p==null?void 0:p.toUpperCase()} ${y}${P}`),d},d=>(De.error("Request failed"),Promise.reject(d))),this.api.interceptors.response.use(d=>{let{config:p,data:y,status:P}=d,{method:b,baseURL:h,url:B}=p;return r&&ct({status:P,url:`${h}${B}`,params:p.params,data:y,logCount:this.logCount}),De.debug(`${b==null?void 0:b.toUpperCase()} ${h}${B} ${P}`),y},d=>{let{config:p,response:y={}}=d,{status:P}=y,{method:b,baseURL:h,url:B}=p;return r&&ct({status:P,url:`${h}${B}`,params:p.params,data:d.message,logCount:this.logCount}),De.error(`${b.toUpperCase()} ${h}${B} ${P||d.message}`),Promise.reject(d)})}async getClmmConfigs(){return(await this.api.get(this.urlConfigs.CLMM_CONFIG||X.CLMM_CONFIG)).data}async getClmmDynamicConfigs(){return(await this.api.get(this.urlConfigs.CLMM_DYNAMIC_CONFIG||X.CLMM_DYNAMIC_CONFIG)).data}async getCpmmConfigs(){return(await this.api.get(this.urlConfigs.CPMM_CONFIG||X.CPMM_CONFIG)).data}async getClmmPoolLines(t){return(await this.api.get(`${this.urlConfigs.POOL_POSITION_LINE||X.POOL_POSITION_LINE}?id=${t}`)).data}async getBlockSlotCountForSecond(t){if(!t)return 2;let r=(await bo.post(t,{id:"getRecentPerformanceSamples",jsonrpc:"2.0",method:"getRecentPerformanceSamples",params:[4]})).result.map(u=>u.numSlots);return r.reduce((u,m)=>u+m,0)/r.length/60}async getChainTimeOffset(){return(await this.api.get(this.urlConfigs.CHAIN_TIME||X.CHAIN_TIME)).data}async getRpcs(){return this.api.get(this.urlConfigs.RPCS||X.RPCS)}async getTokenList(){return(await this.api.get(this.urlConfigs.TOKEN_LIST||X.TOKEN_LIST)).data}async getJupTokenList(){return(await this.api.get("",{baseURL:this.urlConfigs.JUP_TOKEN_LIST||X.JUP_TOKEN_LIST})).map(n=>F(C({},n),{chainId:101,programId:n.tokenProgram,address:n.id,logoURI:n.icon,extensions:{},freeze_authority:null,permanent_delegate:null,mint_authority:n.mintAuthority||null,minted_at:Date.now().toString()}))}async getTokenInfo(t){return(await this.api.get((this.urlConfigs.MINT_INFO_ID||X.MINT_INFO_ID)+`?mints=${t.map(r=>r.toString()).join(",")}`)).data}async getPoolList(t={}){let{type:n="all",sort:r="liquidity",order:u="desc",showFarms:m=!1,nextPageId:d,pageSize:p=100}=t;return(await this.api.get((this.urlConfigs.POOL_LIST||X.POOL_LIST)+`?size=${p}&hasReward=${m}${n&&n!=="all"?`&poolType=${n}`:""}${r?`&sortField=${r}`:""}${u?`&sortType=${u}`:""}${d?`&nextPageId=${d}`:""}`)).data}async fetchPoolById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.POOL_SEARCH_BY_ID||X.POOL_SEARCH_BY_ID)+`?ids=${n}`)).data}async fetchPoolKeysById(t){let{idList:n}=t,r=[],u=n.filter(d=>sn.has(d)?(r.push(sn.get(d)),!1):!0),m=[];return u.length&&(m=(await this.api.get((this.urlConfigs.POOL_KEY_BY_ID||X.POOL_KEY_BY_ID)+`?ids=${u.join(",")}`)).data.filter(Boolean),m.forEach(p=>{sn.set(p.id,p)})),r.concat(m)}async fetchPoolByMints(t){let{mint1:n,mint2:r,type:u="all",sort:m,order:d="desc",nextPageId:p}=t,[y,P]=[n&&ge(n).toBase58(),r&&r!=="undefined"?ge(r).toBase58():""],[b,h]=P&&y>P?[P,y]:[y,P];if(!y&&!P)throw new Error("not search mints provided");return(await this.api.get((this.urlConfigs.POOL_SEARCH_MINT||X.POOL_SEARCH_MINT)+`?size=100&mint1=${b}${h?`&mint2=${h}`:""}${u&&u!=="all"?`&poolType=${u}`:""}${m?`&sortField=${m}`:""}${d?`&sortType=${d}`:""}${p?`&nextPageId=${p}`:""}`)).data}async fetchPoolByLpMints(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.POOL_SEARCH_LP||X.POOL_SEARCH_LP)+`?lps=${n}`)).data}async fetchFarmInfoById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_INFO||X.FARM_INFO)+`?ids=${n}`)).data}async fetchFarmKeysById(t){let{ids:n}=t;return(await this.api.get((this.urlConfigs.FARM_KEYS||X.FARM_KEYS)+`?ids=${n}`)).data}async fetchAvailabilityStatus(){return(await this.api.get(this.urlConfigs.CHECK_AVAILABILITY||X.CHECK_AVAILABILITY)).data}async fetchLaunchConfigs(){var n;if((n=un.get(this.cluster))!=null&&n.length)return un.get(this.cluster);let t=await this.api.get(this.cluster==="devnet"?"https://launch-mint-v1-devnet.raydium.io/main/configs":"https://launch-mint-v1.raydium.io/main/configs");return un.set(this.cluster,t.data.data),t.data.data}async fetchFarmPositions(t=""){return(await this.api.get(`${this.urlConfigs.OWNER_BASE_HOST||X.OWNER_BASE_HOST}`+(this.urlConfigs.OWNER_STAKE_FARMS||X.OWNER_STAKE_FARMS).replace("{owner}",t))).data}async fetchCpmmLockInfo(t){return await this.api.get(`${this.urlConfigs.CPMM_LOCK||X.CPMM_LOCK}?id=${t.toString()}`)}};export{an as Api,aL as endlessRetry};
//# sourceMappingURL=api.mjs.map