UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 92.1 kB
var Eo=Object.defineProperty,Do=Object.defineProperties;var Wo=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var xn=Object.prototype.hasOwnProperty,Kn=Object.prototype.propertyIsEnumerable;var Sn=(o,e,t)=>e in o?Eo(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,O=(o,e)=>{for(var t in e||(e={}))xn.call(e,t)&&Sn(o,t,e[t]);if(mt)for(var t of mt(e))Kn.call(e,t)&&Sn(o,t,e[t]);return o},E=(o,e)=>Do(o,Wo(e));var le=(o,e)=>{var t={};for(var i in o)xn.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&mt)for(var i of mt(o))e.indexOf(i)<0&&Kn.call(o,i)&&(t[i]=o[i]);return t};import Cn from"bn.js";var qo=new Cn(25),Uo=new Cn(1e4),Go={4:3,5:3},zo=new Set(["5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1","3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv","GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"]);import{PublicKey as oi}from"@solana/web3.js";import Mn,{isBN as Fn}from"bn.js";import{bits as Xo,BitStructure as As,blob as Yo,Blob as ws,cstr as ks,f32 as Ts,f32be as hs,f64 as Is,f64be as Bs,greedy as Ss,Layout as Qo,ns64 as xs,ns64be as Ks,nu64 as Cs,nu64be as Rs,offset as Zo,s16 as Ls,s16be as Os,s24 as Ns,s24be as Ms,s32 as Ho,s32be as Fs,s40 as vs,s40be as Vs,s48 as _s,s48be as Es,s8 as Ds,seq as jo,struct as Ws,Structure as $o,u16 as Jo,u16be as qs,u24 as Us,u24be as Gs,u32 as ei,u32be as zs,u40 as Xs,u40be as Ys,u48 as Qs,u48be as Zs,u8 as ti,UInt as ni,union as Hs,Union as js,unionLayoutDiscriminator as $s,utf8 as Js}from"@solana/buffer-layout";var dt=Qo,Rn=$o;var Ft=ni;var Ln=ti,J=Jo;var pt=ei;var me=Ho;var On=jo;var F=Yo;var vt=Xo,Nn=Zo;var xe=class extends dt{constructor(t,i,r){super(t,r);this.blob=F(t),this.signed=i}decode(t,i=0){let r=new Mn(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 Mn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},ft=class extends dt{constructor(t){super(8,t);this._lower=vt(pt(),!1),this._upper=vt(pt(),!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 Ft(1,o)}function Q(o){return new Ft(4,o)}function n(o){return new xe(8,!1,o)}function M(o){return new xe(16,!1,o)}function vn(o){return new xe(1,!0,o)}function Ee(o){return new xe(8,!0,o)}function Vn(o){return new xe(16,!0,o)}var $e=class extends dt{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 oi(e),e=>e.toBuffer(),o)}function ce(o){return new $e(Ln(),ii,ri,o)}function ii(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function ri(o){return o?1:0}function _n(o,e){let t=pt("length"),i=b([t,A(o,Nn(t,-t.span),"values")]);return new $e(i,({values:r})=>r,r=>({values:r}),e)}var Vt=class extends Rn{decode(e,t){return super.decode(e,t)}};function b(o,e,t){return new Vt(o,e,t)}function A(o,e,t){let i,r=typeof e=="number"?e:Fn(e)?e.toNumber():new Proxy(e,{get(c,a){if(!i){let u=Reflect.get(c,"count");i=Fn(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 On(o,r,t)}var _t=b([y("instruction"),n("amountIn"),n("minAmountOut")]),Et=b([y("instruction"),n("maxAmountIn"),n("amountOut")]),mu=b([y("instruction"),y("nonce")]),Dt=b([y("instruction"),y("nonce"),n("startTime")]),Wt=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")]),ai=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")]),qt=b([y("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Ut=b([y("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]),du={4:Wt,5:ai},si=b([n("fee")]);import{PublicKey as ds}from"@solana/web3.js";import Mt from"decimal.js";import{TOKEN_PROGRAM_ID as ps}from"@solana/spl-token";import{ComputeBudgetProgram as Wn,Keypair as Un,PublicKey as li,Transaction as Gn,TransactionMessage as mi,VersionedTransaction as zn}from"@solana/web3.js";import{get as En,set as ui}from"lodash";var Gt=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}},Dn={},ci={};function D(o){let e=En(Dn,o);if(!e){let t=En(ci,o);e=new Gt({name:o,logLevel:t}),ui(Dn,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 di}from"@solana/spl-token";var qn=D("Raydium_txUtil"),Xn=1644;function yt(o){let e=[],t=[];return o.microLamports&&(e.push(Wn.setComputeUnitPrice({microLamports:o.microLamports})),t.push(H.SetComputeUnitPrice)),o.units&&(e.push(Wn.setComputeUnitLimit({units:o.units})),t.push(H.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function De(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 bt(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 zt(o,e){o.length<1&&qn.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&qn.logWithError(`no signers provided:, ${e.toString()}`);let t=new Gn;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Xn}catch{return!1}}function re(o,e){let[t,i]=li.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function Je({instructions:o,payer:e,signers:t}){return zt(o,[e,...t])}function et({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=Un.generate().publicKey.toString()}){let c=new mi({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new zn(c).serialize()).toString("base64").length<Xn}catch{return!1}}var pi=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),fi=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof zn&&(e=pi(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ke(o){let e=[];return o.forEach(t=>{t instanceof Gn&&(t.recentBlockhash||(t.recentBlockhash=di.toBase58()),t.feePayer||(t.feePayer=Un.generate().publicKey)),e.push(fi(t))}),console.log("simulate tx string:",e),e}import{TOKEN_PROGRAM_ID as iR}from"@solana/spl-token";import{PublicKey as uR}from"@solana/web3.js";import ss from"big.js";import Nt from"bn.js";import ve from"bn.js";import AC from"decimal.js";import{PublicKey as yi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yn}from"@solana/spl-token";var gt={chainId:101,address:yi.default.toBase58(),programId:Yn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},fe={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Yn.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 Zt}from"@solana/web3.js";import{PublicKey as Z,SystemProgram as Qn,SYSVAR_RENT_PUBKEY as bi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as gi}from"@solana/spl-token";function f({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var Pi=[f({pubkey:gi,isWritable:!1}),f({pubkey:Qn.programId,isWritable:!1}),f({pubkey:bi,isWritable:!1})];function Xt({publicKey:o,transformSol:e}){let t=Yt(o.toString());if(t instanceof Z)return e&&t.equals(Ce)?we:t;if(e&&t.toString()===Ce.toBase58())return we;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 Yt(o){try{return new Z(o)}catch{return o}}var Qt=new Z("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),We=new Z("SysvarRent111111111111111111111111111111111"),Nu=new Z("SysvarC1ock11111111111111111111111111111111"),Pt=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ai=new Z("Sysvar1nstructions1111111111111111111111111"),wi=Qn.programId,Mu=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Fu=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),vu=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Vu=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),_u=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Eu=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Du=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Wu=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),qu=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Uu=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Gu=new Z("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),we=new Z("So11111111111111111111111111111111111111112"),Ce=Z.default;function Re(o){return Xt({publicKey:o,transformSol:!0})}var Ht=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:c=!1,isToken2022:a=!1}){if(e===Ce.toBase58()||e instanceof Zt&&Ce.equals(e)){this.decimals=fe.decimals,this.symbol=fe.symbol,this.name=fe.name,this.mint=new Zt(fe.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?Zt.default:Xt({publicKey:e}),this.isToken2022=a}equals(e){return this===e?!0:this.mint.equals(e.mint)}},te=Ht;te.WSOL=new Ht(E(O({},fe),{mint:fe.address}));var jt=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},At=jt;At.SOL=new jt(gt);import kt from"big.js";import Ii from"bn.js";import Bi from"decimal.js-light";import tt from"bn.js";var Zn=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>=Zn||o<=-Zn)&&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 ki from"toformat";var Ti=ki,nt=Ti;var wt=D("module/fraction"),$t=nt(kt),ot=nt(Bi),Si={[0]:ot.ROUND_DOWN,[1]:ot.ROUND_HALF_UP,[2]:ot.ROUND_UP},xi={[0]:kt.roundDown,[1]:kt.roundHalfUp,[2]:kt.roundUp},q=class{constructor(e,t=new Ii(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)||wt.logWithError(`${e} is not an integer.`),e<=0&&wt.logWithError(`${e} is not positive.`),ot.set({precision:e+1,rounding:Si[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)||wt.logWithError(`${e} is not an integer.`),e<0&&wt.logWithError(`${e} is negative.`),$t.DP=e,$t.RM=xi[i]||1,new $t(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};import Ki from"bn.js";var Hn=new q(new Ki(100)),ke=class extends q{toSignificant(e=5,t,i){return this.mul(Hn).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(Hn).toFixed(e,t,i)}};var Ci=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(Jt(i.decimals),Jt(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&&Ci.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 TK}from"lodash";import jl from"axios";import{PublicKey as Ri}from"@solana/web3.js";import{MINT_SIZE as Kc,TOKEN_PROGRAM_ID as Cc,getTransferFeeConfig as Rc,unpackMint as Lc}from"@solana/spl-token";var en=D("Raydium_accountInfo_util");async function Te(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:c=100}=O({batchRequest:!1},t),a=tn(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=tn(l,10);u=(await(await Promise.all(g.map(async P=>await o._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(k=>{if(k){let{data:w,executable:K,lamports:h,owner:I,rentEpoch:C}=k;return w.length!==2&&w[1]!=="base64"&&en.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:K,lamports:h,owner:new Ri(I),rentEpoch:C}}return null})))}else try{u=await Promise.all(a.map(l=>o.getMultipleAccountsInfo(l,r)))}catch(l){l instanceof Error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${l.message}`)}return u.flat()}function tn(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 Vc}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ec}from"@solana/spl-token";import{PublicKey as R}from"@solana/web3.js";var jn=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),$n=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Jn=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),nn=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Uc=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),eo=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),to=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Gc=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),no=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),zc=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),on=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Xc=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_i=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ei=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Yc=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Qc=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Zc=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Hc=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),jc=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var he={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import el from"bn.js";import{PublicKey as rn,AddressLookupTableAccount as Ge}from"@solana/web3.js";async function an({connection:o,address:e,cluster:t="mainnet"}){let i=await Te(o,[...new Set(e.map(c=>c.toString()))].map(c=>new rn(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={},sn=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(qe[e])return qe;let t=new rn(e),i=await o.getAccountInfo(t);return i&&(qe[e]=new Ge({key:t,state:Ge.deserialize(i.data)})),qe},Ue={},un=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ue[e])return Ue;let t=new rn(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 cn,SystemProgram as Di,Transaction as it,TransactionMessage as rt,VersionedTransaction as at}from"@solana/web3.js";import Wi from"axios";var Tt=2e3,ht=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 Wi.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}=yt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Di.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 it;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 De(this.connection,this.blockhashCommitment);if(t.recentBlockhash=g,this.signers.length&&t.sign(...this.signers),Ke([t]),(p=this.owner)!=null&&p.isKeyPair)return{txId:u?await cn(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 C;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:K,skipPreflight:h=!0}=p||{},I=K!=null?K:await De(this.connection,this.blockhashCommitment);if((C=this.owner)!=null&&C.isKeyPair){if(P){let x=[],v=0;for(let _ of a){if(++v,v<=w)continue;let T=await cn(this.connection,_,this.signers.find(B=>B.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});x.push(T)}return{txIds:x,signedTxs:a}}return{txIds:await await Promise.all(a.map(async x=>(x.recentBlockhash=I,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:h})))),signedTxs:a}}if(this.signAllTransactions){let x=a.map((_,T)=>(_.recentBlockhash=I,u[T].length&&_.sign(...u[T]),_));Ke(x);let v=await this.signAllTransactions(x);if(P){let _=0,T=[],B=async()=>{if(!v[_])return;let S=await this.connection.sendRawTransaction(v[_].serialize(),{skipPreflight:h});T.push({txId:S,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===S);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||B()};this.loopMultiTxStatus&&(N=setInterval(async()=>{var X;if(L){clearInterval(N);return}try{let U=await this.connection.getTransaction(S,{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:",S))}catch(U){L=!0,clearInterval(N),console.error("getTransaction timeout:",U,S)}},Tt)),V=this.connection.onSignature(S,X=>{if(L){this.connection.removeSignatureListener(V);return}L=!0,se(X)},"confirmed"),this.connection.getSignatureStatus(S)};return await B(),{txIds:T.map(S=>S.txId),signedTxs:v}}else{let _=[];for(let T=0;T<v.length;T+=1){let B=await this.connection.sendRawTransaction(v[T].serialize(),{skipPreflight:h});_.push(B)}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 K=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:c}=K,a=le(K,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=O(O({},this.cluster==="devnet"?await un(this.connection):await sn(this.connection)),t),l=Array.from(new Set([...i,...this.lookupTableAddress])),g=[];for(let I of l)u[I]===void 0&&g.push(new ze(I));let p=await an({connection:this.connection,address:g});for(let[I,C]of Object.entries(p))u[I]=C;let P=r?ze.default.toBase58():c!=null?c:await De(this.connection,this.blockhashCommitment),k=new rt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new at(k);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var _;let{skipPreflight:C=!0,sendAndConfirm:x,notSendToRpc:v}=I||{};if(Ke([w]),(_=this.owner)!=null&&_.isKeyPair){let T=await this.connection.sendTransaction(w,{skipPreflight:C});return x&&await bt(this.connection,T),{txId:T,signedTx:w}}if(this.signAllTransactions){let T=await this.signAllTransactions([w]);if(this.signers.length)for(let B of T)try{B.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(T[0],{skipPreflight:C}),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:K=!0}=p||{};if(w&&a.forEach(I=>I.message.recentBlockhash=w),Ke(a),(h=this.owner)!=null&&h.isKeyPair){if(P){let I=[];for(let C of a){let x=await this.connection.sendTransaction(C,{skipPreflight:K});await bt(this.connection,x),I.push(x)}return{txIds:I,signedTxs:a}}return{txIds:await Promise.all(a.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:K}))),signedTxs:a}}if(this.signAllTransactions){let I=await this.signAllTransactions(a);if(P){let C=0,x=[],v=async()=>{if(!I[C])return;let _=await this.connection.sendTransaction(I[C],{skipPreflight:K});x.push({txId:_,status:"sent",signedTx:I[C]}),k==null||k([...x]),C++;let T=!1,B=null,S=null,L=N=>{B!==null&&clearInterval(B),S!==null&&this.connection.removeSignatureListener(S);let V=x.findIndex(se=>se.txId===_);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=N.err?"error":"success"}k==null||k([...x]),N.err||v()};this.loopMultiTxStatus&&(B=setInterval(async()=>{var N;if(T){clearInterval(B);return}try{let V=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(T=!0,clearInterval(B),L({err:((N=V.meta)==null?void 0:N.err)||null}),console.log("tx status from getTransaction:",_))}catch(V){T=!0,clearInterval(B),console.error("getTransaction timeout:",V,_)}},Tt)),S=this.connection.onSignature(_,N=>{if(T){this.connection.removeSignatureListener(S);return}T=!0,L(N)},"confirmed"),this.connection.getSignatureStatus(_)};return v(),{txIds:[],signedTxs:I}}else{let C=[];for(let x=0;x<I.length;x+=1){let v=await this.connection.sendTransaction(I[x],{skipPreflight:K});C.push(v)}return{txIds:C,signedTxs:I}}}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?yt(i):{instructions:[],instructionTypes:[]},a=this.signers.reduce((w,K)=>E(O({},w),{[K.publicKey.toBase58()]:K}),{}),u=[],l=[],g=[],p=0;if(this.allInstructions.forEach(w=>{let K=[...g,w],h=i?[...c.instructions,...K]:K,C=[...new Set(K.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(x=>new ze(x));if(w!==t[p]&&g.length<12&&(Je({instructions:h,payer:this.feePayer,signers:C})||Je({instructions:K,payer:this.feePayer,signers:C})))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:C})?u.push(new it().add(...c.instructions,...g)):u.push(new it().add(...g)),l.push(Array.from(new Set(g.map(x=>x.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(x=>a[x]).filter(x=>x!==void 0)),g=[w]}}),g.length>0){let K=[...new Set(g.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>a[h]).filter(h=>h!==void 0);Je({instructions:i?[...c.instructions,...g]:[...g],payer:this.feePayer,signers:K.map(h=>h.publicKey)})?u.push(new it().add(...c.instructions,...g)):u.push(new it().add(...g)),l.push(K)}return u.forEach(w=>w.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&l.forEach(w=>{w.some(K=>K.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:K,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:C,skipPreflight:x=!0}=w||{},v=C!=null?C:await De(this.connection,this.blockhashCommitment);if(u.forEach(async(T,B)=>{T.recentBlockhash=v,l[B].length&&T.sign(...l[B])}),Ke(u),(_=this.owner)!=null&&_.isKeyPair){if(K){let T=0,B=[];for(let S of u){if(++T,T<=I){B.push("tx skipped");continue}let L=await cn(this.connection,S,this.signers.find(N=>N.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});B.push(L)}return{txIds:B,signedTxs:u}}return{txIds:await Promise.all(u.map(async T=>await this.connection.sendRawTransaction(T.serialize(),{skipPreflight:x}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u.slice(I,u.length)),B=[...u.slice(0,I),...T];if(K){let S=0,L=[],N=async()=>{if(!B[S])return;S<I&&(L.push({txId:"",status:"success",signedTx:B[S]}),h==null||h([...L]),S++,N());let V=await this.connection.sendRawTransaction(B[S].serialize(),{skipPreflight:x});L.push({txId:V,status:"sent",signedTx:B[S]}),h==null||h([...L]),S++;let se=!1,X=null,U=null,ee=Y=>{X!==null&&clearInterval(X),U!==null&&this.connection.removeSignatureListener(U);let ie=L.findIndex(Pe=>Pe.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)}},Tt)),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:B}}else{let S=[];for(let L=0;L<B.length;L+=1){let N=await this.connection.sendRawTransaction(B[L].serialize(),{skipPreflight:x});S.push(N)}return{txIds:S,signedTxs:B}}}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 un(this.connection):await sn(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 an({connection:this.connection,address:p});for(let[T,B]of Object.entries(P))l[T]=B;let k=t?yt(t):{instructions:[],instructionTypes:[]},w=await De(this.connection,this.blockhashCommitment),K=this.signers.reduce((T,B)=>E(O({},T),{[B.publicKey.toBase58()]:B}),{}),h=[],I=[],C=[],x=0;if(this.allInstructions.forEach(T=>{let B=[...C,T],S=t?[...k.instructions,...B]:B;if(T!==i[x]&&C.length<a&&(et({instructions:S,payer:this.feePayer,lookupTableAddressAccount:l})||et({instructions:B,payer:this.feePayer,lookupTableAddressAccount:l})))C.push(T);else{if(C.length===0)throw Error("item ins too big");x+=T===i[x]?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,...C],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...C]}).compileToV0Message(Object.values(l));h.push(new at(N))}else{let N=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(l));h.push(new at(N))}I.push(Array.from(new Set(C.map(N=>N.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(N=>K[N]).filter(N=>N!==void 0)),C=[T]}}),C.length>0){let B=[...new Set(C.map(S=>S.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(S=>K[S]).filter(S=>S!==void 0);if(t&&et({instructions:[...k.instructions,...C],payer:this.feePayer,lookupTableAddressAccount:l,recentBlockhash:w})){let S=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...C]}).compileToV0Message(Object.values(l));h.push(new at(S))}else{let S=new rt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...C]}).compileToV0Message(Object.values(l));h.push(new at(S))}I.push(B)}return(_=this.owner)!=null&&_.signer&&I.forEach(T=>{T.some(B=>B.publicKey.equals(this.owner.publicKey))||T.push(this.owner.signer)}),h.forEach((T,B)=>{T.sign(I[B])}),{builder:this,transactions:h,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async T=>{var se;let{sequentially:B,onTxUpdate:S,skipTxCount:L=0,recentBlockHash:N,skipPreflight:V=!0}=T||{};if(h.map(async(X,U)=>{I[U].length&&X.sign(I[U]),N&&(X.message.recentBlockhash=N)}),Ke(h),(se=this.owner)!=null&&se.isKeyPair){if(B){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 bt(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(B){let ee=0,Y=[],ie=async()=>{if(!U[ee])return;if(ee<L){Y.push({txId:"",status:"success",signedTx:U[ee]}),S==null||S([...Y]),ee++,ie();return}let Pe=await this.connection.sendTransaction(U[ee],{skipPreflight:V});Y.push({txId:Pe,status:"sent",signedTx:U[ee]}),S==null||S([...Y]),ee++;let je=!1,_e=null,lt=null,Bn=Se=>{_e!==null&&clearInterval(_e),lt!==null&&this.connection.removeSignatureListener(lt);let Ae=Y.findIndex(_o=>_o.txId===Pe);if(Ae>-1){if(Y[Ae].status==="error"||Y[Ae].status==="success")return;Y[Ae].status=Se.err?"error":"success"}S==null||S([...Y]),Se.err||ie()};this.loopMultiTxStatus&&(_e=setInterval(async()=>{var Se;if(je){clearInterval(_e);return}try{let Ae=await this.connection.getTransaction(Pe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ae&&(je=!0,clearInterval(_e),Bn({err:((Se=Ae.meta)==null?void 0:Se.err)||null}),console.log("tx status from getTransaction:",Pe))}catch(Ae){je=!0,clearInterval(_e),console.error("getTransaction timeout:",Ae,Pe)}},Tt)),lt=this.connection.onSignature(Pe,Se=>{if(je){this.connection.removeSignatureListener(lt);return}je=!0,Bn(Se)},"confirmed"),this.connection.getSignatureStatus(Pe)};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 qi}from"@solana/web3.js";import Ui from"bn.js";function Gi(o){return typeof o=="object"&&o!==null&&![te,ue,qi,q,Ui,de,ke].some(e=>typeof e=="object"&&o instanceof e)}function ye(o){return typeof o=="string"?Yt(o):Array.isArray(o)?o.map(e=>ye(e)):Gi(o)?Object.fromEntries(Object.entries(o).map(([e,t])=>[e,ye(t)])):o}import zi from"bn.js";var It=new zi(1e6);var oo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Xi=E(O({},oo),{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 wm=D("Raydium_Api");import{PublicKey as Ad,SystemProgram as wd}from"@solana/web3.js";import{AccountLayout as Bd,createAssociatedTokenAccountIdempotentInstruction as Sd,TOKEN_PROGRAM_ID as xd,TOKEN_2022_PROGRAM_ID as Kd}from"@solana/spl-token";var ln=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ae=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=D(t)}createTxBuilder(e){return this.scope.checkOwner(),new ht({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(ln(e))}logInfo(...e){this.logger.info(ln(e))}logAndCreateError(...e){let t=ln(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Hm,SystemProgram as $m}from"@solana/web3.js";import td from"bn.js";import{createCloseAccountInstruction as rd,createInitializeAccountInstruction as ad,createTransferInstruction as sd,TOKEN_PROGRAM_ID as ud}from"@solana/spl-token";import{Keypair as Vm,PublicKey as _m}from"@solana/web3.js";import Wm from"bn.js";import{TOKEN_PROGRAM_ID as Gm}from"@solana/spl-token";var Bt=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 SP,SystemProgram as xP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as CP}from"@solana/spl-token";import EP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as mb,TOKEN_2022_PROGRAM_ID as db,TOKEN_PROGRAM_ID as pb}from"@solana/spl-token";import{PublicKey as yb}from"@solana/web3.js";import gb from"bn.js";import Ab from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Ny,TOKEN_2022_PROGRAM_ID as My,TOKEN_PROGRAM_ID as Fy}from"@solana/spl-token";import{Keypair as _y,PublicKey as Ey,SystemProgram as Wy,TransactionInstruction as qy}from"@solana/web3.js";import Gy from"bn.js";import W from"bn.js";var Xe=new W(1).shln(64);var Qi=new W(1).shln(128),mn=new W(1).shln(64).subn(1),Zi=new W(1).shln(128).subn(1);var Ye=new W("4295048016"),Qe=new W("79226673521066979257578248091"),Hi=new W("59543866431248"),ji=new W("184467440737095516"),$i=new W("15793534762490258745");var dn=60,Dd=new W("18446743708227953217"),Ji=[{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 st=3,ro=100;var ao=10,so=100,xt=14;var j=new W(0),Ne=new W(1),Wd=new W(-1);var qd=new W("18446744073700000000");var er=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)]),tr=b([Q("blockTimestamp"),Ee("tickCumulative"),A(n(),4)]),uo=b([F(8),ce("initialized"),n("recentEpoch"),J("observationIndex"),s("poolId"),A(tr,ro,"observations"),A(n(),4)]),nr=b([J("filterPeriod"),J("decayPeriod"),J("reductionFactor"),Q("dynamicFeeControl"),Q("maxVolatilityAccumulator"),me("tickSpacingIndexReference"),Q("volatilityReference"),Q("volatilityAccumulator"),n("lastUpdateTimestamp"),A(y(),46)]),or=b([y("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),M("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),s("mint"),s("vault"),s("creator"),M("growthGlobalX64")]),pn=b([F(8),y("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("observationId"),y("mintDecimalsA"),y("mintDecimalsB"),J("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),me("tickCurrent"),Q(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),A(M(),4),y("status"),y("feeOn"),F(6),A(or,st,"rewardInfos"),F(8*16,"tickArrayBitmap"),A(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("st