UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 76.6 kB
var bo=Object.defineProperty,go=Object.defineProperties;var Po=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(o,t,n)=>t in o?bo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,R=(o,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(o,n,t[n]);if(ot)for(var n of ot(t))un.call(t,n)&&an(o,n,t[n]);return o},D=(o,t)=>go(o,Po(t));var se=(o,t)=>{var n={};for(var r in o)sn.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ot)for(var r of ot(o))t.indexOf(r)<0&&un.call(o,r)&&(n[r]=o[r]);return n};import{PublicKey as ka}from"@solana/web3.js";import It from"decimal.js";import{TOKEN_PROGRAM_ID as Ta}from"@solana/spl-token";import{ComputeBudgetProgram as mn,Keypair as pn,PublicKey as ko,Transaction as fn,TransactionMessage as To,VersionedTransaction as yn}from"@solana/web3.js";import{get as cn,set as Ao}from"lodash";var Bt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},ln={},wo={};function _(o){let t=cn(ln,o);if(!t){let n=cn(wo,o);t=new Bt({name:o,logLevel:n}),Ao(ln,o,t)}return t}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{TOKEN_PROGRAM_ID as ho}from"@solana/spl-token";var dn=_("Raydium_txUtil"),bn=1644;function it(o){let t=[],n=[];return o.microLamports&&(t.push(mn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(mn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ke(o,t){var r,a;let n=t!=null?t:"confirmed";return(a=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:a.blockhash}async function rt(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let a=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(a),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function St(o,t){o.length<1&&dn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&dn.logWithError(`no signers provided:, ${t.toString()}`);let n=new fn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<bn}catch{return!1}}function oe(o,t){let[n,r]=ko.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function qe({instructions:o,payer:t,signers:n}){return St(o,[t,...n])}function Ue({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=pn.generate().publicKey.toString()}){let m=new To({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new yn(m).serialize()).toString("base64").length<bn}catch{return!1}}var Io=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Bo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof yn&&(t=Io(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ae(o){let t=[];return o.forEach(n=>{n instanceof fn&&(n.recentBlockhash||(n.recentBlockhash=ho.toBase58()),n.feePayer||(n.feePayer=pn.generate().publicKey)),t.push(Bo(n))}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as cR}from"@solana/spl-token";import{PublicKey as pR}from"@solana/web3.js";import Pa from"big.js";import WC from"bn.js";import Ie from"bn.js";import kC from"decimal.js";import{PublicKey as So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var at={chainId:101,address:So.default.toBase58(),programId:gn.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:gn.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 Ct}from"@solana/web3.js";import{PublicKey as z,SystemProgram as Pn,SYSVAR_RENT_PUBKEY as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";function xe({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Co=[xe({pubkey:xo,isWritable:!1}),xe({pubkey:Pn.programId,isWritable:!1}),xe({pubkey:Ko,isWritable:!1})];function Kt({publicKey:o,transformSol:t}){let n=An(o.toString());if(n instanceof z)return t&&n.equals(we)?fe:n;if(t&&n.toString()===we.toBase58())return fe;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 An(o){try{return new z(o)}catch{return o}}var xt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ge=new z("SysvarRent111111111111111111111111111111111"),Ga=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ro=new z("Sysvar1nstructions1111111111111111111111111"),Lo=Pn.programId,za=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Xa=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ya=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Qa=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Za=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ha=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ja=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),$a=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ja=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),es=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ts=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new z("So11111111111111111111111111111111111111112"),we=z.default;function ke(o){return Kt({publicKey:o,transformSol:!0})}var Rt=class{constructor({mint:t,decimals:n,symbol:r,name:a,skipMint:m=!1,isToken2022:f=!1}){if(t===we.toBase58()||t instanceof Ct&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Ct(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=m?Ct.default:Kt({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Rt;J.WSOL=new Rt(D(R({},le),{mint:le.address}));var Lt=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=Lt;ut.SOL=new Lt(at);import lt from"big.js";import Fo from"bn.js";import vo from"decimal.js-light";import ze from"bn.js";var wn=9007199254740991;function ne(o){let t=_("Raydium_parseBigNumberish");if(o instanceof ze)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new ze(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 ze(String(o))):typeof o=="bigint"?new ze(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new ze(0))}import Oo from"toformat";var No=Oo,Xe=No;var ct=_("module/fraction"),Ot=Xe(lt),Ye=Xe(vo),Vo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},_o={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},U=class{constructor(t,n=new Fo(1)){this.numerator=ne(t),this.denominator=ne(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new U(this.denominator,this.numerator)}add(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.add(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof U?t:new U(ne(t));return this.denominator.eq(n.denominator)?new U(this.numerator.sub(n.numerator),this.denominator):new U(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof U?t:new U(ne(t));return new U(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<=0&&ct.logWithError(`${t} is not positive.`),Ye.set({precision:t+1,rounding:Vo[r]});let a=new Ye(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||ct.logWithError(`${t} is not an integer.`),t<0&&ct.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=_o[r]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Eo from"bn.js";var Ss=new U(new Eo(100));var Os=_("Raydium_price");import{merge as Ix}from"lodash";import pc from"axios";import{PublicKey as Do}from"@solana/web3.js";import{MINT_SIZE as qs,TOKEN_PROGRAM_ID as Us,getTransferFeeConfig as Gs,unpackMint as zs}from"@solana/spl-token";var Nt=_("Raydium_accountInfo_util");async function ye(o,t,n){let{batchRequest:r,commitment:a="confirmed",chunkCount:m=100}=R({batchRequest:!1},n),f=Mt(t,m),p=new Array(f.length).fill([]);if(r){let g=f.map(C=>{let x=o._buildArgs([C.map(B=>B.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:x}}),S=Mt(g,10);p=(await(await Promise.all(S.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(x=>{if(x){let{data:B,executable:N,lamports:P,owner:A,rentEpoch:I}=x;return B.length!==2&&B[1]!=="base64"&&Nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(B[0],"base64"),executable:N,lamports:P,owner:new Do(A),rentEpoch:I}}return null})))}else try{p=await Promise.all(f.map(g=>o.getMultipleAccountsInfo(g,a)))}catch(g){g instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}function Mt(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as js}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Js}from"@solana/spl-token";import{PublicKey as h}from"@solana/web3.js";var kn=new h("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Tn=new h("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),hn=new h("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ft=new h("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ou=new h("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),In=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Bn=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),iu=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sn=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Kn=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ru=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vt=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xo=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),au=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Yo=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Zo=new h("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),su=new h("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),uu=new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),cu=new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),lu=new h("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),mu=new h("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var be={OPEN_BOOK_PROGRAM:new h("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new h("Ray1111111111111111111111111111111111111111"),AMM_V4:new h("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new h("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new h("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new h("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new h("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new h("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new h("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new h("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new h("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:h.default,Router:new h("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new h("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new h("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new h("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new h("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new h("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new h("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new h("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new h("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new h("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new h("Ray1111111111111111111111111111111111111111")};import fu from"bn.js";import{PublicKey as Vt,AddressLookupTableAccount as Le}from"@solana/web3.js";async function _t({connection:o,address:t,cluster:n="mainnet"}){let r=await ye(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Vt(m))),a={};for(let m=0;m<t.length;m++){let f=r[m],p=t[m];if(!f)continue;let g=new Le({key:p,state:Le.deserialize(f.data)});a[p.toString()]=g,n==="devnet"?Re[p.toString()]=g:Ce[p.toString()]=g}return a}var Ce={},Et=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ce[t])return Ce;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Ce[t]=new Le({key:n,state:Le.deserialize(r.data)})),Ce},Re={},Dt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Re[t])return Re;let n=new Vt(t),r=await o.getAccountInfo(n);return r&&(Re[t]=new Le({key:n,state:Le.deserialize(r.data)})),Re};import{PublicKey as Oe,sendAndConfirmTransaction as Wt,SystemProgram as Ho,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import jo from"axios";var mt=2e3,dt=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 jo.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}=it(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Ho.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Oe(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:a=[],endInstructionTypes:m=[],lookupTableAddress:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...f.filter(p=>p!==Oe.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(D(R({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.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 b;let{recentBlockHash:m,skipPreflight:f=!0,sendAndConfirm:p,notSendToRpc:g}=a||{},S=m!=null?m:await Ke(this.connection,this.blockhashCommitment);if(n.recentBlockhash=S,this.signers.length&&n.sign(...this.signers),Ae([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await Wt(this.connection,n,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let C=await this.signAllTransactions([n]);if(this.signers.length)for(let x of C)try{x.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:f}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var S;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:a}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),f=[a,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&p.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:p,instructionTypes:g,execute:async b=>{var I;let{sequentially:C,onTxUpdate:x,skipTxCount:B=0,recentBlockHash:N,skipPreflight:P=!0}=b||{},A=N!=null?N:await Ke(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(C){let T=[],F=0;for(let v of f){if(++F,F<=B)continue;let y=await Wt(this.connection,v,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});T.push(y)}return{txIds:T,signedTxs:f}}return{txIds:await await Promise.all(f.map(async T=>(T.recentBlockhash=A,await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:P})))),signedTxs:f}}if(this.signAllTransactions){let T=f.map((v,y)=>(v.recentBlockhash=A,p[y].length&&v.sign(...p[y]),v));Ae(T);let F=await this.signAllTransactions(T);if(C){let v=0,y=[],w=async()=>{if(!F[v])return;let k=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:P});y.push({txId:k,status:"sent",signedTx:F[v]}),x==null||x([...y]),v++;let K=!1,L=null,V=null,re=q=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let W=y.findIndex($=>$.txId===k);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=q.err?"error":"success"}x==null||x([...y]),q.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},mt)),V=this.connection.onSignature(k,q=>{if(K){this.connection.removeSignatureListener(V);return}K=!0,re(q)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:y.map(k=>k.txId),signedTxs:F}}else{let v=[];for(let y=0;y<F.length;y+=1){let w=await this.connection.sendRawTransaction(F[y].serialize(),{skipPreflight:P});v.push(w)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var P;let N=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:a,recentBlockhash:m}=N,f=se(N,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=R(R({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),S=[];for(let A of g)p[A]===void 0&&S.push(new Oe(A));let b=await _t({connection:this.connection,address:S});for(let[A,I]of Object.entries(b))p[A]=I;let C=a?Oe.default.toBase58():m!=null?m:await Ke(this.connection,this.blockhashCommitment),x=new Ze({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let B=new He(x);return B.sign(this.signers),{builder:this,transaction:B,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var v;let{skipPreflight:I=!0,sendAndConfirm:T,notSendToRpc:F}=A||{};if(Ae([B]),(v=this.owner)!=null&&v.isKeyPair){let y=await this.connection.sendTransaction(B,{skipPreflight:I});return T&&await rt(this.connection,y),{txId:y,signedTx:B}}if(this.signAllTransactions){let y=await this.signAllTransactions([B]);if(this.signers.length)for(let w of y)try{w.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var S;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:a}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),f=[a,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(S=this.owner)!=null&&S.signer&&p.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,C)=>{b.sign(p[C])}),{builder:this,transactions:f,signers:p,instructionTypes:g,buildProps:r,execute:async b=>{var P;let{sequentially:C,onTxUpdate:x,recentBlockHash:B,skipPreflight:N=!0}=b||{};if(B&&f.forEach(A=>A.message.recentBlockhash=B),Ae(f),(P=this.owner)!=null&&P.isKeyPair){if(C){let A=[];for(let I of f){let T=await this.connection.sendTransaction(I,{skipPreflight:N});await rt(this.connection,T),A.push(T)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:N}))),signedTxs:f}}if(this.signAllTransactions){let A=await this.signAllTransactions(f);if(C){let I=0,T=[],F=async()=>{if(!A[I])return;let v=await this.connection.sendTransaction(A[I],{skipPreflight:N});T.push({txId:v,status:"sent",signedTx:A[I]}),x==null||x([...T]),I++;let y=!1,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let V=T.findIndex(re=>re.txId===v);if(V>-1){if(T[V].status==="error"||T[V].status==="success")return;T[V].status=L.err?"error":"success"}x==null||x([...T]),L.err||F()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(y){clearInterval(w);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(y=!0,clearInterval(w),K({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){y=!0,clearInterval(w),console.error("getTransaction timeout:",V,v)}},mt)),k=this.connection.onSignature(v,L=>{if(y){this.connection.removeSignatureListener(k);return}y=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:A}}else{let I=[];for(let T=0;T<A.length;T+=1){let F=await this.connection.sendTransaction(A[T],{skipPreflight:N});I.push(F)}return{txIds:I,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var x;let C=t||{},{splitIns:n=[],computeBudgetConfig:r}=C,a=se(C,["splitIns","computeBudgetConfig"]),m=r?it(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((B,N)=>D(R({},B),{[N.publicKey.toBase58()]:N}),{}),p=[],g=[],S=[],b=0;if(this.allInstructions.forEach(B=>{let N=[...S,B],P=r?[...m.instructions,...N]:N,I=[...new Set(N.map(T=>T.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(T=>new Oe(T));if(B!==n[b]&&S.length<12&&(qe({instructions:P,payer:this.feePayer,signers:I})||qe({instructions:N,payer:this.feePayer,signers:I})))S.push(B);else{if(S.length===0)throw Error("item ins too big");b+=B===n[b]?1:0,qe({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:I})?p.push(new Qe().add(...m.instructions,...S)):p.push(new Qe().add(...S)),g.push(Array.from(new Set(S.map(T=>T.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(T=>f[T]).filter(T=>T!==void 0)),S=[B]}}),S.length>0){let N=[...new Set(S.map(P=>P.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(P=>f[P]).filter(P=>P!==void 0);qe({instructions:r?[...m.instructions,...S]:[...S],payer:this.feePayer,signers:N.map(P=>P.publicKey)})?p.push(new Qe().add(...m.instructions,...S)):p.push(new Qe().add(...S)),g.push(N)}return p.forEach(B=>B.feePayer=this.feePayer),(x=this.owner)!=null&&x.signer&&g.forEach(B=>{B.some(N=>N.publicKey.equals(this.owner.publicKey))||B.push(this.owner.signer)}),{builder:this,transactions:p,signers:g,instructionTypes:this.instructionTypes,execute:async B=>{var v;let{sequentially:N,onTxUpdate:P,skipTxCount:A=0,recentBlockHash:I,skipPreflight:T=!0}=B||{},F=I!=null?I:await Ke(this.connection,this.blockhashCommitment);if(p.forEach(async(y,w)=>{y.recentBlockhash=F,g[w].length&&y.sign(...g[w])}),Ae(p),(v=this.owner)!=null&&v.isKeyPair){if(N){let y=0,w=[];for(let k of p){if(++y,y<=A){w.push("tx skipped");continue}let K=await Wt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:T});w.push(K)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:T}))),signedTxs:p}}if(this.signAllTransactions){let y=await this.signAllTransactions(p.slice(A,p.length)),w=[...p.slice(0,A),...y];if(N){let k=0,K=[],L=async()=>{if(!w[k])return;k<A&&(K.push({txId:"",status:"success",signedTx:w[k]}),P==null||P([...K]),k++,L());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:T});K.push({txId:V,status:"sent",signedTx:w[k]}),P==null||P([...K]),k++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=K.findIndex(de=>de.txId===V);if(te>-1){if(K[te].status==="error"||K[te].status==="success")return;K[te].status=G.err?"error":"success"}P==null||P([...K]),G.err||L()};this.loopMultiTxStatus&&(q=setInterval(async()=>{var G;if(re){clearInterval(q);return}try{let te=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});te&&(re=!0,clearInterval(q),$({err:((G=te.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(te){re=!0,clearInterval(q),console.error("getTransaction timeout:",te,V)}},mt)),W=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(W);return}re=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:K.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let K=0;K<w.length;K+=1){let L=await this.connection.sendRawTransaction(w[K].serialize(),{skipPreflight:T});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var v;let F=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:f=12}=F,p=se(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=R(R({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),a),S=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of S)g[y]===void 0&&b.push(new Oe(y));let C=await _t({connection:this.connection,address:b});for(let[y,w]of Object.entries(C))g[y]=w;let x=n?it(n):{instructions:[],instructionTypes:[]},B=await Ke(this.connection,this.blockhashCommitment),N=this.signers.reduce((y,w)=>D(R({},y),{[w.publicKey.toBase58()]:w}),{}),P=[],A=[],I=[],T=0;if(this.allInstructions.forEach(y=>{let w=[...I,y],k=n?[...x.instructions,...w]:w;if(y!==r[T]&&I.length<f&&(Ue({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Ue({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");T+=y===r[T]?1:0;let K={};for(let L of[...new Set(S)])g[L]!==void 0&&(K[L]=g[L]);if(n&&Ue({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new He(L))}A.push(Array.from(new Set(I.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>N[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let w=[...new Set(I.map(k=>k.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(k=>N[k]).filter(k=>k!==void 0);if(n&&Ue({instructions:[...x.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let k=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...x.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new He(k))}else{let k=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new He(k))}A.push(w)}return(v=this.owner)!=null&&v.signer&&A.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,w)=>{y.sign(A[w])}),{builder:this,transactions:P,buildProps:t,signers:A,instructionTypes:this.instructionTypes,execute:async y=>{var re;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:V=!0}=y||{};if(P.map(async(q,W)=>{A[W].length&&q.sign(A[W]),L&&(q.message.recentBlockhash=L)}),Ae(P),(re=this.owner)!=null&&re.isKeyPair){if(w){let q=0,W=[];for(let $ of P){if(++q,q<=K){console.log("skip tx: ",q),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:V});await rt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async q=>await this.connection.sendTransaction(q,{skipPreflight:V}))),signedTxs:P}}if(this.signAllTransactions){let q=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...q];if(w){let $=0,G=[],te=async()=>{if(!W[$])return;if($<K){G.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...G]),$++,te();return}let de=await this.connection.sendTransaction(W[$],{skipPreflight:V});G.push({txId:de,status:"sent",signedTx:W[$]}),k==null||k([...G]),$++;let We=!1,Se=null,nt=null,rn=Pe=>{Se!==null&&clearInterval(Se),nt!==null&&this.connection.removeSignatureListener(nt);let pe=G.findIndex(yo=>yo.txId===de);if(pe>-1){if(G[pe].status==="error"||G[pe].status==="success")return;G[pe].status=Pe.err?"error":"success"}k==null||k([...G]),Pe.err||te()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var Pe;if(We){clearInterval(Se);return}try{let pe=await this.connection.getTransaction(de,{commitment:"confirmed",maxSupportedTransactionVersion:0});pe&&(We=!0,clearInterval(Se),rn({err:((Pe=pe.meta)==null?void 0:Pe.err)||null}),console.log("tx status from getTransaction:",de))}catch(pe){We=!0,clearInterval(Se),console.error("getTransaction timeout:",pe,de)}},mt)),nt=this.connection.onSignature(de,Pe=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,rn(Pe)},"confirmed"),this.connection.getSignatureStatus(de)};return te(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let te=await this.connection.sendTransaction(W[G],{skipPreflight:V});$.push(te)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};import{PublicKey as Nu}from"@solana/web3.js";import Fu from"bn.js";import $o from"bn.js";var ft=new $o(1e6);var xn={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=D(R({},xn),{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 vc=_("Raydium_Api");import{PublicKey as Sm,SystemProgram as Km}from"@solana/web3.js";import{AccountLayout as Om,createAssociatedTokenAccountIdempotentInstruction as Nm,TOKEN_PROGRAM_ID as Mm,TOKEN_2022_PROGRAM_ID as Fm}from"@solana/spl-token";var qt=(...o)=>o.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=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new dt({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 om,SystemProgram as rm}from"@solana/web3.js";import um from"bn.js";import{createCloseAccountInstruction as dm,createInitializeAccountInstruction as pm,createTransferInstruction as fm,TOKEN_PROGRAM_ID as ym}from"@solana/spl-token";import{Keypair as Gl,PublicKey as zl}from"@solana/web3.js";import Ql from"bn.js";import{TOKEN_PROGRAM_ID as jl}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as ei,BitStructure as Zc,blob as ti,Blob as Hc,cstr as jc,f32 as $c,f32be as Jc,f64 as el,f64be as tl,greedy as nl,Layout as ni,ns64 as ol,ns64be as il,nu64 as rl,nu64be as al,offset as oi,s16 as sl,s16be as ul,s24 as cl,s24be as ll,s32 as ii,s32be as ml,s40 as dl,s40be as pl,s48 as fl,s48be as yl,s8 as bl,seq as ri,struct as gl,Structure as ai,u16 as si,u16be as Pl,u24 as Al,u24be as wl,u32 as ui,u32be as kl,u40 as Tl,u40be as hl,u48 as Il,u48be as Bl,u8 as ci,UInt as li,union as Sl,Union as Kl,unionLayoutDiscriminator as xl,utf8 as Cl}from"@solana/buffer-layout";var yt=ni,Cn=ai;var Ut=li;var Rn=ci,Y=si;var bt=ui;var ue=ii;var Ln=ri;var M=ti;var Gt=ei,On=oi;var he=class extends yt{constructor(n,r,a){super(n,a);this.blob=M(n),this.signed=r}decode(n,r=0){let a=new Nn(this.blob.decode(n,r),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,r,a=0){return typeof n=="number"&&(n=new Nn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,a)}},gt=class extends yt{constructor(n){super(8,n);this._lower=Gt(bt(),!1),this._upper=Gt(bt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let a=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return R(R({},a),m)}encode(n,r,a=0){return this._lower.encode(n,r,a)+this._upper.encode(n,r,a+this._lower.span)}};function c(o){return new Ut(1,o)}function X(o){return new Ut(4,o)}function e(o){return new he(8,!1,o)}function O(o){return new he(16,!1,o)}function Fn(o){return new he(1,!0,o)}function Me(o){return new he(8,!0,o)}function vn(o){return new he(16,!0,o)}var $e=class extends yt{constructor(n,r,a,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=a}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,a){return this.layout.encode(this.encoder(n),r,a)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new $e(M(32),t=>new mi(t),t=>t.toBuffer(),o)}function ae(o){return new $e(Rn(),di,pi,o)}function di(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function pi(o){return o?1:0}function Vn(o,t){let n=bt("length"),r=l([n,d(o,On(n,-n.span),"values")]);return new $e(r,({values:a})=>a,a=>({values:a}),t)}var zt=class extends Cn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new zt(o,t,n)}function d(o,t,n){let r,a=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!r){let p=Reflect.get(m,"count");r=Mn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,f)},set(m,f,p){return f==="count"&&(r=p),Reflect.set(m,f,p)}});return Ln(o,a,n)}var Pt=l([i("mint"),i("owner"),e("amount"),X("delegateOption"),i("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as vg,SystemProgram as Vg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Eg}from"@solana/spl-token";import Zg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as ky,TOKEN_2022_PROGRAM_ID as Ty,TOKEN_PROGRAM_ID as hy}from"@solana/spl-token";import{PublicKey as By}from"@solana/web3.js";import Ky from"bn.js";import Cy from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Uf,TOKEN_2022_PROGRAM_ID as Gf,TOKEN_PROGRAM_ID as zf}from"@solana/spl-token";import{Keypair as Qf,PublicKey as Zf,SystemProgram as jf,TransactionInstruction as $f}from"@solana/web3.js";import ey from"bn.js";import E from"bn.js";var Fe=new E(1).shln(64);var yi=new E(1).shln(128),Xt=new E(1).shln(64).subn(1),bi=new E(1).shln(128).subn(1);var ve=new E("4295048016"),Ve=new E("79226673521066979257578248091"),gi=new E("59543866431248"),Pi=new E("184467440737095516"),Ai=new E("15793534762490258745");var Yt=60,Ym=new E("18446743708227953217"),wi=[{bit:0,factor:new E("fffcb933bd6fb800",16)},{bit:1,factor:new E("fff97272373d4000",16)},{bit:2,factor:new E("fff2e50f5f657000",16)},{bit:3,factor:new E("ffe5caca7e10f000",16)},{bit:4,factor:new E("ffcb9843d60f7000",16)},{bit:5,factor:new E("ff973b41fa98e800",16)},{bit:6,factor:new E("ff2ea16466c9b000",16)},{bit:7,factor:new E("fe5dee046a9a3800",16)},{bit:8,factor:new E("fcbe86c7900bb000",16)},{bit:9,factor:new E("f987a7253ac65800",16)},{bit:10,factor:new E("f3392b0822bb6000",16)},{bit:11,factor:new E("e7159475a2caf000",16)},{bit:12,factor:new E("d097f3bdfd2f2000",16)},{bit:13,factor:new E("a9f746462d9f8000",16)},{bit:14,factor:new E("70d869a156f31c00",16)},{bit:15,factor:new E("31be135f97ed3200",16)},{bit:16,factor:new E("9aa508b5b85a500",16)},{bit:17,factor:new E("5d6af8dedc582c",16)},{bit:18,factor:new E("2216e584f5fa",16)}];var Je=3,En=100;var Dn=10,Wn=100,wt=14;var H=new E(0),_e=new E(1),Qm=new E(-1);var Zm=new E("18446744073700000000");var ki=l([M(8),c("bump"),Y("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Y("tickSpacing"),X("fundFeeRate"),d(X(),1),i("fundOwner"),d(e(),3)]),Ti=l([X("blockTimestamp"),Me("tickCumulative"),d(e(),4)]),qn=l([M(8),ae("initialized"),e("recentEpoch"),Y("observationIndex"),i("poolId"),d(Ti,En,"observations"),d(e(),4)]),hi=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ii=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Qt=l([M(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Y("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ue("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Ii,Je,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),hi.replicate("dynamicFeeInfo"),d(e(),46)]),Bi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Si=l([M(8),c("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Bi,Je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Jm=l([M(8),c("bump"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),Je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ki=l([ue("tick"),vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),Un=l([M(8),i("poolId"),ue("startTickIndex"),d(Ki,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),xi=l([M(8),c("bump"),d(i(),Dn,"operationOwners"),d(i(),Wn,"whitelistMints")]),Ci=l([M(8),i("poolId"),i("owner"),ue("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Gn=l([M(8),i("poolId"),M(8*8*wt,"positiveTickArrayBitmap"),M(8*8*wt,"negativeTickArrayBitmap")]),ed=l([M(8),Y("index"),Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Ri=l([M(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),td=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Li=l([M(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import id from"bn.js";var yd=Buffer.from("amm_config","utf8"),Ni=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_vault","utf8"),bd=Buffer.from("pool_reward_vault","utf8"),gd=Buffer.from("position","utf8"),Pd=Buffer.from("tick_array","utf8"),Ad=Buffer.from("operation","utf8"),wd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),kd=Buffer.from("observation","utf8"),Td=Buffer.from("support_mint","utf8"),hd=Buffer.from("dynamic_fee_config","utf8"),Id=Buffer.from("permission","utf8");var Bd=Buffer.from("locked_position","utf8");import{sha256 as Zi}from"js-sha256";import Fi from"bn.js";import Cd from"decimal.js";var Ld=new Fi(1).shln(256).subn(1);import Zd from"bn.js";import _d from"bn.js";import Dd from"decimal.js";import ep from"bn.js";import np from"decimal.js";import{PublicKey as qp}from"@solana/web3.js";import Gp from"bn.js";import{TOKEN_2022_PROGRAM_ID as $p,TOKEN_PROGRAM_ID as Jp}from"@solana/spl-token";import of from"decimal.js";import Lp from"bn.js";import Pp from"bn.js";import yf from"bn.js";function j(o){let t=`global:${o}`;return Buffer.from(Zi.digest(t)).slice(0,8)}qn.span;var uy=_("Raydium_Clmm"),cy={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 $t}from"@solana/web3.js";var Ji=l([c("instruction")]),er=l([c("instruction")]),tr=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPerSecond"),O("accRewardPerShare"),i("rewardVault"),i("rewardMint"),i("rewardSender"),e("rewardType"),d(e(),15,"padding")]),nr=l([e("state"),e("nonce"),i("lpVault"),i("rewardVault"),i(),i(),e(),e(),e("totalReward"),O("perShareReward"),e("lastSlot"),e("perSlotReward")]),or=l([e("state"),e("nonce"),i("lpVault"),i("rewardVaultA"),e("totalRewardA"),O("perShareRewardA"),e("perSlotRewardA"),c("option"),i("rewardVaultB"),M(7),e("totalRewardB"),O("perShareRewardB"),e("perSlotRewardB"),e("lastSlot"),i()]),ir=l([e(),e("state"),e("nonce"),e("validRewardTokenNum"),O("rewardMultiplier"),e("rewardPeriodMax"),e("rewardPeriodMin"),e("rewardPeriodExtend"),i("lpMint"),i("lpVault"),d(tr,5,"rewardInfos"),i("creator"),i(),d(e(),32,"padding")]),rr=new Proxy(nr,{get(o,t,n){return t==="decode"?(...r)=>{let a=o.decode(...r);return D(R({},a),{version:3,rewardInfos:[{rewardVault:a.rewardVault,totalReward:a.totalReward,perSlotReward:a.perSlotReward,perShareReward:a.perShareReward}]})}:Reflect.get(o,t,n)}}),ar=new Proxy(or,{get(o,t,n){return t==="decode"?(...r)=>{let a=o.decode(...r);return D(R({},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)}}),jn=new Proxy(ir,{get(o,t,n){return t==="decode"?(...r)=>{let a=o.decode(...r);return D(R({},a),{version:6,rewardInfos:a.rewardInfos.map(m=>{var f;return D(R({},m),{rewardType:((f=Object.entries(tt).find(p=>String(p[1])===m.rewardType.toString()))!=null?f:["Standard SPL"])[0]})})})}:Reflect.get(o,t,n)}}),sr=l([e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ur=l([c("instruction"),e("nonce"),d(sr,5,"rewardTimeInfo")]),cr=l([c("instruction"),e("rewardReopenTime"),e("rewardEndTime"),e("rewardPerSecond")]),lr=l([c("instruction"),e("isSet"),e("rewardPerSecond"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardType")]),ub=l([e("state"),i("id"),i("owner"),e("deposited"),d(e(),1,"rewardDebts")]),$n=l([e("state"),i("id"),i("owner"),e("deposited"),d(O(),1,"rewardDebts"),e(""),e("voteLockedBalance"),d(e(),15)]),cb=l([e("state"),i("id"),i("owner"),e("deposited"),d(e(),2,"rewardDebts")]),mr=l([e("state"),i("id"),i("owner"),e("deposited"),d(O(),2,"rewardDebts"),d(e(),17)]),dr=l([e(),e("state"),i("id"),i("owner"),e("deposited"),d(O(),5,"rewardDebts"),d(e(),16)]),pr=l([c("instruction"),e("amount")]),fr=l([i("mint"),i("grantAuthority"),e("baselineVoteWeightScaledFactor"),e("maxExtraLockupVoteWeightScaledFactor"),e("lockupSaturationSecs"),Fn("digitShift"),d(c(),7,"reserved1"),d(e(),7,"reserved2")]),yr=l([M(8),i("governanceProgramId"),i("realm"),i("realmGoverningTokenMint"),i("realmAuthority"),d(c(),32,"reserved1"),d(fr,4,"votingMints"),Me("timeOffset"),c("bump"),d(c(),7,"reserved2"),d(e(),11,"reserved3")]),br=l([Me("startTime"),Me("endTime"),c("kind"),d(c(),15,"reserved")]),gr=l([d(br,1,"lockup"),e("amountDeposited_native"),e("amountInitiallyLockedNative"),ae("isUsed"),ae("allowClawback"),c("votingMintConfigIdx"),d(c(),29,"reserved")]),Pr=l([M(8),i("voterAuthority"),i("registrar"),d(gr,32,"deposits"),c("voterBump"),c("voterWweightRecordBump"),d(c(),94,"reserved")]);import{NATIVE_MINT as Pb}from"@solana/spl-token";var Ab=_("Raydium_farm_config"),Ar=new $t("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),wr=new $t("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1");var wb=new $t("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX");var tt={"Standard SPL":0,"Option tokens":1},Jn={[kn.toString()]:3,[Tn.toString()]:4,[hn.toString()]:5,[Ft.toString()]:6,[be.FARM_PROGRAM_ID_V3.toString()]:3,[be.FARM_PROGRAM_ID_V4.toString()]:4,[be.FARM_PROGRAM_ID_V5.toString()]:5,[be.FARM_PROGRAM_ID_V6.toString()]:6};import{PublicKey as jb,SystemProgram as $b,SYSVAR_CLOCK_PUBKEY as Jb,SYSVAR_RENT_PUBKEY as eg,TransactionInstruction as tg}from"@solana/web3.js";import og from"bn.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as rg,createAssociatedTokenAccountIdempotentInstruction as ag,TOKEN_PROGRAM_ID as sg}from"@solana/spl-token";import Kb from"bn.js";var Db=_("Raydium.farm.util");var Pg=_("Raydium_farm_instruction"),Ag={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 aP from"bn.js";import{PublicKey as UA}from"@solana/web3.js";import{AccountLayout as XA,MintLayout as YA,NATIVE_MINT as QA,TOKEN_PROGRAM_ID as HA}from"@solana/spl-token";var xr=l([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import to from"bn.js";var Cr=new to(25),Rr=new to(1e4);import{ASSOCIATED_TOKEN_PROGRAM_ID as RP,TOKEN_PROGRAM_ID as LP}from"@solana/spl-token";import{PublicKey as NP,SystemProgram as MP,SYSVAR_RENT_PUBKEY as FP,TransactionInstruction as vP}from"@solana/web3.js";import GP from"bn.js";var Lr=l([c("instruction"),e("amountIn"),e("minAmountOut")]),Or=l([c("instruction"),e("maxAmountIn"),e("amountOut")]),SP=l([c("instruction"),c("nonce")]),Nr=l([c("instruction"),c("nonce"),e("startTime")]),no=l([e("status"),e("nonce"),e("maxOrder"),e("depth"),e("baseDecimal"),e("quoteDecimal"),e("state"),e("resetFlag"),e("minSize"),e("volMaxCutRatio"),e("amountWaveRatio"),e("baseLotSize"),e("quoteLotSize"),e("minPriceMultiplier"),e("maxPriceMultiplier"),e("systemDecimalValue"),e("minSeparateNumerator"),e("minSeparateDenominator"),e("tradeFeeNumerator"),e("tradeFeeDenominator"),e("pnlNumerator"),e("pnlDenominator"),e("swapFeeNumerator"),e("swapFeeDenominator"),e("baseNeedTakePnl"),e("quoteNeedTakePnl"),e("quoteTotalPnl"),e("baseTotalPnl"),e("poolOpenTime"),e("punishPcAmount"),e("punishCoinAmount"),e("orderbookToInitTime"),O("swapBaseInAmount"),O("swapQuoteOutAmount"),e("swapBase2QuoteFee"),O("swapQuoteInAmount"),O("swapBaseOutAmount"),e("swapQuote2BaseFee"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("withdrawQueue"),i("lpVault"),i("owner"),e("lpReserve"),d(e(),3,"padding")]),KP=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"),i("baseVault"),i("quoteVault"),i("baseMint"),i("quoteMint"),i("lpMint"),i("modelDataAccount"),i("openOrders"),i("marketId"),i("marketProgramId"),i("targetOrders"),i("owner"),d(e(),64,"padding")]),Mr=l([c("instruction"),e("baseAmountIn"),e("quoteAmountIn"),e("fixedSide"),e("otherAmountMin")]),Fr=l([c("instruction"),e("lpAmount"),e("baseAmountMin"),e("quoteAmountMin")]);var vr=l([e("fee")]);var YP=_("Raydium_liquidity_instruction");var Vr=5e4,_r=l([e("x"),e("y"),e("price")]),jP=l([e("accountType"),e("status"),e("multiplier"),e("validDataCount"),d(_r,Vr,"DataElement")]);import bw from"bn.js";import Pw from"decimal.js";import{TOKEN_PROGRAM_ID as PA}from"@solana/spl-token";import{PublicKey as wA}from"@solana/web3.js";import TA from"bn.js";import{SystemProgram as rA,SYSVAR_RENT_PUBKEY as aA,Transaction as sA,TransactionInstruction as uA}from"@solana/web3.js";import{createInitializeAccountInstruction as lA,TOKEN_PROGRAM_ID as mA}from"@solana/spl-token";function Er(o="accountFlags"){let t=new gt(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 Dr=l([M(5),Er("accountFlags"),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as Wk}from"@solana/web3.js";import{AccountLayout as Uk,NATIVE_MINT as Gk,TOKEN_2022_PROGRAM_ID as zk,TOKEN_PROGRAM_ID as Xk,createAssociatedTokenAccountIdempotentInstruction as Yk}from"@solana/spl-token";import Dw from"bn.js";import Yr from"bn.js";var xw=new Yr(0);import Ow from"bn.js";import tT from"bn.js";import oT from"decimal.js";import{PublicKey as ik,TransactionInstruction as rk,Keypair as sk,SystemProgram as uk}from"@solana/web3.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as lk,TOKEN_2022_PROGRAM_ID as mk,TOKEN_PROGRAM_ID as dk}from"@solana/spl-token";var zw=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),Xw=Buffer.from("amm_config","utf8"),Yw=Buffer.from("pool","utf8"),Qw=Buffer.from("pool_lp_mint","utf8"),Zw=Buffer.from("pool_vault","utf8"),Hw=Buffer.from("observation","utf8"),jw=Buffer.from("permission","utf8"),$w=Buffer.from("support_mint","utf8");var Jw=Buffer.from("locked_liquidity","utf8");var Ak=_("Raydium_cpmm"),wk={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 Hr=l([M(8),c("bump"),ae("disableCreatePool"),Y("index"),e("tradeFeeRate"),e("protocolFeeRate"),e("fundFeeRate"),e("createPoolFee"),i("protocolOwner"),i("fundOwner"),e("creatorFeeRate"),d(e(),15)]),io=l([M(8),i("configId"),i("poolCreator"),i("vaultA"),i("vaultB"),i("mintLp"),i("mintA"),i("mintB"),i("mintProgramA"),i("mintProgramB"),i("observationId"),c("bump"),c("status"),c("lpDecimals"),c("mintDecimalA"),c("mintDecimalB"),e("lpAmount"),e("protocolFeesMintA"),e("protocolFeesMintB"),e("fundFeesMintA"),e("fundFeesMintB"),e("openTime"),e("epoch"),c("feeOn"),ae("enableCreatorFee"),d(c(),6),e("creatorFeesMintA"),e("creatorFeesMintB"),d(e(),28)]),hk=l([M(8),i("configId"),d(e(),30)]);import{PublicKey as XS,SystemProgram as YS}from"@solana/web3.js";import{createTransferInstruction as ZS,TOKEN_PROGRAM_ID as HS,TOKEN_2022_PROGRAM_ID as jS,createAssociatedTokenAccountIdempotentInstruction as $S,createSyncNativeInstruction as eK,createTransferCheckedInstruction as tK}from"@solana/spl-token";import pa from"bn.js";import iK from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as ph,TOKEN_2022_PROGRAM_ID as fh,TOKEN_PROGRAM_ID as yh}from"@solana/spl-token";import{SystemProgram as Ah,TransactionInstruction as wh}from"@solana/web3.js";import oa from"bn.js";var Jr=l([e(),e("epoch"),c("curveType"),Y("index"),e("migrateFee"),e("tradeFeeRate"),e("maxShareFeeRate"),e("minSupplyA"),e("maxLockRate"),e("minSellRateA"),e("minMigrateRateA"),e("minFundRaisingB"),i("mintB"),i("protocolFeeOwner"),i("migrateFeeOwner"),i("migrateToAmmWallet"),i("migrateToCpmmWallet"),d(e(),16)]),ea=l([e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod"),e("startTime"),e("totalAllocatedShare")]),ta=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"),ea.replicate("vestingSchedule"),i("configId"),i("platformId"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("creator"),c("mintProgramFlag"),c("cpmmCreatorFeeOn"),e("platformVestingShare"),d(c(),54)]),QT=l([e(),e("epoch"),i("poolId"),i("beneficiary"),e("claimedAmount"),e("tokenShareAmount"),d(e(),8)]),ao=l([c("migrateType"),c("migrateCpmmFeeOn"),e("supply"),e("totalSellA"),e("totalFundRaisingB"),e("totalLockedAmount"),e("cliffPeriod"),e("unlockPeriod")]),na=l([e("epoch"),c("index"),i("configId"),ao.replicate("bondingCurveParam"),d(e(),50)]),so=l([e(),e("epoch"),i("platformClaimFeeWallet"),i("platformLockNftWallet"),e("platformScale"),e("creatorScale"),e("burnScale"),e("feeRate"),d(c(),64,"name"),d(c(),256,"web"),d(c(),256,"img"),i("cpConfigId"),e("creatorFeeRate"),i("transferFeeExtensionAuth"),i("platformVestingWallet"),e("platformVestingScale"),i("platformCpCreator"),c("restrictGlobalConfig"),d(c(),107),Vn(na,"platformCurve")]);var JT=Buffer.from("vault_auth_seed","utf8"),eh=Buffer.from("global_config","utf8"),th=Buffer.from("pool_vesting","utf8"),nh=Buffer.from("platform_config","utf8"),oh=Buffer.from("platform_fee_vault_auth_seed","utf8"),ih=Buffer.from("creator_fee_vault_auth_seed","utf8"),rh=Buffer.from("platform_global_access","utf8"),ah=Buffer.from("platform_allow_config","utf8");var Ih={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215])};var Bh=new oa("18446744073709551615");import{TOKEN_2022_PROGRAM_ID as Ch,TOKEN_PROGRAM_ID as Rh}from"@solana/spl-token";import Mh from"bn.js";import vh from"decimal.js";import fI from"bn.js";import bI from"decimal.js";import qh from"bn.js";import Gh from"decimal.js";import eI from"bn.js";import nI from"decimal.js";import lo from"bn.js";import tn from"decimal.js";var ht=class{static _multipler(t){return new tn(10).pow(t)}static getPrice({priceX64:t,decimalA:n,decimalB:r}){return new tn(t.toString()).div(this._Q64).mul(this._multipler(n)).div(this._multipler(r))}static getPriceX64({price:t,decimalA:n,decimalB:r}){let a=t.mul(this._multipler(r)).div(this._multipler(n));return new lo(a.mul(this._Q64).toFixed(0))}};ht._Q64=new tn(new lo(1).shln(64).toString());import{NATIVE_MINT as IB,TOKEN_2022_PROGRAM_ID as BB,TOKEN_PROGRAM_ID as SB,createAssociatedTokenAccountIdempotentInstruction as xB,createSyncNativeInstruction as CB,getTransferFeeConfig as RB,unpackMint as LB}from"@solana/spl-token";import Q from"bn.js";import{PublicKey as la,SystemProgram as MB}from"@solana/web3.js";import WB from"decimal.js";var qB={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 la("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new Q(0),cliffPeriod:new Q(0),unlockPeriod:new Q(0),startTime:new Q(0),totalAllocatedShare:new Q(0)}},UB=new Q(1e4);var ma={[In.toBase58()]:3};var da=l([M(5),M(8),i("ownAddress"),e("vaultSignerNonce"),i("baseMint"),i("quoteMint"),i("baseVault"),e("baseDepositsTotal"),e("baseFeesAccrued"),i("quoteVault"),e("quoteDepositsTotal"),e("quoteFeesAccrued"),e("quoteDustThreshold"),i("requestQueue"),i("eventQueue"),i("bids"),i("asks"),e("baseLotSize"),e("quoteLotSize"),e("feeRateBps"),e("referrerRebatesAccrued"),M(7)]);import{PublicKey as dS}from"@solana/web3.js";var gS=_("Serum");import{ASSOCIATED_TOKEN_PROGRAM_ID as SS,TOKEN_2022_PROGRAM_ID as KS,TOKEN_PROGRAM_ID as xS}from"@solana/spl-token";import{PublicKey as RS,SystemProgram as LS,TransactionInstruction as OS}from"@solana/web3.js";import MS from"bn.js";var MK=new pa(0);import{PublicKey as fa,Transaction as nn,TransactionInstruction as ya}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ba}from"@solana/spl-token";import po from"bn.js";var ee=class extends ie{static getPdaPoolId(t,n){return oe([ee.SEED_CONFIG.pool.id,n.toBuffer()],t)}static getPdaOwnerId(t,n,r,a){return oe([ee.SEED_CONFIG.owner.id,n.toBuffer(),r.toBuffer(),Buffer.from(new po(a).toArray())],t)}static async getAllInfo({connection:t,programId:n,poolIds:r,wallet:a,chainTime:m}){if(r.length===0)return[];let f=r.map(b=>ee.getPdaPoolId(n,b).publicKey),p=[];for(let b=0;b<ee.VERSION_PROJECT.length;b++)p.push(...f.map(C=>ee.getPdaOwnerId(n,C,a,b).publicKey));let g=await ye(t,[...f,...p]),S=[];for(let b=0;b<g.length;b++){let C=Math.floor(b/r.length),x=b%r.length,B=f[x],N=p[b],P=g[x],A=g[r.length+b];if(!(P&&A)||P.data.length!==ee.POOL_LAYOUT.span||A.data.length!==ee.OWNER_LAYOUT.span)continue;let I=ee.POOL_LAYOUT.decode(P.data),T=ee.OWNER_LAYOUT.decode(A.data),F=I.openTime.toNumber(),v=I.endTime.toNumber(),y=T.tokenInfo.map(K=>K.debtAmount.gt(new po(0))).filter(K=>!K).length!==3,w=m>F&&m<v&&I.status===1,k=y&&w;S.push({programId:n,poolId:B,ammId:I.ammId,ownerAccountId:N,snapshotLpAmount:T.lpAmount,project:ee.VERSION_PROJECT[C],openTime:F,endTime:v,canClaim:k,canClaimErrorType:y?w?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:I.tokenInfo.map((K,L)=>({mintAddress:K.mintAddress,mintVault:K.mintVault,mintDecimals:K.mintDecimals,perLpLoss:K.perLpLoss,debtAmount:T.tokenInfo[L].debtAmount.add(T.tokenInfo[L].claimedAmount)}))})}return S}async makeClaimTransaction({poolInfo:t,ownerInfo:n,feePayer:r}){n.wallet||this.scope.checkOwner();let a=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,f=[];for(let S of t.tokenInfo){let{account:b,instructionParams:C}=await this.scope.account.getOrCreateTokenAccount({mint:S.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:S.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!S.mintAddress.equals(J.WSOL.mint),associatedOnly:S.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});C&&a.addInstruction(C),f.push(b)}a.addInstruction({instructions:[ee.makeClaimInstruction({programId:t.programId,poolInfo:t,ownerInfo:{wallet:m,ownerPda:t.ownerAccountId,claimAddress:f}})]});let{transaction:p,signers:g}=a.build();return[{transaction:p,signer:g}]}async makeClaimAllTransaction({poolInfos:t,ownerInfo:n,feePayer:r}){let a=this.createTxBuilder(r),m=n.wallet||this.scope.ownerPubKey,f={};for(let b of t){let C=[];for(let x of b.tokenInfo){let{account:B,instructionParams:N}=await this.scope.account.getOrCreateTokenAccount({mint:x.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:x.mintAddress.equals(J.WSOL.mint),createInfo:{payer:m,amount:0},skipCloseAccount:!x.mintAddress.equals(J.WSOL.mint),associatedOnly:x.mintAddress.equals(J.WSOL.mint)?!1:n.associatedOnly});N&&a.addInstruction(N),B&&(f[x.mintAddress.toString()]=B,C.push(B))}a.addInstruction({instructions:[ee.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:m,ownerPda:b.ownerAccountId,claimAddress:C}})]})}let{transaction:p,signers:g}=a.build(),S=a.allInstructions;return St(S,[m,...g.map(b=>b.publicKey)])?[{transaction:p,signer:g}]:[{transaction:new nn().add(...S.slice(0,a.AllTxData.instructions.length-1)),signer:g},{transaction:new nn().add(...S.slice(a.AllTxData.instructions.length-1)),signer:[]},{transaction:new nn().add(...a.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:t,poolInfo:n,ownerInfo:r}){let a=l([]),m=[{pubkey:r.wallet,isSigner:!0,isWritable:!0},{pubkey:n.poolId,isSigner:!1,isWritable:!0},{pubkey:r.ownerPda,isSigner:!1,isWritable:!0},...r.claimAddress.map(g=>({pubkey:g,isSigner:!1,isWritable:!0})),...n.tokenInfo.map(({mintVault:g})=>({pubkey:g,isSigner:!1,isWritable:!0})),{pubkey:ba,isSigner:!1,isWritable:!1}],f=Buffer.alloc(a.span);a.encode({},f);let p=Buffer.from([10,66,208,184,161,6,191,98,...f]);return new ya({keys:m,programId:t,data:p})}},ce=ee;ce.CLAIMED_NUM=3,ce.POOL_LAYOUT=l([M(8),c("bump"),c("status"),e("openTime"),e("endTime"),i("ammId"),d(l([c("mintDecimals"),i("mintAddress"),i("mintVault"),e("perLpLoss"),e("totalClaimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),10,"padding")]),ce.OWNER_LAYOUT=l([M(8),c("bump"),c("version"),i("poolId"),i("owner"),e("lpAmount"),d(l([i("mintAddress"),e("debtAmount"),e("claimedAmount")]),ee.CLAIMED_NUM,"tokenInfo"),d(e(),4,"padding")]),ce.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(t=>new fa(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 $K}from"@solana/web3.js";import{getTransferFeeConfig as ex,MintLayout as tx,TOKEN_2022_PROGRAM_ID as nx,TOKEN_PROGRAM_ID as ox,unpackMint as ix}from"@solana/spl-token";var LC=new Ie(2),OC=new Ie(3),NC=new Ie(5),ga=new Ie(10),MC=new Ie(100),FC=new Ie(1e3),vC=new Ie(1e4);var HC=_("Raydium_amount"),jC=Xe(Pa);var ge=a=>{var m=a,{address:o,programId:t,decimals:n}=m,r=se(m,["address","programId","decimals"]);return R({chainId:101,address:ke(o).toBase58(),programId:t,logoURI:"",symbol:"",name:"",decimals:n,tags:[],extensions:r.extensions||{}},r)};import{PublicKey as Aa}from"@solana/web3.js";var wa=_("Raydium_liquidity_serum");function fo({programId:o,marketId:t}){let n=[t.toBuffer()],r=0,a;for(;r<100;){try{let m=n.concat(Buffer.from([r]),Buffer.alloc(7));a=Aa.createProgramAddressSync(m,o)}catch(m){if(m instanceof TypeError)throw m;r++;continue}return{publicKey:a,nonce:r}}throw wa.logWithError("unable to find a viable program address nonce","params",{programId:o,marketId:t}),new Error("unable to find a viable program address nonce")}function en({programId:o}){let{publicKey:t}=oe([Buffer.from("amm_config_account_seed","utf-8")],o);return t}function Be({name:o,programId:t,marketId:n}){let{publicKey:r}=oe([t.toBuffer(),n.toBuffer(),Buffer.from(o,"utf-8")],t);return r}function ha({programId:o,marketId:t}){let{publicKey:n}=oe([o.toBuffer(),t.toBuffer(),Buffer.from("open_order_associated_seed","utf-8")],o);return n}function mo({programId:o}){return oe([Buffer.from([97,109,109,32,97,117,116,104,111,114,105,116,121])],o)}function Xr({version:o,marketVersion:t,marketId:n,baseMint:r,quoteMint:a,baseDecimals:m,quoteDecimals:f,programId:p,marketProgramId:g}){let S=Be({name:"amm_associated_seed",programId:p,marketId:n}),b=Be({name:"lp_mint_associated_seed",programId:p,marketId:n}),{publicKey:C,nonce:x}=mo({programId:p}),B=Be({name:"coin_vault_associated_seed",programId:p,marketId:n}),N=Be({name:"pc_vault_associated_seed",programId:p,marketId:n}),P=Be({name:"temp_lp_token_associated_seed",programId:p,marketId:n}),A=ha({programId:p,marketId:n}),I=Be({name:"target_associated_seed",programId:p,marketId:n}),T=Be({name:"withdraw_associated_seed",programId:p,marketId:n}),{publicKey:F}=fo({programId:g,marketId:n});return{id:S,baseMint:r,quoteMint:a,lpMint:b,baseDecimals:m,quoteDecimals:f,lpDecimals:m,version:o,programId:p,authority:C,nonce:x,baseVault:B,quoteVault:N,lpVault:P,openOrders:A,targetOrders:I,withdrawQueue:T,marketVersion:t,marketProgramId:g,marketId:n,marketAuthority:F,lookupTableAccount:ka.default,configId:en({programId:p})}}var on={volume:0,volumeQuote:0,volumeFee:0,apr:0,feeApr:0,priceMin:0,priceMax:0,rewardApr:[]},oo=o=>{let t={},n=Ta.toBase58();return Object.keys(o).map(r=>{let a=o[r],[m,f]=[a.baseMint.toBase58(),a.quoteMint.toBase58()];t[r]={id:r,version:4,status:a.status.toNumber(),programId:a.programId.toBase58(),mintA:ge({address:m,programId:n,decimals:a.baseDecimal.toNumber()}),mintB:ge({address:f,programId:n,decimals:a.quoteDecimal.toNumber()}),rewardDefaultInfos:[],rewardDefaultPoolInfos:"Ecosystem",price:a.poolPrice.toNumber(),mintAmountA:new It(a.mintAAmount.toString()).div(10**a.baseDecimal.toNumber()).toNumber(),mintAmountB:new It(a.mintBAmount.toString()).div(10**a.quoteDecimal.toNumber()).toNumber(),baseReserve:a.baseReserve,quoteReserve:a.quoteReserve,feeRate:new It(a.tradeFeeNumerator.toString()).div(a.tradeFeeDenominator.toString()).toNumber(),openTime:a.poolOpenTime.toString(),tvl:0,day:on,week:on,month:on,pooltype:[],farmUpcomingCount:0,farmOngoingCount:0,farmFinishedCount:0,type:"Standard",marketId:a.marketId.toBase58(),configId:en({programId:a.programId}).toBase58(),lpPrice:0,lpAmount:new It(a.lpReserve.toString()).div(10**Math.min(a.baseDecimal.toNumber(),a.quoteDecimal.toNumber())).toNumber(),lpMint:ge({address:a.lpMint.toBase58(),programId:n,decimals:Math.min(a.baseDecimal.toNumber(),a.quoteDecimal.toNumber())}),burnPercent:0,feeOn:"Both",hasDynamicFee:!1,tips:[],launchMigratePool:!1}}),t};export{en as getAssociatedConfigId,ha as getAssociatedOpenOrders,Xr as getAssociatedPoolKeys,mo as getLiquidityAssociatedAuthority,Be as getLiquidityAssociatedId,oo as toAmmComputePoolInfo};
//# sourceMappingURL=utils.mjs.map