UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 76.3 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 Pa from"big.js";import we from"bn.js";import Se from"bn.js";import MC 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"),xa=new z("SysvarC1ock11111111111111111111111111111111"),at=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),To=new z("Sysvar1nstructions1111111111111111111111111"),ho=ln.programId,Ka=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ca=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ra=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),La=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Oa=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Na=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ma=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Fa=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),va=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Va=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),_a=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 Ya(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 VK}from"lodash";import sc from"axios";import{PublicKey as Fo}from"@solana/web3.js";import{MINT_SIZE as Bs,TOKEN_PROGRAM_ID as Ss,getTransferFeeConfig as xs,unpackMint as Ks}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 zs}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ys}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 j={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(j.SetComputeUnitPrice)),r.units&&(n.push(gn.setComputeUnitLimit({units:r.units})),t.push(j.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"),js=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Sn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$s=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Kn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Cn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Js=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_t=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Xo=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),eu=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Zo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),tu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ou=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),iu=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ru=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 uu 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(j.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(ee=>ee.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,ee=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),ee({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,ee(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 ee of P){if(++U,U<=K){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(ee,{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 ee=0,G=[],ne=async()=>{if(!q[ee])return;if(ee<K){G.push({txId:"",status:"success",signedTx:q[ee]}),w==null||w([...G]),ee++,ne();return}let fe=await this.connection.sendTransaction(q[ee],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:q[ee]}),w==null||w([...G]),ee++;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 ee=[];for(let G=0;G<q.length;G+=1){let ne=await this.connection.sendTransaction(q[G],{skipPreflight:_});ee.push(ne)}return{txIds:ee,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as xu}from"@solana/web3.js";import Cu 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 Rc=F("Raydium_Api");import{PublicKey as wm,SystemProgram as km}from"@solana/web3.js";import{AccountLayout as Sm,createAssociatedTokenAccountIdempotentInstruction as xm,TOKEN_PROGRAM_ID as Km,TOKEN_2022_PROGRAM_ID as Cm}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 jl,SystemProgram as Jl}from"@solana/web3.js";import nm from"bn.js";import{createCloseAccountInstruction as am,createInitializeAccountInstruction as sm,createTransferInstruction as um,TOKEN_PROGRAM_ID as cm}from"@solana/spl-token";import{Keypair as _l,PublicKey as El}from"@solana/web3.js";import ql from"bn.js";import{TOKEN_PROGRAM_ID as zl}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 Uc,blob as ti,Blob as Gc,cstr as zc,f32 as Xc,f32be as Yc,f64 as Qc,f64be as Zc,greedy as Hc,Layout as ni,ns64 as jc,ns64be as $c,nu64 as Jc,nu64be as el,offset as oi,s16 as tl,s16be as nl,s24 as ol,s24be as il,s32 as ii,s32be as rl,s40 as al,s40be as sl,s48 as ul,s48be as cl,s8 as ll,seq as ri,struct as ml,Structure as ai,u16 as si,u16be as dl,u24 as pl,u24be as fl,u32 as ui,u32be as yl,u40 as bl,u40be as gl,u48 as Pl,u48be as Al,u8 as ci,UInt as li,union as wl,Union as kl,unionLayoutDiscriminator as Tl,utf8 as hl}from"@solana/buffer-layout";var yt=ni,Ln=ai;var zt=li;var On=ci,Z=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 Gg,SystemProgram as zg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Yg}from"@solana/spl-token";import oP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Cy,TOKEN_2022_PROGRAM_ID as Ry,TOKEN_PROGRAM_ID as Ly}from"@solana/spl-token";import{PublicKey as Ny}from"@solana/web3.js";import Fy from"bn.js";import Vy from"decimal.js";import{TOKEN_PROGRAM_ID as Em}from"@solana/spl-token";import{PublicKey as Um}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 jf,TOKEN_2022_PROGRAM_ID as $f,TOKEN_PROGRAM_ID as Jf}from"@solana/spl-token";import{Keypair as ny,PublicKey as oy,SystemProgram as ry,TransactionInstruction as ay}from"@solana/web3.js";import uy 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,td=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),nd=new E(-1);var od=new E("18446744073700000000");var Ti=l([N(8),c("bump"),Z("index"),i("owner"),X("protocolFeeRate"),X("tradeFeeRate"),Z("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"),Z("observationIndex"),i("poolId"),d(hi,Wn,"observations"),d(e(),4)]),Ii=l([Z("filterPeriod"),Z("decayPeriod"),Z("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"),Z("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)]),sd=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")]),ud=l([N(8),Z("index"),Z("filterPeriod"),Z("decayPeriod"),Z("reductionFactor"),X("dynamicFeeControl"),X("maxVolatilityAccumulator"),d(e(),8)]),Li=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),cd=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 dd from"bn.js";var hd=Buffer.from("amm_config","utf8"),Mi=Buffer.from("pool","utf8"),Fi=Buffer.from("pool_vault","utf8"),Id=Buffer.from("pool_reward_vault","utf8"),Bd=Buffer.from("position","utf8"),Sd=Buffer.from("tick_array","utf8"),xd=Buffer.from("operation","utf8"),Kd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Cd=Buffer.from("observation","utf8"),Rd=Buffer.from("support_mint","utf8"),Ld=Buffer.from("dynamic_fee_config","utf8"),Od=Buffer.from("permission","utf8");var Nd=Buffer.from("locked_position","utf8");import{sha256 as Hi}from"js-sha256";import vi from"bn.js";import Vd from"decimal.js";var Ed=new vi(1).shln(256).subn(1);import op from"bn.js";import Xd from"bn.js";import Qd from"decimal.js";import up from"bn.js";import lp from"decimal.js";import{PublicKey as Hp}from"@solana/web3.js";import $p from"bn.js";import{TOKEN_2022_PROGRAM_ID as sf,TOKEN_PROGRAM_ID as uf}from"@solana/spl-token";import df from"decimal.js";import Ep from"bn.js";import Sp from"bn.js";import hf from"bn.js";function J(r){let n=`global:${r}`;return Buffer.from(Hi.digest(n)).slice(0,8)}Gn.span;v