UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 114 kB
var ti=Object.defineProperty,ni=Object.defineProperties;var oi=Object.getOwnPropertyDescriptors;var Vt=Object.getOwnPropertySymbols;var Dn=Object.prototype.hasOwnProperty,Wn=Object.prototype.propertyIsEnumerable;var En=(a,e,t)=>e in a?ti(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,L=(a,e)=>{for(var t in e||(e={}))Dn.call(e,t)&&En(a,t,e[t]);if(Vt)for(var t of Vt(e))Wn.call(e,t)&&En(a,t,e[t]);return a},E=(a,e)=>ni(a,oi(e));var xe=(a,e)=>{var t={};for(var n in a)Dn.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&&Wn.call(a,n)&&(t[n]=a[n]);return t};import{PublicKey as ye}from"@solana/web3.js";import pe from"bn.js";import{PublicKey as yi}from"@solana/web3.js";import Xn,{isBN as Yn}from"bn.js";import{bits as ii,BitStructure as ts,blob as ri,Blob as ns,cstr as os,f32 as is,f32be as rs,f64 as as,f64be as ss,greedy as us,Layout as ai,ns64 as cs,ns64be as ls,nu64 as ms,nu64be as ds,offset as si,s16 as ps,s16be as fs,s24 as ys,s24be as bs,s32 as ui,s32be as gs,s40 as Ps,s40be as As,s48 as ws,s48be as ks,s8 as Ts,seq as ci,struct as hs,Structure as li,u16 as mi,u16be as Is,u24 as Bs,u24be as Ss,u32 as di,u32be as xs,u40 as Ks,u40be as Cs,u48 as Rs,u48be as Ls,u8 as pi,UInt as fi,union as Os,Union as Ns,unionLayoutDiscriminator as Ms,utf8 as Fs}from"@solana/buffer-layout";var _t=ai,qn=li;var sn=fi;var Un=pi,ie=mi;var Et=di;var Ke=ui;var Gn=ci;var W=ri;var un=ii,zn=si;var He=class extends _t{constructor(t,n,i){super(t,i);this.blob=W(t),this.signed=n}decode(t,n=0){let i=new Xn(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 Xn(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=un(Et(),!1),this._upper=un(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 L(L({},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 sn(1,a)}function $(a){return new sn(4,a)}function o(a){return new He(8,!1,a)}function D(a){return new He(16,!1,a)}function Qn(a){return new He(1,!0,a)}function nt(a){return new He(8,!0,a)}function Zn(a){return new He(16,!0,a)}var bt=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 bt(W(32),e=>new yi(e),e=>e.toBuffer(),a)}function we(a){return new bt(Un(),bi,gi,a)}function bi(a){if(a===0)return!1;if(a===1)return!0;throw new Error("Invalid bool: "+a)}function gi(a){return a?1:0}function Hn(a,e){let t=Et("length"),n=k([t,B(a,zn(t,-t.span),"values")]);return new bt(n,({values:i})=>i,i=>({values:i}),e)}var cn=class extends qn{decode(e,t){return super.decode(e,t)}};function k(a,e,t){return new cn(a,e,t)}function B(a,e,t){let n,i=typeof e=="number"?e:Yn(e)?e.toNumber():new Proxy(e,{get(r,s){if(!n){let u=Reflect.get(r,"count");n=Yn(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 Gn(a,i,t)}import X from"bn.js";var H=new X(1).shln(64),ot=64,Pi=new X(1).shln(128),De=new X(1).shln(64).subn(1),Ai=new X(1).shln(128).subn(1),ke=-443636,Te=443636,Oe=new X("4295048016"),Ne=new X("79226673521066979257578248091"),jn=new X("59543866431248"),$n=new X("184467440737095516"),Jn=new X("15793534762490258745"),eo=16,Wt=512,be=60,Xs=new X("18446743708227953217"),to=[{bit:0,factor:new X("fffcb933bd6fb800",16)},{bit:1,factor:new X("fff97272373d4000",16)},{bit:2,factor:new X("fff2e50f5f657000",16)},{bit:3,factor:new X("ffe5caca7e10f000",16)},{bit:4,factor:new X("ffcb9843d60f7000",16)},{bit:5,factor:new X("ff973b41fa98e800",16)},{bit:6,factor:new X("ff2ea16466c9b000",16)},{bit:7,factor:new X("fe5dee046a9a3800",16)},{bit:8,factor:new X("fcbe86c7900bb000",16)},{bit:9,factor:new X("f987a7253ac65800",16)},{bit:10,factor:new X("f3392b0822bb6000",16)},{bit:11,factor:new X("e7159475a2caf000",16)},{bit:12,factor:new X("d097f3bdfd2f2000",16)},{bit:13,factor:new X("a9f746462d9f8000",16)},{bit:14,factor:new X("70d869a156f31c00",16)},{bit:15,factor:new X("31be135f97ed3200",16)},{bit:16,factor:new X("9aa508b5b85a500",16)},{bit:17,factor:new X("5d6af8dedc582c",16)},{bit:18,factor:new X("2216e584f5fa",16)}],We=1e6;var qt=1e5,gt=1e4,no=1e4,oo=1e5;var Pt=3,io=100;var ro=10,ao=100,it=14;var C=new X(0),Me=new X(1),Ys=new X(-1);var Qs=new X("18446744073700000000");var wi=k([W(8),w("bump"),ie("index"),d("owner"),$("protocolFeeRate"),$("tradeFeeRate"),ie("tickSpacing"),$("fundFeeRate"),B($(),1),d("fundOwner"),B(o(),3)]),ki=k([$("blockTimestamp"),nt("tickCumulative"),B(o(),4)]),so=k([W(8),we("initialized"),o("recentEpoch"),ie("observationIndex"),d("poolId"),B(ki,io,"observations"),B(o(),4)]),Ti=k([ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),$("dynamicFeeControl"),$("maxVolatilityAccumulator"),Ke("tickSpacingIndexReference"),$("volatilityReference"),$("volatilityAccumulator"),o("lastUpdateTimestamp"),B(w(),46)]),hi=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"),ie("tickSpacing"),D("liquidity"),D("sqrtPriceX64"),Ke("tickCurrent"),$(),D("feeGrowthGlobalX64A"),D("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),B(D(),4),w("status"),w("feeOn"),W(6),B(hi,Pt,"rewardInfos"),W(8*16,"tickArrayBitmap"),B(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),Ti.replicate("dynamicFeeInfo"),B(o(),46)]),Ii=k([D("growthInsideLastX64"),o("rewardAmountOwed")]),Bi=k([W(8),w("bump"),d("nftMint"),d("poolId"),Ke("tickLower"),Ke("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),B(Ii,Pt,"rewardInfos"),o("recentEpoch"),B(o(),7)]),$s=k([W(8),w("bump"),d("poolId"),Ke("tickLower"),Ke("tickUpper"),D("liquidity"),D("feeGrowthInsideLastX64A"),D("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),B(D(),Pt,"rewardGrowthInside"),o("recentEpoch"),B(o(),7)]),Si=k([Ke("tick"),Zn("liquidityNet"),D("liquidityGross"),D("feeGrowthOutsideX64A"),D("feeGrowthOutsideX64B"),B(D(),Pt,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),D("unfilledRatioX64"),B($(),3)]),At=k([W(8),d("poolId"),Ke("startTickIndex"),B(Si,be,"ticks"),w("initializedTickCount"),o("recentEpoch"),B(w(),107)]),xi=k([W(8),w("bump"),B(d(),ro,"operationOwners"),B(d(),ao,"whitelistMints")]),Ki=k([W(8),d("poolId"),d("owner"),Ke("tick"),we("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),D("unfilledRatioX64"),B(o(),4)]),ln=k([W(8),d("poolId"),W(8*8*it,"positiveTickArrayBitmap"),W(8*8*it,"negativeTickArrayBitmap")]),Js=k([W(8),ie("index"),ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),$("dynamicFeeControl"),$("maxVolatilityAccumulator"),B(o(),8)]),Ci=k([W(8),d("wallet"),w("nonceIndex"),o("orderNonce"),B(o(),4)]),eu=k([o(),w("bump"),d("owner"),d("poolId"),d("positionId"),d("nftAccount"),B(o(),8)]),Ri=k([W(8),w("bump"),d("lockOwner"),d("poolId"),d("positionId"),d("nftAccount"),d("lockNftMint"),o("recentEpoch"),B(o(),8)]);import Li from"bn.js";import uo from"decimal.js";function ee(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function j(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()?C:Me)}var ru=new Li(1).shln(256).subn(1);function co(a){return a.isZero()?-1:a.bitLength()-1}function lo(a,e){return new uo(a.toString()).div(uo.pow(2,64)).toDecimalPlaces(e)}import{PublicKey as Mi}from"@solana/web3.js";import{get as mo,set as Oi}from"lodash";var mn=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}},po={},Ni={};function G(a){let e=mo(po,a);if(!e){let t=mo(Ni,a);e=new mn({name:a,logLevel:t}),Oi(po,a,e)}return e}import{MINT_SIZE as bu,TOKEN_PROGRAM_ID as gu,getTransferFeeConfig as Pu,unpackMint as Au}from"@solana/spl-token";var dn=G("Raydium_accountInfo_util");async function he(a,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:r=100}=L({batchRequest:!1},t),s=pn(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=pn(c,10);u=(await(await Promise.all(l.map(async p=>await a._rpcBatchRequest(p)))).flat()).map(p=>(p.error&&dn.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"&&dn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(g[0],"base64"),executable:h,lamports:A,owner:new Mi(T),rentEpoch:S}}return null})))}else try{u=await Promise.all(s.map(c=>a.getMultipleAccountsInfo(c,i)))}catch(c){c instanceof Error&&dn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${c.message}`)}return u.flat()}async function qe(a,e,t){let n=await he(a,e.map(i=>i.pubkey),t);return e.map((i,r)=>E(L({},i),{accountInfo:n[r]}))}import et from"bn.js";import iC from"decimal.js";import qi from"big.js";import Yt from"bn.js";import Fi from"toformat";var vi=Fi,wt=vi;import Xt from"big.js";import _i from"bn.js";import Ei from"decimal.js-light";import kt from"bn.js";var fo=9007199254740991;function re(a){let e=G("Raydium_parseBigNumberish");if(a instanceof kt)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new kt(a);e.logWithError(`invalid BigNumberish string: ${a}`)}return typeof a=="number"?(a%1&&e.logWithError(`BigNumberish number underflow: ${a}`),(a>=fo||a<=-fo)&&e.logWithError(`BigNumberish number overflow: ${a}`),new kt(String(a))):typeof a=="bigint"?new kt(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new kt(0))}var zt=G("module/fraction"),fn=wt(Xt),Tt=wt(Ei),Di={[0]:Tt.ROUND_DOWN,[1]:Tt.ROUND_HALF_UP,[2]:Tt.ROUND_UP},Wi={[0]:Xt.roundDown,[1]:Xt.roundHalfUp,[2]:Xt.roundUp},Y=class{constructor(e,t=new _i(1)){this.numerator=re(e),this.denominator=re(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let t=e instanceof Y?e:new Y(re(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.add(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Y?e:new Y(re(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.sub(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Y?e:new Y(re(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(re(e));return new Y(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.`),Tt.set({precision:e+1,rounding:Di[n]});let i=new Tt(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.`),fn.DP=e,fn.RM=Wi[n]||1,new fn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Ui=G("Raydium_amount"),yo=wt(qi);function Gi(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")):Ui.logWithError(`invalid number string, num: ${a}`)}else t=a;return[t,n.slice(0,e)||n]}var ae=class extends Y{constructor(t,n,i=!0,r){let s=new Yt(0),u=yn.pow(new Yt(t.decimals));if(i)s=re(n);else{let c=new Yt(0),l=new Yt(0);if(typeof n=="string"||typeof n=="number"||typeof n=="bigint"){let[m,p]=Gi(n.toString(),t.decimals);c=re(m),l=re(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 ae(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new ae(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 yo.DP=this.token.decimals,new yo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};import{PublicKey as zi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as bo}from"@solana/spl-token";var Qt={chainId:101,address:zi.default.toBase58(),programId:bo.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:bo.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 Pn}from"@solana/web3.js";import{PublicKey as J,SystemProgram as go,SYSVAR_RENT_PUBKEY as Xi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Yi}from"@solana/spl-token";function rt({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var Qi=[rt({pubkey:Yi,isWritable:!1}),rt({pubkey:go.programId,isWritable:!1}),rt({pubkey:Xi,isWritable:!1})];function bn({publicKey:a,transformSol:e}){let t=Po(a.toString());if(t instanceof J)return e&&t.equals(je)?Ue:t;if(e&&t.toString()===je.toBase58())return Ue;if(typeof t=="string"){if(t===J.default.toBase58())return J.default;try{return new J(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Po(a){try{return new J(a)}catch{return a}}var gn=new J("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ht=new J("SysvarRent111111111111111111111111111111111"),ju=new J("SysvarC1ock11111111111111111111111111111111"),Zt=new J("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Zi=new J("Sysvar1nstructions1111111111111111111111111"),Hi=go.programId,$u=new J("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ju=new J("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ec=new J("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),tc=new J("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),nc=new J("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),oc=new J("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ic=new J("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),rc=new J("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ac=new J("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),sc=new J("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),uc=new J("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ue=new J("So11111111111111111111111111111111111111112"),je=J.default;function Ge(a){return bn({publicKey:a,transformSol:!0})}var An=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:s=!1}){if(e===je.toBase58()||e instanceof Pn&&je.equals(e)){this.decimals=Fe.decimals,this.symbol=Fe.symbol,this.name=Fe.name,this.mint=new Pn(Fe.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?Pn.default:bn({publicKey:e}),this.isToken2022=s}equals(e){return this===e?!0:this.mint.equals(e.mint)}},le=An;le.WSOL=new An(E(L({},Fe),{mint:Fe.address}));var wn=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=wn;Ht.SOL=new wn(Qt);import ji from"bn.js";var Ao=new Y(new ji(100)),ve=class extends Y{toSignificant(e=5,t,n){return this.mul(Ao).toSignificant(e,t,n)}toFixed(e=2,t,n){return this.mul(Ao).toFixed(e,t,n)}};var $i=G("Raydium_price"),Ie=class extends Y{constructor(t){let{baseToken:n,quoteToken:i,numerator:r,denominator:s}=t;super(r,s);this.baseToken=n,this.quoteToken=i,this.scalar=new Y(kn(n.decimals),kn(i.decimals))}get raw(){return new Y(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ie({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&$i.logWithError("mul token not equals");let n=super.mul(t);return new Ie({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 aK}from"lodash";import Oc from"axios";var wo={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"},Ji=E(L({},wo),{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 tl=G("Raydium_Api");import{PublicKey as Cm,SystemProgram as Rm}from"@solana/web3.js";import{AccountLayout as Fm,createAssociatedTokenAccountIdempotentInstruction as vm,TOKEN_PROGRAM_ID as Vm,TOKEN_2022_PROGRAM_ID as _m}from"@solana/spl-token";import{PublicKey as lt,sendAndConfirmTransaction as xn,SystemProgram as rr,Transaction as St,TransactionMessage as xt,VersionedTransaction as Kt}from"@solana/web3.js";import ar from"axios";import{PublicKey as Tn,AddressLookupTableAccount as ut}from"@solana/web3.js";async function hn({connection:a,address:e,cluster:t="mainnet"}){let n=await he(a,[...new Set(e.map(r=>r.toString()))].map(r=>new Tn(r))),i={};for(let r=0;r<e.length;r++){let s=n[r],u=e[r];if(!s)continue;let c=new ut({key:u,state:ut.deserialize(s.data)});i[u.toString()]=c,t==="devnet"?st[u.toString()]=c:at[u.toString()]=c}return i}var at={},In=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(at[e])return at;let t=new Tn(e),n=await a.getAccountInfo(t);return n&&(at[e]=new ut({key:t,state:ut.deserialize(n.data)})),at},st={},Bn=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(st[e])return st;let t=new Tn(e),n=await a.getAccountInfo(t);return n&&(st[e]=new ut({key:t,state:ut.deserialize(n.data)})),st};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 ko,Keypair as ho,PublicKey as er,Transaction as Io,TransactionMessage as tr,VersionedTransaction as Bo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as nr}from"@solana/spl-token";var To=G("Raydium_txUtil"),So=1644;function jt(a){let e=[],t=[];return a.microLamports&&(e.push(ko.setComputeUnitPrice({microLamports:a.microLamports})),t.push(me.SetComputeUnitPrice)),a.units&&(e.push(ko.setComputeUnitLimit({units:a.units})),t.push(me.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function ct(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 Sn(a,e){a.length<1&&To.logWithError(`no instructions provided: ${a.toString()}`),e.length<1&&To.logWithError(`no signers provided:, ${e.toString()}`);let t=new Io;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...a);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<So}catch{return!1}}function Be(a,e){let[t,n]=er.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function It({instructions:a,payer:e,signers:t}){return Sn(a,[e,...t])}function Bt({instructions:a,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=ho.generate().publicKey.toString()}){let r=new tr({payerKey:e,recentBlockhash:n,instructions:a}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new Bo(r).serialize()).toString("base64").length<So}catch{return!1}}var or=a=>Buffer.isBuffer(a)?a:a instanceof Uint8Array?Buffer.from(a.buffer,a.byteOffset,a.byteLength):Buffer.from(a),ir=a=>{let e=a.serialize({requireAllSignatures:!1,verifySignatures:!1});a instanceof Bo&&(e=or(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function $e(a){let e=[];return a.forEach(t=>{t instanceof Io&&(t.recentBlockhash||(t.recentBlockhash=nr.toBase58()),t.feePayer||(t.feePayer=ho.generate().publicKey)),e.push(ir(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 ar.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(rr.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new lt(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!==lt.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(E(L({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new St;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 ct(this.connection,this.blockhashCommitment);if(t.recentBlockhash=l,this.signers.length&&t.sign(...this.signers),$e([t]),(m=this.owner)!=null&&m.isKeyPair)return{txId:u?await xn(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 ct(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(p){let x=[],M=0;for(let F of s){if(++M,M<=g)continue;let b=await xn(this.connection,F,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((F,b)=>(F.recentBlockhash=T,u[b].length&&F.sign(...u[b]),F));$e(x);let M=await this.signAllTransactions(x);if(p){let F=0,b=[],I=async()=>{if(!M[F])return;let K=await this.connection.sendRawTransaction(M[F].serialize(),{skipPreflight:A});b.push({txId:K,status:"sent",signedTx:M[F]}),P==null||P([...b]),F++;let O=!1,R=null,V=null,Z=U=>{R!==null&&clearInterval(R),V!==null&&this.connection.removeSignatureListener(V);let N=b.findIndex(Q=>Q.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&&(R=setInterval(async()=>{var U;if(O){clearInterval(R);return}try{let N=await this.connection.getTransaction(K,{commitment:"confirmed",maxSupportedTransactionVersion:0});N&&(O=!0,clearInterval(R),Z({err:((U=N.meta)==null?void 0:U.err)||null}),console.log("tx status from getTransaction:",K))}catch(N){O=!0,clearInterval(R),console.error("getTransaction timeout:",N,K)}},Jt)),V=this.connection.onSignature(K,U=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,Z(U)},"confirmed"),this.connection.getSignatureStatus(K)};return await I(),{txIds:b.map(K=>K.txId),signedTxs:M}}else{let F=[];for(let b=0;b<M.length;b+=1){let I=await this.connection.sendRawTransaction(M[b].serialize(),{skipPreflight:A});F.push(I)}return{txIds:F,signedTxs:M}}}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=xe(h,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=L(L({},this.cluster==="devnet"?await Bn(this.connection):await In(this.connection)),t),c=Array.from(new Set([...n,...this.lookupTableAddress])),l=[];for(let T of c)u[T]===void 0&&l.push(new lt(T));let m=await hn({connection:this.connection,address:l});for(let[T,S]of Object.entries(m))u[T]=S;let p=i?lt.default.toBase58():r!=null?r:await ct(this.connection,this.blockhashCommitment),P=new xt({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 Kt(P);return g.sign(this.signers),{builder:this,transaction:g,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var F;let{skipPreflight:S=!0,sendAndConfirm:x,notSendToRpc:M}=T||{};if($e([g]),(F=this.owner)!=null&&F.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:M?"":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),$e(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=[],M=async()=>{if(!T[S])return;let F=await this.connection.sendTransaction(T[S],{skipPreflight:h});x.push({txId:F,status:"sent",signedTx:T[S]}),P==null||P([...x]),S++;let b=!1,I=null,K=null,O=R=>{I!==null&&clearInterval(I),K!==null&&this.connection.removeSignatureListener(K);let V=x.findIndex(Z=>Z.txId===F);if(V>-1){if(x[V].status==="error"||x[V].status==="success")return;x[V].status=R.err?"error":"success"}P==null||P([...x]),R.err||M()};this.loopMultiTxStatus&&(I=setInterval(async()=>{var R;if(b){clearInterval(I);return}try{let V=await this.connection.getTransaction(F,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(b=!0,clearInterval(I),O({err:((R=V.meta)==null?void 0:R.err)||null}),console.log("tx status from getTransaction:",F))}catch(V){b=!0,clearInterval(I),console.error("getTransaction timeout:",V,F)}},Jt)),K=this.connection.onSignature(F,R=>{if(b){this.connection.removeSignatureListener(K);return}b=!0,O(R)},"confirmed"),this.connection.getSignatureStatus(F)};return M(),{txIds:[],signedTxs:T}}else{let S=[];for(let x=0;x<T.length;x+=1){let M=await this.connection.sendTransaction(T[x],{skipPreflight:h});S.push(M)}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=xe(p,["splitIns","computeBudgetConfig"]),r=n?jt(n):{instructions:[],instructionTypes:[]},s=this.signers.reduce((g,h)=>E(L({},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(M=>M.isSigner).map(M=>M.pubkey.toString())).flat()).values()].map(x=>new lt(x));if(g!==t[m]&&l.length<12&&(It({instructions:A,payer:this.feePayer,signers:S})||It({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,It({instructions:n?[...r.instructions,...l]:[...l],payer:this.feePayer,signers:S})?u.push(new St().add(...r.instructions,...l)):u.push(new St().add(...l)),c.push(Array.from(new Set(l.map(x=>x.keys.filter(M=>M.isSigner).map(M=>M.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);It({instructions:n?[...r.instructions,...l]:[...l],payer:this.feePayer,signers:h.map(A=>A.publicKey)})?u.push(new St().add(...r.instructions,...l)):u.push(new St().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 F;let{sequentially:h,onTxUpdate:A,skipTxCount:T=0,recentBlockHash:S,skipPreflight:x=!0}=g||{},M=S!=null?S:await ct(this.connection,this.blockhashCommitment);if(u.forEach(async(b,I)=>{b.recentBlockhash=M,c[I].length&&b.sign(...c[I])}),$e(u),(F=this.owner)!=null&&F.isKeyPair){if(h){let b=0,I=[];for(let K of u){if(++b,b<=T){I.push("tx skipped");continue}let O=await xn(this.connection,K,this.signers.find(R=>R.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=[],R=async()=>{if(!I[K])return;K<T&&(O.push({txId:"",status:"success",signedTx:I[K]}),A==null||A([...O]),K++,R());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 Z=!1,U=null,N=null,Q=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||R()};this.loopMultiTxStatus&&(U=setInterval(async()=>{var q;if(Z){clearInterval(U);return}try{let ne=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(Z=!0,clearInterval(U),Q({err:((q=ne.meta)==null?void 0:q.err)||null}),console.log("tx status from getTransaction:",V))}catch(ne){Z=!0,clearInterval(U),console.error("getTransaction timeout:",ne,V)}},Jt)),N=this.connection.onSignature(V,q=>{if(Z){this.connection.removeSignatureListener(N);return}Z=!0,Q(q)},"confirmed"),this.connection.getSignatureStatus(V)};return await R(),{txIds:O.map(V=>V.txId),signedTxs:I}}else{let K=[];for(let O=0;O<I.length;O+=1){let R=await this.connection.sendRawTransaction(I[O].serialize(),{skipPreflight:x});K.push(R)}return{txIds:K,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var F;let M=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:r=[],insCountLimit:s=12}=M,u=xe(M,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),c=L(L({},this.cluster==="devnet"?await Bn(this.connection):await In(this.connection)),i),l=Array.from(new Set([...this.lookupTableAddress,...r])),m=[];for(let b of l)c[b]===void 0&&m.push(new lt(b));let p=await hn({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 ct(this.connection,this.blockhashCommitment),h=this.signers.reduce((b,I)=>E(L({},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&&(Bt({instructions:K,payer:this.feePayer,lookupTableAddressAccount:c})||Bt({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 R of[...new Set(l)])c[R]!==void 0&&(O[R]=c[R]);if(t&&Bt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let R=new xt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Kt(R))}else{let R=new xt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Kt(R))}T.push(Array.from(new Set(S.map(R=>R.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(R=>h[R]).filter(R=>R!==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&&Bt({instructions:[...P.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:c,recentBlockhash:g})){let K=new xt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...P.instructions,...S]}).compileToV0Message(Object.values(c));A.push(new Kt(K))}else{let K=new xt({payerKey:this.feePayer,recentBlockhash:g,instructions:[...S]}).compileToV0Message(Object.values(c));A.push(new Kt(K))}T.push(I)}return(F=this.owner)!=null&&F.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 Z;let{sequentially:I,onTxUpdate:K,skipTxCount:O=0,recentBlockHash:R,skipPreflight:V=!0}=b||{};if(A.map(async(U,N)=>{T[N].length&&U.sign(T[N]),R&&(U.message.recentBlockhash=R)}),$e(A),(Z=this.owner)!=null&&Z.isKeyPair){if(I){let U=0,N=[];for(let Q of A){if(++U,U<=O){console.log("skip tx: ",U),N.push("tx skipped");continue}let q=await this.connection.sendTransaction(Q,{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 Q=0,q=[],ne=async()=>{if(!N[Q])return;if(Q<O){q.push({txId:"",status:"success",signedTx:N[Q]}),K==null||K([...q]),Q++,ne();return}let Ae=await this.connection.sendTransaction(N[Q],{skipPreflight:V});q.push({txId:Ae,status:"sent",signedTx:N[Q]}),K==null||K([...q]),Q++;let yt=!1,tt=null,vt=null,_n=Ze=>{tt!==null&&clearInterval(tt),vt!==null&&this.connection.removeSignatureListener(vt);let Ee=q.findIndex(ei=>ei.txId===Ae);if(Ee>-1){if(q[Ee].status==="error"||q[Ee].status==="success")return;q[Ee].status=Ze.err?"error":"success"}K==null||K([...q]),Ze.err||ne()};this.loopMultiTxStatus&&(tt=setInterval(async()=>{var Ze;if(yt){clearInterval(tt);return}try{let Ee=await this.connection.getTransaction(Ae,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ee&&(yt=!0,clearInterval(tt),_n({err:((Ze=Ee.meta)==null?void 0:Ze.err)||null}),console.log("tx status from getTransaction:",Ae))}catch(Ee){yt=!0,clearInterval(tt),console.error("getTransaction timeout:",Ee,Ae)}},Jt)),vt=this.connection.onSignature(Ae,Ze=>{if(yt){this.connection.removeSignatureListener(vt);return}yt=!0,_n(Ze)},"confirmed"),this.connection.getSignatureStatus(Ae)};return ne(),{txIds:[],signedTxs:N}}else{let Q=[];for(let q=0;q<N.length;q+=1){let ne=await this.connection.sendTransaction(N[q],{skipPreflight:V});Q.push(ne)}return{txIds:Q,signedTxs:N}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var Kn=(...a)=>a.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),ge=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(Kn(e))}logInfo(...e){this.logger.info(Kn(e))}logAndCreateError(...e){let t=Kn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as am,SystemProgram as um}from"@solana/web3.js";import mm from"bn.js";import{createCloseAccountInstruction as ym,createInitializeAccountInstruction as bm,createTransferInstruction as gm,TOKEN_PROGRAM_ID as Pm}from"@solana/spl-token";import{Keypair as Yl,PublicKey as Ql}from"@solana/web3.js";import jl from"bn.js";import{TOKEN_PROGRAM_ID as em}from"@solana/spl-token";var tn=k([d("mint"),d("owner"),o("amount"),$("delegateOption"),d("delegate"),w("state"),$("isNativeOption"),o("isNative"),o("delegatedAmount"),$("closeAuthorityOption"),d("closeAuthority")]);import{PublicKey as lg,SystemProgram as mg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as pg}from"@solana/spl-token";import{PublicKey as zm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ym}from"@solana/spl-token";import{PublicKey as v}from"@solana/web3.js";var Ko=new v("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Co=new v("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ro=new v("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Cn=new v("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),jm=new v("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),ur=new v("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Lo=new v("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Oo=new v("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),$m=new v("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),cr=new v("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),No=new v("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),lr=new v("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),mr=new v("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),Mo=new v("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Jm=new v("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),dr=new v("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Rn=new v("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),pr=new v("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),ed=new v("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),fr=new v("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),yr=new v("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),br=new v("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),td=new v("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),nd=new v("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),od=new v("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),id=new v("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),rd=new v("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var ze={OPEN_BOOK_PROGRAM:new v("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new v("Ray1111111111111111111111111111111111111111"),AMM_V4:new v("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new v("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new v("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new v("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new v("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new v("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new v("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new v("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new v("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new v("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:v.default,Router:new v("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new v("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new v("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new v("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new v("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new v("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new v("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new v("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new v("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new v("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSf