UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 115 kB
var ai=Object.defineProperty,si=Object.defineProperties;var ui=Object.getOwnPropertyDescriptors;var Kt=Object.getOwnPropertySymbols;var zn=Object.prototype.hasOwnProperty,Yn=Object.prototype.propertyIsEnumerable;var Gn=(i,e,t)=>e in i?ai(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,F=(i,e)=>{for(var t in e||(e={}))zn.call(e,t)&&Gn(i,t,e[t]);if(Kt)for(var t of Kt(e))Yn.call(e,t)&&Gn(i,t,e[t]);return i},E=(i,e)=>si(i,ui(e));var de=(i,e)=>{var t={};for(var o in i)zn.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&Kt)for(var o of Kt(i))e.indexOf(o)<0&&Yn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as w}from"@solana/web3.js";import{AccountLayout as Bs,NATIVE_MINT as at,TOKEN_PROGRAM_ID as me,createAssociatedTokenAccountIdempotentInstruction as rn}from"@solana/spl-token";import{PublicKey as bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";import{ComputeBudgetProgram as Zn,Keypair as jn,PublicKey as mi,Transaction as $n,TransactionMessage as di,VersionedTransaction as Jn}from"@solana/web3.js";import{get as Xn,set as ci}from"lodash";var an=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(o=>typeof o=="object"?JSON.stringify(o):o).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},Qn={},li={};function z(i){let e=Xn(Qn,i);if(!e){let t=Xn(li,i);e=new an({name:i,logLevel:t}),ci(Qn,i,e)}return e}var Q={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 pi}from"@solana/spl-token";var Hn=z("Raydium_txUtil"),eo=1644;function Ct(i){let e=[],t=[];return i.microLamports&&(e.push(Zn.setComputeUnitPrice({microLamports:i.microLamports})),t.push(Q.SetComputeUnitPrice)),i.units&&(e.push(Zn.setComputeUnitLimit({units:i.units})),t.push(Q.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ue(i,e){var o,r;let t=e!=null?e:"confirmed";return(r=await((o=i.getLatestBlockhash)==null?void 0:o.call(i,{commitment:t})))==null?void 0:r.blockhash}async function Rt(i,e){return i.getSignatureStatuses([e]),new Promise((t,o)=>{let r=setTimeout(o,6e4);i.onSignature(e,a=>{if(clearTimeout(r),!a.err){t("");return}o(Object.assign(a.err,{txId:e}))},"confirmed")})}function sn(i,e){i.length<1&&Hn.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&Hn.logWithError(`no signers provided:, ${e.toString()}`);let t=new $n;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<eo}catch{return!1}}function te(i,e){let[t,o]=mi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function st({instructions:i,payer:e,signers:t}){return sn(i,[e,...t])}function ut({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=jn.generate().publicKey.toString()}){let a=new di({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Jn(a).serialize()).toString("base64").length<eo}catch{return!1}}var fi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),yi=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof Jn&&(e=fi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ve(i){let e=[];return i.forEach(t=>{t instanceof $n&&(t.recentBlockhash||(t.recentBlockhash=pi.toBase58()),t.feePayer||(t.feePayer=jn.generate().publicKey)),e.push(yi(t))}),console.log("simulate tx string:",e),e}function ee(i,e,t){return te([i.toBuffer(),(t!=null?t:gi).toBuffer(),e.toBuffer()],new bi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as $,SystemProgram as to,SYSVAR_RENT_PUBKEY as Pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";function Ge({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var wi=[Ge({pubkey:Ai,isWritable:!1}),Ge({pubkey:to.programId,isWritable:!1}),Ge({pubkey:Pi,isWritable:!1})];function un({publicKey:i,transformSol:e}){let t=no(i.toString());if(t instanceof $)return e&&t.equals(_e)?ne:t;if(e&&t.toString()===_e.toBase58())return ne;if(typeof t=="string"){if(t===$.default.toBase58())return $.default;try{return new $(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function no(i){try{return new $(i)}catch{return i}}var ct=new $("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Oe=new $("SysvarRent111111111111111111111111111111111"),ki=new $("SysvarC1ock11111111111111111111111111111111"),Ee=new $("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ti=new $("Sysvar1nstructions1111111111111111111111111"),cn=to.programId,Qs=new $("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Zs=new $("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Hs=new $("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),js=new $("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),$s=new $("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Js=new $("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),eu=new $("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),tu=new $("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),nu=new $("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ou=new $("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),iu=new $("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ne=new $("So11111111111111111111111111111111111111112"),_e=$.default;function Ne(i){return un({publicKey:i,transformSol:!0})}import Is from"big.js";import ZC from"bn.js";import Fe from"bn.js";import CC from"decimal.js";import{PublicKey as hi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as oo}from"@solana/spl-token";var Lt={chainId:101,address:hi.default.toBase58(),programId:oo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},he={chainId:101,address:"So11111111111111111111111111111111111111112",programId:oo.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 ln}from"@solana/web3.js";var mn=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:a=!1,isToken2022:l=!1}){if(e===_e.toBase58()||e instanceof ln&&_e.equals(e)){this.decimals=he.decimals,this.symbol=he.symbol,this.name=he.name,this.mint=new ln(he.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=o||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=a?ln.default:un({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},se=mn;se.WSOL=new mn(E(F({},he),{mint:he.address}));var dn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Ot=dn;Ot.SOL=new dn(Lt);import Mt from"big.js";import xi from"bn.js";import Ki from"decimal.js-light";import lt from"bn.js";var io=9007199254740991;function le(i){let e=z("Raydium_parseBigNumberish");if(i instanceof lt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new lt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=io||i<=-io)&&e.logWithError(`BigNumberish number overflow: ${i}`),new lt(String(i))):typeof i=="bigint"?new lt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new lt(0))}import Ii from"toformat";var Bi=Ii,mt=Bi;var Nt=z("module/fraction"),pn=mt(Mt),dt=mt(Ki),Ci={[0]:dt.ROUND_DOWN,[1]:dt.ROUND_HALF_UP,[2]:dt.ROUND_UP},Ri={[0]:Mt.roundDown,[1]:Mt.roundHalfUp,[2]:Mt.roundUp},H=class{constructor(e,t=new xi(1)){this.numerator=le(e),this.denominator=le(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new H(this.denominator,this.numerator)}add(e){let t=e instanceof H?e:new H(le(e));return this.denominator.eq(t.denominator)?new H(this.numerator.add(t.numerator),this.denominator):new H(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof H?e:new H(le(e));return this.denominator.eq(t.denominator)?new H(this.numerator.sub(t.numerator),this.denominator):new H(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof H?e:new H(le(e));return new H(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof H?e:new H(le(e));return new H(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Nt.logWithError(`${e} is not an integer.`),e<=0&&Nt.logWithError(`${e} is not positive.`),dt.set({precision:e+1,rounding:Ci[o]});let r=new dt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},o=1){return Number.isInteger(e)||Nt.logWithError(`${e} is not an integer.`),e<0&&Nt.logWithError(`${e} is negative.`),pn.DP=e,pn.RM=Ri[o]||1,new pn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import Li from"bn.js";var ro=new H(new Li(100)),ye=class extends H{toSignificant(e=5,t,o){return this.mul(ro).toSignificant(e,t,o)}toFixed(e=2,t,o){return this.mul(ro).toFixed(e,t,o)}};var Vu=z("Raydium_price");import{merge as RK}from"lodash";import sl from"axios";import{PublicKey as ao}from"@solana/web3.js";import{MINT_SIZE as Oi,TOKEN_PROGRAM_ID as Ni,getTransferFeeConfig as Mi,unpackMint as Fi}from"@solana/spl-token";var fn=z("Raydium_accountInfo_util");async function Ie(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:a=100}=F({batchRequest:!1},t),l=yn(e,a),s=new Array(l.length).fill([]);if(o){let c=l.map(b=>{let p=i._buildArgs([b.map(m=>m.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:p}}),f=yn(c,10);s=(await(await Promise.all(f.map(async b=>await i._rpcBatchRequest(b)))).flat()).map(b=>(b.error&&fn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.error.message}`),b.result.value.map(p=>{if(p){let{data:m,executable:k,lamports:y,owner:A,rentEpoch:T}=p;return m.length!==2&&m[1]!=="base64"&&fn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(m[0],"base64"),executable:k,lamports:y,owner:new ao(A),rentEpoch:T}}return null})))}else try{s=await Promise.all(l.map(c=>i.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&fn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return s.flat()}async function Pe(i,e,t){let o=await Ie(i,e.map(r=>r.pubkey),t);return e.map((r,a)=>E(F({},r),{accountInfo:o[a]}))}async function Ft({connection:i,mints:e,config:t}){var a,l,s;if(e.length===0)return{};let o=await Pe(i,e.map(c=>({pubkey:Ne(c)})),t),r={};for(let c of o){if(!c.accountInfo||c.accountInfo.data.length<Oi){console.log("invalid mint account",c.pubkey.toBase58());continue}let f=Fi(c.pubkey,c.accountInfo,(a=c.accountInfo)==null?void 0:a.owner);r[c.pubkey.toString()]=E(F({},f),{programId:((l=c.accountInfo)==null?void 0:l.owner)||Ni,feeConfig:(s=Mi(f))!=null?s:void 0})}return r[ao.default.toBase58()]=r[ne.toBase58()],r}function yn(i,e=1,t=[]){let o=[...i];if(e<=0)return t;for(;o.length;)t.push(o.splice(0,e));return t}import{PublicKey as V}from"@solana/web3.js";var so=new V("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),uo=new V("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),co=new V("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),bn=new V("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),$u=new V("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),vi=new V("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),lo=new V("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),mo=new V("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ju=new V("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Vi=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),po=new V("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),_i=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ei=new V("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),fo=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ec=new V("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Di=new V("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Wi=new V("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),qi=new V("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ui=new V("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Gi=new V("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ze=new V("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),yo=new V("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),tc=new V("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),pt=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),vt=new V("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),zi=new V("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),nc=new V("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),oc=new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ic=new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),rc=new V("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ac=new V("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),ft={IDO_PROGRAM_ID_V1:Wi,IDO_PROGRAM_ID_V2:qi,IDO_PROGRAM_ID_V3:Ui,IDO_PROGRAM_ID_V4:Gi};var xe={OPEN_BOOK_PROGRAM:new V("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new V("Ray1111111111111111111111111111111111111111"),AMM_V4:new V("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new V("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new V("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new V("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new V("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new V("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new V("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new V("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new V("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:V.default,Router:new V("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new V("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new V("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new V("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new V("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new V("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new V("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new V("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new V("Ray1111111111111111111111111111111111111111")};import we from"bn.js";var yt=1e4;function Me(i,e,t,o){if(e===void 0)return{amount:i,fee:void 0,expirationTime:void 0};let r=E(F({},e),{olderTransferFee:{epoch:BigInt(e.olderTransferFee.epoch),maximumFee:BigInt(e.olderTransferFee.maximumFee),transferFeeBasisPoints:e.olderTransferFee.transferFeeBasisPoints},newerTransferFee:{epoch:BigInt(e.newerTransferFee.epoch),maximumFee:BigInt(e.newerTransferFee.maximumFee),transferFeeBasisPoints:e.newerTransferFee.transferFeeBasisPoints}}),a=t.epoch<r.newerTransferFee.epoch?r.olderTransferFee:r.newerTransferFee,l=new we(a.maximumFee.toString()),s=t.epoch<r.newerTransferFee.epoch?(Number(r.newerTransferFee.epoch)*t.slotsInEpoch-t.absoluteSlot)*400/1e3:void 0;if(o)if(a.transferFeeBasisPoints===yt){let c=new we(a.maximumFee.toString());return{amount:i.add(c),fee:c,expirationTime:s}}else{let c=Vt(i.mul(new we(yt)),new we(yt-a.transferFeeBasisPoints)),f=new we(a.maximumFee.toString()),d=c.sub(i).gt(f)?i.add(f):c,b=Vt(d.mul(new we(a.transferFeeBasisPoints)),new we(yt)),p=b.gt(l)?l:b;return{amount:d,fee:p,expirationTime:s}}else{let c=Vt(i.mul(new we(a.transferFeeBasisPoints)),new we(yt)),f=c.gt(l)?l:c;return{amount:i,fee:f,expirationTime:s}}}function Vt(i,e){let{div:t,mod:o}=i.divmod(e);return o.gt(new we(0))?t.add(new we(1)):t}import{PublicKey as gn,AddressLookupTableAccount as Qe}from"@solana/web3.js";async function Pn({connection:i,address:e,cluster:t="mainnet"}){let o=await Ie(i,[...new Set(e.map(a=>a.toString()))].map(a=>new gn(a))),r={};for(let a=0;a<e.length;a++){let l=o[a],s=e[a];if(!l)continue;let c=new Qe({key:s,state:Qe.deserialize(l.data)});r[s.toString()]=c,t==="devnet"?Xe[s.toString()]=c:Ye[s.toString()]=c}return r}var Ye={},An=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ye[e])return Ye;let t=new gn(e),o=await i.getAccountInfo(t);return o&&(Ye[e]=new Qe({key:t,state:Qe.deserialize(o.data)})),Ye},Xe={},wn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Xe[e])return Xe;let t=new gn(e),o=await i.getAccountInfo(t);return o&&(Xe[e]=new Qe({key:t,state:Qe.deserialize(o.data)})),Xe};import{PublicKey as Ze,sendAndConfirmTransaction as kn,SystemProgram as Yi,Transaction as bt,TransactionMessage as gt,VersionedTransaction as Pt}from"@solana/web3.js";import Xi from"axios";var _t=2e3,Et=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var o;let e=(await Xi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(o=e==null?void 0:e[15])!=null?o:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:o}=Ct(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Yi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ze(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(Q.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let o=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(o))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:o=[],instructionTypes:r=[],endInstructionTypes:a=[],lookupTableAddress:l=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...o),this.instructionTypes.push(...r),this.endInstructionTypes.push(...a),this.lookupTableAddress.push(...l.filter(s=>s!==Ze.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:o}){return e===0?await this.buildV0(E(F({},t||{}),{lookupTableAddress:o})):this.build(t)}build(e){var o;let t=new bt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((o=this.owner)==null?void 0:o.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var d;let{recentBlockHash:a,skipPreflight:l=!0,sendAndConfirm:s,notSendToRpc:c}=r||{},f=a!=null?a:await Ue(this.connection,this.blockhashCommitment);if(t.recentBlockhash=f,this.signers.length&&t.sign(...this.signers),Ve([t]),(d=this.owner)!=null&&d.isKeyPair)return{txId:s?await kn(this.connection,t,this.signers.find(p=>p.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:l}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:l}),signedTx:t};if(this.signAllTransactions){let b=await this.signAllTransactions([t]);if(this.signers.length)for(let p of b)try{p.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(b[0].serialize(),{skipPreflight:l}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var f;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),a=t.filter(d=>d.transaction.instructions.length>0),l=[r,...a.map(d=>d.transaction)],s=[this.signers,...a.map(d=>d.signers)],c=[...this.instructionTypes,...a.map(d=>d.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&s.forEach(d=>{d.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:s,instructionTypes:c,execute:async d=>{var T;let{sequentially:b,onTxUpdate:p,skipTxCount:m=0,recentBlockHash:k,skipPreflight:y=!0}=d||{},A=k!=null?k:await Ue(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(b){let h=[],C=0;for(let O of l){if(++C,C<=m)continue;let S=await kn(this.connection,O,this.signers.find(x=>x.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});h.push(S)}return{txIds:h,signedTxs:l}}return{txIds:await await Promise.all(l.map(async h=>(h.recentBlockhash=A,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:y})))),signedTxs:l}}if(this.signAllTransactions){let h=l.map((O,S)=>(O.recentBlockhash=A,s[S].length&&O.sign(...s[S]),O));Ve(h);let C=await this.signAllTransactions(h);if(b){let O=0,S=[],x=async()=>{if(!C[O])return;let B=await this.connection.sendRawTransaction(C[O].serialize(),{skipPreflight:y});S.push({txId:B,status:"sent",signedTx:C[O]}),p==null||p([...S]),O++;let R=!1,N=null,M=null,q=v=>{N!==null&&clearInterval(N),M!==null&&this.connection.removeSignatureListener(M);let _=S.findIndex(X=>X.txId===B);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=v.err?"error":"success"}p==null||p([...S]),v.err||x()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var v;if(R){clearInterval(N);return}try{let _=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(R=!0,clearInterval(N),q({err:((v=_.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",B))}catch(_){R=!0,clearInterval(N),console.error("getTransaction timeout:",_,B)}},_t)),M=this.connection.onSignature(B,v=>{if(R){this.connection.removeSignatureListener(M);return}R=!0,q(v)},"confirmed"),this.connection.getSignatureStatus(B)};return await x(),{txIds:S.map(B=>B.txId),signedTxs:C}}else{let O=[];for(let S=0;S<C.length;S+=1){let x=await this.connection.sendRawTransaction(C[S].serialize(),{skipPreflight:y});O.push(x)}return{txIds:O,signedTxs:C}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:o}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:o||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:o})}async buildV0(e){var y;let k=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:a}=k,l=de(k,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=F(F({},this.cluster==="devnet"?await wn(this.connection):await An(this.connection)),t),c=Array.from(new Set([...o,...this.lookupTableAddress])),f=[];for(let A of c)s[A]===void 0&&f.push(new Ze(A));let d=await Pn({connection:this.connection,address:f});for(let[A,T]of Object.entries(d))s[A]=T;let b=r?Ze.default.toBase58():a!=null?a:await Ue(this.connection,this.blockhashCommitment),p=new gt({payerKey:this.feePayer,recentBlockhash:b,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((y=this.owner)==null?void 0:y.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let m=new Pt(p);return m.sign(this.signers),{builder:this,transaction:m,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var O;let{skipPreflight:T=!0,sendAndConfirm:h,notSendToRpc:C}=A||{};if(Ve([m]),(O=this.owner)!=null&&O.isKeyPair){let S=await this.connection.sendTransaction(m,{skipPreflight:T});return h&&await Rt(this.connection,S),{txId:S,signedTx:m}}if(this.signAllTransactions){let S=await this.signAllTransactions([m]);if(this.signers.length)for(let x of S)try{x.sign(this.signers)}catch{}return{txId:C?"":await this.connection.sendTransaction(S[0],{skipPreflight:T}),signedTx:S[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}async buildV0MultiTx(e){var f;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),a=t.filter(d=>d.builder.instructions.length>0),l=[r,...a.map(d=>d.transaction)],s=[this.signers,...a.map(d=>d.signers)],c=[...this.instructionTypes,...a.map(d=>d.instructionTypes).flat()];return(f=this.owner)!=null&&f.signer&&s.forEach(d=>{d.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(d,b)=>{d.sign(s[b])}),{builder:this,transactions:l,signers:s,instructionTypes:c,buildProps:o,execute:async d=>{var y;let{sequentially:b,onTxUpdate:p,recentBlockHash:m,skipPreflight:k=!0}=d||{};if(m&&l.forEach(A=>A.message.recentBlockhash=m),Ve(l),(y=this.owner)!=null&&y.isKeyPair){if(b){let A=[];for(let T of l){let h=await this.connection.sendTransaction(T,{skipPreflight:k});await Rt(this.connection,h),A.push(h)}return{txIds:A,signedTxs:l}}return{txIds:await Promise.all(l.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:k}))),signedTxs:l}}if(this.signAllTransactions){let A=await this.signAllTransactions(l);if(b){let T=0,h=[],C=async()=>{if(!A[T])return;let O=await this.connection.sendTransaction(A[T],{skipPreflight:k});h.push({txId:O,status:"sent",signedTx:A[T]}),p==null||p([...h]),T++;let S=!1,x=null,B=null,R=N=>{x!==null&&clearInterval(x),B!==null&&this.connection.removeSignatureListener(B);let M=h.findIndex(q=>q.txId===O);if(M>-1){if(h[M].status==="error"||h[M].status==="success")return;h[M].status=N.err?"error":"success"}p==null||p([...h]),N.err||C()};this.loopMultiTxStatus&&(x=setInterval(async()=>{var N;if(S){clearInterval(x);return}try{let M=await this.connection.getTransaction(O,{commitment:"confirmed",maxSupportedTransactionVersion:0});M&&(S=!0,clearInterval(x),R({err:((N=M.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",O))}catch(M){S=!0,clearInterval(x),console.error("getTransaction timeout:",M,O)}},_t)),B=this.connection.onSignature(O,N=>{if(S){this.connection.removeSignatureListener(B);return}S=!0,R(N)},"confirmed"),this.connection.getSignatureStatus(O)};return C(),{txIds:[],signedTxs:A}}else{let T=[];for(let h=0;h<A.length;h+=1){let C=await this.connection.sendTransaction(A[h],{skipPreflight:k});T.push(C)}return{txIds:T,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var p;let b=e||{},{splitIns:t=[],computeBudgetConfig:o}=b,r=de(b,["splitIns","computeBudgetConfig"]),a=o?Ct(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((m,k)=>E(F({},m),{[k.publicKey.toBase58()]:k}),{}),s=[],c=[],f=[],d=0;if(this.allInstructions.forEach(m=>{let k=[...f,m],y=o?[...a.instructions,...k]:k,T=[...new Set(k.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(h=>new Ze(h));if(m!==t[d]&&f.length<12&&(st({instructions:y,payer:this.feePayer,signers:T})||st({instructions:k,payer:this.feePayer,signers:T})))f.push(m);else{if(f.length===0)throw Error("item ins too big");d+=m===t[d]?1:0,st({instructions:o?[...a.instructions,...f]:[...f],payer:this.feePayer,signers:T})?s.push(new bt().add(...a.instructions,...f)):s.push(new bt().add(...f)),c.push(Array.from(new Set(f.map(h=>h.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat())).map(h=>l[h]).filter(h=>h!==void 0)),f=[m]}}),f.length>0){let k=[...new Set(f.map(y=>y.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(y=>l[y]).filter(y=>y!==void 0);st({instructions:o?[...a.instructions,...f]:[...f],payer:this.feePayer,signers:k.map(y=>y.publicKey)})?s.push(new bt().add(...a.instructions,...f)):s.push(new bt().add(...f)),c.push(k)}return s.forEach(m=>m.feePayer=this.feePayer),(p=this.owner)!=null&&p.signer&&c.forEach(m=>{m.some(k=>k.publicKey.equals(this.owner.publicKey))||m.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:this.instructionTypes,execute:async m=>{var O;let{sequentially:k,onTxUpdate:y,skipTxCount:A=0,recentBlockHash:T,skipPreflight:h=!0}=m||{},C=T!=null?T:await Ue(this.connection,this.blockhashCommitment);if(s.forEach(async(S,x)=>{S.recentBlockhash=C,c[x].length&&S.sign(...c[x])}),Ve(s),(O=this.owner)!=null&&O.isKeyPair){if(k){let S=0,x=[];for(let B of s){if(++S,S<=A){x.push("tx skipped");continue}let R=await kn(this.connection,B,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});x.push(R)}return{txIds:x,signedTxs:s}}return{txIds:await Promise.all(s.map(async S=>await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let S=await this.signAllTransactions(s.slice(A,s.length)),x=[...s.slice(0,A),...S];if(k){let B=0,R=[],N=async()=>{if(!x[B])return;B<A&&(R.push({txId:"",status:"success",signedTx:x[B]}),y==null||y([...R]),B++,N());let M=await this.connection.sendRawTransaction(x[B].serialize(),{skipPreflight:h});R.push({txId:M,status:"sent",signedTx:x[B]}),y==null||y([...R]),B++;let q=!1,v=null,_=null,X=D=>{v!==null&&clearInterval(v),_!==null&&this.connection.removeSignatureListener(_);let G=R.findIndex(Z=>Z.txId===M);if(G>-1){if(R[G].status==="error"||R[G].status==="success")return;R[G].status=D.err?"error":"success"}y==null||y([...R]),D.err||N()};this.loopMultiTxStatus&&(v=setInterval(async()=>{var D;if(q){clearInterval(v);return}try{let G=await this.connection.getTransaction(M,{commitment:"confirmed",maxSupportedTransactionVersion:0});G&&(q=!0,clearInterval(v),X({err:((D=G.meta)==null?void 0:D.err)||null}),console.log("tx status from getTransaction:",M))}catch(G){q=!0,clearInterval(v),console.error("getTransaction timeout:",G,M)}},_t)),_=this.connection.onSignature(M,D=>{if(q){this.connection.removeSignatureListener(_);return}q=!0,X(D)},"confirmed"),this.connection.getSignatureStatus(M)};return await N(),{txIds:R.map(M=>M.txId),signedTxs:x}}else{let B=[];for(let R=0;R<x.length;R+=1){let N=await this.connection.sendRawTransaction(x[R].serialize(),{skipPreflight:h});B.push(N)}return{txIds:B,signedTxs:x}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var O;let C=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:a=[],insCountLimit:l=12}=C,s=de(C,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=F(F({},this.cluster==="devnet"?await wn(this.connection):await An(this.connection)),r),f=Array.from(new Set([...this.lookupTableAddress,...a])),d=[];for(let S of f)c[S]===void 0&&d.push(new Ze(S));let b=await Pn({connection:this.connection,address:d});for(let[S,x]of Object.entries(b))c[S]=x;let p=t?Ct(t):{instructions:[],instructionTypes:[]},m=await Ue(this.connection,this.blockhashCommitment),k=this.signers.reduce((S,x)=>E(F({},S),{[x.publicKey.toBase58()]:x}),{}),y=[],A=[],T=[],h=0;if(this.allInstructions.forEach(S=>{let x=[...T,S],B=t?[...p.instructions,...x]:x;if(S!==o[h]&&T.length<l&&(ut({instructions:B,payer:this.feePayer,lookupTableAddressAccount:c})||ut({instructions:x,payer:this.feePayer,lookupTableAddressAccount:c})))T.push(S);else{if(T.length===0)throw Error("item ins too big");h+=S===o[h]?1:0;let R={};for(let N of[...new Set(f)])c[N]!==void 0&&(R[N]=c[N]);if(t&&ut({instructions:[...p.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let N=new gt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...T]}).compileToV0Message(Object.values(c));y.push(new Pt(N))}else{let N=new gt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...T]}).compileToV0Message(Object.values(c));y.push(new Pt(N))}A.push(Array.from(new Set(T.map(N=>N.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(N=>k[N]).filter(N=>N!==void 0)),T=[S]}}),T.length>0){let x=[...new Set(T.map(B=>B.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(B=>k[B]).filter(B=>B!==void 0);if(t&&ut({instructions:[...p.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:m})){let B=new gt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...p.instructions,...T]}).compileToV0Message(Object.values(c));y.push(new Pt(B))}else{let B=new gt({payerKey:this.feePayer,recentBlockhash:m,instructions:[...T]}).compileToV0Message(Object.values(c));y.push(new Pt(B))}A.push(x)}return(O=this.owner)!=null&&O.signer&&A.forEach(S=>{S.some(x=>x.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),y.forEach((S,x)=>{S.sign(A[x])}),{builder:this,transactions:y,buildProps:e,signers:A,instructionTypes:this.instructionTypes,execute:async S=>{var q;let{sequentially:x,onTxUpdate:B,skipTxCount:R=0,recentBlockHash:N,skipPreflight:M=!0}=S||{};if(y.map(async(v,_)=>{A[_].length&&v.sign(A[_]),N&&(v.message.recentBlockhash=N)}),Ve(y),(q=this.owner)!=null&&q.isKeyPair){if(x){let v=0,_=[];for(let X of y){if(++v,v<=R){console.log("skip tx: ",v),_.push("tx skipped");continue}let D=await this.connection.sendTransaction(X,{skipPreflight:M});await Rt(this.connection,D),_.push(D)}return{txIds:_,signedTxs:y}}return{txIds:await Promise.all(y.map(async v=>await this.connection.sendTransaction(v,{skipPreflight:M}))),signedTxs:y}}if(this.signAllTransactions){let v=await this.signAllTransactions(y.slice(R,y.length)),_=[...y.slice(0,R),...v];if(x){let X=0,D=[],G=async()=>{if(!_[X])return;if(X<R){D.push({txId:"",status:"success",signedTx:_[X]}),B==null||B([...D]),X++,G();return}let Z=await this.connection.sendTransaction(_[X],{skipPreflight:M});D.push({txId:Z,status:"sent",signedTx:_[X]}),B==null||B([...D]),X++;let fe=!1,ge=null,xt=null,Un=ve=>{ge!==null&&clearInterval(ge),xt!==null&&this.connection.removeSignatureListener(xt);let Se=D.findIndex(ri=>ri.txId===Z);if(Se>-1){if(D[Se].status==="error"||D[Se].status==="success")return;D[Se].status=ve.err?"error":"success"}B==null||B([...D]),ve.err||G()};this.loopMultiTxStatus&&(ge=setInterval(async()=>{var ve;if(fe){clearInterval(ge);return}try{let Se=await this.connection.getTransaction(Z,{commitment:"confirmed",maxSupportedTransactionVersion:0});Se&&(fe=!0,clearInterval(ge),Un({err:((ve=Se.meta)==null?void 0:ve.err)||null}),console.log("tx status from getTransaction:",Z))}catch(Se){fe=!0,clearInterval(ge),console.error("getTransaction timeout:",Se,Z)}},_t)),xt=this.connection.onSignature(Z,ve=>{if(fe){this.connection.removeSignatureListener(xt);return}fe=!0,Un(ve)},"confirmed"),this.connection.getSignatureStatus(Z)};return G(),{txIds:[],signedTxs:_}}else{let X=[];for(let D=0;D<_.length;D+=1){let G=await this.connection.sendTransaction(_[D],{skipPreflight:M});X.push(G)}return{txIds:X,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as xc}from"@solana/web3.js";import Cc from"bn.js";import Qi from"bn.js";var Be=new Qi(1e6);var bo={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"},Zi=E(F({},bo),{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 Rl=z("Raydium_Api");import{PublicKey as Ad,SystemProgram as wd}from"@solana/web3.js";import{AccountLayout as Bd,createAssociatedTokenAccountIdempotentInstruction as Sd,TOKEN_PROGRAM_ID as xd,TOKEN_2022_PROGRAM_ID as Kd}from"@solana/spl-token";var Tn=(...i)=>i.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ue=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=z(t)}createTxBuilder(e){return this.scope.checkOwner(),new Et({connection:this.scope.connection,feePayer:e||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(...e){this.logger.debug(Tn(e))}logInfo(...e){this.logger.info(Tn(e))}logAndCreateError(...e){let t=Tn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Hm,SystemProgram as $m}from"@solana/web3.js";import td from"bn.js";import{createCloseAccountInstruction as rd,createInitializeAccountInstruction as ad,createTransferInstruction as sd,TOKEN_PROGRAM_ID as ud}from"@solana/spl-token";import{Keypair as Vm,PublicKey as _m}from"@solana/web3.js";import Wm from"bn.js";import{TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";import{PublicKey as ur}from"@solana/web3.js";import To,{isBN as ho}from"bn.js";import{bits as Hi,BitStructure as Ul,blob as ji,Blob as Gl,cstr as zl,f32 as Yl,f32be as Xl,f64 as Ql,f64be as Zl,greedy as Hl,Layout as $i,ns64 as jl,ns64be as $l,nu64 as Ji,nu64be as Jl,offset as er,s16 as em,s16be as tm,s24 as nm,s24be as om,s32 as tr,s32be as im,s40 as rm,s40be as am,s48 as sm,s48be as um,s8 as cm,seq as nr,struct as lm,Structure as or,u16 as ir,u16be as mm,u24 as dm,u24be as pm,u32 as rr,u32be as fm,u40 as ym,u40be as bm,u48 as gm,u48be as Pm,u8 as ar,UInt as sr,union as Am,Union as wm,unionLayoutDiscriminator as km,utf8 as Tm}from"@solana/buffer-layout";var Wt=$i,go=or;var hn=sr;var Po=ar,re=ir;var qt=rr;var Ao=Ji;var ke=tr;var wo=nr;var U=ji;var In=Hi,ko=er;var We=class extends Wt{constructor(t,o,r){super(t,r);this.blob=U(t),this.signed=o}decode(t,o=0){let r=new To(this.blob.decode(t,o),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,o,r=0){return typeof t=="number"&&(t=new To(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Ut=class extends Wt{constructor(t){super(8,t);this._lower=In(qt(),!1),this._upper=In(qt(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,o=0){let r=this._lower.decode(t,o),a=this._upper.decode(t,o+this._lower.span);return F(F({},r),a)}encode(t,o,r=0){return this._lower.encode(t,o,r)+this._upper.encode(t,o,r+this._lower.span)}};function K(i){return new hn(1,i)}function J(i){return new hn(4,i)}function n(i){return new We(8,!1,i)}function W(i){return new We(16,!1,i)}function Io(i){return new We(1,!0,i)}function je(i){return new We(8,!0,i)}function Bo(i){return new We(16,!0,i)}var At=class extends Wt{constructor(t,o,r,a){super(t.span,a);this.layout=t,this.decoder=o,this.encoder=r}decode(t,o){return this.decoder(this.layout.decode(t,o))}encode(t,o,r){return this.layout.encode(this.encoder(t),o,r)}getSpan(t,o){return this.layout.getSpan(t,o)}};function u(i){return new At(U(32),e=>new ur(e),e=>e.toBuffer(),i)}function be(i){return new At(Po(),cr,lr,i)}function cr(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function lr(i){return i?1:0}function So(i,e){let t=qt("length"),o=I([t,L(i,ko(t,-t.span),"values")]);return new At(o,({values:r})=>r,r=>({values:r}),e)}var Bn=class extends go{decode(e,t){return super.decode(e,t)}};function I(i,e,t){return new Bn(i,e,t)}function L(i,e,t){let o,r=typeof e=="number"?e:ho(e)?e.toNumber():new Proxy(e,{get(a,l){if(!o){let s=Reflect.get(a,"count");o=ho(s)?s.toNumber():s,Reflect.set(a,"count",o)}return Reflect.get(a,l)},set(a,l,s){return l==="count"&&(o=s),Reflect.set(a,l,s)}});return wo(i,r,t)}var Gt=I([u("mint"),u("owner"),n("amount"),J("delegateOption"),u("delegate"),K("state"),J("isNativeOption"),n("isNative"),n("delegatedAmount"),J("closeAuthorityOption"),u("closeAuthority")]);import{PublicKey as vP,SystemProgram as VP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as EP}from"@solana/spl-token";import ZP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as kb,TOKEN_2022_PROGRAM_ID as Tb,TOKEN_PROGRAM_ID as hb}from"@solana/spl-token";import{PublicKey as Bb}from"@solana/web3.js";import xb from"bn.js";import Cb from"decimal.js";import{TOKEN_PROGRAM_ID as _d}from"@solana/spl-token";import{PublicKey as qd}from"@solana/web3.js";var dr=I([J("mintAuthorityOption"),u("mintAuthority"),n("supply"),K("decimals"),K("isInitialized"),J("freezeAuthorityOption"),u("freezeAuthority")]);var Ke=r=>{var a=r,{address:i,programId:e,decimals:t}=a,o=de(a,["address","programId","decimals"]);return F({chainId:101,address:Ne(i).toBase58(),programId:e,logoURI:"",symbol:"",name:"",decimals:t,tags:[],extensions:o.extensions||{}},o)},$e=i=>i?E(F({},i),{transferFeeConfigAuthority:i.transferFeeConfigAuthority.toBase58(),withdrawWithheldAuthority:i.withdrawWithheldAuthority.toBase58(),withheldAmount:i.withheldAmount.toString(),olderTransferFee:E(F({},i.olderTransferFee),{epoch:i.olderTransferFee.epoch.toString(),maximumFee:i.olderTransferFee.maximumFee.toString()}),newerTransferFee:E(F({},i.newerTransferFee),{epoch:i.newerTransferFee.epoch.toString(),maximumFee:i.newerTransferFee.maximumFee.toString()})}):void 0;import{ASSOCIATED_TOKEN_PROGRAM_ID as Uy,TOKEN_2022_PROGRAM_ID as Gy,TOKEN_PROGRAM_ID as zy}from"@solana/spl-token";import{Keypair as Qy,PublicKey as Zy,SystemProgram as jy,TransactionInstruction as $y}from"@solana/web3.js";import eb from"bn.js";import Y from"bn.js";var qe=new Y(1).shln(64);var pr=new Y(1).shln(128),Sn=new Y(1).shln(64).subn(1),fr=new Y(1).shln(128).subn(1);var Je=new Y("4295048016"),et=new Y("79226673521066979257578248091"),yr=new Y("59543866431248"),br=new Y("184467440737095516"),gr=new Y("15793534762490258745");var xn=60,ep=new Y("18446743708227953217"),Pr=[{bit:0,factor:new Y("fffcb933bd6fb800",16)},{bit:1,factor:new Y("fff97272373d4000",16)},{bit:2,factor:new Y("fff2e50f5f657000",16)},{bit:3,factor:new Y("ffe5caca7e10f000",16)},{bit:4,factor:new Y("ffcb9843d60f7000",16)},{bit:5,factor:new Y("ff973b41fa98e800",16)},{bit:6,factor:new Y("ff2ea16466c9b000",16)},{bit:7,factor:new Y("fe5dee046a9a3800",16)},{bit:8,factor:new Y("fcbe86c7900bb000",16)},{bit:9,factor:new Y("f987a7253ac65800",16)},{bit:10,factor:new Y("f3392b0822bb6000",16)},{bit:11,factor:new Y("e7159475a2caf000",16)},{bit:12,factor:new Y("d097f3bdfd2f2000",16)},{bit:13,factor:new Y("a9f746462d9f8000",16)},{bit:14,factor:new Y("70d869a156f31c00",16)},{bit:15,factor:new Y("31be135f97ed3200",16)},{bit:16,factor:new Y("9aa508b5b85a500",16)},{bit:17,factor:new Y("5d6af8dedc582c",16)},{bit:18,factor:new Y("2216e584f5fa",16)}];var wt=3,Ko=100;var Co=10,Ro=100,Yt=14;var oe=new Y(0),tt=new Y(1),tp=new Y(-1);var np=new Y("18446744073700000000");var Ar=I([U(8),K("bump"),re("index"),u("owner"),J("protocolFeeRate"),J("tradeFeeRate"),re("tickSpacing"),J("fundFeeRate"),L(J(),1),u("fundOwner"),L(n(),3)]),wr=I([J("blockTimestamp"),je("tickCumulative"),L(n(),4)]),Lo=I([U(8),be("initialized"),n("recentEpoch"),re("observationIndex"),u("poolId"),L(wr,Ko,"observations"),L(n(),4)]),kr=I([re("filterPeriod"),re("decayPeriod"),re("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),ke("tickSpacingIndexReference"),J("volatilityReference"),J("volatilityAccumulator"),n("lastUpdateTimestamp"),L(K(),46)]),Tr=I([K("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),W("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),u("mint"),u("vault"),u("creator"),W("growthGlobalX64")]),Kn=I([U(8),K("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),K("mintDecimalsA"),K("mintDecimalsB"),re("tickSpacing"),W("liquidity"),W("sqrtPriceX64"),ke("tickCurrent"),J(),W("feeGrowthGlobalX64A"),W("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),L(W(),4),K("status"),K("feeOn"),U(6),L(Tr,wt,"rewardInfos"),U(8*16,"tickArrayBitmap"),L(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),kr.replicate("dynamicFeeInfo"),L(n(),46)]),hr=I([W("growthInsideLastX64"),n("rewardAmountOwed")]),Ir=I([U(8),K("bump"),u("nftMint"),u("poolId"),ke("tickLower"),ke("tickUpper"),W("liquidity"),W("feeGrowthInsideLastX64A"),W("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),L(hr,wt,"rewardInfos"),n("recentEpoch"),L(n(),7)]),ap=I([U(8),K("bump"),u("poolId"),ke("tickLower"),ke