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 it=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(r,n,t)=>n in r?yo(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,L=(r,n)=>{for(var t in n||(n={}))sn.call(n,t)&&an(r,t,n[t]);if(it)for(var t of it(n))un.call(n,t)&&an(r,t,n[t]);return r},D=(r,n)=>bo(r,go(n));var ce=(r,n)=>{var t={};for(var o in r)sn.call(r,o)&&n.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&it)for(var o of it(r))n.indexOf(o)<0&&un.call(r,o)&&(t[o]=r[o]);return t};import ga from"big.js";import we from"bn.js";import Se from"bn.js";import LC from"decimal.js";import{PublicKey as Po}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var rt={chainId:101,address:Po.default.toBase58(),programId:cn.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:cn.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 Kt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as ln,SYSVAR_RENT_PUBKEY as Ao}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as wo}from"@solana/spl-token";function Ke({pubkey:r,isSigner:n=!1,isWritable:t=!0}){return{pubkey:r,isWritable:t,isSigner:n}}var ko=[Ke({pubkey:wo,isWritable:!1}),Ke({pubkey:ln.programId,isWritable:!1}),Ke({pubkey:Ao,isWritable:!1})];function mn({publicKey:r,transformSol:n}){let t=dn(r.toString());if(t instanceof z)return n&&t.equals(Te)?be:t;if(n&&t.toString()===Te.toBase58())return be;if(typeof t=="string"){if(t===z.default.toBase58())return z.default;try{return new z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function dn(r){try{return new z(r)}catch{return r}}var xt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ue=new z("SysvarRent111111111111111111111111111111111"),Sa=new z("SysvarC1ock11111111111111111111111111111111"),at=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),To=new z("Sysvar1nstructions1111111111111111111111111"),ho=ln.programId,xa=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ka=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ca=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ra=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),La=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Oa=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Na=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ma=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Fa=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),va=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Va=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new z("So11111111111111111111111111111111111111112"),Te=z.default;var Ct=class{constructor({mint:n,decimals:t,symbol:o,name:u,skipMint:m=!1,isToken2022:p=!1}){if(n===Te.toBase58()||n instanceof Kt&&Te.equals(n)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Kt(le.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||n.toString().substring(0,6),this.name=u||n.toString().substring(0,6),this.mint=m?Kt.default:mn({publicKey:n}),this.isToken2022=p}equals(n){return this===n?!0:this.mint.equals(n.mint)}},Q=Ct;Q.WSOL=new Ct(D(L({},le),{mint:le.address}));var Rt=class{constructor({decimals:n,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=n,this.symbol=t,this.name=o}equals(n){return this===n}},st=Rt;st.SOL=new Rt(rt);function Xa(r,n){return r instanceof Q&&n instanceof Q?r.equals(n):r instanceof Q||n instanceof Q?!1:r===n}import ct from"big.js";import Co from"bn.js";import Ro from"decimal.js-light";import{get as pn,set as Io}from"lodash";var Lt=class{constructor(n){this.logLevel=n.logLevel!==void 0?n.logLevel:0,this.name=n.name}set level(n){this.logLevel=n}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(n){return n<=this.logLevel}error(...n){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...n),this):this}logWithError(...n){let t=n.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(t)}warning(...n){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...n),this):this}info(...n){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...n),this):this}debug(...n){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...n),this):this}},fn={},Bo={};function F(r){let n=pn(fn,r);if(!n){let t=pn(Bo,r);n=new Lt({name:r,logLevel:t}),Io(fn,r,n)}return n}import Ge from"bn.js";var yn=9007199254740991;function Y(r){let n=F("Raydium_parseBigNumberish");if(r instanceof Ge)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new Ge(r);n.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&n.logWithError(`BigNumberish number underflow: ${r}`),(r>=yn||r<=-yn)&&n.logWithError(`BigNumberish number overflow: ${r}`),new Ge(String(r))):typeof r=="bigint"?new Ge(r.toString()):(n.error(`invalid BigNumberish value: ${r}`),new Ge(0))}import So from"toformat";var xo=So,ze=xo;var ut=F("module/fraction"),Ot=ze(ct),Xe=ze(Ro),Lo={[0]:Xe.ROUND_DOWN,[1]:Xe.ROUND_HALF_UP,[2]:Xe.ROUND_UP},Oo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},W=class{constructor(n,t=new Co(1)){this.numerator=Y(n),this.denominator=Y(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(n){let t=n instanceof W?n:new W(Y(n));return this.denominator.eq(t.denominator)?new W(this.numerator.add(t.numerator),this.denominator):new W(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(n){let t=n instanceof W?n:new W(Y(n));return this.denominator.eq(t.denominator)?new W(this.numerator.sub(t.numerator),this.denominator):new W(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(n){let t=n instanceof W?n:new W(Y(n));return new W(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(n){let t=n instanceof W?n:new W(Y(n));return new W(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(n,t={groupSeparator:""},o=1){Number.isInteger(n)||ut.logWithError(`${n} is not an integer.`),n<=0&&ut.logWithError(`${n} is not positive.`),Xe.set({precision:n+1,rounding:Lo[o]});let u=new Xe(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(n);return u.toFormat(u.decimalPlaces(),t)}toFixed(n,t={groupSeparator:""},o=1){return Number.isInteger(n)||ut.logWithError(`${n} is not an integer.`),n<0&&ut.logWithError(`${n} is negative.`),Ot.DP=n,Ot.RM=Oo[o]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(n,t)}isZero(){return this.numerator.isZero()}};import No from"bn.js";var bn=new W(new No(100)),Pe=class extends W{toSignificant(n=5,t,o){return this.mul(bn).toSignificant(n,t,o)}toFixed(n=2,t,o){return this.mul(bn).toFixed(n,t,o)}};var Mo=F("Raydium_price"),me=class extends W{constructor(t){let{baseToken:o,quoteToken:u,numerator:m,denominator:p}=t;super(m,p);this.baseToken=o,this.quoteToken=u,this.scalar=new W(Nt(o.decimals),Nt(u.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new me({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Mo.logWithError("mul token not equals");let o=super.mul(t);return new me({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:o.denominator,numerator:o.numerator})}toSignificant(t=this.quoteToken.decimals,o,u){return this.adjusted.toSignificant(t,o,u)}toFixed(t=this.quoteToken.decimals,o,u){return this.adjusted.toFixed(t,o,u)}};import{merge as MK}from"lodash";import ac from"axios";import{PublicKey as Fo}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 Mt=F("Raydium_accountInfo_util");async function ge(r,n,t){let{batchRequest:o,commitment:u="confirmed",chunkCount:m=100}=L({batchRequest:!1},t),p=Ft(n,m),f=new Array(p.length).fill([]);if(o){let g=p.map(x=>{let C=r._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),T=Ft(g,10);f=(await(await Promise.all(T.map(async x=>await r._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Mt.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"&&Mt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:P,owner:new Fo(h),rentEpoch:B}}return null})))}else try{f=await Promise.all(p.map(g=>r.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Mt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}function Ft(r,n=1,t=[]){let o=[...r];if(n<=0)return t;for(;o.length;)t.push(o.splice(0,n));return t}import{PublicKey as Gs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Xs}from"@solana/spl-token";import{ComputeBudgetProgram as gn,Keypair as An,PublicKey as vo,Transaction as wn,TransactionMessage as Vo,VersionedTransaction as kn}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 _o}from"@solana/spl-token";var Pn=F("Raydium_txUtil"),Tn=1644;function lt(r){let n=[],t=[];return r.microLamports&&(n.push(gn.setComputeUnitPrice({microLamports:r.microLamports})),t.push(H.SetComputeUnitPrice)),r.units&&(n.push(gn.setComputeUnitLimit({units:r.units})),t.push(H.SetComputeUnitLimit)),{instructions:n,instructionTypes:t}}async function Ce(r,n){var o,u;let t=n!=null?n:"confirmed";return(u=await((o=r.getLatestBlockhash)==null?void 0:o.call(r,{commitment:t})))==null?void 0:u.blockhash}async function mt(r,n){return r.getSignatureStatuses([n]),new Promise((t,o)=>{let u=setTimeout(o,6e4);r.onSignature(n,m=>{if(clearTimeout(u),!m.err){t("");return}o(Object.assign(m.err,{txId:n}))},"confirmed")})}function vt(r,n){r.length<1&&Pn.logWithError(`no instructions provided: ${r.toString()}`),n.length<1&&Pn.logWithError(`no signers provided:, ${n.toString()}`);let t=new wn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=n[0],t.add(...r);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function de(r,n){let[t,o]=vo.findProgramAddressSync(r,n);return{publicKey:t,nonce:o}}function Qe({instructions:r,payer:n,signers:t}){return vt(r,[n,...t])}function Ze({instructions:r,payer:n,lookupTableAddressAccount:t,recentBlockhash:o=An.generate().publicKey.toString()}){let m=new Vo({payerKey:n,recentBlockhash:o,instructions:r}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new kn(m).serialize()).toString("base64").length<Tn}catch{return!1}}var Eo=r=>Buffer.isBuffer(r)?r:r instanceof Uint8Array?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r),Do=r=>{let n=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof kn&&(n=Eo(n));try{return n instanceof Buffer?n.toString("base64"):Buffer.from(n).toString("base64")}catch{return n.toString("base64")}};function he(r){let n=[];return r.forEach(t=>{t instanceof wn&&(t.recentBlockhash||(t.recentBlockhash=_o.toBase58()),t.feePayer||(t.feePayer=An.generate().publicKey)),n.push(Do(t))}),console.log("simulate tx string:",n),n}import{PublicKey as k}from"@solana/web3.js";var hn=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),In=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Bn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Hs=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Sn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),js=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Kn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Cn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),$s=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_t=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Js=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Zo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),eu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),tu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),nu=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),ou=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),iu=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ae={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 Et,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Dt({connection:r,address:n,cluster:t="mainnet"}){let o=await ge(r,[...new Set(n.map(m=>m.toString()))].map(m=>new Et(m))),u={};for(let m=0;m<n.length;m++){let p=o[m],f=n[m];if(!p)continue;let g=new Oe({key:f,state:Oe.deserialize(p.data)});u[f.toString()]=g,t==="devnet"?Le[f.toString()]=g:Re[f.toString()]=g}return u}var Re={},Wt=async r=>{let n="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[n])return Re;let t=new Et(n),o=await r.getAccountInfo(t);return o&&(Re[n]=new Oe({key:t,state:Oe.deserialize(o.data)})),Re},Le={},qt=async r=>{let n="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[n])return Le;let t=new Et(n),o=await r.getAccountInfo(t);return o&&(Le[n]=new Oe({key:t,state:Oe.deserialize(o.data)})),Le};import{PublicKey as Ne,sendAndConfirmTransaction as Ut,SystemProgram as Ho,Transaction as He,TransactionMessage as je,VersionedTransaction as $e}from"@solana/web3.js";import jo from"axios";var dt=2e3,pt=class{constructor(n){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=n.connection,this.feePayer=n.feePayer,this.signAllTransactions=n.signAllTransactions,this.owner=n.owner,this.cluster=n.cluster,this.blockhashCommitment=n.blockhashCommitment,this.loopMultiTxStatus=!!n.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 o;let n=(await jo.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=n==null?void 0:n[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(n){if(n){let{instructions:t,instructionTypes:o}=lt(n);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(n){var t;return n?(this.endInstructions.push(Ho.transfer({fromPubkey:(t=n.feePayer)!=null?t:this.feePayer,toPubkey:new Ne(n.address),lamports:BigInt(n.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:n,defaultIns:t}){try{let o=n||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:n=[],endInstructions:t=[],signers:o=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...n),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Ne.default.toString())),this}async versionBuild({txVersion:n,extInfo:t,lookupTableAddress:o}){return n===0?await this.buildV0(D(L({},t||{}),{lookupTableAddress:o})):this.build(t)}build(n){var o;let t=new He;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var y;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},T=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(t.recentBlockhash=T,this.signers.length&&t.sign(...this.signers),he([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await Ut(this.connection,t,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:p}),signedTx:t};if(this.signAllTransactions){let x=await this.signAllTransactions([t]);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:n||{}}}buildMultiTx(n){var T;let{extraPreBuildData:t=[],extInfo:o}=n,{transaction:u}=this.build(o),m=t.filter(y=>y.transaction.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.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 Ce(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 Ut(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));he(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 q=b.findIndex(J=>J.txId===w);if(q>-1){if(b[q].status==="error"||b[q].status==="success")return;b[q].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 q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(K=!0,clearInterval(R),ie({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){K=!0,clearInterval(R),console.error("getTransaction timeout:",q,w)}},dt)),_=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:o||{}}}async versionMultiBuild({extraPreBuildData:n,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:n,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:n,extInfo:o})}async buildV0(n){var P;let M=n||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:u,recentBlockhash:m}=M,p=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=L(L({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),t),g=Array.from(new Set([...o,...this.lookupTableAddress])),T=[];for(let h of g)f[h]===void 0&&T.push(new Ne(h));let y=await Dt({connection:this.connection,address:T});for(let[h,B]of Object.entries(y))f[h]=B;let x=u?Ne.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),C=new je({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 $e(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(he([S]),(V=this.owner)!=null&&V.isKeyPair){let b=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await mt(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(n){var T;let{extraPreBuildData:t=[],buildProps:o}=n,{transaction:u}=await this.buildV0(o),m=t.filter(y=>y.builder.instructions.length>0),p=[u,...m.map(y=>y.transaction)],f=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.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:o,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),he(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 mt(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)}},dt)),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:o||{}}}async sizeCheckBuild(n){var C;let x=n||{},{splitIns:t=[],computeBudgetConfig:o}=x,u=ce(x,["splitIns","computeBudgetConfig"]),m=o?lt(o):{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=o?[...m.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 Ne(I));if(S!==t[y]&&T.length<12&&(Qe({instructions:P,payer:this.feePayer,signers:B})||Qe({instructions:M,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");y+=S===t[y]?1:0,Qe({instructions:o?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new He().add(...m.instructions,...T)):f.push(new He().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);Qe({instructions:o?[...m.instructions,...T]:[...T],payer:this.feePayer,signers:M.map(P=>P.publicKey)})?f.push(new He().add(...m.instructions,...T)):f.push(new He().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 Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(b,A)=>{b.recentBlockhash=v,g[A].length&&b.sign(...g[A])}),he(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 Ut(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,q=null,J=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let ne=K.findIndex(fe=>fe.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,_)}},dt)),q=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(q);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(n){var V;let v=n||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=v,f=ce(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),T=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let b of T)g[b]===void 0&&y.push(new Ne(b));let x=await Dt({connection:this.connection,address:y});for(let[b,A]of Object.entries(x))g[b]=A;let C=t?lt(t):{instructions:[],instructionTypes:[]},S=await Ce(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=t?[...C.instructions,...A]:A;if(b!==o[I]&&B.length<p&&(Ze({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Ze({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");I+=b===o[I]?1:0;let K={};for(let R of[...new Set(T)])g[R]!==void 0&&(K[R]=g[R]);if(t&&Ze({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let R=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new $e(R))}else{let R=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new $e(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(t&&Ze({instructions:[...C.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...B]}).compileToV0Message(Object.values(g));P.push(new $e(w))}else{let w=new je({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));P.push(new $e(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:n,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,q)=>{h[q].length&&U.sign(h[q]),R&&(U.message.recentBlockhash=R)}),he(P),(ie=this.owner)!=null&&ie.isKeyPair){if(A){let U=0,q=[];for(let J of P){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:_});await mt(this.connection,G),q.push(G)}return{txIds:q,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)),q=[...P.slice(0,K),...U];if(A){let J=0,G=[],ne=async()=>{if(!q[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:q[J]}),w==null||w([...G]),J++,ne();return}let fe=await this.connection.sendTransaction(q[J],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:q[J]}),w==null||w([...G]),J++;let qe=!1,xe=null,ot=null,rn=ke=>{xe!==null&&clearInterval(xe),ot!==null&&this.connection.removeSignatureListener(ot);let ye=G.findIndex(fo=>fo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=ke.err?"error":"success"}w==null||w([...G]),ke.err||ne()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var ke;if(qe){clearInterval(xe);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(qe=!0,clearInterval(xe),rn({err:((ke=ye.meta)==null?void 0:ke.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){qe=!0,clearInterval(xe),console.error("getTransaction timeout:",ye,fe)}},dt)),ot=this.connection.onSignature(fe,ke=>{if(qe){this.connection.removeSignatureListener(ot);return}qe=!0,rn(ke)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:q}}else{let J=[];for(let G=0;G<q.length;G+=1){let ne=await this.connection.sendTransaction(q[G],{skipPreflight:_});J.push(ne)}return{txIds:J,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as Su}from"@solana/web3.js";import Ku from"bn.js";import $o from"bn.js";var ft=new $o(1e6);var Rn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Jo=D(L({},Rn),{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 Cc=F("Raydium_Api");import{PublicKey as Am,SystemProgram as wm}from"@solana/web3.js";import{AccountLayout as Bm,createAssociatedTokenAccountIdempotentInstruction as Sm,TOKEN_PROGRAM_ID as xm,TOKEN_2022_PROGRAM_ID as Km}from"@solana/spl-token";var Gt=(...r)=>r.map(n=>{try{return typeof n=="object"?JSON.stringify(n):n}catch{return n}}).join(", "),oe=class{constructor({scope:n,moduleName:t}){this.disabled=!1;this.scope=n,this.logger=F(t)}createTxBuilder(n){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:n||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(...n){this.logger.debug(Gt(n))}logInfo(...n){this.logger.info(Gt(n))}logAndCreateError(...n){let t=Gt(n);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Hl,SystemProgram as $l}from"@solana/web3.js";import tm from"bn.js";import{createCloseAccountInstruction as rm,createInitializeAccountInstruction as am,createTransferInstruction as sm,TOKEN_PROGRAM_ID as um}from"@solana/spl-token";import{Keypair as Vl,PublicKey as _l}from"@solana/web3.js";import Wl from"bn.js";import{TOKEN_PROGRAM_ID as Gl}from"@solana/spl-token";import{PublicKey as mi}from"@solana/web3.js";import Fn,{isBN as vn}from"bn.js";import{bits as ei,BitStructure as qc,blob as ti,Blob as Uc,cstr as Gc,f32 as zc,f32be as Xc,f64 as Yc,f64be as Qc,greedy as Zc,Layout as ni,ns64 as Hc,ns64be as jc,nu64 as $c,nu64be as Jc,offset as oi,s16 as el,s16be as tl,s24 as nl,s24be as ol,s32 as ii,s32be as il,s40 as rl,s40be as al,s48 as sl,s48be as ul,s8 as cl,seq as ri,struct as ll,Structure as ai,u16 as si,u16be as ml,u24 as dl,u24be as pl,u32 as ui,u32be as fl,u40 as yl,u40be as bl,u48 as gl,u48be as Pl,u8 as ci,UInt as li,union as Al,Union as wl,unionLayoutDiscriminator as kl,utf8 as Tl}from"@solana/buffer-layout";var yt=ni,Ln=ai;var zt=li;var On=ci,j=si;var bt=ui;var se=ii;var Nn=ri;var N=ti;var Xt=ei,Mn=oi;var Be=class extends yt{constructor(t,o,u){super(t,u);this.blob=N(t),this.signed=o}decode(t,o=0){let u=new Fn(this.blob.decode(t,o),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(t,o,u=0){return typeof t=="number"&&(t=new Fn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,u)}},gt=class extends yt{constructor(t){super(8,t);this._lower=Xt(bt(),!1),this._upper=Xt(bt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let u=this._lower.decode(t,o),m=this._upper.decode(t,o+this._lower.span);return L(L({},u),m)}encode(t,o,u=0){return this._lower.encode(t,o,u)+this._upper.encode(t,o,u+this._lower.span)}};function c(r){return new zt(1,r)}function X(r){return new zt(4,r)}function e(r){return new Be(8,!1,r)}function O(r){return new Be(16,!1,r)}function Vn(r){return new Be(1,!0,r)}function Me(r){return new Be(8,!0,r)}function _n(r){return new Be(16,!0,r)}var Je=class extends yt{constructor(t,o,u,m){super(t.span,m);this.layout=t,this.decoder=o,this.encoder=u}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,u){return this.layout.encode(this.encoder(t),o,u)}getSpan(t,o){return this.layout.getSpan(t,o)}};function i(r){return new Je(N(32),n=>new mi(n),n=>n.toBuffer(),r)}function ae(r){return new Je(On(),di,pi,r)}function di(r){if(r===0)return!1;if(r===1)return!0;throw new Error("Invalid bool: "+r)}function pi(r){return r?1:0}function En(r,n){let t=bt("length"),o=l([t,d(r,Mn(t,-t.span),"values")]);return new Je(o,({values:u})=>u,u=>({values:u}),n)}var Yt=class extends Ln{decode(n,t){return super.decode(n,t)}};function l(r,n,t){return new Yt(r,n,t)}function d(r,n,t){let o,u=typeof n=="number"?n:vn(n)?n.toNumber():new Proxy(n,{get(m,p){if(!o){let f=Reflect.get(m,"count");o=vn(f)?f.toNumber():f,Reflect.set(m,"count",o)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(o=f),Reflect.set(m,p,f)}});return Nn(r,u,t)}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 Dg,SystemProgram as Wg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Ug}from"@solana/spl-token";import Jg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as By,TOKEN_2022_PROGRAM_ID as Sy,TOKEN_PROGRAM_ID as xy}from"@solana/spl-token";import{PublicKey as Cy}from"@solana/web3.js";import Ly from"bn.js";import Ny from"decimal.js";import{TOKEN_PROGRAM_ID as _m}from"@solana/spl-token";import{PublicKey as qm}from"@solana/web3.js";var yi=l([X("mintAuthorityOption"),i("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),X("freezeAuthorityOption"),i("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Yf,TOKEN_2022_PROGRAM_ID as Qf,TOKEN_PROGRAM_ID as Zf}from"@solana/spl-token";import{Keypair as $f,PublicKey as Jf,SystemProgram as ty,TransactionInstruction as ny}from"@solana/web3.js";import iy from"bn.js";import E from"bn.js";var Fe=new E(1).shln(64);var bi=new E(1).shln(128),Qt=new E(1).shln(64).subn(1),gi=new E(1).shln(128).subn(1);var ve=new E("4295048016"),Ve=new E("79226673521066979257578248091"),Pi=new E("59543866431248"),Ai=new E("184467440737095516"),wi=new E("15793534762490258745");var Zt=60,ed=new E("18446743708227953217"),ki=[{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 et=3,Wn=100;var qn=10,Un=100,wt=14;var $=new E(0),_e=new E(1),td=new E(-1);var nd=new E("18446744073700000000");var Ti=l([N(8),c("bump"),j("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),j("tickSpacing"),X("fundFeeRate"),d(X(),1),i("fundOwner"),d(e(),3)]),hi=l([X("blockTimestamp"),Me("tickCumulative"),d(e(),4)]),Gn=l([N(8),ae("initialized"),e("recentEpoch"),j("observationIndex"),i("poolId"),d(hi,Wn,"observations"),d(e(),4)]),Ii=l([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),X("volatilityReference"),X("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Bi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Ht=l([N(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),j("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),X(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),N(6),d(Bi,et,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ii.replicate("dynamicFeeInfo"),d(e(),46)]),Si=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),xi=l([N(8),c("bump"),i("nftMint"),i("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Si,et,"rewardInfos"),e("recentEpoch"),d(e(),7)]),ad=l([N(8),c("bump"),i("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),et,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ki=l([se("tick"),_n("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(X(),3)]),zn=l([N(8),i("poolId"),se("startTickIndex"),d(Ki,Zt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Ci=l([N(8),c("bump"),d(i(),qn,"operationOwners"),d(i(),Un,"whitelistMints")]),Ri=l([N(8),i("poolId"),i("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),Xn=l([N(8),i("poolId"),N(8*8*wt,"positiveTickArrayBitmap"),N(8*8*wt,"negativeTickArrayBitmap")]),sd=l([N(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Li=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),ud=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Oi=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import md from"bn.js";var Td=Buffer.from("amm_config","utf8"),Ni=Buffer.from("pool","utf8"),Mi=Buffer.from("pool_vault","utf8"),hd=Buffer.from("pool_reward_vault","utf8"),Id=Buffer.from("position","utf8"),Bd=Buffer.from("tick_array","utf8"),Sd=Buffer.from("operation","utf8"),xd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Kd=Buffer.from("observation","utf8"),Cd=Buffer.from("support_mint","utf8"),Rd=Buffer.from("dynamic_fee_config","utf8");var Ld=Buffer.from("locked_position","utf8");import{sha256 as Zi}from"js-sha256";import Fi from"bn.js";import Fd from"decimal.js";var Vd=new Fi(1).shln(256).subn(1);import tp from"bn.js";import Gd from"bn.js";import Xd from"decimal.js";import ap from"bn.js";import up from"decimal.js";import{PublicKey as Qp}from"@solana/web3.js";import Hp from"bn.js";import{TOKEN_2022_PROGRAM_ID as rf,TOKEN_PROGRAM_ID as af}from"@solana/spl-token";import lf from"decimal.js";import Vp from"bn.js";import Ip from"bn.js";import kf from"bn.js";function ee(r){let n=`global:${r}`;return Buffer.from(Zi.digest(n)).slice(0,8)}Gn.span;var dy=F("Raydium_Clmm"),py={createPool:ee("create_poo