@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 75.1 kB
JavaScript
var po=Object.defineProperty,fo=Object.defineProperties;var yo=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(r,t,n)=>t in r?po(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,L=(r,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(r,n,t[n]);if(ot)for(var n of ot(t))sn.call(t,n)&&rn(r,n,t[n]);return r},D=(r,t)=>fo(r,yo(t));var ce=(r,t)=>{var n={};for(var i in r)an.call(r,i)&&t.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&ot)for(var i of ot(r))t.indexOf(i)<0&&sn.call(r,i)&&(n[i]=r[i]);return n};import ya from"big.js";import Pe from"bn.js";import Ie from"bn.js";import WC from"decimal.js";import{PublicKey as bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as un}from"@solana/spl-token";var it={chainId:101,address:bo.default.toBase58(),programId:un.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:un.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 xt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as cn,SYSVAR_RENT_PUBKEY as go}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Po}from"@solana/spl-token";function Se({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var Ao=[Se({pubkey:Po,isWritable:!1}),Se({pubkey:cn.programId,isWritable:!1}),Se({pubkey:go,isWritable:!1})];function ln({publicKey:r,transformSol:t}){let n=mn(r.toString());if(n instanceof z)return t&&n.equals(we)?ye:n;if(t&&n.toString()===we.toBase58())return ye;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 mn(r){try{return new z(r)}catch{return r}}var St=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),We=new z("SysvarRent111111111111111111111111111111111"),Ia=new z("SysvarC1ock11111111111111111111111111111111"),rt=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),wo=new z("Sysvar1nstructions1111111111111111111111111"),ko=cn.programId,Ba=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Sa=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),xa=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ka=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ca=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Ra=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),La=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Oa=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Na=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ma=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Fa=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ye=new z("So11111111111111111111111111111111111111112"),we=z.default;var Kt=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:d=!1,isToken2022:p=!1}){if(t===we.toBase58()||t instanceof xt&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new xt(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?xt.default:ln({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Kt;ee.WSOL=new Kt(D(L({},le),{mint:le.address}));var Ct=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},at=Ct;at.SOL=new Ct(it);import ut from"big.js";import xo from"bn.js";import Ko from"decimal.js-light";import{get as dn,set as To}from"lodash";var Rt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},pn={},ho={};function F(r){let t=dn(pn,r);if(!t){let n=dn(ho,r);t=new Rt({name:r,logLevel:n}),To(pn,r,t)}return t}import qe from"bn.js";var fn=9007199254740991;function Y(r){let t=F("Raydium_parseBigNumberish");if(r instanceof qe)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new qe(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=fn||r<=-fn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new qe(String(r))):typeof r=="bigint"?new qe(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new qe(0))}import Io from"toformat";var Bo=Io,Ue=Bo;var st=F("module/fraction"),Lt=Ue(ut),Ge=Ue(Ko),Co={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Ro={[0]:ut.roundDown,[1]:ut.roundHalfUp,[2]:ut.roundUp},q=class{constructor(t,n=new xo(1)){this.numerator=Y(t),this.denominator=Y(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(Y(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(Y(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(Y(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(Y(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<=0&&st.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Co[i]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||st.logWithError(`${t} is not an integer.`),t<0&&st.logWithError(`${t} is negative.`),Lt.DP=t,Lt.RM=Ro[i]||1,new Lt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Lo from"bn.js";var us=new q(new Lo(100));var fs=F("Raydium_price");import{merge as GK}from"lodash";import fc from"axios";import{PublicKey as Oo}from"@solana/web3.js";import{MINT_SIZE as Is,TOKEN_PROGRAM_ID as Bs,getTransferFeeConfig as Ss,unpackMint as xs}from"@solana/spl-token";var Ot=F("Raydium_accountInfo_util");async function be(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:d=100}=L({batchRequest:!1},n),p=Nt(t,d),f=new Array(p.length).fill([]);if(i){let g=p.map(x=>{let C=r._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),T=Nt(g,10);f=(await(await Promise.all(T.map(async x=>await r._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(C=>{if(C){let{data:S,executable:M,lamports:P,owner:h,rentEpoch:B}=C;return S.length!==2&&S[1]!=="base64"&&Ot.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new Oo(h),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>r.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Ot.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}function Nt(r,t=1,n=[]){let i=[...r];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{PublicKey as Gs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xs}from"@solana/spl-token";import{ComputeBudgetProgram as yn,Keypair as gn,PublicKey as No,Transaction as Pn,TransactionMessage as Mo,VersionedTransaction as An}from"@solana/web3.js";var H={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 Fo}from"@solana/spl-token";var bn=F("Raydium_txUtil"),wn=1644;function ct(r){let t=[],n=[];return r.microLamports&&(t.push(yn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(H.SetComputeUnitPrice)),r.units&&(t.push(yn.setComputeUnitLimit({units:r.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function xe(r,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=r.getLatestBlockhash)==null?void 0:i.call(r,{commitment:n})))==null?void 0:u.blockhash}async function lt(r,t){return r.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);r.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}i(Object.assign(d.err,{txId:t}))},"confirmed")})}function Mt(r,t){r.length<1&&bn.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&bn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<wn}catch{return!1}}function me(r,t){let[n,i]=No.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function Xe({instructions:r,payer:t,signers:n}){return Mt(r,[t,...n])}function Ye({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=gn.generate().publicKey.toString()}){let d=new Mo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new An(d).serialize()).toString("base64").length<wn}catch{return!1}}var vo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Vo=r=>{let t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof An&&(t=vo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(r){let t=[];return r.forEach(n=>{n instanceof Pn&&(n.recentBlockhash||(n.recentBlockhash=Fo.toBase58()),n.feePayer||(n.feePayer=gn.generate().publicKey)),t.push(Vo(n))}),console.log("simulate tx string:",t),t}import{PublicKey as k}from"@solana/web3.js";var kn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Tn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),hn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ft=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Hs=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),_o=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),In=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Bn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),js=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Eo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Do=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Wo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),xn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$s=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),qo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vt=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Uo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Js=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Go=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),zo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Xo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),eu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),tu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),nu=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ou=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),iu=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ge={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import su from"bn.js";import{PublicKey as Vt,AddressLookupTableAccount as Re}from"@solana/web3.js";async function _t({connection:r,address:t,cluster:n="mainnet"}){let i=await be(r,[...new Set(t.map(d=>d.toString()))].map(d=>new Vt(d))),u={};for(let d=0;d<t.length;d++){let p=i[d],f=t[d];if(!p)continue;let g=new Re({key:f,state:Re.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Ce[f.toString()]=g:Ke[f.toString()]=g}return u}var Ke={},Et=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ke[t])return Ke;let n=new Vt(t),i=await r.getAccountInfo(n);return i&&(Ke[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ke},Ce={},Dt=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ce[t])return Ce;let n=new Vt(t),i=await r.getAccountInfo(n);return i&&(Ce[t]=new Re({key:n,state:Re.deserialize(i.data)})),Ce};import{PublicKey as Le,sendAndConfirmTransaction as Wt,SystemProgram as Yo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Qo 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 i;let t=(await Qo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=ct(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(Yo.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Le(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...p.filter(f=>f!==Le.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(D(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var y;let{recentBlockHash:d,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},T=d!=null?d:await xe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=T,this.signers.length&&n.sign(...this.signers),ke([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await Wt(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let x=await this.signAllTransactions([n]);if(this.signers.length)for(let C of x)try{C.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var T;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),d=n.filter(y=>y.transaction.instructions.length>0),p=[u,...d.map(y=>y.transaction)],f=[this.signers,...d.map(y=>y.signers)],g=[...this.instructionTypes,...d.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var B;let{sequentially:x,onTxUpdate:C,skipTxCount:S=0,recentBlockHash:M,skipPreflight:P=!0}=y||{},h=M!=null?M:await xe(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(x){let I=[],v=0;for(let V of p){if(++v,v<=S)continue;let b=await Wt(this.connection,V,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});I.push(b)}return{txIds:I,signedTxs:p}}return{txIds:await await Promise.all(p.map(async I=>(I.recentBlockhash=h,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((V,b)=>(V.recentBlockhash=h,f[b].length&&V.sign(...f[b]),V));ke(I);let v=await this.signAllTransactions(I);if(x){let V=0,b=[],A=async()=>{if(!v[V])return;let w=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:P});b.push({txId:w,status:"sent",signedTx:v[V]}),C==null||C([...b]),V++;let K=!1,R=null,_=null,ie=U=>{R!==null&&clearInterval(R),_!==null&&this.connection.removeSignatureListener(_);let W=b.findIndex(J=>J.txId===w);if(W>-1){if(b[W].status==="error"||b[W].status==="success")return;b[W].status=U.err?"error":"success"}C==null||C([...b]),U.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var U;if(K){clearInterval(R);return}try{let W=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(R),ie({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(W){K=!0,clearInterval(R),console.error("getTransaction timeout:",W,w)}},mt)),_=this.connection.onSignature(w,U=>{if(K){this.connection.removeSignatureListener(_);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:b.map(w=>w.txId),signedTxs:v}}else{let V=[];for(let b=0;b<v.length;b+=1){let A=await this.connection.sendRawTransaction(v[b].serialize(),{skipPreflight:P});V.push(A)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var P;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:d}=M,p=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),T=[];for(let h of g)f[h]===void 0&&T.push(new Le(h));let y=await _t({connection:this.connection,address:T});for(let[h,B]of Object.entries(y))f[h]=B;let x=u?Le.default.toBase58():d!=null?d:await xe(this.connection,this.blockhashCommitment),C=new Ze({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new He(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var V;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:v}=h||{};if(ke([S]),(V=this.owner)!=null&&V.isKeyPair){let b=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await lt(this.connection,b),{txId:b,signedTx:S}}if(this.signAllTransactions){let b=await this.signAllTransactions([S]);if(this.signers.length)for(let A of b)try{A.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var T;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),d=n.filter(y=>y.builder.instructions.length>0),p=[u,...d.map(y=>y.transaction)],f=[this.signers,...d.map(y=>y.signers)],g=[...this.instructionTypes,...d.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,x)=>{y.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async y=>{var P;let{sequentially:x,onTxUpdate:C,recentBlockHash:S,skipPreflight:M=!0}=y||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),ke(p),(P=this.owner)!=null&&P.isKeyPair){if(x){let h=[];for(let B of p){let I=await this.connection.sendTransaction(B,{skipPreflight:M});await lt(this.connection,I),h.push(I)}return{txIds:h,signedTxs:p}}return{txIds:await Promise.all(p.map(async h=>await this.connection.sendTransaction(h,{skipPreflight:M}))),signedTxs:p}}if(this.signAllTransactions){let h=await this.signAllTransactions(p);if(x){let B=0,I=[],v=async()=>{if(!h[B])return;let V=await this.connection.sendTransaction(h[B],{skipPreflight:M});I.push({txId:V,status:"sent",signedTx:h[B]}),C==null||C([...I]),B++;let b=!1,A=null,w=null,K=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let _=I.findIndex(ie=>ie.txId===V);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=R.err?"error":"success"}C==null||C([...I]),R.err||v()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(b){clearInterval(A);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(b=!0,clearInterval(A),K({err:((R=_.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){b=!0,clearInterval(A),console.error("getTransaction timeout:",_,V)}},mt)),w=this.connection.onSignature(V,R=>{if(b){this.connection.removeSignatureListener(w);return}b=!0,K(R)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let v=await this.connection.sendTransaction(h[I],{skipPreflight:M});B.push(v)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var C;let x=t||{},{splitIns:n=[],computeBudgetConfig:i}=x,u=ce(x,["splitIns","computeBudgetConfig"]),d=i?ct(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,M)=>D(L({},S),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],T=[],y=0;if(this.allInstructions.forEach(S=>{let M=[...T,S],P=i?[...d.instructions,...M]:M,B=[...new Set(M.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(I=>new Le(I));if(S!==n[y]&&T.length<12&&(Xe({instructions:P,payer:this.feePayer,signers:B})||Xe({instructions:M,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");y+=S===n[y]?1:0,Xe({instructions:i?[...d.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new Qe().add(...d.instructions,...T)):f.push(new Qe().add(...T)),g.push(Array.from(new Set(T.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(I=>p[I]).filter(I=>I!==void 0)),T=[S]}}),T.length>0){let M=[...new Set(T.map(P=>P.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Xe({instructions:i?[...d.instructions,...T]:[...T],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new Qe().add(...d.instructions,...T)):f.push(new Qe().add(...T)),g.push(M)}return f.forEach(S=>S.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&g.forEach(S=>{S.some(M=>M.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var V;let{sequentially:M,onTxUpdate:P,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},v=B!=null?B:await xe(this.connection,this.blockhashCommitment);if(f.forEach(async(b,A)=>{b.recentBlockhash=v,g[A].length&&b.sign(...g[A])}),ke(f),(V=this.owner)!=null&&V.isKeyPair){if(M){let b=0,A=[];for(let w of f){if(++b,b<=h){A.push("tx skipped");continue}let K=await Wt(this.connection,w,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});A.push(K)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:I}))),signedTxs:f}}if(this.signAllTransactions){let b=await this.signAllTransactions(f.slice(h,f.length)),A=[...f.slice(0,h),...b];if(M){let w=0,K=[],R=async()=>{if(!A[w])return;w<h&&(K.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...K]),w++,R());let _=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:I});K.push({txId:_,status:"sent",signedTx:A[w]}),P==null||P([...K]),w++;let ie=!1,U=null,W=null,J=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=K.findIndex(pe=>pe.txId===_);if(ne>-1){if(K[ne].status==="error"||K[ne].status==="success")return;K[ne].status=G.err?"error":"success"}P==null||P([...K]),G.err||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ie){clearInterval(U);return}try{let ne=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",_))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,_)}},mt)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await R(),{txIds:K.map(_=>_.txId),signedTxs:A}}else{let w=[];for(let K=0;K<A.length;K+=1){let R=await this.connection.sendRawTransaction(A[K].serialize(),{skipPreflight:I});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:p=12}=v,f=ce(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await Dt(this.connection):await Et(this.connection)),u),T=Array.from(new Set([...this.lookupTableAddress,...d])),y=[];for(let b of T)g[b]===void 0&&y.push(new Le(b));let x=await _t({connection:this.connection,address:y});for(let[b,A]of Object.entries(x))g[b]=A;let C=n?ct(n):{instructions:[],instructionTypes:[]},S=await xe(this.connection,this.blockhashCommitment),M=this.signers.reduce((b,A)=>D(L({},b),{[A.publicKey.toBase58()]:A}),{}),P=[],h=[],B=[],I=0;if(this.allInstructions.forEach(b=>{let A=[...B,b],w=n?[...C.instructions,...A]:A;if(b!==i[I]&&B.length<p&&(Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Ye({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");I+=b===i[I]?1:0;let K={};for(let R of[...new Set(T)])g[R]!==void 0&&(K[R]=g[R]);if(n&&Ye({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let R=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new He(R))}else{let R=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new He(R))}h.push(Array.from(new Set(B.map(R=>R.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(R=>M[R]).filter(R=>R!==void 0)),B=[b]}}),B.length>0){let A=[...new Set(B.map(w=>w.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(w=>M[w]).filter(w=>w!==void 0);if(n&&Ye({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new He(w))}else{let w=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new He(w))}h.push(A)}return(V=this.owner)!=null&&V.signer&&h.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),P.forEach((b,A)=>{b.sign(h[A])}),{builder:this,transactions:P,buildProps:t,signers:h,instructionTypes:this.instructionTypes,execute:async b=>{var ie;let{sequentially:A,onTxUpdate:w,skipTxCount:K=0,recentBlockHash:R,skipPreflight:_=!0}=b||{};if(P.map(async(U,W)=>{h[W].length&&U.sign(h[W]),R&&(U.message.recentBlockhash=R)}),ke(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let U=0,W=[];for(let J of P){if(++U,U<=K){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:_});await lt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:_}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(K,P.length)),W=[...P.slice(0,K),...U];if(A){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:W[J]}),w==null||w([...G]),J++,ne();return}let pe=await this.connection.sendTransaction(W[J],{skipPreflight:_});G.push({txId:pe,status:"sent",signedTx:W[J]}),w==null||w([...G]),J++;let De=!1,Be=null,nt=null,on=Ae=>{Be!==null&&clearInterval(Be),nt!==null&&this.connection.removeSignatureListener(nt);let fe=G.findIndex(mo=>mo.txId===pe);if(fe>-1){if(G[fe].status==="error"||G[fe].status==="success")return;G[fe].status=Ae.err?"error":"success"}w==null||w([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Be=setInterval(async()=>{var Ae;if(De){clearInterval(Be);return}try{let fe=await this.connection.getTransaction(pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});fe&&(De=!0,clearInterval(Be),on({err:((Ae=fe.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",pe))}catch(fe){De=!0,clearInterval(Be),console.error("getTransaction timeout:",fe,pe)}},mt)),nt=this.connection.onSignature(pe,Ae=>{if(De){this.connection.removeSignatureListener(nt);return}De=!0,on(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:_});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as Mu}from"@solana/web3.js";import vu from"bn.js";import Zo from"bn.js";var ft=new Zo(1e6);var Kn={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"},Ho=D(L({},Kn),{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=F("Raydium_Api");import{PublicKey as xm,SystemProgram as Km}from"@solana/web3.js";import{AccountLayout as Nm,createAssociatedTokenAccountIdempotentInstruction as Mm,TOKEN_PROGRAM_ID as Fm,TOKEN_2022_PROGRAM_ID as vm}from"@solana/spl-token";var qt=(...r)=>r.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=F(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 im,SystemProgram as am}from"@solana/web3.js";import cm from"bn.js";import{createCloseAccountInstruction as pm,createInitializeAccountInstruction as fm,createTransferInstruction as ym,TOKEN_PROGRAM_ID as bm}from"@solana/spl-token";import{Keypair as zl,PublicKey as Xl}from"@solana/web3.js";import Zl from"bn.js";import{TOKEN_PROGRAM_ID as $l}from"@solana/spl-token";import{PublicKey as ui}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as jo,BitStructure as Hc,blob as $o,Blob as jc,cstr as $c,f32 as Jc,f32be as el,f64 as tl,f64be as nl,greedy as ol,Layout as Jo,ns64 as il,ns64be as rl,nu64 as al,nu64be as sl,offset as ei,s16 as ul,s16be as cl,s24 as ll,s24be as ml,s32 as ti,s32be as dl,s40 as pl,s40be as fl,s48 as yl,s48be as bl,s8 as gl,seq as ni,struct as Pl,Structure as oi,u16 as ii,u16be as Al,u24 as wl,u24be as kl,u32 as ri,u32be as Tl,u40 as hl,u40be as Il,u48 as Bl,u48be as Sl,u8 as ai,UInt as si,union as xl,Union as Kl,unionLayoutDiscriminator as Cl,utf8 as Rl}from"@solana/buffer-layout";var yt=Jo,Cn=oi;var Ut=si;var Rn=ai,Q=ii;var bt=ri;var se=ti;var Ln=ni;var N=$o;var Gt=jo,On=ei;var he=class extends yt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new Nn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=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),i,u)}},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,i=0){let u=this._lower.decode(n,i),d=this._upper.decode(n,i+this._lower.span);return L(L({},u),d)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(r){return new Ut(1,r)}function X(r){return new Ut(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function Fn(r){return new he(1,!0,r)}function Oe(r){return new he(8,!0,r)}function vn(r){return new he(16,!0,r)}var $e=class extends yt{constructor(n,i,u,d){super(n.span,d);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function o(r){return new $e(N(32),t=>new ui(t),t=>t.toBuffer(),r)}function ae(r){return new $e(Rn(),ci,li,r)}function ci(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function li(r){return r?1:0}function Vn(r,t){let n=bt("length"),i=l([n,m(r,On(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),t)}var zt=class extends Cn{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new zt(r,t,n)}function m(r,t,n){let i,u=typeof t=="number"?t:Mn(t)?t.toNumber():new Proxy(t,{get(d,p){if(!i){let f=Reflect.get(d,"count");i=Mn(f)?f.toNumber():f,Reflect.set(d,"count",i)}return Reflect.get(d,p)},set(d,p,f){return p==="count"&&(i=f),Reflect.set(d,p,f)}});return Ln(r,u,n)}var Pt=l([o("mint"),o("owner"),e("amount"),X("delegateOption"),o("delegate"),c("state"),X("isNativeOption"),e("isNative"),e("delegatedAmount"),X("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as jg,SystemProgram as $g}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as eP}from"@solana/spl-token";import lP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as vy,TOKEN_2022_PROGRAM_ID as Vy,TOKEN_PROGRAM_ID as _y}from"@solana/spl-token";import{PublicKey as Dy}from"@solana/web3.js";import qy from"bn.js";import Gy from"decimal.js";import{TOKEN_PROGRAM_ID as Xm}from"@solana/spl-token";import{PublicKey as Hm}from"@solana/web3.js";var di=l([X("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as iy,TOKEN_2022_PROGRAM_ID as ry,TOKEN_PROGRAM_ID as ay}from"@solana/spl-token";import{Keypair as cy,PublicKey as ly,SystemProgram as dy,TransactionInstruction as py}from"@solana/web3.js";import yy from"bn.js";import E from"bn.js";var Ne=new E(1).shln(64);var pi=new E(1).shln(128),Xt=new E(1).shln(64).subn(1),fi=new E(1).shln(128).subn(1);var Me=new E("4295048016"),Fe=new E("79226673521066979257578248091"),yi=new E("59543866431248"),bi=new E("184467440737095516"),gi=new E("15793534762490258745");var Yt=60,ud=new E("18446743708227953217"),Pi=[{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 j=new E(0),ve=new E(1),cd=new E(-1);var ld=new E("18446744073700000000");var Ai=l([N(8),c("bump"),Q("index"),o("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Q("tickSpacing"),X("fundFeeRate"),m(X(),1),o("fundOwner"),m(e(),3)]),wi=l([X("blockTimestamp"),Oe("tickCumulative"),m(e(),4)]),qn=l([N(8),ae("initialized"),e("recentEpoch"),Q("observationIndex"),o("poolId"),m(wi,En,"observations"),m(e(),4)]),ki=l([Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ti=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),Qt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),Q("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(O(),4),c("status"),c("feeOn"),N(6),m(Ti,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),ki.replicate("dynamicFeeInfo"),m(e(),46)]),hi=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Ii=l([N(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(hi,Je,"rewardInfos"),e("recentEpoch"),m(e(),7)]),fd=l([N(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(O(),Je,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Bi=l([se("tick"),vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),m(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),m(X(),3)]),Un=l([N(8),o("poolId"),se("startTickIndex"),m(Bi,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Si=l([N(8),c("bump"),m(o(),Dn,"operationOwners"),m(o(),Wn,"whitelistMints")]),xi=l([N(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),m(e(),4)]),Gn=l([N(8),o("poolId"),N(8*8*wt,"positiveTickArrayBitmap"),N(8*8*wt,"negativeTickArrayBitmap")]),yd=l([N(8),Q("index"),Q("filterPeriod"),Q("decayPeriod"),Q("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),m(e(),8)]),Ki=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),bd=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Ci=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Ad from"bn.js";var Rd=Buffer.from("amm_config","utf8"),Li=Buffer.from("pool","utf8"),Oi=Buffer.from("pool_vault","utf8"),Ld=Buffer.from("pool_reward_vault","utf8"),Od=Buffer.from("position","utf8"),Nd=Buffer.from("tick_array","utf8"),Md=Buffer.from("operation","utf8"),Fd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),vd=Buffer.from("observation","utf8"),Vd=Buffer.from("support_mint","utf8"),_d=Buffer.from("dynamic_fee_config","utf8"),Ed=Buffer.from("permission","utf8");var Dd=Buffer.from("locked_position","utf8");import{sha256 as Yi}from"js-sha256";import Ni from"bn.js";import Gd from"decimal.js";var Xd=new Ni(1).shln(256).subn(1);import lp from"bn.js";import Jd from"bn.js";import tp from"decimal.js";import yp from"bn.js";import gp from"decimal.js";import{PublicKey as of}from"@solana/web3.js";import af from"bn.js";import{TOKEN_2022_PROGRAM_ID as ff,TOKEN_PROGRAM_ID as yf}from"@solana/spl-token";import Af from"decimal.js";import Xp from"bn.js";import Np from"bn.js";import Rf from"bn.js";function $(r){let t=`global:${r}`;return Buffer.from(Yi.digest(t)).slice(0,8)}qn.span;var hy=F("Raydium_Clmm"),Iy={createPool:$("create_pool"),createCustomizablePool:$("create_customizable_pool"),createPermissionedPool:$("create_permissioned_pool"),openPositionV2:$("open_position_v2"),openPositionWithToken22Nft:$("open_position_with_token22_nft"),closePosition:$("close_position"),increaseLiquidityV2:$("increase_liquidity_v2"),decreaseLiquidityV2:$("decrease_liquidity_v2"),initializeReward:$("initialize_reward"),setRewardParams:$("set_reward_params"),updateRewardInfos:$("update_reward_infos"),collectRemainingRewards:$("collect_remaining_rewards"),swapV2:$("swap_v2"),openLimitOrder:$("open_limit_order"),increaseLimitOrder:$("increase_limit_order"),decreaseLimitOrder:$("decrease_limit_order"),settleLimitOrder:$("settle_limit_order"),closeLimitOrder:$("close_limit_order")};import{PublicKey as $t}from"@solana/web3.js";var $i=l([c("instruction")]),Ji=l([c("instruction")]),er=l([e("rewardState"),e("rewardOpenTime"),e("rewardEndTime"),e("rewardLastUpdateTime"),e("totalReward"),e("totalRewardEmissioned"),e("rewardClaimed"),e("rewardPer