@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 115 kB
JavaScript
var ii=Object.defineProperty,ri=Object.defineProperties;var ai=Object.getOwnPropertyDescriptors;var Vt=Object.getOwnPropertySymbols;var Wn=Object.prototype.hasOwnProperty,qn=Object.prototype.propertyIsEnumerable;var Dn=(a,e,t)=>e in a?ii(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,R=(a,e)=>{for(var t in e||(e={}))Wn.call(e,t)&&Dn(a,t,e[t]);if(Vt)for(var t of Vt(e))qn.call(e,t)&&Dn(a,t,e[t]);return a},E=(a,e)=>ri(a,ai(e));var Oe=(a,e)=>{var t={};for(var n in a)Wn.call(a,n)&&e.indexOf(n)<0&&(t[n]=a[n]);if(a!=null&&Vt)for(var n of Vt(a))e.indexOf(n)<0&&qn.call(a,n)&&(t[n]=a[n]);return t};import{PublicKey as ge}from"@solana/web3.js";import de from"bn.js";import{PublicKey as Ai}from"@solana/web3.js";import Qn,{isBN as Zn}from"bn.js";import{bits as si,BitStructure as ls,blob as ui,Blob as ms,cstr as ds,f32 as ps,f32be as fs,f64 as ys,f64be as bs,greedy as gs,Layout as ci,ns64 as Ps,ns64be as As,nu64 as li,nu64be as ws,offset as mi,s16 as ks,s16be as Ts,s24 as hs,s24be as Is,s32 as di,s32be as Bs,s40 as Ss,s40be as xs,s48 as Ks,s48be as Cs,s8 as Rs,seq as pi,struct as Ls,Structure as fi,u16 as yi,u16be as Os,u24 as Ns,u24be as Ms,u32 as bi,u32be as Fs,u40 as vs,u40be as Vs,u48 as _s,u48be as Es,u8 as gi,UInt as Pi,union as Ds,Union as Ws,unionLayoutDiscriminator as qs,utf8 as Us}from"@solana/buffer-layout";var _t=ci,Un=fi;var un=Pi;var Gn=gi,ce=yi;var Et=bi;var zn=li;var Ce=di;var Yn=pi;var W=ui;var cn=si,Xn=mi;var je=class extends _t{constructor(t,n,i){super(t,i);this.blob=W(t),this.signed=n}decode(t,n=0){let i=new Qn(this.blob.decode(t,n),10,"le");return this.signed?i.fromTwos(this.span*8).clone():i}encode(t,n,i=0){return typeof t=="number"&&(t=new Qn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Dt=class extends _t{constructor(t){super(8,t);this._lower=cn(Et(),!1),this._upper=cn(Et(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let i=this._lower.decode(t,n),r=this._upper.decode(t,n+this._lower.span);return R(R({},i),r)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function w(a){return new un(1,a)}function J(a){return new un(4,a)}function o(a){return new je(8,!1,a)}function D(a){return new je(16,!1,a)}function Hn(a){return new je(1,!0,a)}function ot(a){return new je(8,!0,a)}function jn(a){return new je(16,!0,a)}var Pt=class extends _t{constructor(t,n,i,r){super(t.span,r);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function d(a){return new Pt(W(32),e=>new Ai(e),e=>e.toBuffer(),a)}function we(a){return new Pt(Gn(),wi,ki,a)}function wi(a){if(a===0)return!1;if(a===1)return!0;throw new Error("Invalid bool: "+a)}function ki(a){return a?1:0}function $n(a,e){let t=Et("length"),n=k([t,B(a,Xn(t,-t.span),"values")]);return new Pt(n,({values:i})=>i,i=>({values:i}),e)}var ln=class extends Un{decode(e,t){return super.decode(e,t)}};function k(a,e,t){return new ln(a,e,t)}function B(a,e,t){let n,i=typeof e=="number"?e:Zn(e)?e.toNumber():new Proxy(e,{get(r,s){if(!n){let u=Reflect.get(r,"count");n=Zn(u)?u.toNumber():u,Reflect.set(r,"count",n)}return Reflect.get(r,s)},set(r,s,u){return s==="count"&&(n=u),Reflect.set(r,s,u)}});return Yn(a,i,t)}import Y from"bn.js";var Q=new Y(1).shln(64),it=64,Ti=new Y(1).shln(128),We=new Y(1).shln(64).subn(1),hi=new Y(1).shln(128).subn(1),ke=-443636,Te=443636,Ne=new Y("4295048016"),Me=new Y("79226673521066979257578248091"),Jn=new Y("59543866431248"),eo=new Y("184467440737095516"),to=new Y("15793534762490258745"),no=16,Wt=512,be=60,eu=new Y("18446743708227953217"),oo=[{bit:0,factor:new Y("fffcb933bd6fb800",16)},{bit:1,factor:new Y("fff97272373d4000",16)},{bit:2,factor:new Y("fff2e50f5f657000",16)},{bit:3,factor:new Y("ffe5caca7e10f000",16)},{bit:4,factor:new Y("ffcb9843d60f7000",16)},{bit:5,factor:new Y("ff973b41fa98e800",16)},{bit:6,factor:new Y("ff2ea16466c9b000",16)},{bit:7,factor:new Y("fe5dee046a9a3800",16)},{bit:8,factor:new Y("fcbe86c7900bb000",16)},{bit:9,factor:new Y("f987a7253ac65800",16)},{bit:10,factor:new Y("f3392b0822bb6000",16)},{bit:11,factor:new Y("e7159475a2caf000",16)},{bit:12,factor:new Y("d097f3bdfd2f2000",16)},{bit:13,factor:new Y("a9f746462d9f8000",16)},{bit:14,factor:new Y("70d869a156f31c00",16)},{bit:15,factor:new Y("31be135f97ed3200",16)},{bit:16,factor:new Y("9aa508b5b85a500",16)},{bit:17,factor:new Y("5d6af8dedc582c",16)},{bit:18,factor:new Y("2216e584f5fa",16)}],qe=1e6;var qt=1e5,At=1e4,io=1e4,ro=1e5;var wt=3,ao=100;var so=10,uo=100,rt=14;var L=new Y(0),he=new Y(1),tu=new Y(-1);var nu=new Y("18446744073700000000");var Ii=k([W(8),w("bump"),ce("index"),d("owner"),J("protocolFeeRate"),J("tradeFeeRate"),ce("tickSpacing"),J("fundFeeRate"),B(J(),1),d("fundOwner"),B(o(),3)]),Bi=k([J("blockTimestamp"),ot("tickCumulative"),B(o(),4)]),co=k([W(8),we("initialized"),o("recentEpoch"),ce("observationIndex"),d("poolId"),B(Bi,ao,"observations"),B(o(),4)]),Si=k([ce("filterPeriod"),ce("decayPeriod"),ce("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),Ce("tickSpacingIndexReference"),J("volatilityReference"),J("volatilityAccumulator"),o("lastUpdateTimestamp"),B(w(),46)]),xi=k([w("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),D("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),d("mint"),d("vault"),d("creator"),D("growthGlobalX64")]),Ut=k([W(8),w("bump"),d("configId"),d("creator"),d("mintA"),d("mintB"),d("vaultA"),d("vaultB"),d("observationId"),w("mintDecimalsA"),w("mintDecimalsB"),ce("tickSpacing"),D("liquidity"),D("sqrtPriceX64"),Ce("tickCurrent"),J(),D("feeGrowthGlobalX64A"),D("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),B(D(),4),w("status"),w("feeOn"),W(6),B(xi,wt,"rewardInfos"),W(8*16,"tickArrayBitmap"),B(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),Si.replicate("dynamicFeeInfo"),B(o(),46)]),Ki=k([D("growthInsideLastX64"),o("rewardAmountOwed")]),Ci=k([W(8),w("bump"),d("nftMint"),d("poolId"),Ce("tickLower"),Ce("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),B(Ki,wt,"rewardInfos"),o("recentEpoch"),B(o(),7)]),au=k([W(8),w("bump"),d("poolId"),Ce("tickLower"),Ce("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),B(D(),wt,"rewardGrowthInside"),o("recentEpoch"),B(o(),7)]),Ri=k([Ce("tick"),jn("liquidityNet"),D("liquidityGross"),D("feeGrowthOutsideX64A"),D("feeGrowthOutsideX64B"),B(D(),wt,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),D("unfilledRatioX64"),B(J(),3)]),kt=k([W(8),d("poolId"),Ce("startTickIndex"),B(Ri,be,"ticks"),w("initializedTickCount"),o("recentEpoch"),B(w(),107)]),Li=k([W(8),w("bump"),B(d(),so,"operationOwners"),B(d(),uo,"whitelistMints")]),Oi=k([W(8),d("poolId"),d("owner"),Ce("tick"),we("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),D("unfilledRatioX64"),B(o(),4)]),mn=k([W(8),d("poolId"),W(8*8*rt,"positiveTickArrayBitmap"),W(8*8*rt,"negativeTickArrayBitmap")]),su=k([W(8),ce("index"),ce("filterPeriod"),ce("decayPeriod"),ce("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),B(o(),8)]),Ni=k([W(8),d("wallet"),w("nonceIndex"),o("orderNonce"),B(o(),4)]),uu=k([o(),w("bump"),d("owner"),d("poolId"),d("positionId"),d("nftAccount"),B(o(),8)]),Mi=k([W(8),w("bump"),d("lockOwner"),d("poolId"),d("positionId"),d("nftAccount"),d("lockNftMint"),o("recentEpoch"),B(o(),8)]);import Fi from"bn.js";import lo from"decimal.js";function $(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function H(a,e,t){if(t.isZero())throw new Error("Division by zero");let n=a.mul(e),i=n.div(t);return n.mod(t).isZero()?i:i.addn(1)}function Gt(a,e){return a.div(e).add(a.mod(e).isZero()?L:he)}var pu=new Fi(1).shln(256).subn(1);function mo(a){return a.isZero()?-1:a.bitLength()-1}function po(a,e){return new lo(a.toString()).div(lo.pow(2,64)).toDecimalPlaces(e)}import{PublicKey as _i}from"@solana/web3.js";import{get as fo,set as vi}from"lodash";var dn=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(n=>typeof n=="object"?JSON.stringify(n):n).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}},yo={},Vi={};function G(a){let e=fo(yo,a);if(!e){let t=fo(Vi,a);e=new dn({name:a,logLevel:t}),vi(yo,a,e)}return e}import{MINT_SIZE as Iu,TOKEN_PROGRAM_ID as Bu,getTransferFeeConfig as Su,unpackMint as xu}from"@solana/spl-token";var pn=G("Raydium_accountInfo_util");async function Ie(a,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:r=100}=R({batchRequest:!1},t),s=fn(e,r),u=new Array(s.length).fill([]);if(n){let c=s.map(p=>{let P=a._buildArgs([p.map(g=>g.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:P}}),l=fn(c,10);u=(await(await Promise.all(l.map(async p=>await a._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&pn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.error.message}`),p.result.value.map(P=>{if(P){let{data:g,executable:h,lamports:A,owner:T,rentEpoch:S}=P;return g.length!==2&&g[1]!=="base64"&&pn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(g[0],"base64"),executable:h,lamports:A,owner:new _i(T),rentEpoch:S}}return null})))}else try{u=await Promise.all(s.map(c=>a.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&pn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return u.flat()}async function Ue(a,e,t){let n=await Ie(a,e.map(i=>i.pubkey),t);return e.map((i,r)=>E(R({},i),{accountInfo:n[r]}))}import tt from"bn.js";import _C from"decimal.js";import Yi from"big.js";import Xt from"bn.js";import Ei from"toformat";var Di=Ei,Tt=Di;import Yt from"big.js";import qi from"bn.js";import Ui from"decimal.js-light";import ht from"bn.js";var bo=9007199254740991;function ie(a){let e=G("Raydium_parseBigNumberish");if(a instanceof ht)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new ht(a);e.logWithError(`invalid BigNumberish string: ${a}`)}return typeof a=="number"?(a%1&&e.logWithError(`BigNumberish number underflow: ${a}`),(a>=bo||a<=-bo)&&e.logWithError(`BigNumberish number overflow: ${a}`),new ht(String(a))):typeof a=="bigint"?new ht(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new ht(0))}var zt=G("module/fraction"),yn=Tt(Yt),It=Tt(Ui),Gi={[0]:It.ROUND_DOWN,[1]:It.ROUND_HALF_UP,[2]:It.ROUND_UP},zi={[0]:Yt.roundDown,[1]:Yt.roundHalfUp,[2]:Yt.roundUp},X=class{constructor(e,t=new qi(1)){this.numerator=ie(e),this.denominator=ie(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new X(this.denominator,this.numerator)}add(e){let t=e instanceof X?e:new X(ie(e));return this.denominator.eq(t.denominator)?new X(this.numerator.add(t.numerator),this.denominator):new X(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof X?e:new X(ie(e));return this.denominator.eq(t.denominator)?new X(this.numerator.sub(t.numerator),this.denominator):new X(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof X?e:new X(ie(e));return new X(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof X?e:new X(ie(e));return new X(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||zt.logWithError(`${e} is not an integer.`),e<=0&&zt.logWithError(`${e} is not positive.`),It.set({precision:e+1,rounding:Gi[n]});let i=new It(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return i.toFormat(i.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},n=1){return Number.isInteger(e)||zt.logWithError(`${e} is not an integer.`),e<0&&zt.logWithError(`${e} is negative.`),yn.DP=e,yn.RM=zi[n]||1,new yn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Xi=G("Raydium_amount"),go=Tt(Yi);function Qi(a,e){let t="0",n="0";if(a.includes(".")){let i=a.split(".");i.length===2?([t,n]=i,n=n.padEnd(e,"0")):Xi.logWithError(`invalid number string, num: ${a}`)}else t=a;return[t,n.slice(0,e)||n]}var re=class extends X{constructor(t,n,i=!0,r){let s=new Xt(0),u=bn.pow(new Xt(t.decimals));if(i)s=ie(n);else{let c=new Xt(0),l=new Xt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[m,p]=Qi(n.toString(),t.decimals);c=ie(m),l=ie(p)}c=c.mul(u),s=c.add(l)}super(s,u);this.logger=G(r||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new re(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new re(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,n,i=0){return super.toSignificant(t,n,i)}toFixed(t=this.token.decimals,n,i=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,n,i)}toExact(t={groupSeparator:""}){return go.DP=this.token.decimals,new go(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as Zi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Po}from"@solana/spl-token";var Qt={chainId:101,address:Zi.default.toBase58(),programId:Po.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ve={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Po.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 An}from"@solana/web3.js";import{PublicKey as ee,SystemProgram as Ao,SYSVAR_RENT_PUBKEY as Hi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ji}from"@solana/spl-token";function at({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var $i=[at({pubkey:ji,isWritable:!1}),at({pubkey:Ao.programId,isWritable:!1}),at({pubkey:Hi,isWritable:!1})];function gn({publicKey:a,transformSol:e}){let t=wo(a.toString());if(t instanceof ee)return e&&t.equals($e)?Fe:t;if(e&&t.toString()===$e.toBase58())return Fe;if(typeof t=="string"){if(t===ee.default.toBase58())return ee.default;try{return new ee(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function wo(a){try{return new ee(a)}catch{return a}}var Pn=new ee("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),st=new ee("SysvarRent111111111111111111111111111111111"),Ji=new ee("SysvarC1ock11111111111111111111111111111111"),Zt=new ee("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),er=new ee("Sysvar1nstructions1111111111111111111111111"),ko=Ao.programId,rc=new ee("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),ac=new ee("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),sc=new ee("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),uc=new ee("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),cc=new ee("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),lc=new ee("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),mc=new ee("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),dc=new ee("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),pc=new ee("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),fc=new ee("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),yc=new ee("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Fe=new ee("So11111111111111111111111111111111111111112"),$e=ee.default;function Ge(a){return gn({publicKey:a,transformSol:!0})}var wn=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:s=!1}){if(e===$e.toBase58()||e instanceof An&&$e.equals(e)){this.decimals=ve.decimals,this.symbol=ve.symbol,this.name=ve.name,this.mint=new An(ve.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=n||e.toString().substring(0,6),this.name=i||e.toString().substring(0,6),this.mint=r?An.default:gn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},le=wn;le.WSOL=new wn(E(R({},ve),{mint:ve.address}));var kn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Ht=kn;Ht.SOL=new kn(Qt);import tr from"bn.js";var To=new X(new tr(100)),Ve=class extends X{toSignificant(e=5,t,n){return this.mul(To).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(To).toFixed(e,t,n)}};var nr=G("Raydium_price"),Be=class extends X{constructor(t){let{baseToken:n,quoteToken:i,numerator:r,denominator:s}=t;super(r,s);this.baseToken=n,this.quoteToken=i,this.scalar=new X(Tn(n.decimals),Tn(i.decimals))}get raw(){return new X(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Be({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&nr.logWithError("mul token not equals");let n=super.mul(t);return new Be({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:n.denominator,numerator:n.numerator})}toSignificant(t=this.quoteToken.decimals,n,i){return this.adjusted.toSignificant(t,n,i)}toFixed(t=this.quoteToken.decimals,n,i){return this.adjusted.toFixed(t,n,i)}};import{merge as _K}from"lodash";import Ec from"axios";var ho={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},or=E(R({},ho),{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 ul=G("Raydium_Api");import{PublicKey as vm,SystemProgram as Vm}from"@solana/web3.js";import{AccountLayout as qm,createAssociatedTokenAccountIdempotentInstruction as Um,TOKEN_PROGRAM_ID as Gm,TOKEN_2022_PROGRAM_ID as zm}from"@solana/spl-token";import{PublicKey as dt,sendAndConfirmTransaction as Kn,SystemProgram as cr,Transaction as xt,TransactionMessage as Kt,VersionedTransaction as Ct}from"@solana/web3.js";import lr from"axios";import{PublicKey as hn,AddressLookupTableAccount as lt}from"@solana/web3.js";async function In({connection:a,address:e,cluster:t="mainnet"}){let n=await Ie(a,[...new Set(e.map(r=>r.toString()))].map(r=>new hn(r))),i={};for(let r=0;r<e.length;r++){let s=n[r],u=e[r];if(!s)continue;let c=new lt({key:u,state:lt.deserialize(s.data)});i[u.toString()]=c,t==="devnet"?ct[u.toString()]=c:ut[u.toString()]=c}return i}var ut={},Bn=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(ut[e])return ut;let t=new hn(e),n=await a.getAccountInfo(t);return n&&(ut[e]=new lt({key:t,state:lt.deserialize(n.data)})),ut},ct={},Sn=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(ct[e])return ct;let t=new hn(e),n=await a.getAccountInfo(t);return n&&(ct[e]=new lt({key:t,state:lt.deserialize(n.data)})),ct};var me={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{ComputeBudgetProgram as Io,Keypair as So,PublicKey as ir,Transaction as xo,TransactionMessage as rr,VersionedTransaction as Ko}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ar}from"@solana/spl-token";var Bo=G("Raydium_txUtil"),Co=1644;function jt(a){let e=[],t=[];return a.microLamports&&(e.push(Io.setComputeUnitPrice({microLamports:a.microLamports})),t.push(me.SetComputeUnitPrice)),a.units&&(e.push(Io.setComputeUnitLimit({units:a.units})),t.push(me.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function mt(a,e){var n,i;let t=e!=null?e:"confirmed";return(i=await((n=a.getLatestBlockhash)==null?void 0:n.call(a,{commitment:t})))==null?void 0:i.blockhash}async function $t(a,e){return a.getSignatureStatuses([e]),new Promise((t,n)=>{let i=setTimeout(n,6e4);a.onSignature(e,r=>{if(clearTimeout(i),!r.err){t("");return}n(Object.assign(r.err,{txId:e}))},"confirmed")})}function xn(a,e){a.length<1&&Bo.logWithError(`no instructions provided: ${a.toString()}`),e.length<1&&Bo.logWithError(`no signers provided:, ${e.toString()}`);let t=new xo;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...a);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Co}catch{return!1}}function Se(a,e){let[t,n]=ir.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function Bt({instructions:a,payer:e,signers:t}){return xn(a,[e,...t])}function St({instructions:a,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=So.generate().publicKey.toString()}){let r=new rr({payerKey:e,recentBlockhash:n,instructions:a}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Ko(r).serialize()).toString("base64").length<Co}catch{return!1}}var sr=a=>Buffer.isBuffer(a)?a:a instanceof Uint8Array?Buffer.from(a.buffer,a.byteOffset,a.byteLength):Buffer.from(a),ur=a=>{let e=a.serialize({requireAllSignatures:!1,verifySignatures:!1});a instanceof Ko&&(e=sr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Je(a){let e=[];return a.forEach(t=>{t instanceof xo&&(t.recentBlockhash||(t.recentBlockhash=ar.toBase58()),t.feePayer||(t.feePayer=So.generate().publicKey)),e.push(ur(t))}),console.log("simulate tx string:",e),e}var Jt=2e3,en=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 n;let e=(await lr.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(n=e==null?void 0:e[15])!=null?n:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:n}=jt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(cr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new dt(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(me.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:i=[],endInstructionTypes:r=[],lookupTableAddress:s=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...s.filter(u=>u!==dt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(E(R({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new xt;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(i=>i.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 i=>{var m;let{recentBlockHash:r,skipPreflight:s=!0,sendAndConfirm:u,notSendToRpc:c}=i||{},l=r!=null?r:await mt(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),Je([t]),(m=this.owner)!=null&&m.isKeyPair)return{txId:u?await Kn(this.connection,t,this.signers.find(P=>P.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:s}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:s}),signedTx:t};if(this.signAllTransactions){let p=await this.signAllTransactions([t]);if(this.signers.length)for(let P of p)try{P.sign(...this.signers)}catch{}return{txId:c?"":await this.connection.sendRawTransaction(p[0].serialize(),{skipPreflight:s}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var l;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),r=t.filter(m=>m.transaction.instructions.length>0),s=[i,...r.map(m=>m.transaction)],u=[this.signers,...r.map(m=>m.signers)],c=[...this.instructionTypes,...r.map(m=>m.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:s,signers:u,instructionTypes:c,execute:async m=>{var S;let{sequentially:p,onTxUpdate:P,skipTxCount:g=0,recentBlockHash:h,skipPreflight:A=!0}=m||{},T=h!=null?h:await mt(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(p){let x=[],F=0;for(let v of s){if(++F,F<=g)continue;let b=await Kn(this.connection,v,this.signers.find(I=>I.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:A});x.push(b)}return{txIds:x,signedTxs:s}}return{txIds:await await Promise.all(s.map(async x=>(x.recentBlockhash=T,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:A})))),signedTxs:s}}if(this.signAllTransactions){let x=s.map((v,b)=>(v.recentBlockhash=T,u[b].length&&v.sign(...u[b]),v));Je(x);let F=await this.signAllTransactions(x);if(p){let v=0,b=[],I=async()=>{if(!F[v])return;let K=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:A});b.push({txId:K,status:"sent",signedTx:F[v]}),P==null||P([...b]),v++;let O=!1,C=null,V=null,j=U=>{C!==null&&clearInterval(C),V!==null&&this.connection.removeSignatureListener(V);let N=b.findIndex(Z=>Z.txId===K);if(N>-1){if(b[N].status==="error"||b[N].status==="success")return;b[N].status=U.err?"error":"success"}P==null||P([...b]),U.err||I()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var U;if(O){clearInterval(C);return}try{let N=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(O=!0,clearInterval(C),j({err:((U=N.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",K))}catch(N){O=!0,clearInterval(C),console.error("getTransaction timeout:",N,K)}},Jt)),V=this.connection.onSignature(K,U=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,j(U)},"confirmed"),this.connection.getSignatureStatus(K)};return await I(),{txIds:b.map(K=>K.txId),signedTxs:F}}else{let v=[];for(let b=0;b<F.length;b+=1){let I=await this.connection.sendRawTransaction(F[b].serialize(),{skipPreflight:A});v.push(I)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var A;let h=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:r}=h,s=Oe(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=R(R({},this.cluster==="devnet"?await Sn(this.connection):await Bn(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),l=[];for(let T of c)u[T]===void 0&&l.push(new dt(T));let m=await In({connection:this.connection,address:l});for(let[T,S]of Object.entries(m))u[T]=S;let p=i?dt.default.toBase58():r!=null?r:await mt(this.connection,this.blockhashCommitment),P=new Kt({payerKey:this.feePayer,recentBlockhash:p,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((A=this.owner)==null?void 0:A.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let g=new Ct(P);return g.sign(this.signers),{builder:this,transaction:g,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var v;let{skipPreflight:S=!0,sendAndConfirm:x,notSendToRpc:F}=T||{};if(Je([g]),(v=this.owner)!=null&&v.isKeyPair){let b=await this.connection.sendTransaction(g,{skipPreflight:S});return x&&await $t(this.connection,b),{txId:b,signedTx:g}}if(this.signAllTransactions){let b=await this.signAllTransactions([g]);if(this.signers.length)for(let I of b)try{I.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(b[0],{skipPreflight:S}),signedTx:b[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}async buildV0MultiTx(e){var l;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),r=t.filter(m=>m.builder.instructions.length>0),s=[i,...r.map(m=>m.transaction)],u=[this.signers,...r.map(m=>m.signers)],c=[...this.instructionTypes,...r.map(m=>m.instructionTypes).flat()];return(l=this.owner)!=null&&l.signer&&u.forEach(m=>{m.some(p=>p.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),s.forEach(async(m,p)=>{m.sign(u[p])}),{builder:this,transactions:s,signers:u,instructionTypes:c,buildProps:n,execute:async m=>{var A;let{sequentially:p,onTxUpdate:P,recentBlockHash:g,skipPreflight:h=!0}=m||{};if(g&&s.forEach(T=>T.message.recentBlockhash=g),Je(s),(A=this.owner)!=null&&A.isKeyPair){if(p){let T=[];for(let S of s){let x=await this.connection.sendTransaction(S,{skipPreflight:h});await $t(this.connection,x),T.push(x)}return{txIds:T,signedTxs:s}}return{txIds:await Promise.all(s.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:h}))),signedTxs:s}}if(this.signAllTransactions){let T=await this.signAllTransactions(s);if(p){let S=0,x=[],F=async()=>{if(!T[S])return;let v=await this.connection.sendTransaction(T[S],{skipPreflight:h});x.push({txId:v,status:"sent",signedTx:T[S]}),P==null||P([...x]),S++;let b=!1,I=null,K=null,O=C=>{I!==null&&clearInterval(I),K!==null&&this.connection.removeSignatureListener(K);let V=x.findIndex(j=>j.txId===v);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=C.err?"error":"success"}P==null||P([...x]),C.err||F()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var C;if(b){clearInterval(I);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(b=!0,clearInterval(I),O({err:((C=V.meta)==null?void 0:C.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){b=!0,clearInterval(I),console.error("getTransaction timeout:",V,v)}},Jt)),K=this.connection.onSignature(v,C=>{if(b){this.connection.removeSignatureListener(K);return}b=!0,O(C)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let F=await this.connection.sendTransaction(T[x],{skipPreflight:h});S.push(F)}return{txIds:S,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var P;let p=e||{},{splitIns:t=[],computeBudgetConfig:n}=p,i=Oe(p,["splitIns","computeBudgetConfig"]),r=n?jt(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((g,h)=>E(R({},g),{[h.publicKey.toBase58()]:h}),{}),u=[],c=[],l=[],m=0;if(this.allInstructions.forEach(g=>{let h=[...l,g],A=n?[...r.instructions,...h]:h,S=[...new Set(h.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(x=>new dt(x));if(g!==t[m]&&l.length<12&&(Bt({instructions:A,payer:this.feePayer,signers:S})||Bt({instructions:h,payer:this.feePayer,signers:S})))l.push(g);else{if(l.length===0)throw Error("item ins too big");m+=g===t[m]?1:0,Bt({instructions:n?[...r.instructions,...l]:[...l],payer:this.feePayer,signers:S})?u.push(new xt().add(...r.instructions,...l)):u.push(new xt().add(...l)),c.push(Array.from(new Set(l.map(x=>x.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(x=>s[x]).filter(x=>x!==void 0)),l=[g]}}),l.length>0){let h=[...new Set(l.map(A=>A.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(A=>s[A]).filter(A=>A!==void 0);Bt({instructions:n?[...r.instructions,...l]:[...l],payer:this.feePayer,signers:h.map(A=>A.publicKey)})?u.push(new xt().add(...r.instructions,...l)):u.push(new xt().add(...l)),c.push(h)}return u.forEach(g=>g.feePayer=this.feePayer),(P=this.owner)!=null&&P.signer&&c.forEach(g=>{g.some(h=>h.publicKey.equals(this.owner.publicKey))||g.push(this.owner.signer)}),{builder:this,transactions:u,signers:c,instructionTypes:this.instructionTypes,execute:async g=>{var v;let{sequentially:h,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:S,skipPreflight:x=!0}=g||{},F=S!=null?S:await mt(this.connection,this.blockhashCommitment);if(u.forEach(async(b,I)=>{b.recentBlockhash=F,c[I].length&&b.sign(...c[I])}),Je(u),(v=this.owner)!=null&&v.isKeyPair){if(h){let b=0,I=[];for(let K of u){if(++b,b<=T){I.push("tx skipped");continue}let O=await Kn(this.connection,K,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});I.push(O)}return{txIds:I,signedTxs:u}}return{txIds:await Promise.all(u.map(async b=>await this.connection.sendRawTransaction(b.serialize(),{skipPreflight:x}))),signedTxs:u}}if(this.signAllTransactions){let b=await this.signAllTransactions(u.slice(T,u.length)),I=[...u.slice(0,T),...b];if(h){let K=0,O=[],C=async()=>{if(!I[K])return;K<T&&(O.push({txId:"",status:"success",signedTx:I[K]}),A==null||A([...O]),K++,C());let V=await this.connection.sendRawTransaction(I[K].serialize(),{skipPreflight:x});O.push({txId:V,status:"sent",signedTx:I[K]}),A==null||A([...O]),K++;let j=!1,U=null,N=null,Z=q=>{U!==null&&clearInterval(U),N!==null&&this.connection.removeSignatureListener(N);let ne=O.findIndex(Ae=>Ae.txId===V);if(ne>-1){if(O[ne].status==="error"||O[ne].status==="success")return;O[ne].status=q.err?"error":"success"}A==null||A([...O]),q.err||C()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var q;if(j){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(j=!0,clearInterval(U),Z({err:((q=ne.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){j=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},Jt)),N=this.connection.onSignature(V,q=>{if(j){this.connection.removeSignatureListener(N);return}j=!0,Z(q)},"confirmed"),this.connection.getSignatureStatus(V)};return await C(),{txIds:O.map(V=>V.txId),signedTxs:I}}else{let K=[];for(let O=0;O<I.length;O+=1){let C=await this.connection.sendRawTransaction(I[O].serialize(),{skipPreflight:x});K.push(C)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:r=[],insCountLimit:s=12}=F,u=Oe(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=R(R({},this.cluster==="devnet"?await Sn(this.connection):await Bn(this.connection)),i),l=Array.from(new Set([...this.lookupTableAddress,...r])),m=[];for(let b of l)c[b]===void 0&&m.push(new dt(b));let p=await In({connection:this.connection,address:m});for(let[b,I]of Object.entries(p))c[b]=I;let P=t?jt(t):{instructions:[],instructionTypes:[]},g=await mt(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,I)=>E(R({},b),{[I.publicKey.toBase58()]:I}),{}),A=[],T=[],S=[],x=0;if(this.allInstructions.forEach(b=>{let I=[...S,b],K=t?[...P.instructions,...I]:I;if(b!==n[x]&&S.length<s&&(St({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})||St({instructions:I,payer:this.feePayer,lookupTableAddressAccount:c})))S.push(b);else{if(S.length===0)throw Error("item ins too big");x+=b===n[x]?1:0;let O={};for(let C of[...new Set(l)])c[C]!==void 0&&(O[C]=c[C]);if(t&&St({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let C=new Kt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Ct(C))}else{let C=new Kt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Ct(C))}T.push(Array.from(new Set(S.map(C=>C.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(C=>h[C]).filter(C=>C!==void 0)),S=[b]}}),S.length>0){let I=[...new Set(S.map(K=>K.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(K=>h[K]).filter(K=>K!==void 0);if(t&&St({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let K=new Kt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Ct(K))}else{let K=new Kt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Ct(K))}T.push(I)}return(v=this.owner)!=null&&v.signer&&T.forEach(b=>{b.some(I=>I.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),A.forEach((b,I)=>{b.sign(T[I])}),{builder:this,transactions:A,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:async b=>{var j;let{sequentially:I,onTxUpdate:K,skipTxCount:O=0,recentBlockHash:C,skipPreflight:V=!0}=b||{};if(A.map(async(U,N)=>{T[N].length&&U.sign(T[N]),C&&(U.message.recentBlockhash=C)}),Je(A),(j=this.owner)!=null&&j.isKeyPair){if(I){let U=0,N=[];for(let Z of A){if(++U,U<=O){console.log("skip tx: ",U),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(Z,{skipPreflight:V});await $t(this.connection,q),N.push(q)}return{txIds:N,signedTxs:A}}return{txIds:await Promise.all(A.map(async U=>await this.connection.sendTransaction(U,{skipPreflight:V}))),signedTxs:A}}if(this.signAllTransactions){let U=await this.signAllTransactions(A.slice(O,A.length)),N=[...A.slice(0,O),...U];if(I){let Z=0,q=[],ne=async()=>{if(!N[Z])return;if(Z<O){q.push({txId:"",status:"success",signedTx:N[Z]}),K==null||K([...q]),Z++,ne();return}let Ae=await this.connection.sendTransaction(N[Z],{skipPreflight:V});q.push({txId:Ae,status:"sent",signedTx:N[Z]}),K==null||K([...q]),Z++;let gt=!1,nt=null,vt=null,En=He=>{nt!==null&&clearInterval(nt),vt!==null&&this.connection.removeSignatureListener(vt);let De=q.findIndex(oi=>oi.txId===Ae);if(De>-1){if(q[De].status==="error"||q[De].status==="success")return;q[De].status=He.err?"error":"success"}K==null||K([...q]),He.err||ne()};this.loopMultiTxStatus&&(nt=setInterval(async()=>{var He;if(gt){clearInterval(nt);return}try{let De=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});De&&(gt=!0,clearInterval(nt),En({err:((He=De.meta)==null?void 0:He.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(De){gt=!0,clearInterval(nt),console.error("getTransaction timeout:",De,Ae)}},Jt)),vt=this.connection.onSignature(Ae,He=>{if(gt){this.connection.removeSignatureListener(vt);return}gt=!0,En(He)},"confirmed"),this.connection.getSignatureStatus(Ae)};return ne(),{txIds:[],signedTxs:N}}else{let Z=[];for(let q=0;q<N.length;q+=1){let ne=await this.connection.sendTransaction(N[q],{skipPreflight:V});Z.push(ne)}return{txIds:Z,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Cn=(...a)=>a.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ye=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new en({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(Cn(e))}logInfo(...e){this.logger.info(Cn(e))}logAndCreateError(...e){let t=Cn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as pm,SystemProgram as ym}from"@solana/web3.js";import Pm from"bn.js";import{createCloseAccountInstruction as Tm,createInitializeAccountInstruction as hm,createTransferInstruction as Im,TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{Keypair as em,PublicKey as tm}from"@solana/web3.js";import im from"bn.js";import{TOKEN_PROGRAM_ID as sm}from"@solana/spl-token";var tn=k([d("mint"),d("owner"),o("amount"),J("delegateOption"),d("delegate"),w("state"),J("isNativeOption"),o("isNative"),o("delegatedAmount"),J("closeAuthorityOption"),d("closeAuthority")]);import{PublicKey as fg,SystemProgram as yg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as gg}from"@solana/spl-token";import{PublicKey as $m}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";import{PublicKey as M}from"@solana/web3.js";var Lo=new M("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Oo=new M("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),No=new M("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Rn=new M("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),id=new M("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),dr=new M("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Mo=new M("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Fo=new M("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),rd=new M("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),pr=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),vo=new M("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),fr=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yr=new M("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Vo=new M("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ad=new M("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),br=new M("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),gr=new M("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Pr=new M("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Ar=new M("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),wr=new M("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),Ln=new M("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),kr=new M("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),sd=new M("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Tr=new M("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),hr=new M("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ir=new M("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ud=new M("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),cd=new M("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ld=new M("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),md=new M("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),dd=new M("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),Rt={IDO_PROGRAM_ID_V1:gr,IDO_PROGRAM_ID_V2:Pr,IDO_PROGRAM_ID_V3:Ar,IDO_PROGRAM_ID_V4:wr};var ze={OPEN_BOOK_PROGRAM:new M("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new M("Ray1111111111111111111111111111111111111111"),AMM_V4:new M("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new M("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new M("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new M("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new M("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new M("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new M("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new M("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new M("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:M.default,Router:new M("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new M("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new M("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new M("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:ne