@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 76.8 kB
JavaScript
var yo=Object.defineProperty,bo=Object.defineProperties;var go=Object.getOwnPropertyDescriptors;var ot=Object.getOwnPropertySymbols;var sn=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable;var an=(o,t,n)=>t in o?yo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,L=(o,t)=>{for(var n in t||(t={}))sn.call(t,n)&&an(o,n,t[n]);if(ot)for(var n of ot(t))un.call(t,n)&&an(o,n,t[n]);return o},W=(o,t)=>bo(o,go(t));var me=(o,t)=>{var n={};for(var i in o)sn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&ot)for(var i of ot(o))t.indexOf(i)<0&&un.call(o,i)&&(n[i]=o[i]);return n};import{merge as TC}from"lodash";import Qc from"axios";import{PublicKey as wo}from"@solana/web3.js";import{get as cn,set as Po}from"lodash";var Bt=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},ln={},Ao={};function v(o){let t=cn(ln,o);if(!t){let n=cn(Ao,o);t=new Bt({name:o,logLevel:n}),Po(ln,o,t)}return t}import{MINT_SIZE as Na,TOKEN_PROGRAM_ID as Ma,getTransferFeeConfig as Fa,unpackMint as va}from"@solana/spl-token";var St=v("Raydium_accountInfo_util");async function Pe(o,t,n){let{batchRequest:i,commitment:u="confirmed",chunkCount:m=100}=L({batchRequest:!1},n),p=xt(t,m),f=new Array(p.length).fill([]);if(i){let g=p.map(K=>{let C=o._buildArgs([K.map(S=>S.toBase58())],u,"base64");return{methodName:"getMultipleAccounts",args:C}}),B=xt(g,10);f=(await(await Promise.all(B.map(async K=>await o._rpcBatchRequest(K)))).flat()).map(K=>(K.error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${K.error.message}`),K.result.value.map(C=>{if(C){let{data:S,executable:F,lamports:P,owner:T,rentEpoch:I}=C;return S.length!==2&&S[1]!=="base64"&&St.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(S[0],"base64"),executable:F,lamports:P,owner:new wo(T),rentEpoch:I}}return null})))}else try{f=await Promise.all(p.map(g=>o.getMultipleAccountsInfo(g,u)))}catch(g){g instanceof Error&&St.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return f.flat()}import we from"bn.js";import Xs from"decimal.js";import Ko from"big.js";import at from"bn.js";import ko from"toformat";var To=ko,Ue=To;import rt from"big.js";import Io from"bn.js";import Bo from"decimal.js-light";import Ge from"bn.js";var mn=9007199254740991;function Z(o){let t=v("Raydium_parseBigNumberish");if(o instanceof Ge)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Ge(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=mn||o<=-mn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Ge(String(o))):typeof o=="bigint"?new Ge(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Ge(0))}var it=v("module/fraction"),Kt=Ue(rt),ze=Ue(Bo),So={[0]:ze.ROUND_DOWN,[1]:ze.ROUND_HALF_UP,[2]:ze.ROUND_UP},xo={[0]:rt.roundDown,[1]:rt.roundHalfUp,[2]:rt.roundUp},N=class{constructor(t,n=new Io(1)){this.numerator=Z(t),this.denominator=Z(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new N(this.denominator,this.numerator)}add(t){let n=t instanceof N?t:new N(Z(t));return this.denominator.eq(n.denominator)?new N(this.numerator.add(n.numerator),this.denominator):new N(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof N?t:new N(Z(t));return this.denominator.eq(n.denominator)?new N(this.numerator.sub(n.numerator),this.denominator):new N(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof N?t:new N(Z(t));return new N(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof N?t:new N(Z(t));return new N(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<=0&&it.logWithError(`${t} is not positive.`),ze.set({precision:t+1,rounding:So[i]});let u=new ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return u.toFormat(u.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||it.logWithError(`${t} is not an integer.`),t<0&&it.logWithError(`${t} is negative.`),Kt.DP=t,Kt.RM=xo[i]||1,new Kt(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var Co=v("Raydium_amount"),dn=Ue(Ko);function Ro(o,t){let n="0",i="0";if(o.includes(".")){let u=o.split(".");u.length===2?([n,i]=u,i=i.padEnd(t,"0")):Co.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ie=class extends N{constructor(n,i,u=!0,m){let p=new at(0),f=Ct.pow(new at(n.decimals));if(u)p=Z(i);else{let g=new at(0),B=new at(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,K]=Ro(i.toString(),n.decimals);g=Z(b),B=Z(K)}g=g.mul(f),p=g.add(B)}super(p,f);this.logger=v(m||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new ie(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new ie(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,u=0){return super.toSignificant(n,i,u)}toFixed(n=this.token.decimals,i,u=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,u)}toExact(n={groupSeparator:""}){return dn.DP=this.token.decimals,new dn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as pn}from"@solana/spl-token";var st={chainId:101,address:Lo.default.toBase58(),programId:pn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},de={chainId:101,address:"So11111111111111111111111111111111111111112",programId:pn.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 Lt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as fn,SYSVAR_RENT_PUBKEY as Oo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as No}from"@solana/spl-token";function Ke({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Mo=[Ke({pubkey:No,isWritable:!1}),Ke({pubkey:fn.programId,isWritable:!1}),Ke({pubkey:Oo,isWritable:!1})];function yn({publicKey:o,transformSol:t}){let n=bn(o.toString());if(n instanceof X)return t&&n.equals(he)?Ae:n;if(t&&n.toString()===he.toBase58())return Ae;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function bn(o){try{return new X(o)}catch{return o}}var Rt=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new X("SysvarRent111111111111111111111111111111111"),fs=new X("SysvarC1ock11111111111111111111111111111111"),ut=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Fo=new X("Sysvar1nstructions1111111111111111111111111"),vo=fn.programId,ys=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),bs=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),gs=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ps=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),As=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),ws=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ks=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Ts=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),hs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Is=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Bs=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ae=new X("So11111111111111111111111111111111111111112"),he=X.default;var Ot=class{constructor({mint:t,decimals:n,symbol:i,name:u,skipMint:m=!1,isToken2022:p=!1}){if(t===he.toBase58()||t instanceof Lt&&he.equals(t)){this.decimals=de.decimals,this.symbol=de.symbol,this.name=de.name,this.mint=new Lt(de.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=u||t.toString().substring(0,6),this.mint=m?Lt.default:yn({publicKey:t}),this.isToken2022=p}equals(t){return this===t?!0:this.mint.equals(t.mint)}},te=Ot;te.WSOL=new Ot(W(L({},de),{mint:de.address}));var Nt=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},ct=Nt;ct.SOL=new Nt(st);import Vo from"bn.js";var gn=new N(new Vo(100)),pe=class extends N{toSignificant(t=5,n,i){return this.mul(gn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(gn).toFixed(t,n,i)}};var _o=v("Raydium_price"),se=class extends N{constructor(n){let{baseToken:i,quoteToken:u,numerator:m,denominator:p}=n;super(m,p);this.baseToken=i,this.quoteToken=u,this.scalar=new N(Mt(i.decimals),Mt(u.decimals))}get raw(){return new N(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new se({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&_o.logWithError("mul token not equals");let i=super.mul(n);return new se({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,u){return this.adjusted.toSignificant(n,i,u)}toFixed(n=this.quoteToken.decimals,i,u){return this.adjusted.toFixed(n,i,u)}};var nu=new we(2),ou=new we(3),iu=new we(5),Ct=new we(10),ru=new we(100),au=new we(1e3),su=new we(1e4);function Mt(o){return Ct.pow(Z(o))}function Ft(o){var f;if(o===void 0)return{denominator:"1",numerator:"0"};if(o instanceof we)return{numerator:o.toString(),denominator:"1"};if(o instanceof N)return{denominator:o.denominator.toString(),numerator:o.numerator.toString()};let t=String(o),[,n="",i="",u=""]=(f=t.replace(",","").match(/(-?)(\d*)\.?(\d*)/))!=null?f:[],m="1"+"0".repeat(u.length),p=n+(i==="0"?"":i)+u||"0";return{denominator:m,numerator:p,sign:n,int:i,dec:u}}function xt(o,t=1,n=[]){let i=[...o];if(t<=0)return n;for(;i.length;)n.push(i.splice(0,t));return n}import{PublicKey as Iu}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Su}from"@solana/spl-token";import{ComputeBudgetProgram as Pn,Keypair as wn,PublicKey as Do,Transaction as kn,TransactionMessage as Wo,VersionedTransaction as Tn}from"@solana/web3.js";var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as qo}from"@solana/spl-token";var An=v("Raydium_txUtil"),hn=1644;function lt(o){let t=[],n=[];return o.microLamports&&(t.push(Pn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(j.SetComputeUnitPrice)),o.units&&(t.push(Pn.setComputeUnitLimit({units:o.units})),n.push(j.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Ce(o,t){var i,u;let n=t!=null?t:"confirmed";return(u=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:u.blockhash}async function mt(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let u=setTimeout(i,6e4);o.onSignature(t,m=>{if(clearTimeout(u),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function vt(o,t){o.length<1&&An.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&An.logWithError(`no signers provided:, ${t.toString()}`);let n=new kn;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<hn}catch{return!1}}function fe(o,t){let[n,i]=Do.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function Ye({instructions:o,payer:t,signers:n}){return vt(o,[t,...n])}function Qe({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=wn.generate().publicKey.toString()}){let m=new Wo({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new Tn(m).serialize()).toString("base64").length<hn}catch{return!1}}var Uo=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Go=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Tn&&(t=Uo(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Ie(o){let t=[];return o.forEach(n=>{n instanceof kn&&(n.recentBlockhash||(n.recentBlockhash=qo.toBase58()),n.feePayer||(n.feePayer=wn.generate().publicKey)),t.push(Go(n))}),console.log("simulate tx string:",t),t}import{PublicKey as k}from"@solana/web3.js";var In=new k("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Bn=new k("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Sn=new k("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Vt=new k("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Ru=new k("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zo=new k("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),xn=new k("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Kn=new k("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Lu=new k("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xo=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Cn=new k("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qo=new k("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Rn=new k("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ou=new k("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Zo=new k("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),_t=new k("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Ho=new k("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Nu=new k("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),jo=new k("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$o=new k("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Jo=new k("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Mu=new k("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Fu=new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),vu=new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Vu=new k("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),_u=new k("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ke={OPEN_BOOK_PROGRAM:new k("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new k("Ray1111111111111111111111111111111111111111"),AMM_V4:new k("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new k("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new k("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new k("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new k("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new k("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new k("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new k("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new k("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:k.default,Router:new k("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new k("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new k("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new k("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new k("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new k("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new k("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new k("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new k("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new k("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new k("Ray1111111111111111111111111111111111111111")};import Wu from"bn.js";import{PublicKey as Et,AddressLookupTableAccount as Oe}from"@solana/web3.js";async function Dt({connection:o,address:t,cluster:n="mainnet"}){let i=await Pe(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Et(m))),u={};for(let m=0;m<t.length;m++){let p=i[m],f=t[m];if(!p)continue;let g=new Oe({key:f,state:Oe.deserialize(p.data)});u[f.toString()]=g,n==="devnet"?Le[f.toString()]=g:Re[f.toString()]=g}return u}var Re={},Wt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Re[t])return Re;let n=new Et(t),i=await o.getAccountInfo(n);return i&&(Re[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Re},Le={},qt=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Le[t])return Le;let n=new Et(t),i=await o.getAccountInfo(n);return i&&(Le[t]=new Oe({key:n,state:Oe.deserialize(i.data)})),Le};import{PublicKey as Ne,sendAndConfirmTransaction as Ut,SystemProgram as ei,Transaction as Ze,TransactionMessage as He,VersionedTransaction as je}from"@solana/web3.js";import ti from"axios";var dt=2e3,pt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let t=(await ti.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=lt(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(ei.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new Ne(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:u=[],endInstructionTypes:m=[],lookupTableAddress:p=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...u),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...p.filter(f=>f!==Ne.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(W(L({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new Ze;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(u=>u.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async u=>{var b;let{recentBlockHash:m,skipPreflight:p=!0,sendAndConfirm:f,notSendToRpc:g}=u||{},B=m!=null?m:await Ce(this.connection,this.blockhashCommitment);if(n.recentBlockhash=B,this.signers.length&&n.sign(...this.signers),Ie([n]),(b=this.owner)!=null&&b.isKeyPair)return{txId:f?await Ut(this.connection,n,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:p}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:p}),signedTx:n};if(this.signAllTransactions){let K=await this.signAllTransactions([n]);if(this.signers.length)for(let C of K)try{C.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(K[0].serialize(),{skipPreflight:p}),signedTx:K[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var B;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:u}=this.build(i),m=n.filter(b=>b.transaction.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:p,signers:f,instructionTypes:g,execute:async b=>{var I;let{sequentially:K,onTxUpdate:C,skipTxCount:S=0,recentBlockHash:F,skipPreflight:P=!0}=b||{},T=F!=null?F:await Ce(this.connection,this.blockhashCommitment);if((I=this.owner)!=null&&I.isKeyPair){if(K){let h=[],V=0;for(let _ of p){if(++V,V<=S)continue;let y=await Ut(this.connection,_,this.signers.find(A=>A.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:P});h.push(y)}return{txIds:h,signedTxs:p}}return{txIds:await await Promise.all(p.map(async h=>(h.recentBlockhash=T,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:P})))),signedTxs:p}}if(this.signAllTransactions){let h=p.map((_,y)=>(_.recentBlockhash=T,f[y].length&&_.sign(...f[y]),_));Ie(h);let V=await this.signAllTransactions(h);if(K){let _=0,y=[],A=async()=>{if(!V[_])return;let w=await this.connection.sendRawTransaction(V[_].serialize(),{skipPreflight:P});y.push({txId:w,status:"sent",signedTx:V[_]}),C==null||C([...y]),_++;let x=!1,R=null,E=null,ae=U=>{R!==null&&clearInterval(R),E!==null&&this.connection.removeSignatureListener(E);let q=y.findIndex(J=>J.txId===w);if(q>-1){if(y[q].status==="error"||y[q].status==="success")return;y[q].status=U.err?"error":"success"}C==null||C([...y]),U.err||A()};this.loopMultiTxStatus&&(R=setInterval(async()=>{var U;if(x){clearInterval(R);return}try{let q=await this.connection.getTransaction(w,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(x=!0,clearInterval(R),ae({err:((U=q.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",w))}catch(q){x=!0,clearInterval(R),console.error("getTransaction timeout:",q,w)}},dt)),E=this.connection.onSignature(w,U=>{if(x){this.connection.removeSignatureListener(E);return}x=!0,ae(U)},"confirmed"),this.connection.getSignatureStatus(w)};return await A(),{txIds:y.map(w=>w.txId),signedTxs:V}}else{let _=[];for(let y=0;y<V.length;y+=1){let A=await this.connection.sendRawTransaction(V[y].serialize(),{skipPreflight:P});_.push(A)}return{txIds:_,signedTxs:V}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var P;let F=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:u,recentBlockhash:m}=F,p=me(F,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),f=L(L({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),B=[];for(let T of g)f[T]===void 0&&B.push(new Ne(T));let b=await Dt({connection:this.connection,address:B});for(let[T,I]of Object.entries(b))f[T]=I;let K=u?Ne.default.toBase58():m!=null?m:await Ce(this.connection,this.blockhashCommitment),C=new He({payerKey:this.feePayer,recentBlockhash:K,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(f));((P=this.owner)==null?void 0:P.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let S=new je(C);return S.sign(this.signers),{builder:this,transaction:S,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var _;let{skipPreflight:I=!0,sendAndConfirm:h,notSendToRpc:V}=T||{};if(Ie([S]),(_=this.owner)!=null&&_.isKeyPair){let y=await this.connection.sendTransaction(S,{skipPreflight:I});return h&&await mt(this.connection,y),{txId:y,signedTx:S}}if(this.signAllTransactions){let y=await this.signAllTransactions([S]);if(this.signers.length)for(let A of y)try{A.sign(this.signers)}catch{}return{txId:V?"":await this.connection.sendTransaction(y[0],{skipPreflight:I}),signedTx:y[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}async buildV0MultiTx(t){var B;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:u}=await this.buildV0(i),m=n.filter(b=>b.builder.instructions.length>0),p=[u,...m.map(b=>b.transaction)],f=[this.signers,...m.map(b=>b.signers)],g=[...this.instructionTypes,...m.map(b=>b.instructionTypes).flat()];return(B=this.owner)!=null&&B.signer&&f.forEach(b=>{b.some(K=>K.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),p.forEach(async(b,K)=>{b.sign(f[K])}),{builder:this,transactions:p,signers:f,instructionTypes:g,buildProps:i,execute:async b=>{var P;let{sequentially:K,onTxUpdate:C,recentBlockHash:S,skipPreflight:F=!0}=b||{};if(S&&p.forEach(T=>T.message.recentBlockhash=S),Ie(p),(P=this.owner)!=null&&P.isKeyPair){if(K){let T=[];for(let I of p){let h=await this.connection.sendTransaction(I,{skipPreflight:F});await mt(this.connection,h),T.push(h)}return{txIds:T,signedTxs:p}}return{txIds:await Promise.all(p.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:F}))),signedTxs:p}}if(this.signAllTransactions){let T=await this.signAllTransactions(p);if(K){let I=0,h=[],V=async()=>{if(!T[I])return;let _=await this.connection.sendTransaction(T[I],{skipPreflight:F});h.push({txId:_,status:"sent",signedTx:T[I]}),C==null||C([...h]),I++;let y=!1,A=null,w=null,x=R=>{A!==null&&clearInterval(A),w!==null&&this.connection.removeSignatureListener(w);let E=h.findIndex(ae=>ae.txId===_);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=R.err?"error":"success"}C==null||C([...h]),R.err||V()};this.loopMultiTxStatus&&(A=setInterval(async()=>{var R;if(y){clearInterval(A);return}try{let E=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(y=!0,clearInterval(A),x({err:((R=E.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",_))}catch(E){y=!0,clearInterval(A),console.error("getTransaction timeout:",E,_)}},dt)),w=this.connection.onSignature(_,R=>{if(y){this.connection.removeSignatureListener(w);return}y=!0,x(R)},"confirmed"),this.connection.getSignatureStatus(_)};return V(),{txIds:[],signedTxs:T}}else{let I=[];for(let h=0;h<T.length;h+=1){let V=await this.connection.sendTransaction(T[h],{skipPreflight:F});I.push(V)}return{txIds:I,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var C;let K=t||{},{splitIns:n=[],computeBudgetConfig:i}=K,u=me(K,["splitIns","computeBudgetConfig"]),m=i?lt(i):{instructions:[],instructionTypes:[]},p=this.signers.reduce((S,F)=>W(L({},S),{[F.publicKey.toBase58()]:F}),{}),f=[],g=[],B=[],b=0;if(this.allInstructions.forEach(S=>{let F=[...B,S],P=i?[...m.instructions,...F]:F,I=[...new Set(F.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(h=>new Ne(h));if(S!==n[b]&&B.length<12&&(Ye({instructions:P,payer:this.feePayer,signers:I})||Ye({instructions:F,payer:this.feePayer,signers:I})))B.push(S);else{if(B.length===0)throw Error("item ins too big");b+=S===n[b]?1:0,Ye({instructions:i?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:I})?f.push(new Ze().add(...m.instructions,...B)):f.push(new Ze().add(...B)),g.push(Array.from(new Set(B.map(h=>h.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(h=>p[h]).filter(h=>h!==void 0)),B=[S]}}),B.length>0){let F=[...new Set(B.map(P=>P.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(P=>p[P]).filter(P=>P!==void 0);Ye({instructions:i?[...m.instructions,...B]:[...B],payer:this.feePayer,signers:F.map(P=>P.publicKey)})?f.push(new Ze().add(...m.instructions,...B)):f.push(new Ze().add(...B)),g.push(F)}return f.forEach(S=>S.feePayer=this.feePayer),(C=this.owner)!=null&&C.signer&&g.forEach(S=>{S.some(F=>F.publicKey.equals(this.owner.publicKey))||S.push(this.owner.signer)}),{builder:this,transactions:f,signers:g,instructionTypes:this.instructionTypes,execute:async S=>{var _;let{sequentially:F,onTxUpdate:P,skipTxCount:T=0,recentBlockHash:I,skipPreflight:h=!0}=S||{},V=I!=null?I:await Ce(this.connection,this.blockhashCommitment);if(f.forEach(async(y,A)=>{y.recentBlockhash=V,g[A].length&&y.sign(...g[A])}),Ie(f),(_=this.owner)!=null&&_.isKeyPair){if(F){let y=0,A=[];for(let w of f){if(++y,y<=T){A.push("tx skipped");continue}let x=await Ut(this.connection,w,this.signers.find(R=>R.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});A.push(x)}return{txIds:A,signedTxs:f}}return{txIds:await Promise.all(f.map(async y=>await this.connection.sendRawTransaction(y.serialize(),{skipPreflight:h}))),signedTxs:f}}if(this.signAllTransactions){let y=await this.signAllTransactions(f.slice(T,f.length)),A=[...f.slice(0,T),...y];if(F){let w=0,x=[],R=async()=>{if(!A[w])return;w<T&&(x.push({txId:"",status:"success",signedTx:A[w]}),P==null||P([...x]),w++,R());let E=await this.connection.sendRawTransaction(A[w].serialize(),{skipPreflight:h});x.push({txId:E,status:"sent",signedTx:A[w]}),P==null||P([...x]),w++;let ae=!1,U=null,q=null,J=G=>{U!==null&&clearInterval(U),q!==null&&this.connection.removeSignatureListener(q);let oe=x.findIndex(be=>be.txId===E);if(oe>-1){if(x[oe].status==="error"||x[oe].status==="success")return;x[oe].status=G.err?"error":"success"}P==null||P([...x]),G.err||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var G;if(ae){clearInterval(U);return}try{let oe=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});oe&&(ae=!0,clearInterval(U),J({err:((G=oe.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",E))}catch(oe){ae=!0,clearInterval(U),console.error("getTransaction timeout:",oe,E)}},dt)),q=this.connection.onSignature(E,G=>{if(ae){this.connection.removeSignatureListener(q);return}ae=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(E)};return await R(),{txIds:x.map(E=>E.txId),signedTxs:A}}else{let w=[];for(let x=0;x<A.length;x+=1){let R=await this.connection.sendRawTransaction(A[x].serialize(),{skipPreflight:h});w.push(R)}return{txIds:w,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async sizeCheckBuildV0(t){var _;let V=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:u={},lookupTableAddress:m=[],insCountLimit:p=12}=V,f=me(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=L(L({},this.cluster==="devnet"?await qt(this.connection):await Wt(this.connection)),u),B=Array.from(new Set([...this.lookupTableAddress,...m])),b=[];for(let y of B)g[y]===void 0&&b.push(new Ne(y));let K=await Dt({connection:this.connection,address:b});for(let[y,A]of Object.entries(K))g[y]=A;let C=n?lt(n):{instructions:[],instructionTypes:[]},S=await Ce(this.connection,this.blockhashCommitment),F=this.signers.reduce((y,A)=>W(L({},y),{[A.publicKey.toBase58()]:A}),{}),P=[],T=[],I=[],h=0;if(this.allInstructions.forEach(y=>{let A=[...I,y],w=n?[...C.instructions,...A]:A;if(y!==i[h]&&I.length<p&&(Qe({instructions:w,payer:this.feePayer,lookupTableAddressAccount:g})||Qe({instructions:A,payer:this.feePayer,lookupTableAddressAccount:g})))I.push(y);else{if(I.length===0)throw Error("item ins too big");h+=y===i[h]?1:0;let x={};for(let R of[...new Set(B)])g[R]!==void 0&&(x[R]=g[R]);if(n&&Qe({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new je(R))}else{let R=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new je(R))}T.push(Array.from(new Set(I.map(R=>R.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(R=>F[R]).filter(R=>R!==void 0)),I=[y]}}),I.length>0){let A=[...new Set(I.map(w=>w.keys.filter(x=>x.isSigner).map(x=>x.pubkey.toString())).flat()).values()].map(w=>F[w]).filter(w=>w!==void 0);if(n&&Qe({instructions:[...C.instructions,...I],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:S})){let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...C.instructions,...I]}).compileToV0Message(Object.values(g));P.push(new je(w))}else{let w=new He({payerKey:this.feePayer,recentBlockhash:S,instructions:[...I]}).compileToV0Message(Object.values(g));P.push(new je(w))}T.push(A)}return(_=this.owner)!=null&&_.signer&&T.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||y.push(this.owner.signer)}),P.forEach((y,A)=>{y.sign(T[A])}),{builder:this,transactions:P,buildProps:t,signers:T,instructionTypes:this.instructionTypes,execute:async y=>{var ae;let{sequentially:A,onTxUpdate:w,skipTxCount:x=0,recentBlockHash:R,skipPreflight:E=!0}=y||{};if(P.map(async(U,q)=>{T[q].length&&U.sign(T[q]),R&&(U.message.recentBlockhash=R)}),Ie(P),(ae=this.owner)!=null&&ae.isKeyPair){if(A){let U=0,q=[];for(let J of P){if(++U,U<=x){console.log("skip tx: ",U),q.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:E});await mt(this.connection,G),q.push(G)}return{txIds:q,signedTxs:P}}return{txIds:await Promise.all(P.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:E}))),signedTxs:P}}if(this.signAllTransactions){let U=await this.signAllTransactions(P.slice(x,P.length)),q=[...P.slice(0,x),...U];if(A){let J=0,G=[],oe=async()=>{if(!q[J])return;if(J<x){G.push({txId:"",status:"success",signedTx:q[J]}),w==null||w([...G]),J++,oe();return}let be=await this.connection.sendTransaction(q[J],{skipPreflight:E});G.push({txId:be,status:"sent",signedTx:q[J]}),w==null||w([...G]),J++;let We=!1,xe=null,nt=null,rn=Te=>{xe!==null&&clearInterval(xe),nt!==null&&this.connection.removeSignatureListener(nt);let ge=G.findIndex(fo=>fo.txId===be);if(ge>-1){if(G[ge].status==="error"||G[ge].status==="success")return;G[ge].status=Te.err?"error":"success"}w==null||w([...G]),Te.err||oe()};this.loopMultiTxStatus&&(xe=setInterval(async()=>{var Te;if(We){clearInterval(xe);return}try{let ge=await this.connection.getTransaction(be,{commitment:"confirmed",maxSupportedTransactionVersion:0});ge&&(We=!0,clearInterval(xe),rn({err:((Te=ge.meta)==null?void 0:Te.err)||null}),console.log("tx status from getTransaction:",be))}catch(ge){We=!0,clearInterval(xe),console.error("getTransaction timeout:",ge,be)}},dt)),nt=this.connection.onSignature(be,Te=>{if(We){this.connection.removeSignatureListener(nt);return}We=!0,rn(Te)},"confirmed"),this.connection.getSignatureStatus(be)};return oe(),{txIds:[],signedTxs:q}}else{let J=[];for(let G=0;G<q.length;G+=1){let oe=await this.connection.sendTransaction(q[G],{skipPreflight:E});J.push(oe)}return{txIds:J,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:f||{}}}};import{PublicKey as fc}from"@solana/web3.js";import bc from"bn.js";import ni from"bn.js";var ft=new ni(1e6);var Ln={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},oi=W(L({},Ln),{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 gl=v("Raydium_Api");import{PublicKey as sd,SystemProgram as ud}from"@solana/web3.js";import{AccountLayout as pd,createAssociatedTokenAccountIdempotentInstruction as fd,TOKEN_PROGRAM_ID as yd,TOKEN_2022_PROGRAM_ID as bd}from"@solana/spl-token";var Gt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),re=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=v(n)}createTxBuilder(t){return this.scope.checkOwner(),new pt({connection:this.scope.connection,feePayer:t||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...t){this.logger.debug(Gt(t))}logInfo(...t){this.logger.info(Gt(t))}logAndCreateError(...t){let n=Gt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as _m,SystemProgram as Dm}from"@solana/web3.js";import Um from"bn.js";import{createCloseAccountInstruction as Ym,createInitializeAccountInstruction as Qm,createTransferInstruction as Zm,TOKEN_PROGRAM_ID as Hm}from"@solana/spl-token";import{Keypair as Bm,PublicKey as Sm}from"@solana/web3.js";import Cm from"bn.js";import{TOKEN_PROGRAM_ID as Om}from"@solana/spl-token";import{PublicKey as yi}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as ii,BitStructure as Rl,blob as ri,Blob as Ll,cstr as Ol,f32 as Nl,f32be as Ml,f64 as Fl,f64be as vl,greedy as Vl,Layout as ai,ns64 as _l,ns64be as El,nu64 as Dl,nu64be as Wl,offset as si,s16 as ql,s16be as Ul,s24 as Gl,s24be as zl,s32 as ui,s32be as Xl,s40 as Yl,s40be as Ql,s48 as Zl,s48be as Hl,s8 as jl,seq as ci,struct as $l,Structure as li,u16 as mi,u16be as Jl,u24 as em,u24be as tm,u32 as di,u32be as nm,u40 as om,u40be as im,u48 as rm,u48be as am,u8 as pi,UInt as fi,union as sm,Union as um,unionLayoutDiscriminator as cm,utf8 as lm}from"@solana/buffer-layout";var yt=ai,On=li;var zt=fi;var Nn=pi,$=mi;var bt=di;var ce=ui;var Mn=ci;var M=ri;var Xt=ii,Fn=si;var Se=class extends yt{constructor(n,i,u){super(n,u);this.blob=M(n),this.signed=i}decode(n,i=0){let u=new vn(this.blob.decode(n,i),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(n,i,u=0){return typeof n=="number"&&(n=new vn(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,u)}},gt=class extends yt{constructor(n){super(8,n);this._lower=Xt(bt(),!1),this._upper=Xt(bt(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let u=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return L(L({},u),m)}encode(n,i,u=0){return this._lower.encode(n,i,u)+this._upper.encode(n,i,u+this._lower.span)}};function c(o){return new zt(1,o)}function Y(o){return new zt(4,o)}function e(o){return new Se(8,!1,o)}function O(o){return new Se(16,!1,o)}function _n(o){return new Se(1,!0,o)}function Me(o){return new Se(8,!0,o)}function En(o){return new Se(16,!0,o)}var $e=class extends yt{constructor(n,i,u,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=u}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,u){return this.layout.encode(this.encoder(n),i,u)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new $e(M(32),t=>new yi(t),t=>t.toBuffer(),o)}function ue(o){return new $e(Nn(),bi,gi,o)}function bi(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function gi(o){return o?1:0}function Dn(o,t){let n=bt("length"),i=l([n,d(o,Fn(n,-n.span),"values")]);return new $e(i,({values:u})=>u,u=>({values:u}),t)}var Yt=class extends On{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Yt(o,t,n)}function d(o,t,n){let i,u=typeof t=="number"?t:Vn(t)?t.toNumber():new Proxy(t,{get(m,p){if(!i){let f=Reflect.get(m,"count");i=Vn(f)?f.toNumber():f,Reflect.set(m,"count",i)}return Reflect.get(m,p)},set(m,p,f){return p==="count"&&(i=f),Reflect.set(m,p,f)}});return Mn(o,u,n)}var Pt=l([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as KP,SystemProgram as CP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as LP}from"@solana/spl-token";import WP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as pb,TOKEN_2022_PROGRAM_ID as fb,TOKEN_PROGRAM_ID as yb}from"@solana/spl-token";import{PublicKey as gb}from"@solana/web3.js";import Ab from"bn.js";import kb from"decimal.js";import{TOKEN_PROGRAM_ID as Sd}from"@solana/spl-token";import{PublicKey as Rd}from"@solana/web3.js";var Ai=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as Fy,TOKEN_2022_PROGRAM_ID as vy,TOKEN_PROGRAM_ID as Vy}from"@solana/spl-token";import{Keypair as Dy,PublicKey as Wy,SystemProgram as Uy,TransactionInstruction as Gy}from"@solana/web3.js";import Xy from"bn.js";import D from"bn.js";var Fe=new D(1).shln(64);var wi=new D(1).shln(128),Qt=new D(1).shln(64).subn(1),ki=new D(1).shln(128).subn(1);var ve=new D("4295048016"),Ve=new D("79226673521066979257578248091"),Ti=new D("59543866431248"),hi=new D("184467440737095516"),Ii=new D("15793534762490258745");var Zt=60,qd=new D("18446743708227953217"),Bi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var Je=3,qn=100;var Un=10,Gn=100,wt=14;var z=new D(0),_e=new D(1),Ud=new D(-1);var Gd=new D("18446744073700000000");var Si=l([M(8),c("bump"),$("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),$("tickSpacing"),Y("fundFeeRate"),d(Y(),1),r("fundOwner"),d(e(),3)]),xi=l([Y("blockTimestamp"),Me("tickCumulative"),d(e(),4)]),zn=l([M(8),ue("initialized"),e("recentEpoch"),$("observationIndex"),r("poolId"),d(xi,qn,"observations"),d(e(),4)]),Ki=l([$("filterPeriod"),$("decayPeriod"),$("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),ce("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),d(c(),46)]),Ci=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),O("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),O("growthGlobalX64")]),Ht=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),$("tickSpacing"),O("liquidity"),O("sqrtPriceX64"),ce("tickCurrent"),Y(),O("feeGrowthGlobalX64A"),O("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),d(O(),4),c("status"),c("feeOn"),M(6),d(Ci,Je,"rewardInfos"),M(8*16,"tickArrayBitmap"),d(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Ki.replicate("dynamicFeeInfo"),d(e(),46)]),Ri=l([O("growthInsideLastX64"),e("rewardAmountOwed")]),Li=l([M(8),c("bump"),r("nftMint"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(Ri,Je,"rewardInfos"),e("recentEpoch"),d(e(),7)]),Qd=l([M(8),c("bump"),r("poolId"),ce("tickLower"),ce("tickUpper"),O("liquidity"),O("feeGrowthInsideLastX64A"),O("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),d(O(),Je,"rewardGrowthInside"),e("recentEpoch"),d(e(),7)]),Oi=l([ce("tick"),En("liquidityNet"),O("liquidityGross"),O("feeGrowthOutsideX64A"),O("feeGrowthOutsideX64B"),d(O(),Je,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),O("unfilledRatioX64"),d(Y(),3)]),Xn=l([M(8),r("poolId"),ce("startTickIndex"),d(Oi,Zt,"ticks"),c("initializedTickCount"),e("