@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 92.9 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),Xo=new Rn(1e4),Yo={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 Rs,blob as Ho,Blob as Ls,cstr as Os,f32 as Ns,f32be as Ms,f64 as Fs,f64be as vs,greedy as Vs,Layout as jo,ns64 as _s,ns64be as Es,nu64 as $o,nu64be as Ds,offset as Jo,s16 as Ws,s16be as qs,s24 as Us,s24be as Gs,s32 as ei,s32be as zs,s40 as Xs,s40be as Ys,s48 as Qs,s48be as Zs,s8 as Hs,seq as ti,struct as js,Structure as ni,u16 as oi,u16be as $s,u24 as Js,u24be as eu,u32 as ii,u32be as tu,u40 as nu,u40be as ou,u48 as iu,u48be as ru,u8 as ri,UInt as ai,union as au,Union as su,unionLayoutDiscriminator as uu,utf8 as cu}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 De(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")]),ku=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")]),Tu={4:qt,5:li},mi=b([n("fee")]);import{PublicKey as hs}from"@solana/web3.js";import Ft from"decimal.js";import{TOKEN_PROGRAM_ID as Is}from"@solana/spl-token";import{ComputeBudgetProgram as Un,Keypair as zn,PublicKey as fi,Transaction as Xn,TransactionMessage as yi,VersionedTransaction as Yn}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 We(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 Xt(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 Xn;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 Xt(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 Yn(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 Yn&&(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 Xn&&(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 qR}from"@solana/spl-token";import{PublicKey as XR}from"@solana/web3.js";import Ps from"big.js";import Mt from"bn.js";import Ve from"bn.js";import oR 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 Yt({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,Uu=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gu=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zu=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xu=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Yu=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qu=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zu=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Hu=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ju=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$u=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ju=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),be=new Z("So11111111111111111111111111111111111111112"),Ke=Z.default;function Re(o){return Yt({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:Yt({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 iC}from"lodash";import am from"axios";import{PublicKey as Mi}from"@solana/web3.js";import{MINT_SIZE as Vc,TOKEN_PROGRAM_ID as _c,getTransferFeeConfig as Ec,unpackMint as Dc}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 Qc}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"),$c=new I("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Fi=new I("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),oo=new I("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),io=new I("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Jc=new I("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),vi=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ro=new I("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Vi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_i=new I("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new I("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),el=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"),tl=new I("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),zi=new I("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Xi=new I("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Yi=new I("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),nl=new I("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),ol=new I("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),il=new I("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),rl=new I("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),al=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 cl from"bn.js";import{PublicKey as an,AddressLookupTableAccount as Ge}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 Ge({key:u,state:Ge.deserialize(a.data)});r[u.toString()]=l,t==="devnet"?Ue[u.toString()]=l:qe[u.toString()]=l}return r}var qe={},un=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new an(e),i=await o.getAccountInfo(t);return i&&(qe[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),qe},Ue={},cn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new an(e),i=await o.getAccountInfo(t);return i&&(Ue[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),Ue};import{PublicKey as ze,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 ze(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!==ze.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 We(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 We(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=X=>{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=X.err?"error":"success"}k==null||k([...T]),X.err||S()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var X;if(L){clearInterval(N);return}try{let U=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});U&&(L=!0,clearInterval(N),se({err:((X=U.meta)==null?void 0:X.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,X=>{if(L){this.connection.removeSignatureListener(V);return}L=!0,se(X)},"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 ze(B));let p=await sn({connection:this.connection,address:g});for(let[B,R]of Object.entries(p))u[B]=R;let P=r?ze.default.toBase58():c!=null?c:await We(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 ze(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 We(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,X=null,U=null,ee=Y=>{X!==null&&clearInterval(X),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=Y.err?"error":"success"}h==null||h([...L]),Y.err||N()};this.loopMultiTxStatus&&(X=setInterval(async()=>{var Y;if(se){clearInterval(X);return}try{let ie=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ie&&(se=!0,clearInterval(X),ee({err:((Y=ie.meta)==null?void 0:Y.err)||null}),console.log("tx status from getTransaction:",V))}catch(ie){se=!0,clearInterval(X),console.error("getTransaction timeout:",ie,V)}},ht)),U=this.connection.onSignature(V,Y=>{if(se){this.connection.removeSignatureListener(U);return}se=!0,ee(Y)},"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 ze(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 We(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(X,U)=>{B[U].length&&X.sign(B[U]),N&&(X.message.recentBlockhash=N)}),xe(h),(se=this.owner)!=null&&se.isKeyPair){if(S){let X=0,U=[];for(let ee of h){if(++X,X<=L){console.log("skip tx: ",X),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(ee,{skipPreflight:V});await gt(this.connection,Y),U.push(Y)}return{txIds:U,signedTxs:h}}return{txIds:await Promise.all(h.map(async X=>await this.connection.sendTransaction(X,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let X=await this.signAllTransactions(h.slice(L,h.length)),U=[...h.slice(0,L),...X];if(S){let ee=0,Y=[],ie=async()=>{if(!U[ee])return;if(ee<L){Y.push({txId:"",status:"success",signedTx:U[ee]}),x==null||x([...Y]),ee++,ie();return}let Ae=await this.connection.sendTransaction(U[ee],{skipPreflight:V});Y.push({txId:Ae,status:"sent",signedTx:U[ee]}),x==null||x([...Y]),ee++;let je=!1,Ee=null,mt=null,Sn=Be=>{Ee!==null&&clearInterval(Ee),mt!==null&&this.connection.removeSignatureListener(mt);let we=Y.findIndex(Wo=>Wo.txId===Ae);if(we>-1){if(Y[we].status==="error"||Y[we].status==="success")return;Y[we].status=Be.err?"error":"success"}x==null||x([...Y]),Be.err||ie()};this.loopMultiTxStatus&&(Ee=setInterval(async()=>{var Be;if(je){clearInterval(Ee);return}try{let we=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});we&&(je=!0,clearInterval(Ee),Sn({err:((Be=we.meta)==null?void 0:Be.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(we){je=!0,clearInterval(Ee),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 Y=0;Y<U.length;Y+=1){let ie=await this.connection.sendTransaction(U[Y],{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 Cm=D("Raydium_Api");import{PublicKey as Kd,SystemProgram as Cd}from"@solana/web3.js";import{AccountLayout as Md,createAssociatedTokenAccountIdempotentInstruction as Fd,TOKEN_PROGRAM_ID as vd,TOKEN_2022_PROGRAM_ID as Vd}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 rd,SystemProgram as sd}from"@solana/web3.js";import ld from"bn.js";import{createCloseAccountInstruction as fd,createInitializeAccountInstruction as yd,createTransferInstruction as bd,TOKEN_PROGRAM_ID as gd}from"@solana/spl-token";import{Keypair as Xm,PublicKey as Ym}from"@solana/web3.js";import Hm from"bn.js";import{TOKEN_PROGRAM_ID as Jm}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 Yy,TransactionInstruction as Qy}from"@solana/web3.js";import Hy from"bn.js";import W from"bn.js";var Xe=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 Ye=new W("4295048016"),Qe=new W("79226673521066979257578248091"),ir=new W("59543866431248"),rr=new W("184467440737095516"),ar=new W("15793534762490258745");var pn=60,Zd=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),Ne=new W(1),Hd=new W(-1);var jd=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"),De("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"