@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 92.8 kB
JavaScript
var qo=Object.defineProperty,Uo=Object.defineProperties;var Go=Object.getOwnPropertyDescriptors;var dt=Object.getOwnPropertySymbols;var Kn=Object.prototype.hasOwnProperty,Cn=Object.prototype.propertyIsEnumerable;var xn=(o,e,t)=>e in o?qo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,O=(o,e)=>{for(var t in e||(e={}))Kn.call(e,t)&&xn(o,t,e[t]);if(dt)for(var t of dt(e))Cn.call(e,t)&&xn(o,t,e[t]);return o},E=(o,e)=>Uo(o,Go(e));var le=(o,e)=>{var t={};for(var i in o)Kn.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&dt)for(var i of dt(o))e.indexOf(i)<0&&Cn.call(o,i)&&(t[i]=o[i]);return t};import Rn from"bn.js";var zo=new Rn(25),Yo=new Rn(1e4),Xo={4:3,5:3},Qo=new Set(["5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1","3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv","GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"]);import{PublicKey as si}from"@solana/web3.js";import vn,{isBN as Vn}from"bn.js";import{bits as Zo,BitStructure as Ls,blob as Ho,Blob as Os,cstr as Ns,f32 as Ms,f32be as Fs,f64 as vs,f64be as Vs,greedy as _s,Layout as jo,ns64 as Es,ns64be as Ds,nu64 as $o,nu64be as Ws,offset as Jo,s16 as qs,s16be as Us,s24 as Gs,s24be as zs,s32 as ei,s32be as Ys,s40 as Xs,s40be as Qs,s48 as Zs,s48be as Hs,s8 as js,seq as ti,struct as $s,Structure as ni,u16 as oi,u16be as Js,u24 as eu,u24be as tu,u32 as ii,u32be as nu,u40 as ou,u40be as iu,u48 as ru,u48be as au,u8 as ri,UInt as ai,union as su,Union as uu,unionLayoutDiscriminator as cu,utf8 as lu}from"@solana/buffer-layout";var pt=jo,Ln=ni;var vt=ai;var On=ri,J=oi;var ft=ii;var Nn=$o;var me=ei;var Mn=ti;var F=Ho;var Vt=Zo,Fn=Jo;var Se=class extends pt{constructor(t,i,r){super(t,r);this.blob=F(t),this.signed=i}decode(t,i=0){let r=new vn(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new vn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},yt=class extends pt{constructor(t){super(8,t);this._lower=Vt(ft(),!1),this._upper=Vt(ft(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let r=this._lower.decode(t,i),c=this._upper.decode(t,i+this._lower.span);return O(O({},r),c)}encode(t,i,r=0){return this._lower.encode(t,i,r)+this._upper.encode(t,i,r+this._lower.span)}};function y(o){return new vt(1,o)}function Q(o){return new vt(4,o)}function n(o){return new Se(8,!1,o)}function M(o){return new Se(16,!1,o)}function _n(o){return new Se(1,!0,o)}function We(o){return new Se(8,!0,o)}function En(o){return new Se(16,!0,o)}var $e=class extends pt{constructor(t,i,r,c){super(t.span,c);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function s(o){return new $e(F(32),e=>new si(e),e=>e.toBuffer(),o)}function ce(o){return new $e(On(),ui,ci,o)}function ui(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ci(o){return o?1:0}function Dn(o,e){let t=ft("length"),i=b([t,A(o,Fn(t,-t.span),"values")]);return new $e(i,({values:r})=>r,r=>({values:r}),e)}var _t=class extends Ln{decode(e,t){return super.decode(e,t)}};function b(o,e,t){return new _t(o,e,t)}function A(o,e,t){let i,r=typeof e=="number"?e:Vn(e)?e.toNumber():new Proxy(e,{get(c,a){if(!i){let u=Reflect.get(c,"count");i=Vn(u)?u.toNumber():u,Reflect.set(c,"count",i)}return Reflect.get(c,a)},set(c,a,u){return a==="count"&&(i=u),Reflect.set(c,a,u)}});return Mn(o,r,t)}var Et=b([y("instruction"),n("amountIn"),n("minAmountOut")]),Dt=b([y("instruction"),n("maxAmountIn"),n("amountOut")]),Tu=b([y("instruction"),y("nonce")]),Wt=b([y("instruction"),y("nonce"),n("startTime")]),qt=b([n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalValue"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),M("swapBaseInAmount"),M("swapQuoteOutAmount"),n("swapBase2QuoteFee"),M("swapQuoteInAmount"),M("swapBaseOutAmount"),n("swapQuote2BaseFee"),s("baseVault"),s("quoteVault"),s("baseMint"),s("quoteMint"),s("lpMint"),s("openOrders"),s("marketId"),s("marketProgramId"),s("targetOrders"),s("withdrawQueue"),s("lpVault"),s("owner"),n("lpReserve"),A(n(),3,"padding")]),li=b([n("accountType"),n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalsValue"),n("abortTradeFactor"),n("priceTickMultiplier"),n("priceTick"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),M("swapBaseInAmount"),M("swapQuoteOutAmount"),M("swapQuoteInAmount"),M("swapBaseOutAmount"),n("swapQuote2BaseFee"),n("swapBase2QuoteFee"),s("baseVault"),s("quoteVault"),s("baseMint"),s("quoteMint"),s("lpMint"),s("modelDataAccount"),s("openOrders"),s("marketId"),s("marketProgramId"),s("targetOrders"),s("owner"),A(n(),64,"padding")]),Ut=b([y("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Gt=b([y("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]),hu={4:qt,5:li},mi=b([n("fee")]);import{PublicKey as Is}from"@solana/web3.js";import Ft from"decimal.js";import{TOKEN_PROGRAM_ID as Bs}from"@solana/spl-token";import{ComputeBudgetProgram as Un,Keypair as zn,PublicKey as fi,Transaction as Yn,TransactionMessage as yi,VersionedTransaction as Xn}from"@solana/web3.js";import{get as Wn,set as di}from"lodash";var zt=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(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},qn={},pi={};function D(o){let e=Wn(qn,o);if(!e){let t=Wn(pi,o);e=new zt({name:o,logLevel:t}),di(qn,o,e)}return e}var H={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as bi}from"@solana/spl-token";var Gn=D("Raydium_txUtil"),Qn=1644;function bt(o){let e=[],t=[];return o.microLamports&&(e.push(Un.setComputeUnitPrice({microLamports:o.microLamports})),t.push(H.SetComputeUnitPrice)),o.units&&(e.push(Un.setComputeUnitLimit({units:o.units})),t.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function qe(o,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:r.blockhash}async function gt(o,e){return o.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);o.onSignature(e,c=>{if(clearTimeout(r),!c.err){t("");return}i(Object.assign(c.err,{txId:e}))},"confirmed")})}function Yt(o,e){o.length<1&&Gn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&Gn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Yn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Qn}catch{return!1}}function ae(o,e){let[t,i]=fi.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function Je({instructions:o,payer:e,signers:t}){return Yt(o,[e,...t])}function et({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=zn.generate().publicKey.toString()}){let c=new yi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Xn(c).serialize()).toString("base64").length<Qn}catch{return!1}}var gi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),Pi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof Xn&&(e=gi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function xe(o){let e=[];return o.forEach(t=>{t instanceof Yn&&(t.recentBlockhash||(t.recentBlockhash=bi.toBase58()),t.feePayer||(t.feePayer=zn.generate().publicKey)),e.push(Pi(t))}),console.log("simulate tx string:",e),e}import{TOKEN_PROGRAM_ID as ER}from"@solana/spl-token";import{PublicKey as UR}from"@solana/web3.js";import As from"big.js";import Mt from"bn.js";import _e from"bn.js";import eR from"decimal.js";import{PublicKey as Ai}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zn}from"@solana/spl-token";var Pt={chainId:101,address:Ai.default.toBase58(),programId:Zn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Zn.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 Ht}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as Hn,SYSVAR_RENT_PUBKEY as wi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ki}from"@solana/spl-token";function f({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var Ti=[f({pubkey:ki,isWritable:!1}),f({pubkey:Hn.programId,isWritable:!1}),f({pubkey:wi,isWritable:!1})];function Xt({publicKey:o,transformSol:e}){let t=Qt(o.toString());if(t instanceof Z)return e&&t.equals(Ke)?be:t;if(e&&t.toString()===Ke.toBase58())return be;if(typeof t=="string"){if(t===Z.default.toBase58())return Z.default;try{return new Z(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Qt(o){try{return new Z(o)}catch{return o}}var Zt=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ce=new Z("SysvarRent111111111111111111111111111111111"),hi=new Z("SysvarC1ock11111111111111111111111111111111"),At=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ii=new Z("Sysvar1nstructions1111111111111111111111111"),jn=Hn.programId,Gu=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zu=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Yu=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xu=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Qu=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Zu=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Hu=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ju=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),$u=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ju=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ec=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new Z("So11111111111111111111111111111111111111112"),Ke=Z.default;function Re(o){return Xt({publicKey:o,transformSol:!0})}var jt=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:c=!1,isToken2022:a=!1}){if(e===Ke.toBase58()||e instanceof Ht&&Ke.equals(e)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new Ht(ye.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=c?Ht.default:Xt({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=jt;te.WSOL=new jt(E(O({},ye),{mint:ye.address}));var $t=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},wt=$t;wt.SOL=new $t(Pt);import Tt from"big.js";import Ki from"bn.js";import Ci from"decimal.js-light";import tt from"bn.js";var $n=9007199254740991;function G(o){let e=D("Raydium_parseBigNumberish");if(o instanceof tt)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new tt(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=$n||o<=-$n)&&e.logWithError(`BigNumberish number overflow: ${o}`),new tt(String(o))):typeof o=="bigint"?new tt(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new tt(0))}import Bi from"toformat";var Si=Bi,nt=Si;var kt=D("module/fraction"),Jt=nt(Tt),ot=nt(Ci),Ri={[0]:ot.ROUND_DOWN,[1]:ot.ROUND_HALF_UP,[2]:ot.ROUND_UP},Li={[0]:Tt.roundDown,[1]:Tt.roundHalfUp,[2]:Tt.roundUp},q=class{constructor(e,t=new Ki(1)){this.numerator=G(e),this.denominator=G(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new q(this.denominator,this.numerator)}add(e){let t=e instanceof q?e:new q(G(e));return this.denominator.eq(t.denominator)?new q(this.numerator.add(t.numerator),this.denominator):new q(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof q?e:new q(G(e));return this.denominator.eq(t.denominator)?new q(this.numerator.sub(t.numerator),this.denominator):new q(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof q?e:new q(G(e));return new q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof q?e:new q(G(e));return new q(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||kt.logWithError(`${e} is not an integer.`),e<=0&&kt.logWithError(`${e} is not positive.`),ot.set({precision:e+1,rounding:Ri[i]});let r=new ot(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||kt.logWithError(`${e} is not an integer.`),e<0&&kt.logWithError(`${e} is negative.`),Jt.DP=e,Jt.RM=Li[i]||1,new Jt(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import Oi from"bn.js";var Jn=new q(new Oi(100)),ke=class extends q{toSignificant(e=5,t,i){return this.mul(Jn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Jn).toFixed(e,t,i)}};var Ni=D("Raydium_price"),de=class extends q{constructor(t){let{baseToken:i,quoteToken:r,numerator:c,denominator:a}=t;super(c,a);this.baseToken=i,this.quoteToken=r,this.scalar=new q(en(i.decimals),en(r.decimals))}get raw(){return new q(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new de({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&Ni.logWithError("mul token not equals");let i=super.mul(t);return new de({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,r){return this.adjusted.toSignificant(t,i,r)}toFixed(t=this.quoteToken.decimals,i,r){return this.adjusted.toFixed(t,i,r)}};import{merge as tC}from"lodash";import sm from"axios";import{PublicKey as Mi}from"@solana/web3.js";import{MINT_SIZE as _c,TOKEN_PROGRAM_ID as Ec,getTransferFeeConfig as Dc,unpackMint as Wc}from"@solana/spl-token";var tn=D("Raydium_accountInfo_util");async function Te(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:c=100}=O({batchRequest:!1},t),a=nn(e,c),u=new Array(a.length).fill([]);if(i){let l=a.map(P=>{let k=o._buildArgs([P.map(w=>w.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:k}}),g=nn(l,10);u=(await(await Promise.all(g.map(async P=>await o._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(k=>{if(k){let{data:w,executable:C,lamports:h,owner:B,rentEpoch:R}=k;return w.length!==2&&w[1]!=="base64"&&tn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:C,lamports:h,owner:new Mi(B),rentEpoch:R}}return null})))}else try{u=await Promise.all(a.map(l=>o.getMultipleAccountsInfo(l,r)))}catch(l){l instanceof Error&&tn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.message}`)}return u.flat()}function nn(o,e=1,t=[]){let i=[...o];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}import{PublicKey as Xc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zc}from"@solana/spl-token";import{PublicKey as I}from"@solana/web3.js";var eo=new I("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),to=new I("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),no=new I("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),on=new I("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Jc=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),oo=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),io=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),el=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),vi=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ro=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Vi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_i=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),tl=new I("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ei=new I("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Di=new I("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Wi=new I("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),qi=new I("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ui=new I("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),rn=new I("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Gi=new I("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),nl=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),zi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Yi=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Xi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ol=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),il=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),rl=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),al=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),sl=new I("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),it={IDO_PROGRAM_ID_V1:Di,IDO_PROGRAM_ID_V2:Wi,IDO_PROGRAM_ID_V3:qi,IDO_PROGRAM_ID_V4:Ui};var he={OPEN_BOOK_PROGRAM:new I("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new I("Ray1111111111111111111111111111111111111111"),AMM_V4:new I("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new I("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new I("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new I("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new I("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new I("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new I("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new I("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new I("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:I.default,Router:new I("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new I("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new I("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new I("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new I("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new I("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new I("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new I("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new I("Ray1111111111111111111111111111111111111111")};import ll from"bn.js";import{PublicKey as an,AddressLookupTableAccount as ze}from"@solana/web3.js";async function sn({connection:o,address:e,cluster:t="mainnet"}){let i=await Te(o,[...new Set(e.map(c=>c.toString()))].map(c=>new an(c))),r={};for(let c=0;c<e.length;c++){let a=i[c],u=e[c];if(!a)continue;let l=new ze({key:u,state:ze.deserialize(a.data)});r[u.toString()]=l,t==="devnet"?Ge[u.toString()]=l:Ue[u.toString()]=l}return r}var Ue={},un=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ue[e])return Ue;let t=new an(e),i=await o.getAccountInfo(t);return i&&(Ue[e]=new ze({key:t,state:ze.deserialize(i.data)})),Ue},Ge={},cn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ge[e])return Ge;let t=new an(e),i=await o.getAccountInfo(t);return i&&(Ge[e]=new ze({key:t,state:ze.deserialize(i.data)})),Ge};import{PublicKey as Ye,sendAndConfirmTransaction as ln,SystemProgram as Qi,Transaction as rt,TransactionMessage as at,VersionedTransaction as st}from"@solana/web3.js";import Zi from"axios";var ht=2e3,It=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 i;let e=(await Zi.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=bt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Qi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Ye(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(H.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:c=[],lookupTableAddress:a=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...c),this.lookupTableAddress.push(...a.filter(u=>u!==Ye.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:i}){return e===0?await this.buildV0(E(O({},t||{}),{lookupTableAddress:i})):this.build(t)}build(e){var i;let t=new rt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.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 p;let{recentBlockHash:c,skipPreflight:a=!0,sendAndConfirm:u,notSendToRpc:l}=r||{},g=c!=null?c:await qe(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),xe([t]),(p=this.owner)!=null&&p.isKeyPair)return{txId:u?await ln(this.connection,t,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:a}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:a}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let k of P)try{k.sign(...this.signers)}catch{}return{txId:l?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:a}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var g;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),c=t.filter(p=>p.transaction.instructions.length>0),a=[r,...c.map(p=>p.transaction)],u=[this.signers,...c.map(p=>p.signers)],l=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:a,signers:u,instructionTypes:l,execute:async p=>{var R;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:C,skipPreflight:h=!0}=p||{},B=C!=null?C:await qe(this.connection,this.blockhashCommitment);if((R=this.owner)!=null&&R.isKeyPair){if(P){let K=[],v=0;for(let _ of a){if(++v,v<=w)continue;let T=await ln(this.connection,_,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});K.push(T)}return{txIds:K,signedTxs:a}}return{txIds:await await Promise.all(a.map(async K=>(K.recentBlockhash=B,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:h})))),signedTxs:a}}if(this.signAllTransactions){let K=a.map((_,T)=>(_.recentBlockhash=B,u[T].length&&_.sign(...u[T]),_));xe(K);let v=await this.signAllTransactions(K);if(P){let _=0,T=[],S=async()=>{if(!v[_])return;let x=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:h});T.push({txId:x,status:"sent",signedTx:v[_]}),k==null||k([...T]),_++;let L=!1,N=null,V=null,se=Y=>{N!==null&&clearInterval(N),V!==null&&this.connection.removeSignatureListener(V);let U=T.findIndex(ee=>ee.txId===x);if(U>-1){if(T[U].status==="error"||T[U].status==="success")return;T[U].status=Y.err?"error":"success"}k==null||k([...T]),Y.err||S()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var Y;if(L){clearInterval(N);return}try{let U=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(L=!0,clearInterval(N),se({err:((Y=U.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",x))}catch(U){L=!0,clearInterval(N),console.error("getTransaction timeout:",U,x)}},ht)),V=this.connection.onSignature(x,Y=>{if(L){this.connection.removeSignatureListener(V);return}L=!0,se(Y)},"confirmed"),this.connection.getSignatureStatus(x)};return await S(),{txIds:T.map(x=>x.txId),signedTxs:v}}else{let _=[];for(let T=0;T<v.length;T+=1){let S=await this.connection.sendRawTransaction(v[T].serialize(),{skipPreflight:h});_.push(S)}return{txIds:_,signedTxs:v}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var h;let C=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:c}=C,a=le(C,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=O(O({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),t),l=Array.from(new Set([...i,...this.lookupTableAddress])),g=[];for(let B of l)u[B]===void 0&&g.push(new Ye(B));let p=await sn({connection:this.connection,address:g});for(let[B,R]of Object.entries(p))u[B]=R;let P=r?Ye.default.toBase58():c!=null?c:await qe(this.connection,this.blockhashCommitment),k=new at({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new st(k);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var _;let{skipPreflight:R=!0,sendAndConfirm:K,notSendToRpc:v}=B||{};if(xe([w]),(_=this.owner)!=null&&_.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:R});return K&&await gt(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let S of T)try{S.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(T[0],{skipPreflight:R}),signedTx:T[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async buildV0MultiTx(e){var g;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),c=t.filter(p=>p.builder.instructions.length>0),a=[r,...c.map(p=>p.transaction)],u=[this.signers,...c.map(p=>p.signers)],l=[...this.instructionTypes,...c.map(p=>p.instructionTypes).flat()];return(g=this.owner)!=null&&g.signer&&u.forEach(p=>{p.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),a.forEach(async(p,P)=>{p.sign(u[P])}),{builder:this,transactions:a,signers:u,instructionTypes:l,buildProps:i,execute:async p=>{var h;let{sequentially:P,onTxUpdate:k,recentBlockHash:w,skipPreflight:C=!0}=p||{};if(w&&a.forEach(B=>B.message.recentBlockhash=w),xe(a),(h=this.owner)!=null&&h.isKeyPair){if(P){let B=[];for(let R of a){let K=await this.connection.sendTransaction(R,{skipPreflight:C});await gt(this.connection,K),B.push(K)}return{txIds:B,signedTxs:a}}return{txIds:await Promise.all(a.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:C}))),signedTxs:a}}if(this.signAllTransactions){let B=await this.signAllTransactions(a);if(P){let R=0,K=[],v=async()=>{if(!B[R])return;let _=await this.connection.sendTransaction(B[R],{skipPreflight:C});K.push({txId:_,status:"sent",signedTx:B[R]}),k==null||k([...K]),R++;let T=!1,S=null,x=null,L=N=>{S!==null&&clearInterval(S),x!==null&&this.connection.removeSignatureListener(x);let V=K.findIndex(se=>se.txId===_);if(V>-1){if(K[V].status==="error"||K[V].status==="success")return;K[V].status=N.err?"error":"success"}k==null||k([...K]),N.err||v()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var N;if(T){clearInterval(S);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(S),L({err:((N=V.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){T=!0,clearInterval(S),console.error("getTransaction timeout:",V,_)}},ht)),x=this.connection.onSignature(_,N=>{if(T){this.connection.removeSignatureListener(x);return}T=!0,L(N)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:B}}else{let R=[];for(let K=0;K<B.length;K+=1){let v=await this.connection.sendTransaction(B[K],{skipPreflight:C});R.push(v)}return{txIds:R,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var k;let P=e||{},{splitIns:t=[],computeBudgetConfig:i}=P,r=le(P,["splitIns","computeBudgetConfig"]),c=i?bt(i):{instructions:[],instructionTypes:[]},a=this.signers.reduce((w,C)=>E(O({},w),{[C.publicKey.toBase58()]:C}),{}),u=[],l=[],g=[],p=0;if(this.allInstructions.forEach(w=>{let C=[...g,w],h=i?[...c.instructions,...C]:C,R=[...new Set(C.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(K=>new Ye(K));if(w!==t[p]&&g.length<12&&(Je({instructions:h,payer:this.feePayer,signers:R})||Je({instructions:C,payer:this.feePayer,signers:R})))g.push(w);else{if(g.length===0)throw Error("item ins too big");p+=w===t[p]?1:0,Je({instructions:i?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:R})?u.push(new rt().add(...c.instructions,...g)):u.push(new rt().add(...g)),l.push(Array.from(new Set(g.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(K=>a[K]).filter(K=>K!==void 0)),g=[w]}}),g.length>0){let C=[...new Set(g.map(h=>h.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(h=>a[h]).filter(h=>h!==void 0);Je({instructions:i?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:C.map(h=>h.publicKey)})?u.push(new rt().add(...c.instructions,...g)):u.push(new rt().add(...g)),l.push(C)}return u.forEach(w=>w.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&l.forEach(w=>{w.some(C=>C.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:u,signers:l,instructionTypes:this.instructionTypes,execute:async w=>{var _;let{sequentially:C,onTxUpdate:h,skipTxCount:B=0,recentBlockHash:R,skipPreflight:K=!0}=w||{},v=R!=null?R:await qe(this.connection,this.blockhashCommitment);if(u.forEach(async(T,S)=>{T.recentBlockhash=v,l[S].length&&T.sign(...l[S])}),xe(u),(_=this.owner)!=null&&_.isKeyPair){if(C){let T=0,S=[];for(let x of u){if(++T,T<=B){S.push("tx skipped");continue}let L=await ln(this.connection,x,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});S.push(L)}return{txIds:S,signedTxs:u}}return{txIds:await Promise.all(u.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:K}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u.slice(B,u.length)),S=[...u.slice(0,B),...T];if(C){let x=0,L=[],N=async()=>{if(!S[x])return;x<B&&(L.push({txId:"",status:"success",signedTx:S[x]}),h==null||h([...L]),x++,N());let V=await this.connection.sendRawTransaction(S[x].serialize(),{skipPreflight:K});L.push({txId:V,status:"sent",signedTx:S[x]}),h==null||h([...L]),x++;let se=!1,Y=null,U=null,ee=X=>{Y!==null&&clearInterval(Y),U!==null&&this.connection.removeSignatureListener(U);let ie=L.findIndex(Ae=>Ae.txId===V);if(ie>-1){if(L[ie].status==="error"||L[ie].status==="success")return;L[ie].status=X.err?"error":"success"}h==null||h([...L]),X.err||N()};this.loopMultiTxStatus&&(Y=setInterval(async()=>{var X;if(se){clearInterval(Y);return}try{let ie=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ie&&(se=!0,clearInterval(Y),ee({err:((X=ie.meta)==null?void 0:X.err)||null}),console.log("tx status from getTransaction:",V))}catch(ie){se=!0,clearInterval(Y),console.error("getTransaction timeout:",ie,V)}},ht)),U=this.connection.onSignature(V,X=>{if(se){this.connection.removeSignatureListener(U);return}se=!0,ee(X)},"confirmed"),this.connection.getSignatureStatus(V)};return await N(),{txIds:L.map(V=>V.txId),signedTxs:S}}else{let x=[];for(let L=0;L<S.length;L+=1){let N=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:K});x.push(N)}return{txIds:x,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var _;let v=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:c=[],insCountLimit:a=12}=v,u=le(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),l=O(O({},this.cluster==="devnet"?await cn(this.connection):await un(this.connection)),r),g=Array.from(new Set([...this.lookupTableAddress,...c])),p=[];for(let T of g)l[T]===void 0&&p.push(new Ye(T));let P=await sn({connection:this.connection,address:p});for(let[T,S]of Object.entries(P))l[T]=S;let k=t?bt(t):{instructions:[],instructionTypes:[]},w=await qe(this.connection,this.blockhashCommitment),C=this.signers.reduce((T,S)=>E(O({},T),{[S.publicKey.toBase58()]:S}),{}),h=[],B=[],R=[],K=0;if(this.allInstructions.forEach(T=>{let S=[...R,T],x=t?[...k.instructions,...S]:S;if(T!==i[K]&&R.length<a&&(et({instructions:x,payer:this.feePayer,lookupTableAddressAccount:l})||et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:l})))R.push(T);else{if(R.length===0)throw Error("item ins too big");K+=T===i[K]?1:0;let L={};for(let N of[...new Set(g)])l[N]!==void 0&&(L[N]=l[N]);if(t&&et({instructions:[...k.instructions,...R],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let N=new at({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...R]}).compileToV0Message(Object.values(l));h.push(new st(N))}else{let N=new at({payerKey:this.feePayer,recentBlockhash:w,instructions:[...R]}).compileToV0Message(Object.values(l));h.push(new st(N))}B.push(Array.from(new Set(R.map(N=>N.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(N=>C[N]).filter(N=>N!==void 0)),R=[T]}}),R.length>0){let S=[...new Set(R.map(x=>x.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(x=>C[x]).filter(x=>x!==void 0);if(t&&et({instructions:[...k.instructions,...R],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let x=new at({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...R]}).compileToV0Message(Object.values(l));h.push(new st(x))}else{let x=new at({payerKey:this.feePayer,recentBlockhash:w,instructions:[...R]}).compileToV0Message(Object.values(l));h.push(new st(x))}B.push(S)}return(_=this.owner)!=null&&_.signer&&B.forEach(T=>{T.some(S=>S.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),h.forEach((T,S)=>{T.sign(B[S])}),{builder:this,transactions:h,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async T=>{var se;let{sequentially:S,onTxUpdate:x,skipTxCount:L=0,recentBlockHash:N,skipPreflight:V=!0}=T||{};if(h.map(async(Y,U)=>{B[U].length&&Y.sign(B[U]),N&&(Y.message.recentBlockhash=N)}),xe(h),(se=this.owner)!=null&&se.isKeyPair){if(S){let Y=0,U=[];for(let ee of h){if(++Y,Y<=L){console.log("skip tx: ",Y),U.push("tx skipped");continue}let X=await this.connection.sendTransaction(ee,{skipPreflight:V});await gt(this.connection,X),U.push(X)}return{txIds:U,signedTxs:h}}return{txIds:await Promise.all(h.map(async Y=>await this.connection.sendTransaction(Y,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let Y=await this.signAllTransactions(h.slice(L,h.length)),U=[...h.slice(0,L),...Y];if(S){let ee=0,X=[],ie=async()=>{if(!U[ee])return;if(ee<L){X.push({txId:"",status:"success",signedTx:U[ee]}),x==null||x([...X]),ee++,ie();return}let Ae=await this.connection.sendTransaction(U[ee],{skipPreflight:V});X.push({txId:Ae,status:"sent",signedTx:U[ee]}),x==null||x([...X]),ee++;let je=!1,De=null,mt=null,Sn=Be=>{De!==null&&clearInterval(De),mt!==null&&this.connection.removeSignatureListener(mt);let we=X.findIndex(Wo=>Wo.txId===Ae);if(we>-1){if(X[we].status==="error"||X[we].status==="success")return;X[we].status=Be.err?"error":"success"}x==null||x([...X]),Be.err||ie()};this.loopMultiTxStatus&&(De=setInterval(async()=>{var Be;if(je){clearInterval(De);return}try{let we=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(je=!0,clearInterval(De),Sn({err:((Be=we.meta)==null?void 0:Be.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(we){je=!0,clearInterval(De),console.error("getTransaction timeout:",we,Ae)}},ht)),mt=this.connection.onSignature(Ae,Be=>{if(je){this.connection.removeSignatureListener(mt);return}je=!0,Sn(Be)},"confirmed"),this.connection.getSignatureStatus(Ae)};return ie(),{txIds:[],signedTxs:U}}else{let ee=[];for(let X=0;X<U.length;X+=1){let ie=await this.connection.sendTransaction(U[X],{skipPreflight:V});ee.push(ie)}return{txIds:ee,signedTxs:U}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};import{PublicKey as Hi}from"@solana/web3.js";import ji from"bn.js";function $i(o){return typeof o=="object"&&o!==null&&![te,ue,Hi,q,ji,de,ke].some(e=>typeof e=="object"&&o instanceof e)}function pe(o){return typeof o=="string"?Qt(o):Array.isArray(o)?o.map(e=>pe(e)):$i(o)?Object.fromEntries(Object.entries(o).map(([e,t])=>[e,pe(t)])):o}import Ji from"bn.js";var Bt=new Ji(1e6);var ao={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"},er=E(O({},ao),{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 Rm=D("Raydium_Api");import{PublicKey as Cd,SystemProgram as Rd}from"@solana/web3.js";import{AccountLayout as Fd,createAssociatedTokenAccountIdempotentInstruction as vd,TOKEN_PROGRAM_ID as Vd,TOKEN_2022_PROGRAM_ID as _d}from"@solana/spl-token";var mn=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),re=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new It({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(mn(e))}logInfo(...e){this.logger.info(mn(e))}logAndCreateError(...e){let t=mn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as ad,SystemProgram as ud}from"@solana/web3.js";import md from"bn.js";import{createCloseAccountInstruction as yd,createInitializeAccountInstruction as bd,createTransferInstruction as gd,TOKEN_PROGRAM_ID as Pd}from"@solana/spl-token";import{Keypair as Xm,PublicKey as Qm}from"@solana/web3.js";import jm from"bn.js";import{TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";var St=b([s("mint"),s("owner"),n("amount"),Q("delegateOption"),s("delegate"),y("state"),Q("isNativeOption"),n("isNative"),n("delegatedAmount"),Q("closeAuthorityOption"),s("closeAuthority")]);import{PublicKey as OP,SystemProgram as NP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as FP}from"@solana/spl-token";import zP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as gb,TOKEN_2022_PROGRAM_ID as Pb,TOKEN_PROGRAM_ID as Ab}from"@solana/spl-token";import{PublicKey as kb}from"@solana/web3.js";import hb from"bn.js";import Bb from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ey,TOKEN_2022_PROGRAM_ID as Dy,TOKEN_PROGRAM_ID as Wy}from"@solana/spl-token";import{Keypair as Gy,PublicKey as zy,SystemProgram as Xy,TransactionInstruction as Qy}from"@solana/web3.js";import Hy from"bn.js";import W from"bn.js";var Ne=new W(1).shln(64);var nr=new W(1).shln(128),dn=new W(1).shln(64).subn(1),or=new W(1).shln(128).subn(1);var Xe=new W("4295048016"),Qe=new W("79226673521066979257578248091"),ir=new W("59543866431248"),rr=new W("184467440737095516"),ar=new W("15793534762490258745");var pn=60,Hd=new W("18446743708227953217"),sr=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}];var ut=3,uo=100;var co=10,lo=100,Kt=14;var j=new W(0),Me=new W(1),jd=new W(-1);var $d=new W("18446744073700000000");var ur=b([F(8),y("bump"),J("index"),s("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),J("tickSpacing"),Q("fundFeeRate"),A(Q(),1),s("fundOwner"),A(n(),3)]),cr=b([Q("blockTimestamp"),We("tickCumulative"),A(n(),4)]),mo=b([F(8),ce("initialized"),n("recentEpoch"),J("observationIndex"),s("poolId"),A(cr,uo,"observations"),A(n(),4)]),lr=b([J("filterPeriod"),J("decayPeriod"),J("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),n("lastUpdateTimestamp"),A(y(),46)]),mr=b([y("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),M("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),s("mint"),s("vault"),s("creator"),M("growthGlobalX64")]),fn=b([F(8),y("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"