@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 76.1 kB
JavaScript
var go=Object.defineProperty,Po=Object.defineProperties;var Ao=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var an=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var rn=(o,t,n)=>t in o?go(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,x=(o,t)=>{for(var n in t||(t={}))an.call(t,n)&&rn(o,n,t[n]);if(ot)for(var n of ot(t))sn.call(t,n)&&rn(o,n,t[n]);return o},F=(o,t)=>Po(o,Ao(t));var ae=(o,t)=>{var n={};for(var r in o)an.call(o,r)&&t.indexOf(r)<0&&(n[r]=o[r]);if(o!=null&&ot)for(var r of ot(o))t.indexOf(r)<0&&sn.call(o,r)&&(n[r]=o[r]);return n};import{TOKEN_PROGRAM_ID as Ka}from"@solana/spl-token";import{PublicKey as Ca}from"@solana/web3.js";import Ba from"big.js";import Bt from"bn.js";import Be from"bn.js";import eR from"decimal.js";import{PublicKey as wo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as un}from"@solana/spl-token";var xe={chainId:101,address:wo.default.toBase58(),programId:un.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},se={chainId:101,address:"So11111111111111111111111111111111111111112",programId:un.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};import{PublicKey as Kt}from"@solana/web3.js";import{PublicKey as z,SystemProgram as cn,SYSVAR_RENT_PUBKEY as ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as To}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var ho=[Ke({pubkey:To,isWritable:!1}),Ke({pubkey:cn.programId,isWritable:!1}),Ke({pubkey:ko,isWritable:!1})];function St({publicKey:o,transformSol:t}){let n=ln(o.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 ln(o){try{return new z(o)}catch{return o}}var xt=new z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new z("SysvarRent111111111111111111111111111111111"),Io=new z("SysvarC1ock11111111111111111111111111111111"),it=new z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Bo=new z("Sysvar1nstructions1111111111111111111111111"),mn=cn.programId,Va=new z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_a=new z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Ea=new z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Da=new z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Wa=new z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),qa=new z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Ua=new z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ga=new z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),za=new z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ya=new z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Xa=new z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),me=new z("So11111111111111111111111111111111111111112"),we=z.default;function ge(o){return St({publicKey:o,transformSol:!0})}var Ct=class{constructor({mint:t,decimals:n,symbol:r,name:u,skipMint:m=!1,isToken2022:f=!1}){if(t===we.toBase58()||t instanceof Kt&&we.equals(t)){this.decimals=se.decimals,this.symbol=se.symbol,this.name=se.name,this.mint=new Kt(se.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=r||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Kt.default:St({publicKey:t}),this.isToken2022=f}equals(t){return this===t?!0:this.mint.equals(t.mint)}},Q=Ct;Q.WSOL=new Ct(F(x({},se),{mint:se.address}));var Rt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:r="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=r}equals(t){return this===t}},rt=Rt;rt.SOL=new Rt(xe);import st from"big.js";import Lo from"bn.js";import Oo from"decimal.js-light";import{get as dn,set as So}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(r=>typeof r=="object"?JSON.stringify(r):r).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},pn={},xo={};function v(o){let t=dn(pn,o);if(!t){let n=dn(xo,o);t=new Lt({name:o,logLevel:n}),So(pn,o,t)}return t}import qe from"bn.js";var fn=9007199254740991;function Z(o){let t=v("Raydium_parseBigNumberish");if(o instanceof qe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new qe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=fn||o<=-fn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new qe(String(o))):typeof o=="bigint"?new qe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new qe(0))}import Ko from"toformat";var Co=Ko,Ue=Co;var at=v("module/fraction"),Ot=Ue(st),Ge=Ue(Oo),No={[0]:Ge.ROUND_DOWN,[1]:Ge.ROUND_HALF_UP,[2]:Ge.ROUND_UP},Mo={[0]:st.roundDown,[1]:st.roundHalfUp,[2]:st.roundUp},q=class{constructor(t,n=new Lo(1)){this.numerator=Z(t),this.denominator=Z(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(Z(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(Z(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(Z(t));return new q(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof q?t:new q(Z(t));return new q(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},r=1){Number.isInteger(t)||at.logWithError(`${t} is not an integer.`),t<=0&&at.logWithError(`${t} is not positive.`),Ge.set({precision:t+1,rounding:No[r]});let u=new Ge(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},r=1){return Number.isInteger(t)||at.logWithError(`${t} is not an integer.`),t<0&&at.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Mo[r]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};import Fo from"bn.js";var ws=new q(new Fo(100));var Ss=v("Raydium_price");import{merge as tC}from"lodash";import Pc from"axios";import{PublicKey as vo}from"@solana/web3.js";import{MINT_SIZE as vs,TOKEN_PROGRAM_ID as Vs,getTransferFeeConfig as _s,unpackMint as Es}from"@solana/spl-token";var Nt=v("Raydium_accountInfo_util");async function be(o,t,n){let{batchRequest:r,commitment:u="confirmed",chunkCount:m=100}=x({batchRequest:!1},n),f=Mt(t,m),p=new Array(f.length).fill([]);if(r){let g=f.map(C=>{let R=o._buildArgs([C.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:R}}),B=Mt(g,10);p=(await(await Promise.all(B.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(R=>{if(R){let{data:S,executable:M,lamports:A,owner:T,rentEpoch:I}=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 vo(T),rentEpoch:I}}return null})))}else try{p=await Promise.all(f.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&Nt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}function Mt(o,t=1,n=[]){let r=[...o];if(t<=0)return n;for(;r.length;)n.push(r.splice(0,t));return n}import{PublicKey as nu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as iu}from"@solana/spl-token";import{ComputeBudgetProgram as yn,Keypair as gn,PublicKey as Vo,Transaction as Pn,TransactionMessage as _o,VersionedTransaction as An}from"@solana/web3.js";var H={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as Eo}from"@solana/spl-token";var bn=v("Raydium_txUtil"),wn=1644;function ut(o){let t=[],n=[];return o.microLamports&&(t.push(yn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(H.SetComputeUnitPrice)),o.units&&(t.push(yn.setComputeUnitLimit({units:o.units})),n.push(H.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Re(o,t){var r,u;let n=t!=null?t:"confirmed";return(u=await((r=o.getLatestBlockhash)==null?void 0:r.call(o,{commitment:n})))==null?void 0:u.blockhash}async function ct(o,t){return o.getSignatureStatuses([t]),new Promise((n,r)=>{let u=setTimeout(r,6e4);o.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}r(Object.assign(m.err,{txId:t}))},"confirmed")})}function Ft(o,t){o.length<1&&bn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&bn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Pn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<wn}catch{return!1}}function de(o,t){let[n,r]=Vo.findProgramAddressSync(o,t);return{publicKey:n,nonce:r}}function ze({instructions:o,payer:t,signers:n}){return Ft(o,[t,...n])}function Ye({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:r=gn.generate().publicKey.toString()}){let m=new _o({payerKey:t,recentBlockhash:r,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new An(m).serialize()).toString("base64").length<wn}catch{return!1}}var Do=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Wo=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof An&&(t=Do(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function ke(o){let t=[];return o.forEach(n=>{n instanceof Pn&&(n.recentBlockhash||(n.recentBlockhash=Eo.toBase58()),n.feePayer||(n.feePayer=gn.generate().publicKey)),t.push(Wo(n))}),console.log("simulate tx string:",t),t}import{PublicKey as P}from"@solana/web3.js";var kn=new P("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Tn=new P("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),hn=new P("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),vt=new P("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),uu=new P("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),qo=new P("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),In=new P("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Bn=new P("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),cu=new P("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Uo=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Sn=new P("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Go=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),zo=new P("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),xn=new P("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),lu=new P("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Yo=new P("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Xo=new P("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Qo=new P("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Zo=new P("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ho=new P("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Vt=new P("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),jo=new P("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),mu=new P("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),$o=new P("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Jo=new P("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),ei=new P("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),du=new P("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),pu=new P("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),fu=new P("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),yu=new P("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),bu=new P("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Xe={IDO_PROGRAM_ID_V1:Xo,IDO_PROGRAM_ID_V2:Qo,IDO_PROGRAM_ID_V3:Zo,IDO_PROGRAM_ID_V4:Ho};var Pe={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 Au from"bn.js";import{PublicKey as _t,AddressLookupTableAccount as Ne}from"@solana/web3.js";async function Et({connection:o,address:t,cluster:n="mainnet"}){let r=await be(o,[...new Set(t.map(m=>m.toString()))].map(m=>new _t(m))),u={};for(let m=0;m<t.length;m++){let f=r[m],p=t[m];if(!f)continue;let g=new Ne({key:p,state:Ne.deserialize(f.data)});u[p.toString()]=g,n==="devnet"?Oe[p.toString()]=g:Le[p.toString()]=g}return u}var Le={},Dt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Le[t])return Le;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(Le[t]=new Ne({key:n,state:Ne.deserialize(r.data)})),Le},Oe={},Wt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Oe[t])return Oe;let n=new _t(t),r=await o.getAccountInfo(n);return r&&(Oe[t]=new Ne({key:n,state:Ne.deserialize(r.data)})),Oe};import{PublicKey as Me,sendAndConfirmTransaction as qt,SystemProgram as ti,Transaction as Qe,TransactionMessage as Ze,VersionedTransaction as He}from"@solana/web3.js";import ni from"axios";var lt=2e3,mt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var r;let t=(await ni.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(r=t==null?void 0:t[15])!=null?r:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:r}=ut(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...r),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ti.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Me(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let r=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(r))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:r=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:f=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...r),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...f.filter(p=>p!==Me.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:r}){return t===0?await this.buildV0(F(x({},n||{}),{lookupTableAddress:r})):this.build(n)}build(t){var r;let n=new Qe;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((r=this.owner)==null?void 0:r.signer)&&!this.signers.some(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 b;let{recentBlockHash:m,skipPreflight:f=!0,sendAndConfirm:p,notSendToRpc:g}=u||{},B=m!=null?m:await Re(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),ke([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:p?await qt(this.connection,n,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:f}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:f}),signedTx:n};if(this.signAllTransactions){let C=await this.signAllTransactions([n]);if(this.signers.length)for(let R of C)try{R.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:f}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;let{extraPreBuildData:n=[],extInfo:r}=t,{transaction:u}=this.build(r),m=n.filter(b=>b.transaction.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:f,signers:p,instructionTypes:g,execute:async b=>{var I;let{sequentially:C,onTxUpdate:R,skipTxCount:S=0,recentBlockHash:M,skipPreflight:A=!0}=b||{},T=M!=null?M:await Re(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(C){let h=[],V=0;for(let _ of f){if(++V,V<=S)continue;let y=await qt(this.connection,_,this.signers.find(w=>w.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});h.push(y)}return{txIds:h,signedTxs:f}}return{txIds:await await Promise.all(f.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:A})))),signedTxs:f}}if(this.signAllTransactions){let h=f.map((_,y)=>(_.recentBlockhash=T,p[y].length&&_.sign(...p[y]),_));ke(h);let V=await this.signAllTransactions(h);if(C){let _=0,y=[],w=async()=>{if(!V[_])return;let k=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:A});y.push({txId:k,status:"sent",signedTx:V[_]}),R==null||R([...y]),_++;let K=!1,L=null,E=null,ie=U=>{L!==null&&clearInterval(L),E!==null&&this.connection.removeSignatureListener(E);let W=y.findIndex(J=>J.txId===k);if(W>-1){if(y[W].status==="error"||y[W].status==="success")return;y[W].status=U.err?"error":"success"}R==null||R([...y]),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)}},lt)),E=this.connection.onSignature(k,U=>{if(K){this.connection.removeSignatureListener(E);return}K=!0,ie(U)},"confirmed"),this.connection.getSignatureStatus(k)};return await w(),{txIds:y.map(k=>k.txId),signedTxs:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let w=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:A});_.push(w)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:r}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:r||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:r})}async buildV0(t){var A;let M=t||{},{lookupTableCache:n={},lookupTableAddress:r=[],forerunCreate:u,recentBlockhash:m}=M,f=ae(M,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=x(x({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),n),g=Array.from(new Set([...r,...this.lookupTableAddress])),B=[];for(let T of g)p[T]===void 0&&B.push(new Me(T));let b=await Et({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))p[T]=I;let C=u?Me.default.toBase58():m!=null?m:await Re(this.connection,this.blockhashCommitment),R=new Ze({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new He(R);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:V}=T||{};if(ke([S]),(_=this.owner)!=null&&_.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await ct(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let w of y)try{w.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}async buildV0MultiTx(t){var B;let{extraPreBuildData:n=[],buildProps:r}=t,{transaction:u}=await this.buildV0(r),m=n.filter(b=>b.builder.instructions.length>0),f=[u,...m.map(b=>b.transaction)],p=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&p.forEach(b=>{b.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),f.forEach(async(b,C)=>{b.sign(p[C])}),{builder:this,transactions:f,signers:p,instructionTypes:g,buildProps:r,execute:async b=>{var A;let{sequentially:C,onTxUpdate:R,recentBlockHash:S,skipPreflight:M=!0}=b||{};if(S&&f.forEach(T=>T.message.recentBlockhash=S),ke(f),(A=this.owner)!=null&&A.isKeyPair){if(C){let T=[];for(let I of f){let h=await this.connection.sendTransaction(I,{skipPreflight:M});await ct(this.connection,h),T.push(h)}return{txIds:T,signedTxs:f}}return{txIds:await Promise.all(f.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:M}))),signedTxs:f}}if(this.signAllTransactions){let T=await this.signAllTransactions(f);if(C){let I=0,h=[],V=async()=>{if(!T[I])return;let _=await this.connection.sendTransaction(T[I],{skipPreflight:M});h.push({txId:_,status:"sent",signedTx:T[I]}),R==null||R([...h]),I++;let y=!1,w=null,k=null,K=L=>{w!==null&&clearInterval(w),k!==null&&this.connection.removeSignatureListener(k);let E=h.findIndex(ie=>ie.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=L.err?"error":"success"}R==null||R([...h]),L.err||V()};this.loopMultiTxStatus&&(w=setInterval(async()=>{var L;if(y){clearInterval(w);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(w),K({err:((L=E.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(w),console.error("getTransaction timeout:",E,_)}},lt)),k=this.connection.onSignature(_,L=>{if(y){this.connection.removeSignatureListener(k);return}y=!0,K(L)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let V=await this.connection.sendTransaction(T[h],{skipPreflight:M});I.push(V)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuild(t){var R;let C=t||{},{splitIns:n=[],computeBudgetConfig:r}=C,u=ae(C,["splitIns","computeBudgetConfig"]),m=r?ut(r):{instructions:[],instructionTypes:[]},f=this.signers.reduce((S,M)=>F(x({},S),{[M.publicKey.toBase58()]:M}),{}),p=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let M=[...B,S],A=r?[...m.instructions,...M]:M,I=[...new Set(M.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(h=>new Me(h));if(S!==n[b]&&B.length<12&&(ze({instructions:A,payer:this.feePayer,signers:I})||ze({instructions:M,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,ze({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:I})?p.push(new Qe().add(...m.instructions,...B)):p.push(new Qe().add(...B)),g.push(Array.from(new Set(B.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(h=>f[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let M=[...new Set(B.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>f[A]).filter(A=>A!==void 0);ze({instructions:r?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:M.map(A=>A.publicKey)})?p.push(new Qe().add(...m.instructions,...B)):p.push(new Qe().add(...B)),g.push(M)}return p.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:p,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:M,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Re(this.connection,this.blockhashCommitment);if(p.forEach(async(y,w)=>{y.recentBlockhash=V,g[w].length&&y.sign(...g[w])}),ke(p),(_=this.owner)!=null&&_.isKeyPair){if(M){let y=0,w=[];for(let k of p){if(++y,y<=T){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:h});w.push(K)}return{txIds:w,signedTxs:p}}return{txIds:await Promise.all(p.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let y=await this.signAllTransactions(p.slice(T,p.length)),w=[...p.slice(0,T),...y];if(M){let k=0,K=[],L=async()=>{if(!w[k])return;k<T&&(K.push({txId:"",status:"success",signedTx:w[k]}),A==null||A([...K]),k++,L());let E=await this.connection.sendRawTransaction(w[k].serialize(),{skipPreflight:h});K.push({txId:E,status:"sent",signedTx:w[k]}),A==null||A([...K]),k++;let ie=!1,U=null,W=null,J=G=>{U!==null&&clearInterval(U),W!==null&&this.connection.removeSignatureListener(W);let ne=K.findIndex(fe=>fe.txId===E);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(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(ie=!0,clearInterval(U),J({err:((G=ne.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(ne){ie=!0,clearInterval(U),console.error("getTransaction timeout:",ne,E)}},lt)),W=this.connection.onSignature(E,G=>{if(ie){this.connection.removeSignatureListener(W);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await L(),{txIds:K.map(E=>E.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:h});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 _;let V=t||{},{computeBudgetConfig:n,splitIns:r=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:f=12}=V,p=ae(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=x(x({},this.cluster==="devnet"?await Wt(this.connection):await Dt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Me(y));let C=await Et({connection:this.connection,address:b});for(let[y,w]of Object.entries(C))g[y]=w;let R=n?ut(n):{instructions:[],instructionTypes:[]},S=await Re(this.connection,this.blockhashCommitment),M=this.signers.reduce((y,w)=>F(x({},y),{[w.publicKey.toBase58()]:w}),{}),A=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let w=[...I,y],k=n?[...R.instructions,...w]:w;if(y!==r[h]&&I.length<f&&(Ye({instructions:k,payer:this.feePayer,lookupTableAddressAccount:g})||Ye({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===r[h]?1:0;let K={};for(let L of[...new Set(B)])g[L]!==void 0&&(K[L]=g[L]);if(n&&Ye({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let L=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new He(L))}else{let L=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new He(L))}T.push(Array.from(new Set(I.map(L=>L.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(L=>M[L]).filter(L=>L!==void 0)),I=[y]}}),I.length>0){let w=[...new Set(I.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&&Ye({instructions:[...R.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let k=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...R.instructions,...I]}).compileToV0Message(Object.values(g));A.push(new He(k))}else{let k=new Ze({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));A.push(new He(k))}T.push(w)}return(_=this.owner)!=null&&_.signer&&T.forEach(y=>{y.some(w=>w.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),A.forEach((y,w)=>{y.sign(T[w])}),{builder:this,transactions:A,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ie;let{sequentially:w,onTxUpdate:k,skipTxCount:K=0,recentBlockHash:L,skipPreflight:E=!0}=y||{};if(A.map(async(U,W)=>{T[W].length&&U.sign(T[W]),L&&(U.message.recentBlockhash=L)}),ke(A),(ie=this.owner)!=null&&ie.isKeyPair){if(w){let U=0,W=[];for(let J of A){if(++U,U<=K){console.log("skip tx: ",U),W.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:E});await ct(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:E}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(K,A.length)),W=[...A.slice(0,K),...U];if(w){let J=0,G=[],ne=async()=>{if(!W[J])return;if(J<K){G.push({txId:"",status:"success",signedTx:W[J]}),k==null||k([...G]),J++,ne();return}let fe=await this.connection.sendTransaction(W[J],{skipPreflight:E});G.push({txId:fe,status:"sent",signedTx:W[J]}),k==null||k([...G]),J++;let We=!1,Se=null,nt=null,on=Ae=>{Se!==null&&clearInterval(Se),nt!==null&&this.connection.removeSignatureListener(nt);let ye=G.findIndex(bo=>bo.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),on({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)}},lt)),nt=this.connection.onSignature(fe,Ae=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,on(Ae)},"confirmed"),this.connection.getSignatureStatus(fe)};return ne(),{txIds:[],signedTxs:W}}else{let J=[];for(let G=0;G<W.length;G+=1){let ne=await this.connection.sendTransaction(W[G],{skipPreflight:E});J.push(ne)}return{txIds:J,signedTxs:W}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};import{PublicKey as _u}from"@solana/web3.js";import Du from"bn.js";import oi from"bn.js";var pt=new oi(1e6);var Kn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_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"},ii=F(x({},Kn),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Wc=v("Raydium_Api");import{PublicKey as Rm,SystemProgram as Lm}from"@solana/web3.js";import{AccountLayout as vm,createAssociatedTokenAccountIdempotentInstruction as Vm,TOKEN_PROGRAM_ID as _m,TOKEN_2022_PROGRAM_ID as Em}from"@solana/spl-token";var Ut=(...o)=>o.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=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new mt({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 sm,SystemProgram as cm}from"@solana/web3.js";import dm from"bn.js";import{createCloseAccountInstruction as bm,createInitializeAccountInstruction as gm,createTransferInstruction as Pm,TOKEN_PROGRAM_ID as Am}from"@solana/spl-token";import{Keypair as Ql,PublicKey as Zl}from"@solana/web3.js";import $l from"bn.js";import{TOKEN_PROGRAM_ID as tm}from"@solana/spl-token";import{PublicKey as gi}from"@solana/web3.js";import Mn,{isBN as Fn}from"bn.js";import{bits as ri,BitStructure as el,blob as ai,Blob as tl,cstr as nl,f32 as ol,f32be as il,f64 as rl,f64be as al,greedy as sl,Layout as si,ns64 as ul,ns64be as cl,nu64 as ui,nu64be as ll,offset as ci,s16 as ml,s16be as dl,s24 as pl,s24be as fl,s32 as li,s32be as yl,s40 as bl,s40be as gl,s48 as Pl,s48be as Al,s8 as wl,seq as mi,struct as kl,Structure as di,u16 as pi,u16be as Tl,u24 as hl,u24be as Il,u32 as fi,u32be as Bl,u40 as Sl,u40be as xl,u48 as Kl,u48be as Cl,u8 as yi,UInt as bi,union as Rl,Union as Ll,unionLayoutDiscriminator as Ol,utf8 as Nl}from"@solana/buffer-layout";var ft=si,Cn=di;var Gt=bi;var Rn=yi,j=pi;var yt=fi;var Ln=ui;var ce=li;var On=mi;var N=ai;var zt=ri,Nn=ci;var he=class extends ft{constructor(n,r,u){super(n,u);this.blob=N(n),this.signed=r}decode(n,r=0){let u=new Mn(this.blob.decode(n,r),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,r,u=0){return typeof n=="number"&&(n=new Mn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),r,u)}},bt=class extends ft{constructor(n){super(8,n);this._lower=zt(yt(),!1),this._upper=zt(yt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,r=0){let u=this._lower.decode(n,r),m=this._upper.decode(n,r+this._lower.span);return x(x({},u),m)}encode(n,r,u=0){return this._lower.encode(n,r,u)+this._upper.encode(n,r,u+this._lower.span)}};function c(o){return new Gt(1,o)}function Y(o){return new Gt(4,o)}function e(o){return new he(8,!1,o)}function O(o){return new he(16,!1,o)}function vn(o){return new he(1,!0,o)}function Fe(o){return new he(8,!0,o)}function Vn(o){return new he(16,!0,o)}var $e=class extends ft{constructor(n,r,u,m){super(n.span,m);this.layout=n,this.decoder=r,this.encoder=u}decode(n,r){return this.decoder(this.layout.decode(n,r))}encode(n,r,u){return this.layout.encode(this.encoder(n),r,u)}getSpan(n,r){return this.layout.getSpan(n,r)}};function i(o){return new $e(N(32),t=>new gi(t),t=>t.toBuffer(),o)}function ue(o){return new $e(Rn(),Pi,Ai,o)}function Pi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Ai(o){return o?1:0}function _n(o,t){let n=yt("length"),r=l([n,d(o,Nn(n,-n.span),"values")]);return new $e(r,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends Cn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Yt(o,t,n)}function d(o,t,n){let r,u=typeof t=="number"?t:Fn(t)?t.toNumber():new Proxy(t,{get(m,f){if(!r){let p=Reflect.get(m,"count");r=Fn(p)?p.toNumber():p,Reflect.set(m,"count",r)}return Reflect.get(m,f)},set(m,f,p){return f==="count"&&(r=p),Reflect.set(m,f,p)}});return On(o,u,n)}var gt=l([i("mint"),i("owner"),e("amount"),Y("delegateOption"),i("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),i("closeAuthority")]);import{PublicKey as Ng,SystemProgram as Mg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as vg}from"@solana/spl-token";import Yg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Py,TOKEN_2022_PROGRAM_ID as Ay,TOKEN_PROGRAM_ID as wy}from"@solana/spl-token";import{PublicKey as Ty}from"@solana/web3.js";import Iy from"bn.js";import Sy from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Df,TOKEN_2022_PROGRAM_ID as Wf,TOKEN_PROGRAM_ID as qf}from"@solana/spl-token";import{Keypair as zf,PublicKey as Yf,SystemProgram as Qf,TransactionInstruction as Zf}from"@solana/web3.js";import jf 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 ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),hi=new D("59543866431248"),Ii=new D("184467440737095516"),Bi=new D("15793534762490258745");var Qt=60,jm=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 Je=3,Dn=100;var Wn=10,qn=100,At=14;var $=new D(0),_e=new D(1),$m=new D(-1);var Jm=new D("18446744073700000000");var xi=l([N(8),c("bump"),j("index"),i("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),j("tickSpacing"),Y("fundFeeRate"),d(Y(),1),i("fundOwner"),d(e(),3)]),Ki=l([Y("blockTimestamp"),Fe("tickCumulative"),d(e(),4)]),Un=l([N(8),ue("initialized"),e("recentEpoch"),j("observationIndex"),i("poolId"),d(Ki,Dn,"observations"),d(e(),4)]),Ci=l([j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ri=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),i("mint"),i("vault"),i("creator"),O("growthGlobalX64")]),Zt=l([N(8),c("bump"),i("configId"),i("creator"),i("mintA"),i("mintB"),i("vaultA"),i("vaultB"),i("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),j("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),N(6),d(Ri,Je,"rewardInfos"),N(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ci.replicate("dynamicFeeInfo"),d(e(),46)]),Li=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Oi=l([N(8),c("bump"),i("nftMint"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Li,Je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),od=l([N(8),c("bump"),i("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),Je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Ni=l([ce("tick"),Vn("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(Y(),3)]),Gn=l([N(8),i("poolId"),ce("startTickIndex"),d(Ni,Qt,"ticks"),c("initializedTickCount"),e("recentEpoch"),d(c(),107)]),Mi=l([N(8),c("bump"),d(i(),Wn,"operationOwners"),d(i(),qn,"whitelistMints")]),Fi=l([N(8),i("poolId"),i("owner"),ce("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),O("unfilledRatioX64"),d(e(),4)]),zn=l([N(8),i("poolId"),N(8*8*At,"positiveTickArrayBitmap"),N(8*8*At,"negativeTickArrayBitmap")]),id=l([N(8),j("index"),j("filterPeriod"),j("decayPeriod"),j("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),d(e(),8)]),vi=l([N(8),i("wallet"),c("nonceIndex"),e("orderNonce"),d(e(),4)]),rd=l([e(),c("bump"),i("owner"),i("poolId"),i("positionId"),i("nftAccount"),d(e(),8)]),Vi=l([N(8),c("bump"),i("lockOwner"),i("poolId"),i("positionId"),i("nftAccount"),i("lockNftMint"),e("recentEpoch"),d(e(),8)]);import ud from"bn.js";var Ad=Buffer.from("amm_config","utf8"),_i=Buffer.from("pool","utf8"),Ei=Buffer.from("pool_vault","utf8"),wd=Buffer.from("pool_reward_vault","utf8"),kd=Buffer.from("position","utf8"),Td=Buffer.from("tick_array","utf8"),hd=Buffer.from("operation","utf8"),Id=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Bd=Buffer.from("observation","utf8"),Sd=Buffer.from("support_mint","utf8"),xd=Buffer.from("dynamic_fee_config","utf8");var Kd=Buffer.from("locked_position","utf8");import{sha256 as tr}from"js-sha256";import Di from"bn.js";import Od from"decimal.js";var Md=new Di(1).shln(256).subn(1);import $d from"bn.js";import Wd from"bn.js";import Ud from"decimal.js";import ap from"bn.js";import up from"decimal.js";import{PublicKey as Gp}from"@solana/web3.js";import Yp from"bn.js";import{TOKEN_2022_PROGRAM_ID as ef}from"@solana/spl-token";import rf from"decimal.js";import Np from"bn.js";import wp from"bn.js";import ff from"bn.js";function ee(o){let t=`global:${o}`;return Buffer.from(tr.digest(t)).slice(0,8)}Un.span;var ry=v("Raydium_Clmm"),ay={createPool:ee("create_pool"),createCustomizablePool:ee("create_customizable_pool"),openPositionV2:ee("open_position_v2"),openPositionWithToken22Nft:ee("open_position_with_token22_nft"),closePosition:ee("close_position"),increaseLiquidityV2:ee("increase_liquidity_v2"),decreaseLiquidityV2:ee("decrease_liquidity_v2"),initializeReward:ee("initialize_reward"),setRewardParams:ee("set_reward_params"),updateRewardInfos:ee("update_reward_infos"),collectRemainingRewards:ee("collect_remaining_rewards"),swapV2:ee("swap_v2"),openLimitOrder:ee("open_limit_order"),increaseLimitOrder:ee("increase_limit_order"),decreaseLimitOrder:ee("decrease_limit_order"),settleLimitOrder:ee("settle_limit_order"),closeLimitOrder:ee("close_limit_order")};import{PublicKey as Jt}from"@solana/web3.js";var rr=l([c("instruction"