@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 75.7 kB
JavaScript
var bo=Object.defineProperty,go=Object.defineProperties;var Po=Object.getOwnPropertyDescriptors;var it=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(r,t,n)=>t in r?bo(r,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[t]=n,C=(r,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(r,n,t[n]);if(it)for(var n of it(t))un.call(t,n)&&an(r,n,t[n]);return r},E=(r,t)=>go(r,Po(t));var ce=(r,t)=>{var n={};for(var i in r)sn.call(r,i)&&t.indexOf(i)<0&&(n[i]=r[i]);if(r!=null&&it)for(var i of it(r))t.indexOf(i)<0&&un.call(r,i)&&(n[i]=r[i]);return n};import Sa from"big.js";import Pe from"bn.js";import Be from"bn.js";import AR from"decimal.js";import{PublicKey as Ao}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as cn}from"@solana/spl-token";var rt={chainId:101,address:Ao.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 wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ko}from"@solana/spl-token";function xe({pubkey:r,isSigner:t=!1,isWritable:n=!0}){return{pubkey:r,isWritable:n,isSigner:t}}var To=[xe({pubkey:ko,isWritable:!1}),xe({pubkey:ln.programId,isWritable:!1}),xe({pubkey:wo,isWritable:!1})];function mn({publicKey:r,transformSol:t}){let n=dn(r.toString());if(n instanceof z)return t&&n.equals(we)?me:n;if(t&&n.toString()===we.toBase58())return me;if(typeof n=="string"){if(n===z.default.toBase58())return z.default;try{return new z(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function dn(r){try{return new z(r)}catch{return r}}var xt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ke=new z("SysvarRent111111111111111111111111111111111"),ho=new z("SysvarC1ock11111111111111111111111111111111"),at=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Io=new z("Sysvar1nstructions1111111111111111111111111"),pn=ln.programId,Fa=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),va=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Va=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),_a=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ea=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Da=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Wa=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),qa=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ua=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ga=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),za=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new z("So11111111111111111111111111111111111111112"),we=z.default;var Ct=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:d=!1,isToken2022:p=!1}){if(t===we.toBase58()||t instanceof Kt&&we.equals(t)){this.decimals=le.decimals,this.symbol=le.symbol,this.name=le.name,this.mint=new Kt(le.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=d?Kt.default:mn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},ee=Ct;ee.WSOL=new Ct(E(C({},le),{mint:le.address}));var Rt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},st=Rt;st.SOL=new Rt(rt);import ct from"big.js";import Ro from"bn.js";import Lo from"decimal.js-light";import{get as fn,set as Bo}from"lodash";var Lt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},yn={},So={};function F(r){let t=fn(yn,r);if(!t){let n=fn(So,r);t=new Lt({name:r,logLevel:n}),Bo(yn,r,t)}return t}import qe from"bn.js";var bn=9007199254740991;function X(r){let t=F("Raydium_parseBigNumberish");if(r instanceof qe)return r;if(typeof r=="string"){if(r.match(/^-?[0-9]+$/))return new qe(r);t.logWithError(`invalid BigNumberish string: ${r}`)}return typeof r=="number"?(r%1&&t.logWithError(`BigNumberish number underflow: ${r}`),(r>=bn||r<=-bn)&&t.logWithError(`BigNumberish number overflow: ${r}`),new qe(String(r))):typeof r=="bigint"?new qe(r.toString()):(t.error(`invalid BigNumberish value: ${r}`),new qe(0))}import xo from"toformat";var Ko=xo,Ue=Ko;var ut=F("module/fraction"),Ot=Ue(ct),Ge=Ue(Lo),Oo={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},No={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},q=class{constructor(t,n=new Ro(1)){this.numerator=X(t),this.denominator=X(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(t){let n=t instanceof q?t:new q(X(t));return this.denominator.eq(n.denominator)?new q(this.numerator.add(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof q?t:new q(X(t));return this.denominator.eq(n.denominator)?new q(this.numerator.sub(n.numerator),this.denominator):new q(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof q?t:new q(X(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(X(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<=0&&ut.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:Oo[i]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<0&&ut.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=No[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Mo from"bn.js";var Ps=new q(new Mo(100));var Is=F("Raydium_price");import{merge as wC}from"lodash";import Ic from"axios";import{PublicKey as Fo}from"@solana/web3.js";import{MINT_SIZE as Ms,TOKEN_PROGRAM_ID as Fs,getTransferFeeConfig as vs,unpackMint as Vs}from"@solana/spl-token";var Nt=F("Raydium_accountInfo_util");async function be(r,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:d=100}=C({batchRequest:!1},n),p=Mt(t,d),f=new Array(p.length).fill([]);if(i){let g=p.map(x=>{let R=r._buildArgs([x.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),T=Mt(g,10);f=(await(await Promise.all(T.map(async x=>await r._rpcBatchRequest(x)))).flat()).map(x=>(x.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${x.error.message}`),x.result.value.map(R=>{if(R){let{data:S,executable:M,lamports:A,owner:h,rentEpoch:B}=R;return S.length!==2&&S[1]!=="base64"&&Nt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:M,lamports:A,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&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}function Mt(r,t=1,n=[]){let i=[...r];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{PublicKey as eu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nu}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 Z={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as _o}from"@solana/spl-token";var Pn=F("Raydium_txUtil"),Tn=1644;function lt(r){let t=[],n=[];return r.microLamports&&(t.push(gn.setComputeUnitPrice({microLamports:r.microLamports})),n.push(Z.SetComputeUnitPrice)),r.units&&(t.push(gn.setComputeUnitLimit({units:r.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(r,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=r.getLatestBlockhash)==null?void 0:i.call(r,{commitment:n})))==null?void 0:u.blockhash}async function mt(r,t){return r.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);r.onSignature(t,d=>{if(clearTimeout(u),!d.err){n("");return}i(Object.assign(d.err,{txId:t}))},"confirmed")})}function Ft(r,t){r.length<1&&Pn.logWithError(`no instructions provided: ${r.toString()}`),t.length<1&&Pn.logWithError(`no signers provided:, ${t.toString()}`);let n=new wn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...r);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Tn}catch{return!1}}function de(r,t){let[n,i]=vo.findProgramAddressSync(r,t);return{publicKey:n,nonce:i}}function Ye({instructions:r,payer:t,signers:n}){return Ft(r,[t,...n])}function Xe({instructions:r,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=An.generate().publicKey.toString()}){let d=new Vo({payerKey:t,recentBlockhash:i,instructions:r}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new kn(d).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 t=r.serialize({requireAllSignatures:!1,verifySignatures:!1});r instanceof kn&&(t=Eo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(r){let t=[];return r.forEach(n=>{n instanceof wn&&(n.recentBlockhash||(n.recentBlockhash=_o.toBase58()),n.feePayer||(n.feePayer=An.generate().publicKey)),t.push(Do(n))}),console.log("simulate tx string:",t),t}import{PublicKey as P}from"@solana/web3.js";var hn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),In=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Bn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),vt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),au=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Wo=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Sn=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),xn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),su=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),qo=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Kn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Uo=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Go=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Cn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),uu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),zo=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Yo=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Xo=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Qo=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Zo=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Vt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ho=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),cu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),jo=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$o=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Jo=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),lu=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),mu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),du=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),pu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),fu=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Qe={IDO_PROGRAM_ID_V1:Yo,IDO_PROGRAM_ID_V2:Xo,IDO_PROGRAM_ID_V3:Qo,IDO_PROGRAM_ID_V4:Zo};var ge={OPEN_BOOK_PROGRAM:new P("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new P("Ray1111111111111111111111111111111111111111"),AMM_V4:new P("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new P("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new P("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new P("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new P("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new P("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new P("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new P("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new P("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:P.default,Router:new P("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new P("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new P("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new P("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new P("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new P("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new P("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new P("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new P("Ray1111111111111111111111111111111111111111")};import gu from"bn.js";import{PublicKey as _t,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Et({connection:r,address:t,cluster:n="mainnet"}){let i=await be(r,[...new Set(t.map(d=>d.toString()))].map(d=>new _t(d))),u={};for(let d=0;d<t.length;d++){let p=i[d],f=t[d];if(!p)continue;let g=new Oe({key:f,state:Oe.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Le[f.toString()]=g:Re[f.toString()]=g}return u}var Re={},Dt=async r=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new _t(t),i=await r.getAccountInfo(n);return i&&(Re[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Re},Le={},Wt=async r=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new _t(t),i=await r.getAccountInfo(n);return i&&(Le[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Le};import{PublicKey as Ne,sendAndConfirmTransaction as qt,SystemProgram as ei,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import ti from"axios";var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let t=(await ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ei.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:d=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...d),this.lookupTableAddress.push(...p.filter(f=>f!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(E(C({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var y;let{recentBlockHash:d,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},T=d!=null?d:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=T,this.signers.length&&n.sign(...this.signers),ke([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:f?await qt(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let x=await this.signAllTransactions([n]);if(this.signers.length)for(let R of x)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(x[0].serialize(),{skipPreflight:p}),signedTx:x[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var T;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),d=n.filter(y=>y.transaction.instructions.length>0),p=[u,...d.map(y=>y.transaction)],f=[this.signers,...d.map(y=>y.signers)],g=[...this.instructionTypes,...d.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async y=>{var B;let{sequentially:x,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:M,skipPreflight:A=!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 qt(this.connection,V,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});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:A})))),signedTxs:p}}if(this.signAllTransactions){let I=p.map((V,b)=>(V.recentBlockhash=h,f[b].length&&V.sign(...f[b]),V));ke(I);let v=await this.signAllTransactions(I);if(x){let V=0,b=[],w=async()=>{if(!v[V])return;let k=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:A});b.push({txId:k,status:"sent",signedTx:v[V]}),R==null||R([...b]),V++;let K=!1,L=null,_=null,ie=U=>{L!==null&&clearInterval(L),_!==null&&this.connection.removeSignatureListener(_);let W=b.findIndex($=>$.txId===k);if(W>-1){if(b[W].status==="error"||b[W].status==="success")return;b[W].status=U.err?"error":"success"}R==null||R([...b]),U.err||w()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var U;if(K){clearInterval(L);return}try{let W=await this.connection.getTransaction(k,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(K=!0,clearInterval(L),ie({err:((U=W.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",k))}catch(W){K=!0,clearInterval(L),console.error("getTransaction timeout:",W,k)}},dt)),_=this.connection.onSignature(k,U=>{if(K){this.connection.removeSignatureListener(_);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:b.map(k=>k.txId),signedTxs:v}}else{let V=[];for(let b=0;b<v.length;b+=1){let w=await this.connection.sendRawTransaction(v[b].serialize(),{skipPreflight:A});V.push(w)}return{txIds:V,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:d}=M,p=ce(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=C(C({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),T=[];for(let h of g)f[h]===void 0&&T.push(new Ne(h));let y=await Et({connection:this.connection,address:T});for(let[h,B]of Object.entries(y))f[h]=B;let x=u?Ne.default.toBase58():d!=null?d:await Ce(this.connection,this.blockhashCommitment),R=new He({payerKey:this.feePayer,recentBlockhash:x,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(h=>h.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async h=>{var V;let{skipPreflight:B=!0,sendAndConfirm:I,notSendToRpc:v}=h||{};if(ke([S]),(V=this.owner)!=null&&V.isKeyPair){let b=await this.connection.sendTransaction(S,{skipPreflight:B});return I&&await mt(this.connection,b),{txId:b,signedTx:S}}if(this.signAllTransactions){let b=await this.signAllTransactions([S]);if(this.signers.length)for(let w of b)try{w.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(b[0],{skipPreflight:B}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var T;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),d=n.filter(y=>y.builder.instructions.length>0),p=[u,...d.map(y=>y.transaction)],f=[this.signers,...d.map(y=>y.signers)],g=[...this.instructionTypes,...d.map(y=>y.instructionTypes).flat()];return(T=this.owner)!=null&&T.signer&&f.forEach(y=>{y.some(x=>x.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(y,x)=>{y.sign(f[x])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async y=>{var A;let{sequentially:x,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=y||{};if(S&&p.forEach(h=>h.message.recentBlockhash=S),ke(p),(A=this.owner)!=null&&A.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]}),R==null||R([...I]),B++;let b=!1,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let _=I.findIndex(ie=>ie.txId===V);if(_>-1){if(I[_].status==="error"||I[_].status==="success")return;I[_].status=L.err?"error":"success"}R==null||R([...I]),L.err||v()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(b){clearInterval(w);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(b=!0,clearInterval(w),K({err:((L=_.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){b=!0,clearInterval(w),console.error("getTransaction timeout:",_,V)}},dt)),k=this.connection.onSignature(V,L=>{if(b){this.connection.removeSignatureListener(k);return}b=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:h}}else{let B=[];for(let I=0;I<h.length;I+=1){let v=await this.connection.sendTransaction(h[I],{skipPreflight:M});B.push(v)}return{txIds:B,signedTxs:h}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var R;let x=t||{},{splitIns:n=[],computeBudgetConfig:i}=x,u=ce(x,["splitIns","computeBudgetConfig"]),d=i?lt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,M)=>E(C({},S),{[M.publicKey.toBase58()]:M}),{}),f=[],g=[],T=[],y=0;if(this.allInstructions.forEach(S=>{let M=[...T,S],A=i?[...d.instructions,...M]:M,B=[...new Set(M.map(I=>I.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(I=>new Ne(I));if(S!==n[y]&&T.length<12&&(Ye({instructions:A,payer:this.feePayer,signers:B})||Ye({instructions:M,payer:this.feePayer,signers:B})))T.push(S);else{if(T.length===0)throw Error("item ins too big");y+=S===n[y]?1:0,Ye({instructions:i?[...d.instructions,...T]:[...T],payer:this.feePayer,signers:B})?f.push(new Ze().add(...d.instructions,...T)):f.push(new Ze().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(A=>A.keys.filter(h=>h.isSigner).map(h=>h.pubkey.toString())).flat()).values()].map(A=>p[A]).filter(A=>A!==void 0);Ye({instructions:i?[...d.instructions,...T]:[...T],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?f.push(new Ze().add(...d.instructions,...T)):f.push(new Ze().add(...T)),g.push(M)}return f.forEach(S=>S.feePayer=this.feePayer),(R=this.owner)!=null&&R.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:A,skipTxCount:h=0,recentBlockHash:B,skipPreflight:I=!0}=S||{},v=B!=null?B:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(b,w)=>{b.recentBlockhash=v,g[w].length&&b.sign(...g[w])}),ke(f),(V=this.owner)!=null&&V.isKeyPair){if(M){let b=0,w=[];for(let k of f){if(++b,b<=h){w.push("tx skipped");continue}let K=await qt(this.connection,k,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});w.push(K)}return{txIds:w,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)),w=[...f.slice(0,h),...b];if(M){let k=0,K=[],L=async()=>{if(!w[k])return;k<h&&(K.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...K]),k++,L());let _=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:I});K.push({txId:_,status:"sent",signedTx:w[k]}),A==null||A([...K]),k++;let ie=!1,U=null,W=null,$=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);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"}A==null||A([...K]),G.err||L()};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),$({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)),W=this.connection.onSignature(_,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,$(G)},"confirmed"),this.connection.getSignatureStatus(_)};return await L(),{txIds:K.map(_=>_.txId),signedTxs:w}}else{let k=[];for(let K=0;K<w.length;K+=1){let L=await this.connection.sendRawTransaction(w[K].serialize(),{skipPreflight:I});k.push(L)}return{txIds:k,signedTxs:w}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var V;let v=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:d=[],insCountLimit:p=12}=v,f=ce(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=C(C({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),u),T=Array.from(new Set([...this.lookupTableAddress,...d])),y=[];for(let b of T)g[b]===void 0&&y.push(new Ne(b));let x=await Et({connection:this.connection,address:y});for(let[b,w]of Object.entries(x))g[b]=w;let R=n?lt(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),M=this.signers.reduce((b,w)=>E(C({},b),{[w.publicKey.toBase58()]:w}),{}),A=[],h=[],B=[],I=0;if(this.allInstructions.forEach(b=>{let w=[...B,b],k=n?[...R.instructions,...w]:w;if(b!==i[I]&&B.length<p&&(Xe({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Xe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})))B.push(b);else{if(B.length===0)throw Error("item ins too big");I+=b===i[I]?1:0;let K={};for(let L of[...new Set(T)])g[L]!==void 0&&(K[L]=g[L]);if(n&&Xe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new je(L))}else{let L=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new je(L))}h.push(Array.from(new Set(B.map(L=>L.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),B=[b]}}),B.length>0){let w=[...new Set(B.map(k=>k.keys.filter(K=>K.isSigner).map(K=>K.pubkey.toString())).flat()).values()].map(k=>M[k]).filter(k=>k!==void 0);if(n&&Xe({instructions:[...R.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let k=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...B]}).compileToV0Message(Object.values(g));A.push(new je(k))}else{let k=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...B]}).compileToV0Message(Object.values(g));A.push(new je(k))}h.push(w)}return(V=this.owner)!=null&&V.signer&&h.forEach(b=>{b.some(w=>w.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,w)=>{b.sign(h[w])}),{builder:this,transactions:A,buildProps:t,signers:h,instructionTypes:this.instructionTypes,execute:async b=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:_=!0}=b||{};if(A.map(async(U,W)=>{h[W].length&&U.sign(h[W]),L&&(U.message.recentBlockhash=L)}),ke(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let U=0,W=[];for(let $ of A){if(++U,U<=K){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction($,{skipPreflight:_});await mt(this.connection,G),W.push(G)}return{txIds:W,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:_}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(K,A.length)),W=[...A.slice(0,K),...U];if(w){let $=0,G=[],ne=async()=>{if(!W[$])return;if($<K){G.push({txId:"",status:"success",signedTx:W[$]}),k==null||k([...G]),$++,ne();return}let fe=await this.connection.sendTransaction(W[$],{skipPreflight:_});G.push({txId:fe,status:"sent",signedTx:W[$]}),k==null||k([...G]),$++;let We=!1,Se=null,ot=null,rn=Ae=>{Se!==null&&clearInterval(Se),ot!==null&&this.connection.removeSignatureListener(ot);let ye=G.findIndex(yo=>yo.txId===fe);if(ye>-1){if(G[ye].status==="error"||G[ye].status==="success")return;G[ye].status=Ae.err?"error":"success"}k==null||k([...G]),Ae.err||ne()};this.loopMultiTxStatus&&(Se=setInterval(async()=>{var Ae;if(We){clearInterval(Se);return}try{let ye=await this.connection.getTransaction(fe,{commitment:"confirmed",maxSupportedTransactionVersion:0});ye&&(We=!0,clearInterval(Se),rn({err:((Ae=ye.meta)==null?void 0:Ae.err)||null}),console.log("tx status from getTransaction:",fe))}catch(ye){We=!0,clearInterval(Se),console.error("getTransaction timeout:",ye,fe)}},dt)),ot=this.connection.onSignature(fe,Ae=>{if(We){this.connection.removeSignatureListener(ot);return}We=!0,rn(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let $=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:_});$.push(ne)}return{txIds:$,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as Gu}from"@solana/web3.js";import Yu from"bn.js";import ni from"bn.js";var yt=new ni(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_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",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"},oi=E(C({},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 Xc=F("Raydium_Api");import{PublicKey as vm,SystemProgram as Vm}from"@solana/web3.js";import{AccountLayout as qm,createAssociatedTokenAccountIdempotentInstruction as Um,TOKEN_PROGRAM_ID as Gm,TOKEN_2022_PROGRAM_ID as zm}from"@solana/spl-token";var Ut=(...r)=>r.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=F(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Ut(t))}logInfo(...t){this.logger.info(Ut(t))}logAndCreateError(...t){let n=Ut(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pm,SystemProgram as ym}from"@solana/web3.js";import Pm from"bn.js";import{createCloseAccountInstruction as Tm,createInitializeAccountInstruction as hm,createTransferInstruction as Im,TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{Keypair as em,PublicKey as tm}from"@solana/web3.js";import im from"bn.js";import{TOKEN_PROGRAM_ID as sm}from"@solana/spl-token";import{PublicKey as bi}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as ii,BitStructure as al,blob as ri,Blob as sl,cstr as ul,f32 as cl,f32be as ll,f64 as ml,f64be as dl,greedy as pl,Layout as ai,ns64 as fl,ns64be as yl,nu64 as si,nu64be as bl,offset as ui,s16 as gl,s16be as Pl,s24 as Al,s24be as wl,s32 as ci,s32be as kl,s40 as Tl,s40be as hl,s48 as Il,s48be as Bl,s8 as Sl,seq as li,struct as xl,Structure as mi,u16 as di,u16be as Kl,u24 as Cl,u24be as Rl,u32 as pi,u32be as Ll,u40 as Ol,u40be as Nl,u48 as Ml,u48be as Fl,u8 as fi,UInt as yi,union as vl,Union as Vl,unionLayoutDiscriminator as _l,utf8 as El}from"@solana/buffer-layout";var bt=ai,Ln=mi;var Gt=yi;var On=fi,H=di;var gt=pi;var Nn=si;var se=ci;var Mn=li;var N=ri;var zt=ii,Fn=ui;var he=class extends bt{constructor(n,i,u){super(n,u);this.blob=N(n),this.signed=i}decode(n,i=0){let u=new vn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},Pt=class extends bt{constructor(n){super(8,n);this._lower=zt(gt(),!1),this._upper=zt(gt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),d=this._upper.decode(n,i+this._lower.span);return C(C({},u),d)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(r){return new Gt(1,r)}function Y(r){return new Gt(4,r)}function e(r){return new he(8,!1,r)}function O(r){return new he(16,!1,r)}function _n(r){return new he(1,!0,r)}function Me(r){return new he(8,!0,r)}function En(r){return new he(16,!0,r)}var Je=class extends bt{constructor(n,i,u,d){super(n.span,d);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function o(r){return new Je(N(32),t=>new bi(t),t=>t.toBuffer(),r)}function ae(r){return new Je(On(),gi,Pi,r)}function gi(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 Dn(r,t){let n=gt("length"),i=l([n,m(r,Fn(n,-n.span),"values")]);return new Je(i,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends Ln{decode(t,n){return super.decode(t,n)}};function l(r,t,n){return new Yt(r,t,n)}function m(r,t,n){let i,u=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(d,p){if(!i){let f=Reflect.get(d,"count");i=Vn(f)?f.toNumber():f,Reflect.set(d,"count",i)}return Reflect.get(d,p)},set(d,p,f){return p==="count"&&(i=f),Reflect.set(d,p,f)}});return Mn(r,u,n)}var At=l([o("mint"),o("owner"),e("amount"),Y("delegateOption"),o("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),o("closeAuthority")]);import{PublicKey as Jg,SystemProgram as eP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as nP}from"@solana/spl-token";import dP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as _y,TOKEN_2022_PROGRAM_ID as Ey,TOKEN_PROGRAM_ID as Dy}from"@solana/spl-token";import{PublicKey as qy}from"@solana/web3.js";import Gy from"bn.js";import Yy from"decimal.js";import{TOKEN_PROGRAM_ID as td}from"@solana/spl-token";import{PublicKey as rd}from"@solana/web3.js";var wi=l([Y("mintAuthorityOption"),o("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),o("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ay,TOKEN_2022_PROGRAM_ID as sy,TOKEN_PROGRAM_ID as uy}from"@solana/spl-token";import{Keypair as my,PublicKey as dy,SystemProgram as fy,TransactionInstruction as yy}from"@solana/web3.js";import gy from"bn.js";import D from"bn.js";var Ie=new D(1).shln(64);var ki=new D(1).shln(128),Xt=new D(1).shln(64).subn(1),Ti=new D(1).shln(128).subn(1);var Fe=new D("4295048016"),ve=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var Qt=60,gd=new D("18446743708227953217"),Si=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var et=3,qn=100;var Un=10,Gn=100,kt=14;var j=new D(0),Ve=new D(1),Pd=new D(-1);var Ad=new D("18446744073700000000");var xi=l([N(8),c("bump"),H("index"),o("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),m(Y(),1),o("fundOwner"),m(e(),3)]),Ki=l([Y("blockTimestamp"),Me("tickCumulative"),m(e(),4)]),zn=l([N(8),ae("initialized"),e("recentEpoch"),H("observationIndex"),o("poolId"),m(Ki,qn,"observations"),m(e(),4)]),Ci=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),se("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),m(c(),46)]),Ri=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),o("mint"),o("vault"),o("creator"),O("growthGlobalX64")]),Zt=l([N(8),c("bump"),o("configId"),o("creator"),o("mintA"),o("mintB"),o("vaultA"),o("vaultB"),o("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),se("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),m(O(),4),c("status"),c("feeOn"),N(6),m(Ri,et,"rewardInfos"),N(8*16,"tickArrayBitmap"),m(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),m(e(),46)]),Li=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([N(8),c("bump"),o("nftMint"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(Li,et,"rewardInfos"),e("recentEpoch"),m(e(),7)]),hd=l([N(8),c("bump"),o("poolId"),se("tickLower"),se("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),m(O(),et,"rewardGrowthInside"),e("recentEpoch"),m(e(),7)]),Ni=l([se("tick"),En("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),m(O(),et,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),m(Y(),3)]),Yn=l([N(8),o("poolId"),se("startTickIndex"),m(Ni,Qt,"ticks"),c("initializedTickCount"),e("recentEpoch"),m(c(),107)]),Mi=l([N(8),c("bump"),m(o(),Un,"operationOwners"),m(o(),Gn,"whitelistMints")]),Fi=l([N(8),o("poolId"),o("owner"),se("tick"),ae("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),m(e(),4)]),Xn=l([N(8),o("poolId"),N(8*8*kt,"positiveTickArrayBitmap"),N(8*8*kt,"negativeTickArrayBitmap")]),Id=l([N(8),H("index"),H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),m(e(),8)]),vi=l([N(8),o("wallet"),c("nonceIndex"),e("orderNonce"),m(e(),4)]),Bd=l([e(),c("bump"),o("owner"),o("poolId"),o("positionId"),o("nftAccount"),m(e(),8)]),Vi=l([N(8),c("bump"),o("lockOwner"),o("poolId"),o("positionId"),o("nftAccount"),o("lockNftMint"),e("recentEpoch"),m(e(),8)]);import Kd from"bn.js";var Ed=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),Dd=Buffer.from("pool_reward_vault","utf8"),Wd=Buffer.from("position","utf8"),qd=Buffer.from("tick_array","utf8"),Ud=Buffer.from("operation","utf8"),Gd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),zd=Buffer.from("observation","utf8"),Yd=Buffer.from("support_mint","utf8"),Xd=Buffer.from("dynamic_fee_config","utf8");var Qd=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Di from"bn.js";import $d from"decimal.js";var ep=new Di(1).shln(256).subn(1);import Pp from"bn.js";import sp from"bn.js";import cp from"decimal.js";import Sp from"bn.js";import Kp from"decimal.js";import{PublicKey as mf}from"@solana/web3.js";import pf from"bn.js";import{TOKEN_2022_PROGRAM_ID as kf}from"@solana/spl-token";import Bf from"decimal.js";import Jp from"bn.js";import Dp from"bn.js";import Mf from"bn.js";function J(r){let t=`global:${r}`;return Buffer.from(tr.digest(t)).slice(0,8)}zn.span;var By=F("Raydium_Clmm"),Sy={createPool:J("create_pool"),createCustomizablePool:J("create_customizable_pool"),openPositionV2:J("open_position_v2"),openPositionWithToken22Nft:J("open_position_with_token22_nft"),closePosition:J("close_position"),increaseLiquidityV2:J("increase_liquidity_v2"),decreaseLiquidityV2:J("decrease_liquidity_v2"),initializeReward:J("initialize_reward"),setRewardParams:J("set_reward_params"),updateRewardInfos:J("update_reward_infos"),collectRemainingRewards:J("collect_remaining_rewards"),swapV2:J("swap_v2"),openLimitOrder:J("open_limit_order"),increaseLimitOrder:J("increase_limit_order"),decreaseLimitOrder:J("decrease_limit_order"),settleLimitOrder:J("settle_limit_order"),closeLimitOrder:J("close_limit_or