UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 92.2 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 ws,blob as Yo,Blob as ks,cstr as Ts,f32 as hs,f32be as Is,f64 as Bs,f64be as Ss,greedy as xs,Layout as Qo,ns64 as Ks,ns64be as Cs,nu64 as Rs,nu64be as Ls,offset as Zo,s16 as Os,s16be as Ns,s24 as Ms,s24be as Fs,s32 as Ho,s32be as vs,s40 as Vs,s40be as _s,s48 as Es,s48be as Ds,s8 as Ws,seq as jo,struct as qs,Structure as $o,u16 as Jo,u16be as Us,u24 as Gs,u24be as zs,u32 as ei,u32be as Xs,u40 as Ys,u40be as Qs,u48 as Zs,u48be as Hs,u8 as ti,UInt as ni,union as js,Union as $s,unionLayoutDiscriminator as Js,utf8 as eu}from"@solana/buffer-layout";var dt=Qo,Rn=$o;var Ft=ni;var Ln=ti,H=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")]),du=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")]),pu={4:Wt,5:ai},si=b([n("fee")]);import{PublicKey as ps}from"@solana/web3.js";import Mt from"decimal.js";import{TOKEN_PROGRAM_ID as fs}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 j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};import{TOKEN_PROGRAM_ID as 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(j.SetComputeUnitPrice)),o.units&&(e.push(Wn.setComputeUnitLimit({units:o.units})),t.push(j.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 sR}from"@solana/spl-token";import{PublicKey as mR}from"@solana/web3.js";import us from"big.js";import Nt from"bn.js";import ve from"bn.js";import TC 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"),Mu=new Z("SysvarC1ock11111111111111111111111111111111"),Pt=new Z("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ai=new Z("Sysvar1nstructions1111111111111111111111111"),wi=Qn.programId,Fu=new Z("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),vu=new Z("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Vu=new Z("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),_u=new Z("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Eu=new Z("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Du=new Z("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Wu=new Z("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),qu=new Z("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Uu=new Z("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Gu=new Z("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),zu=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)}},ne=Ht;ne.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 BK}from"lodash";import $l from"axios";import{PublicKey as Ri}from"@solana/web3.js";import{MINT_SIZE as Cc,TOKEN_PROGRAM_ID as Rc,getTransferFeeConfig as Lc,unpackMint as Oc}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 _c}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Dc}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"),Gc=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Li=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),eo=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),to=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),zc=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Oi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),no=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Ni=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Le=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Xc=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),on=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Yc=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_i=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ei=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Qc=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Zc=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Hc=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),jc=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),$c=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 tl 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(j.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(te=>te.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,te=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),te({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,te(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 te of h){if(++X,X<=L){console.log("skip tx: ",X),U.push("tx skipped");continue}let Y=await this.connection.sendTransaction(te,{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 te=0,Y=[],ie=async()=>{if(!U[te])return;if(te<L){Y.push({txId:"",status:"success",signedTx:U[te]}),S==null||S([...Y]),te++,ie();return}let Pe=await this.connection.sendTransaction(U[te],{skipPreflight:V});Y.push({txId:Pe,status:"sent",signedTx:U[te]}),S==null||S([...Y]),te++;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 te=[];for(let Y=0;Y<U.length;Y+=1){let ie=await this.connection.sendTransaction(U[Y],{skipPreflight:V});te.push(ie)}return{txIds:te,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&&![ne,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 km=D("Raydium_Api");import{PublicKey as wd,SystemProgram as kd}from"@solana/web3.js";import{AccountLayout as Sd,createAssociatedTokenAccountIdempotentInstruction as xd,TOKEN_PROGRAM_ID as Kd,TOKEN_2022_PROGRAM_ID as Cd}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 jm,SystemProgram as Jm}from"@solana/web3.js";import nd from"bn.js";import{createCloseAccountInstruction as ad,createInitializeAccountInstruction as sd,createTransferInstruction as ud,TOKEN_PROGRAM_ID as cd}from"@solana/spl-token";import{Keypair as _m,PublicKey as Em}from"@solana/web3.js";import qm from"bn.js";import{TOKEN_PROGRAM_ID as zm}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 RP,SystemProgram as LP}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as NP}from"@solana/spl-token";import UP from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as yb,TOKEN_2022_PROGRAM_ID as bb,TOKEN_PROGRAM_ID as gb}from"@solana/spl-token";import{PublicKey as Ab}from"@solana/web3.js";import kb from"bn.js";import hb from"decimal.js";import{ASSOCIATED_TOKEN_PROGRAM_ID as Vy,TOKEN_2022_PROGRAM_ID as _y,TOKEN_PROGRAM_ID as Ey}from"@solana/spl-token";import{Keypair as qy,PublicKey as Uy,SystemProgram as zy,TransactionInstruction as Xy}from"@solana/web3.js";import Qy 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,Wd=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 $=new W(0),Ne=new W(1),qd=new W(-1);var Ud=new W("18446744073700000000");var er=b([F(8),y("bump"),H("index"),s("owner"),Q("protocolFeeRate"),Q("tradeFeeRate"),H("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"),H("observationIndex"),s("poolId"),A(tr,ro,"observations"),A(n(),4)]),nr=b([H("filterPeriod"),H("decayPeriod"),H("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"),H("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