UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 76.2 kB
var yo=Object.defineProperty,bo=Object.defineProperties;var go=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(o,t,n)=>t in o?yo(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)=>bo(o,go(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 wo,Transaction as fn,TransactionMessage as ko,VersionedTransaction as yn}from"@solana/web3.js";import{get as cn,set as Po}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={},Ao={};function _(o){let t=cn(ln,o);if(!t){let n=cn(Ao,o);t=new Bt({name:o,logLevel:n}),Po(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 To}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 xe(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]=wo.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 ko({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 ho=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Io=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof yn&&(t=ho(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=To.toBase58()),n.feePayer||(n.feePayer=pn.generate().publicKey)),t.push(Io(n))}),console.log("simulate tx string:",t),t}import{TOKEN_PROGRAM_ID as zC}from"@solana/spl-token";import{PublicKey as ZC}from"@solana/web3.js";import Pa from"big.js";import hC from"bn.js";import Ie from"bn.js";import oC from"decimal.js";import{PublicKey as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gn}from"@solana/spl-token";var at={chainId:101,address:Bo.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 So}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as xo}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Ko=[Ke({pubkey:xo,isWritable:!1}),Ke({pubkey:Pn.programId,isWritable:!1}),Ke({pubkey:So,isWritable:!1})];function xt({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 Kt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ge=new z("SysvarRent111111111111111111111111111111111"),Ga=new z("SysvarC1ock11111111111111111111111111111111"),st=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Co=new z("Sysvar1nstructions1111111111111111111111111"),Ro=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 xt({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:xt({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 Mo from"bn.js";import Fo 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 Lo from"toformat";var Oo=Lo,Xe=Oo;var ct=_("module/fraction"),Ot=Xe(lt),Ye=Xe(Fo),vo={[0]:Ye.ROUND_DOWN,[1]:Ye.ROUND_HALF_UP,[2]:Ye.ROUND_UP},Vo={[0]:lt.roundDown,[1]:lt.roundHalfUp,[2]:lt.roundUp},U=class{constructor(t,n=new Mo(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=Vo[r]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import _o from"bn.js";var Ss=new U(new _o(100));var Os=_("Raydium_price");import{merge as aK}from"lodash";import pc from"axios";import{PublicKey as Eo}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 K=o._buildArgs([C.map(B=>B.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:K}}),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(K=>{if(K){let{data:B,executable:N,lamports:P,owner:A,rentEpoch:I}=K;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 Eo(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"),Do=new h("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),In=new h("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Bn=new h("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),iu=new h("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Wo=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sn=new h("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),qo=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Uo=new h("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),xn=new h("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ru=new h("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Go=new h("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),vt=new h("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),zo=new h("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),au=new h("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Xo=new h("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yo=new h("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Qo=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 Zo,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import Ho 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 Ho.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(Zo.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 xe(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(K=>K.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 K of C)try{K.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:K,skipTxCount:B=0,recentBlockHash:N,skipPreflight:P=!0}=b||{},A=N!=null?N:await xe(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]}),K==null||K([...y]),v++;let x=!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"}K==null||K([...y]),q.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var q;if(x){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(x=!0,clearInterval(L),re({err:((q=W.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){x=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},mt)),V=this.connection.onSignature(k,q=>{if(x){this.connection.removeSignatureListener(V);return}x=!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 xe(this.connection,this.blockhashCommitment),K=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(K);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:K,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]}),K==null||K([...T]),I++;let y=!1,w=null,k=null,x=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"}K==null||K([...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),x({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,x(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 K;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),(K=this.owner)!=null&&K.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 xe(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 x=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(x)}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,x=[],L=async()=>{if(!w[k])return;k<A&&(x.push({txId:"",status:"success",signedTx:w[k]}),P==null||P([...x]),k++,L());let V=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:T});x.push({txId:V,status:"sent",signedTx:w[k]}),P==null||P([...x]),k++;let re=!1,q=null,W=null,$=G=>{q!==null&&clearInterval(q),W!==null&&this.connection.removeSignatureListener(W);let te=x.findIndex(de=>de.txId===V);if(te>-1){if(x[te].status==="error"||x[te].status==="success")return;x[te].status=G.err?"error":"success"}P==null||P([...x]),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:x.map(V=>V.txId),signedTxs:w}}else{let k=[];for(let x=0;x<w.length;x+=1){let L=await this.connection.sendRawTransaction(w[x].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 K=n?it(n):{instructions:[],instructionTypes:[]},B=await xe(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?[...K.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 x={};for(let L of[...new Set(S)])g[L]!==void 0&&(x[L]=g[L]);if(n&&Ue({instructions:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.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(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(k=>N[k]).filter(k=>k!==void 0);if(n&&Ue({instructions:[...K.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:B})){let k=new Ze({payerKey:this.feePayer,recentBlockhash:B,instructions:[...K.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:x=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<=x){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(x,P.length)),W=[...P.slice(0,x),...q];if(w){let $=0,G=[],te=async()=>{if(!W[$])return;if($<x){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(fo=>fo.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 jo from"bn.js";var ft=new jo(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"},$o=D(R({},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=_("Raydium_Api");import{PublicKey as Sm,SystemProgram as xm}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 li}from"@solana/web3.js";import Nn,{isBN as Mn}from"bn.js";import{bits as Jo,BitStructure as Zc,blob as ei,Blob as Hc,cstr as jc,f32 as $c,f32be as Jc,f64 as el,f64be as tl,greedy as nl,Layout as ti,ns64 as ol,ns64be as il,nu64 as rl,nu64be as al,offset as ni,s16 as sl,s16be as ul,s24 as cl,s24be as ll,s32 as oi,s32be as ml,s40 as dl,s40be as pl,s48 as fl,s48be as yl,s8 as bl,seq as ii,struct as gl,Structure as ri,u16 as ai,u16be as Pl,u24 as Al,u24be as wl,u32 as si,u32be as kl,u40 as Tl,u40be as hl,u48 as Il,u48be as Bl,u8 as ui,UInt as ci,union as Sl,Union as xl,unionLayoutDiscriminator as Kl,utf8 as Cl}from"@solana/buffer-layout";var yt=ti,Cn=ri;var Ut=ci;var Rn=ui,Y=ai;var bt=si;var ue=oi;var Ln=ii;var M=ei;var Gt=Jo,On=ni;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 li(t),t=>t.toBuffer(),o)}function ae(o){return new $e(Rn(),mi,di,o)}function mi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function di(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 xy 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 fi=new E(1).shln(128),Xt=new E(1).shln(64).subn(1),yi=new E(1).shln(128).subn(1);var ve=new E("4295048016"),Ve=new E("79226673521066979257578248091"),bi=new E("59543866431248"),gi=new E("184467440737095516"),Pi=new E("15793534762490258745");var Yt=60,Ym=new E("18446743708227953217"),Ai=[{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 wi=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)]),ki=l([X("blockTimestamp"),Me("tickCumulative"),d(e(),4)]),qn=l([M(8),ae("initialized"),e("recentEpoch"),Y("observationIndex"),i("poolId"),d(ki,En,"observations"),d(e(),4)]),Ti=l([Y("filterPeriod"),Y("decayPeriod"),Y("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),ue("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),hi=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(hi,Je,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ti.replicate("dynamicFeeInfo"),d(e(),46)]),Ii=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Bi=l([M(8),c("bump"),i("nftMint"),i("poolId"),ue("tickLower"),ue("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ii,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)]),Si=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(Si,Yt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),xi=l([M(8),c("bump"),d(i(),Dn,"operationOwners"),d(i(),Wn,"whitelistMints")]),Ki=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)]),Ci=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)]),Ri=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"),Oi=Buffer.from("pool","utf8"),Ni=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 Qi}from"js-sha256";import Mi from"bn.js";import Cd from"decimal.js";var Ld=new Mi(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(Qi.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("totalRewardEmissi