@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 115 kB
JavaScript
var ui=Object.defineProperty,ci=Object.defineProperties;var li=Object.getOwnPropertyDescriptors;var Ct=Object.getOwnPropertySymbols;var Yn=Object.prototype.hasOwnProperty,Qn=Object.prototype.propertyIsEnumerable;var Xn=(i,e,t)=>e in i?ui(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,F=(i,e)=>{for(var t in e||(e={}))Yn.call(e,t)&&Xn(i,t,e[t]);if(Ct)for(var t of Ct(e))Qn.call(e,t)&&Xn(i,t,e[t]);return i},E=(i,e)=>ci(i,li(e));var fe=(i,e)=>{var t={};for(var o in i)Yn.call(i,o)&&e.indexOf(o)<0&&(t[o]=i[o]);if(i!=null&&Ct)for(var o of Ct(i))e.indexOf(o)<0&&Qn.call(i,o)&&(t[o]=i[o]);return t};import{PublicKey as k}from"@solana/web3.js";import{AccountLayout as xs,NATIVE_MINT as st,TOKEN_2022_PROGRAM_ID as si,TOKEN_PROGRAM_ID as pe,createAssociatedTokenAccountIdempotentInstruction as an}from"@solana/spl-token";import{PublicKey as Pi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ai}from"@solana/spl-token";import{ComputeBudgetProgram as jn,Keypair as Jn,PublicKey as pi,Transaction as eo,TransactionMessage as fi,VersionedTransaction as to}from"@solana/web3.js";import{get as Zn,set as mi}from"lodash";var un=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}},Hn={},di={};function X(i){let e=Zn(Hn,i);if(!e){let t=Zn(di,i);e=new un({name:i,logLevel:t}),mi(Hn,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 yi}from"@solana/spl-token";var $n=X("Raydium_txUtil"),no=1644;function Rt(i){let e=[],t=[];return i.microLamports&&(e.push(jn.setComputeUnitPrice({microLamports:i.microLamports})),t.push(Q.SetComputeUnitPrice)),i.units&&(e.push(jn.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 Lt(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 cn(i,e){i.length<1&&$n.logWithError(`no instructions provided: ${i.toString()}`),e.length<1&&$n.logWithError(`no signers provided:, ${e.toString()}`);let t=new eo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...i);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<no}catch{return!1}}function ee(i,e){let[t,o]=pi.findProgramAddressSync(i,e);return{publicKey:t,nonce:o}}function ct({instructions:i,payer:e,signers:t}){return cn(i,[e,...t])}function lt({instructions:i,payer:e,lookupTableAddressAccount:t,recentBlockhash:o=Jn.generate().publicKey.toString()}){let a=new fi({payerKey:e,recentBlockhash:o,instructions:i}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new to(a).serialize()).toString("base64").length<no}catch{return!1}}var bi=i=>Buffer.isBuffer(i)?i:i instanceof Uint8Array?Buffer.from(i.buffer,i.byteOffset,i.byteLength):Buffer.from(i),gi=i=>{let e=i.serialize({requireAllSignatures:!1,verifySignatures:!1});i instanceof to&&(e=bi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function _e(i){let e=[];return i.forEach(t=>{t instanceof eo&&(t.recentBlockhash||(t.recentBlockhash=yi.toBase58()),t.feePayer||(t.feePayer=Jn.generate().publicKey)),e.push(gi(t))}),console.log("simulate tx string:",e),e}function te(i,e,t){return ee([i.toBuffer(),(t!=null?t:Ai).toBuffer(),e.toBuffer()],new Pi("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}import{PublicKey as $,SystemProgram as oo,SYSVAR_RENT_PUBKEY as wi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ki}from"@solana/spl-token";function Ge({pubkey:i,isSigner:e=!1,isWritable:t=!0}){return{pubkey:i,isWritable:t,isSigner:e}}var Ti=[Ge({pubkey:ki,isWritable:!1}),Ge({pubkey:oo.programId,isWritable:!1}),Ge({pubkey:wi,isWritable:!1})];function ln({publicKey:i,transformSol:e}){let t=io(i.toString());if(t instanceof $)return e&&t.equals(Ee)?ne:t;if(e&&t.toString()===Ee.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 io(i){try{return new $(i)}catch{return i}}var mt=new $("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ne=new $("SysvarRent111111111111111111111111111111111"),hi=new $("SysvarC1ock11111111111111111111111111111111"),De=new $("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ii=new $("Sysvar1nstructions1111111111111111111111111"),mn=oo.programId,Hs=new $("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),js=new $("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),$s=new $("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Js=new $("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),eu=new $("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),tu=new $("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),nu=new $("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ou=new $("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),iu=new $("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),ru=new $("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),au=new $("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),ne=new $("So11111111111111111111111111111111111111112"),Ee=$.default;function Me(i){return ln({publicKey:i,transformSol:!0})}import Ss from"big.js";import $C from"bn.js";import ve from"bn.js";import OC from"decimal.js";import{PublicKey as Bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ro}from"@solana/spl-token";var Ot={chainId:101,address:Bi.default.toBase58(),programId:ro.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ie={chainId:101,address:"So11111111111111111111111111111111111111112",programId:ro.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 dn}from"@solana/web3.js";var pn=class{constructor({mint:e,decimals:t,symbol:o,name:r,skipMint:a=!1,isToken2022:l=!1}){if(e===Ee.toBase58()||e instanceof dn&&Ee.equals(e)){this.decimals=Ie.decimals,this.symbol=Ie.symbol,this.name=Ie.name,this.mint=new dn(Ie.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?dn.default:ln({publicKey:e}),this.isToken2022=l}equals(e){return this===e?!0:this.mint.equals(e.mint)}},se=pn;se.WSOL=new pn(E(F({},Ie),{mint:Ie.address}));var fn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:o="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=o}equals(e){return this===e}},Nt=fn;Nt.SOL=new fn(Ot);import Ft from"big.js";import Ci from"bn.js";import Ri from"decimal.js-light";import dt from"bn.js";var ao=9007199254740991;function de(i){let e=X("Raydium_parseBigNumberish");if(i instanceof dt)return i;if(typeof i=="string"){if(i.match(/^-?[0-9]+$/))return new dt(i);e.logWithError(`invalid BigNumberish string: ${i}`)}return typeof i=="number"?(i%1&&e.logWithError(`BigNumberish number underflow: ${i}`),(i>=ao||i<=-ao)&&e.logWithError(`BigNumberish number overflow: ${i}`),new dt(String(i))):typeof i=="bigint"?new dt(i.toString()):(e.error(`invalid BigNumberish value: ${i}`),new dt(0))}import Si from"toformat";var xi=Si,pt=xi;var Mt=X("module/fraction"),yn=pt(Ft),ft=pt(Ri),Li={[0]:ft.ROUND_DOWN,[1]:ft.ROUND_HALF_UP,[2]:ft.ROUND_UP},Oi={[0]:Ft.roundDown,[1]:Ft.roundHalfUp,[2]:Ft.roundUp},H=class{constructor(e,t=new Ci(1)){this.numerator=de(e),this.denominator=de(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(de(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(de(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(de(e));return new H(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof H?e:new H(de(e));return new H(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},o=1){Number.isInteger(e)||Mt.logWithError(`${e} is not an integer.`),e<=0&&Mt.logWithError(`${e} is not positive.`),ft.set({precision:e+1,rounding:Li[o]});let r=new ft(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)||Mt.logWithError(`${e} is not an integer.`),e<0&&Mt.logWithError(`${e} is negative.`),yn.DP=e,yn.RM=Oi[o]||1,new yn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import Ni from"bn.js";var so=new H(new Ni(100)),be=class extends H{toSignificant(e=5,t,o){return this.mul(so).toSignificant(e,t,o)}toFixed(e=2,t,o){return this.mul(so).toFixed(e,t,o)}};var Eu=X("Raydium_price");import{merge as NK}from"lodash";import cl from"axios";import{PublicKey as uo}from"@solana/web3.js";import{MINT_SIZE as Mi,TOKEN_PROGRAM_ID as Fi,getTransferFeeConfig as vi,unpackMint as Vi}from"@solana/spl-token";var bn=X("Raydium_accountInfo_util");async function Be(i,e,t){let{batchRequest:o,commitment:r="confirmed",chunkCount:a=100}=F({batchRequest:!1},t),l=gn(e,a),s=new Array(l.length).fill([]);if(o){let c=l.map(b=>{let d=i._buildArgs([b.map(f=>f.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:d}}),p=gn(c,10);s=(await(await Promise.all(p.map(async b=>await i._rpcBatchRequest(b)))).flat()).map(b=>(b.error&&bn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${b.error.message}`),b.result.value.map(d=>{if(d){let{data:f,executable:w,lamports:y,owner:A,rentEpoch:T}=d;return f.length!==2&&f[1]!=="base64"&&bn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:w,lamports:y,owner:new uo(A),rentEpoch:T}}return null})))}else try{s=await Promise.all(l.map(c=>i.getMultipleAccountsInfo(c,r)))}catch(c){c instanceof Error&&bn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return s.flat()}async function Pe(i,e,t){let o=await Be(i,e.map(r=>r.pubkey),t);return e.map((r,a)=>E(F({},r),{accountInfo:o[a]}))}async function vt({connection:i,mints:e,config:t}){var a,l,s;if(e.length===0)return{};let o=await Pe(i,e.map(c=>({pubkey:Me(c)})),t),r={};for(let c of o){if(!c.accountInfo||c.accountInfo.data.length<Mi){console.log("invalid mint account",c.pubkey.toBase58());continue}let p=Vi(c.pubkey,c.accountInfo,(a=c.accountInfo)==null?void 0:a.owner);r[c.pubkey.toString()]=E(F({},p),{programId:((l=c.accountInfo)==null?void 0:l.owner)||Fi,feeConfig:(s=vi(p))!=null?s:void 0})}return r[uo.default.toBase58()]=r[ne.toBase58()],r}function gn(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 co=new V("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),lo=new V("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),mo=new V("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Pn=new V("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ec=new V("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),_i=new V("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),po=new V("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),fo=new V("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),tc=new V("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Ei=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),yo=new V("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Di=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Wi=new V("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),bo=new V("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),nc=new V("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),qi=new V("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ui=new V("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Gi=new V("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),zi=new V("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Xi=new V("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),ze=new V("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),go=new V("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),oc=new V("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),yt=new V("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vt=new V("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Yi=new V("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ic=new V("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rc=new V("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ac=new V("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sc=new V("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),uc=new V("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),bt={IDO_PROGRAM_ID_V1:Ui,IDO_PROGRAM_ID_V2:Gi,IDO_PROGRAM_ID_V3:zi,IDO_PROGRAM_ID_V4:Xi};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 ke from"bn.js";var gt=1e4;function Fe(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 ke(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===gt){let c=new ke(a.maximumFee.toString());return{amount:i.add(c),fee:c,expirationTime:s}}else{let c=_t(i.mul(new ke(gt)),new ke(gt-a.transferFeeBasisPoints)),p=new ke(a.maximumFee.toString()),m=c.sub(i).gt(p)?i.add(p):c,b=_t(m.mul(new ke(a.transferFeeBasisPoints)),new ke(gt)),d=b.gt(l)?l:b;return{amount:m,fee:d,expirationTime:s}}else{let c=_t(i.mul(new ke(a.transferFeeBasisPoints)),new ke(gt)),p=c.gt(l)?l:c;return{amount:i,fee:p,expirationTime:s}}}function _t(i,e){let{div:t,mod:o}=i.divmod(e);return o.gt(new ke(0))?t.add(new ke(1)):t}import{PublicKey as An,AddressLookupTableAccount as Qe}from"@solana/web3.js";async function wn({connection:i,address:e,cluster:t="mainnet"}){let o=await Be(i,[...new Set(e.map(a=>a.toString()))].map(a=>new An(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"?Ye[s.toString()]=c:Xe[s.toString()]=c}return r}var Xe={},kn=async i=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Xe[e])return Xe;let t=new An(e),o=await i.getAccountInfo(t);return o&&(Xe[e]=new Qe({key:t,state:Qe.deserialize(o.data)})),Xe},Ye={},Tn=async i=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ye[e])return Ye;let t=new An(e),o=await i.getAccountInfo(t);return o&&(Ye[e]=new Qe({key:t,state:Qe.deserialize(o.data)})),Ye};import{PublicKey as Ze,sendAndConfirmTransaction as hn,SystemProgram as Qi,Transaction as Pt,TransactionMessage as At,VersionedTransaction as wt}from"@solana/web3.js";import Zi from"axios";var Et=2e3,Dt=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 Zi.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}=Rt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...o),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Qi.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 Pt;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 m;let{recentBlockHash:a,skipPreflight:l=!0,sendAndConfirm:s,notSendToRpc:c}=r||{},p=a!=null?a:await Ue(this.connection,this.blockhashCommitment);if(t.recentBlockhash=p,this.signers.length&&t.sign(...this.signers),_e([t]),(m=this.owner)!=null&&m.isKeyPair)return{txId:s?await hn(this.connection,t,this.signers.find(d=>d.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 d of b)try{d.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 p;let{extraPreBuildData:t=[],extInfo:o}=e,{transaction:r}=this.build(o),a=t.filter(m=>m.transaction.instructions.length>0),l=[r,...a.map(m=>m.transaction)],s=[this.signers,...a.map(m=>m.signers)],c=[...this.instructionTypes,...a.map(m=>m.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&s.forEach(m=>{m.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:l,signers:s,instructionTypes:c,execute:async m=>{var T;let{sequentially:b,onTxUpdate:d,skipTxCount:f=0,recentBlockHash:w,skipPreflight:y=!0}=m||{},A=w!=null?w:await Ue(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(b){let I=[],R=0;for(let L of l){if(++R,R<=f)continue;let S=await hn(this.connection,L,this.signers.find(K=>K.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:y});I.push(S)}return{txIds:I,signedTxs:l}}return{txIds:await await Promise.all(l.map(async I=>(I.recentBlockhash=A,await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:y})))),signedTxs:l}}if(this.signAllTransactions){let I=l.map((L,S)=>(L.recentBlockhash=A,s[S].length&&L.sign(...s[S]),L));_e(I);let R=await this.signAllTransactions(I);if(b){let L=0,S=[],K=async()=>{if(!R[L])return;let B=await this.connection.sendRawTransaction(R[L].serialize(),{skipPreflight:y});S.push({txId:B,status:"sent",signedTx:R[L]}),d==null||d([...S]),L++;let C=!1,N=null,M=null,D=v=>{N!==null&&clearInterval(N),M!==null&&this.connection.removeSignatureListener(M);let _=S.findIndex(z=>z.txId===B);if(_>-1){if(S[_].status==="error"||S[_].status==="success")return;S[_].status=v.err?"error":"success"}d==null||d([...S]),v.err||K()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var v;if(C){clearInterval(N);return}try{let _=await this.connection.getTransaction(B,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(C=!0,clearInterval(N),D({err:((v=_.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",B))}catch(_){C=!0,clearInterval(N),console.error("getTransaction timeout:",_,B)}},Et)),M=this.connection.onSignature(B,v=>{if(C){this.connection.removeSignatureListener(M);return}C=!0,D(v)},"confirmed"),this.connection.getSignatureStatus(B)};return await K(),{txIds:S.map(B=>B.txId),signedTxs:R}}else{let L=[];for(let S=0;S<R.length;S+=1){let K=await this.connection.sendRawTransaction(R[S].serialize(),{skipPreflight:y});L.push(K)}return{txIds:L,signedTxs:R}}}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 w=e||{},{lookupTableCache:t={},lookupTableAddress:o=[],forerunCreate:r,recentBlockhash:a}=w,l=fe(w,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=F(F({},this.cluster==="devnet"?await Tn(this.connection):await kn(this.connection)),t),c=Array.from(new Set([...o,...this.lookupTableAddress])),p=[];for(let A of c)s[A]===void 0&&p.push(new Ze(A));let m=await wn({connection:this.connection,address:p});for(let[A,T]of Object.entries(m))s[A]=T;let b=r?Ze.default.toBase58():a!=null?a:await Ue(this.connection,this.blockhashCommitment),d=new At({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 f=new wt(d);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var L;let{skipPreflight:T=!0,sendAndConfirm:I,notSendToRpc:R}=A||{};if(_e([f]),(L=this.owner)!=null&&L.isKeyPair){let S=await this.connection.sendTransaction(f,{skipPreflight:T});return I&&await Lt(this.connection,S),{txId:S,signedTx:f}}if(this.signAllTransactions){let S=await this.signAllTransactions([f]);if(this.signers.length)for(let K of S)try{K.sign(this.signers)}catch{}return{txId:R?"":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 p;let{extraPreBuildData:t=[],buildProps:o}=e,{transaction:r}=await this.buildV0(o),a=t.filter(m=>m.builder.instructions.length>0),l=[r,...a.map(m=>m.transaction)],s=[this.signers,...a.map(m=>m.signers)],c=[...this.instructionTypes,...a.map(m=>m.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&s.forEach(m=>{m.some(b=>b.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),l.forEach(async(m,b)=>{m.sign(s[b])}),{builder:this,transactions:l,signers:s,instructionTypes:c,buildProps:o,execute:async m=>{var y;let{sequentially:b,onTxUpdate:d,recentBlockHash:f,skipPreflight:w=!0}=m||{};if(f&&l.forEach(A=>A.message.recentBlockhash=f),_e(l),(y=this.owner)!=null&&y.isKeyPair){if(b){let A=[];for(let T of l){let I=await this.connection.sendTransaction(T,{skipPreflight:w});await Lt(this.connection,I),A.push(I)}return{txIds:A,signedTxs:l}}return{txIds:await Promise.all(l.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:w}))),signedTxs:l}}if(this.signAllTransactions){let A=await this.signAllTransactions(l);if(b){let T=0,I=[],R=async()=>{if(!A[T])return;let L=await this.connection.sendTransaction(A[T],{skipPreflight:w});I.push({txId:L,status:"sent",signedTx:A[T]}),d==null||d([...I]),T++;let S=!1,K=null,B=null,C=N=>{K!==null&&clearInterval(K),B!==null&&this.connection.removeSignatureListener(B);let M=I.findIndex(D=>D.txId===L);if(M>-1){if(I[M].status==="error"||I[M].status==="success")return;I[M].status=N.err?"error":"success"}d==null||d([...I]),N.err||R()};this.loopMultiTxStatus&&(K=setInterval(async()=>{var N;if(S){clearInterval(K);return}try{let M=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});M&&(S=!0,clearInterval(K),C({err:((N=M.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",L))}catch(M){S=!0,clearInterval(K),console.error("getTransaction timeout:",M,L)}},Et)),B=this.connection.onSignature(L,N=>{if(S){this.connection.removeSignatureListener(B);return}S=!0,C(N)},"confirmed"),this.connection.getSignatureStatus(L)};return R(),{txIds:[],signedTxs:A}}else{let T=[];for(let I=0;I<A.length;I+=1){let R=await this.connection.sendTransaction(A[I],{skipPreflight:w});T.push(R)}return{txIds:T,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:o||{}}}async sizeCheckBuild(e){var d;let b=e||{},{splitIns:t=[],computeBudgetConfig:o}=b,r=fe(b,["splitIns","computeBudgetConfig"]),a=o?Rt(o):{instructions:[],instructionTypes:[]},l=this.signers.reduce((f,w)=>E(F({},f),{[w.publicKey.toBase58()]:w}),{}),s=[],c=[],p=[],m=0;if(this.allInstructions.forEach(f=>{let w=[...p,f],y=o?[...a.instructions,...w]:w,T=[...new Set(w.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat()).values()].map(I=>new Ze(I));if(f!==t[m]&&p.length<12&&(ct({instructions:y,payer:this.feePayer,signers:T})||ct({instructions:w,payer:this.feePayer,signers:T})))p.push(f);else{if(p.length===0)throw Error("item ins too big");m+=f===t[m]?1:0,ct({instructions:o?[...a.instructions,...p]:[...p],payer:this.feePayer,signers:T})?s.push(new Pt().add(...a.instructions,...p)):s.push(new Pt().add(...p)),c.push(Array.from(new Set(p.map(I=>I.keys.filter(R=>R.isSigner).map(R=>R.pubkey.toString())).flat())).map(I=>l[I]).filter(I=>I!==void 0)),p=[f]}}),p.length>0){let w=[...new Set(p.map(y=>y.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(y=>l[y]).filter(y=>y!==void 0);ct({instructions:o?[...a.instructions,...p]:[...p],payer:this.feePayer,signers:w.map(y=>y.publicKey)})?s.push(new Pt().add(...a.instructions,...p)):s.push(new Pt().add(...p)),c.push(w)}return s.forEach(f=>f.feePayer=this.feePayer),(d=this.owner)!=null&&d.signer&&c.forEach(f=>{f.some(w=>w.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),{builder:this,transactions:s,signers:c,instructionTypes:this.instructionTypes,execute:async f=>{var L;let{sequentially:w,onTxUpdate:y,skipTxCount:A=0,recentBlockHash:T,skipPreflight:I=!0}=f||{},R=T!=null?T:await Ue(this.connection,this.blockhashCommitment);if(s.forEach(async(S,K)=>{S.recentBlockhash=R,c[K].length&&S.sign(...c[K])}),_e(s),(L=this.owner)!=null&&L.isKeyPair){if(w){let S=0,K=[];for(let B of s){if(++S,S<=A){K.push("tx skipped");continue}let C=await hn(this.connection,B,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});K.push(C)}return{txIds:K,signedTxs:s}}return{txIds:await Promise.all(s.map(async S=>await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:I}))),signedTxs:s}}if(this.signAllTransactions){let S=await this.signAllTransactions(s.slice(A,s.length)),K=[...s.slice(0,A),...S];if(w){let B=0,C=[],N=async()=>{if(!K[B])return;B<A&&(C.push({txId:"",status:"success",signedTx:K[B]}),y==null||y([...C]),B++,N());let M=await this.connection.sendRawTransaction(K[B].serialize(),{skipPreflight:I});C.push({txId:M,status:"sent",signedTx:K[B]}),y==null||y([...C]),B++;let D=!1,v=null,_=null,z=q=>{v!==null&&clearInterval(v),_!==null&&this.connection.removeSignatureListener(_);let U=C.findIndex(Z=>Z.txId===M);if(U>-1){if(C[U].status==="error"||C[U].status==="success")return;C[U].status=q.err?"error":"success"}y==null||y([...C]),q.err||N()};this.loopMultiTxStatus&&(v=setInterval(async()=>{var q;if(D){clearInterval(v);return}try{let U=await this.connection.getTransaction(M,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(D=!0,clearInterval(v),z({err:((q=U.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",M))}catch(U){D=!0,clearInterval(v),console.error("getTransaction timeout:",U,M)}},Et)),_=this.connection.onSignature(M,q=>{if(D){this.connection.removeSignatureListener(_);return}D=!0,z(q)},"confirmed"),this.connection.getSignatureStatus(M)};return await N(),{txIds:C.map(M=>M.txId),signedTxs:K}}else{let B=[];for(let C=0;C<K.length;C+=1){let N=await this.connection.sendRawTransaction(K[C].serialize(),{skipPreflight:I});B.push(N)}return{txIds:B,signedTxs:K}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var L;let R=e||{},{computeBudgetConfig:t,splitIns:o=[],lookupTableCache:r={},lookupTableAddress:a=[],insCountLimit:l=12}=R,s=fe(R,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=F(F({},this.cluster==="devnet"?await Tn(this.connection):await kn(this.connection)),r),p=Array.from(new Set([...this.lookupTableAddress,...a])),m=[];for(let S of p)c[S]===void 0&&m.push(new Ze(S));let b=await wn({connection:this.connection,address:m});for(let[S,K]of Object.entries(b))c[S]=K;let d=t?Rt(t):{instructions:[],instructionTypes:[]},f=await Ue(this.connection,this.blockhashCommitment),w=this.signers.reduce((S,K)=>E(F({},S),{[K.publicKey.toBase58()]:K}),{}),y=[],A=[],T=[],I=0;if(this.allInstructions.forEach(S=>{let K=[...T,S],B=t?[...d.instructions,...K]:K;if(S!==o[I]&&T.length<l&&(lt({instructions:B,payer:this.feePayer,lookupTableAddressAccount:c})||lt({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})))T.push(S);else{if(T.length===0)throw Error("item ins too big");I+=S===o[I]?1:0;let C={};for(let N of[...new Set(p)])c[N]!==void 0&&(C[N]=c[N]);if(t&<({instructions:[...d.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let N=new At({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...T]}).compileToV0Message(Object.values(c));y.push(new wt(N))}else{let N=new At({payerKey:this.feePayer,recentBlockhash:f,instructions:[...T]}).compileToV0Message(Object.values(c));y.push(new wt(N))}A.push(Array.from(new Set(T.map(N=>N.keys.filter(M=>M.isSigner).map(M=>M.pubkey.toString())).flat())).map(N=>w[N]).filter(N=>N!==void 0)),T=[S]}}),T.length>0){let K=[...new Set(T.map(B=>B.keys.filter(C=>C.isSigner).map(C=>C.pubkey.toString())).flat()).values()].map(B=>w[B]).filter(B=>B!==void 0);if(t&<({instructions:[...d.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:f})){let B=new At({payerKey:this.feePayer,recentBlockhash:f,instructions:[...d.instructions,...T]}).compileToV0Message(Object.values(c));y.push(new wt(B))}else{let B=new At({payerKey:this.feePayer,recentBlockhash:f,instructions:[...T]}).compileToV0Message(Object.values(c));y.push(new wt(B))}A.push(K)}return(L=this.owner)!=null&&L.signer&&A.forEach(S=>{S.some(K=>K.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),y.forEach((S,K)=>{S.sign(A[K])}),{builder:this,transactions:y,buildProps:e,signers:A,instructionTypes:this.instructionTypes,execute:async S=>{var D;let{sequentially:K,onTxUpdate:B,skipTxCount:C=0,recentBlockHash:N,skipPreflight:M=!0}=S||{};if(y.map(async(v,_)=>{A[_].length&&v.sign(A[_]),N&&(v.message.recentBlockhash=N)}),_e(y),(D=this.owner)!=null&&D.isKeyPair){if(K){let v=0,_=[];for(let z of y){if(++v,v<=C){console.log("skip tx: ",v),_.push("tx skipped");continue}let q=await this.connection.sendTransaction(z,{skipPreflight:M});await Lt(this.connection,q),_.push(q)}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(C,y.length)),_=[...y.slice(0,C),...v];if(K){let z=0,q=[],U=async()=>{if(!_[z])return;if(z<C){q.push({txId:"",status:"success",signedTx:_[z]}),B==null||B([...q]),z++,U();return}let Z=await this.connection.sendTransaction(_[z],{skipPreflight:M});q.push({txId:Z,status:"sent",signedTx:_[z]}),B==null||B([...q]),z++;let le=!1,me=null,Ve=null,ut=Oe=>{me!==null&&clearInterval(me),Ve!==null&&this.connection.removeSignatureListener(Ve);let we=q.findIndex(sn=>sn.txId===Z);if(we>-1){if(q[we].status==="error"||q[we].status==="success")return;q[we].status=Oe.err?"error":"success"}B==null||B([...q]),Oe.err||U()};this.loopMultiTxStatus&&(me=setInterval(async()=>{var Oe;if(le){clearInterval(me);return}try{let we=await this.connection.getTransaction(Z,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(le=!0,clearInterval(me),ut({err:((Oe=we.meta)==null?void 0:Oe.err)||null}),console.log("tx status from getTransaction:",Z))}catch(we){le=!0,clearInterval(me),console.error("getTransaction timeout:",we,Z)}},Et)),Ve=this.connection.onSignature(Z,Oe=>{if(le){this.connection.removeSignatureListener(Ve);return}le=!0,ut(Oe)},"confirmed"),this.connection.getSignatureStatus(Z)};return U(),{txIds:[],signedTxs:_}}else{let z=[];for(let q=0;q<_.length;q+=1){let U=await this.connection.sendTransaction(_[q],{skipPreflight:M});z.push(U)}return{txIds:z,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};import{PublicKey as Cc}from"@solana/web3.js";import Lc from"bn.js";import Hi from"bn.js";var Se=new Hi(1e6);var Po={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"},ji=E(F({},Po),{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 Ol=X("Raydium_Api");import{PublicKey as kd,SystemProgram as Td}from"@solana/web3.js";import{AccountLayout as xd,createAssociatedTokenAccountIdempotentInstruction as Kd,TOKEN_PROGRAM_ID as Cd,TOKEN_2022_PROGRAM_ID as Rd}from"@solana/spl-token";var In=(...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=X(t)}createTxBuilder(e){return this.scope.checkOwner(),new Dt({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(In(e))}logInfo(...e){this.logger.info(In(e))}logAndCreateError(...e){let t=In(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as $m,SystemProgram as ed}from"@solana/web3.js";import od from"bn.js";import{createCloseAccountInstruction as sd,createInitializeAccountInstruction as ud,createTransferInstruction as cd,TOKEN_PROGRAM_ID as ld}from"@solana/spl-token";import{Keypair as Em,PublicKey as Dm}from"@solana/web3.js";import Um from"bn.js";import{TOKEN_PROGRAM_ID as Xm}from"@solana/spl-token";import{PublicKey as lr}from"@solana/web3.js";import Io,{isBN as Bo}from"bn.js";import{bits as $i,BitStructure as zl,blob as Ji,Blob as Xl,cstr as Yl,f32 as Ql,f32be as Zl,f64 as Hl,f64be as jl,greedy as $l,Layout as er,ns64 as Jl,ns64be as em,nu64 as tr,nu64be as tm,offset as nr,s16 as nm,s16be as om,s24 as im,s24be as rm,s32 as or,s32be as am,s40 as sm,s40be as um,s48 as cm,s48be as lm,s8 as mm,seq as ir,struct as dm,Structure as rr,u16 as ar,u16be as pm,u24 as fm,u24be as ym,u32 as sr,u32be as bm,u40 as gm,u40be as Pm,u48 as Am,u48be as wm,u8 as ur,UInt as cr,union as km,Union as Tm,unionLayoutDiscriminator as hm,utf8 as Im}from"@solana/buffer-layout";var qt=er,Ao=rr;var Bn=cr;var wo=ur,re=ar;var Ut=sr;var ko=tr;var Te=or;var To=ir;var G=Ji;var Sn=$i,ho=nr;var qe=class extends qt{constructor(t,o,r){super(t,r);this.blob=G(t),this.signed=o}decode(t,o=0){let r=new Io(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 Io(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),o,r)}},Gt=class extends qt{constructor(t){super(8,t);this._lower=Sn(Ut(),!1),this._upper=Sn(Ut(),!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 x(i){return new Bn(1,i)}function J(i){return new Bn(4,i)}function n(i){return new qe(8,!1,i)}function W(i){return new qe(16,!1,i)}function So(i){return new qe(1,!0,i)}function je(i){return new qe(8,!0,i)}function xo(i){return new qe(16,!0,i)}var kt=class extends qt{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 kt(G(32),e=>new lr(e),e=>e.toBuffer(),i)}function ge(i){return new kt(wo(),mr,dr,i)}function mr(i){if(i===0)return!1;if(i===1)return!0;throw new Error("Invalid bool: "+i)}function dr(i){return i?1:0}function Ko(i,e){let t=Ut("length"),o=h([t,O(i,ho(t,-t.span),"values")]);return new kt(o,({values:r})=>r,r=>({values:r}),e)}var xn=class extends Ao{decode(e,t){return super.decode(e,t)}};function h(i,e,t){return new xn(i,e,t)}function O(i,e,t){let o,r=typeof e=="number"?e:Bo(e)?e.toNumber():new Proxy(e,{get(a,l){if(!o){let s=Reflect.get(a,"count");o=Bo(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 To(i,r,t)}var zt=h([u("mint"),u("owner"),n("amount"),J("delegateOption"),u("delegate"),x("state"),J("isNativeOption"),n("isNative"),n("delegatedAmount"),J("closeAuthorityOption"),u("closeAuthority")]);import{PublicKey as EP,SystemProgram as DP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as qP}from"@solana/spl-token";import $P from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Ib,TOKEN_2022_PROGRAM_ID as Bb,TOKEN_PROGRAM_ID as Sb}from"@solana/spl-token";import{PublicKey as Kb}from"@solana/web3.js";import Rb from"bn.js";import Ob from"decimal.js";import{TOKEN_PROGRAM_ID as Dd}from"@solana/spl-token";import{PublicKey as Gd}from"@solana/web3.js";var fr=h([J("mintAuthorityOption"),u("mintAuthority"),n("supply"),x("decimals"),x("isInitialized"),J("freezeAuthorityOption"),u("freezeAuthority")]);var Ke=r=>{var a=r,{address:i,programId:e,decimals:t}=a,o=fe(a,["address","programId","decimals"]);return F({chainId:101,address:Me(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 Xy,TOKEN_2022_PROGRAM_ID as Yy,TOKEN_PROGRAM_ID as Qy}from"@solana/spl-token";import{Keypair as jy,PublicKey as $y,SystemProgram as eb,TransactionInstruction as tb}from"@solana/web3.js";import ob from"bn.js";import Y from"bn.js";var Je=new Y(1).shln(64);var yr=new Y(1).shln(128),Kn=new Y(1).shln(64).subn(1),br=new Y(1).shln(128).subn(1);var et=new Y("4295048016"),tt=new Y("79226673521066979257578248091"),gr=new Y("59543866431248"),Pr=new Y("184467440737095516"),Ar=new Y("15793534762490258745");var Cn=60,np=new Y("18446743708227953217"),wr=[{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 Tt=3,Ro=100;var Lo=10,Oo=100,Yt=14;var oe=new Y(0),nt=new Y(1),op=new Y(-1);var ip=new Y("18446744073700000000");var kr=h([G(8),x("bump"),re("index"),u("owner"),J("protocolFeeRate"),J("tradeFeeRate"),re("tickSpacing"),J("fundFeeRate"),O(J(),1),u("fundOwner"),O(n(),3)]),Tr=h([J("blockTimestamp"),je("tickCumulative"),O(n(),4)]),No=h([G(8),ge("initialized"),n("recentEpoch"),re("observationIndex"),u("poolId"),O(Tr,Ro,"observations"),O(n(),4)]),hr=h([re("filterPeriod"),re("decayPeriod"),re("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),Te("tickSpacingIndexReference"),J("volatilityReference"),J("volatilityAccumulator"),n("lastUpdateTimestamp"),O(x(),46)]),Ir=h([x("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),W("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),u("mint"),u("vault"),u("creator"),W("growthGlobalX64")]),Rn=h([G(8),x("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),x("mintDecimalsA"),x("mintDecimalsB"),re("tickSpacing"),W("liquidity"),W("sqrtPriceX64"),Te("tickCurrent"),J(),W("feeGrowthGlobalX64A"),W("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),O(W(),4),x("status"),x("feeOn"),G(6),O(Ir,Tt,"rewardInfos"),G(8*16,"tickArrayBitmap"),O(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),hr.replicate("dynamicFeeInfo"),O(n(),46)]),Br=h([W("growthInsideLastX64"),n("rewardAmountOwed")]),Sr=h([G(8),x("bump"),u("nftMint"),u("poolId"),Te("tickLower"),Te("tickUpper"),W("liquidity"),W("feeGrowthInsideLastX64A"),W("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),O(Br,Tt,"rewardInfos"),n("recentEpoch"),O(n(),7)]),up=h([G(8),x("bump"),u(