UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 97.6 kB
var Uo=Object.defineProperty,Go=Object.defineProperties;var zo=Object.getOwnPropertyDescriptors;var St=Object.getOwnPropertySymbols;var Bn=Object.prototype.hasOwnProperty,Sn=Object.prototype.propertyIsEnumerable;var In=(a,e,t)=>e in a?Uo(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,N=(a,e)=>{for(var t in e||(e={}))Bn.call(e,t)&&In(a,t,e[t]);if(St)for(var t of St(e))Sn.call(e,t)&&In(a,t,e[t]);return a},D=(a,e)=>Go(a,zo(e));var Te=(a,e)=>{var t={};for(var n in a)Bn.call(a,n)&&e.indexOf(n)<0&&(t[n]=a[n]);if(a!=null&&St)for(var n of St(a))e.indexOf(n)<0&&Sn.call(a,n)&&(t[n]=a[n]);return t};import ot from"bn.js";import W from"bn.js";var X=new W(1).shln(64),qe=64,Xo=new W(1).shln(128),Ce=new W(1).shln(64).subn(1),Yo=new W(1).shln(128).subn(1),fe=-443636,ye=443636,Oe=new W("4295048016"),Ne=new W("79226673521066979257578248091"),xn=new W("59543866431248"),Kn=new W("184467440737095516"),Cn=new W("15793534762490258745"),Rn=16,xt=512,de=60,Za=new W("18446743708227953217"),Ln=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}],Re=1e6;var Kt=1e5,rt=1e4,On=1e4,Nn=1e5;var at=3,Mn=100;var Fn=10,vn=100,Ue=14;var K=new W(0),he=new W(1),Ha=new W(-1);var ja=new W("18446744073700000000");import Rt from"bn.js";import Dn from"decimal.js";import Qo from"bn.js";import Vn from"decimal.js";function j(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function Q(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 Ct(a,e){return a.div(e).add(a.mod(e).isZero()?K:he)}var ns=new Qo(1).shln(256).subn(1);function _n(a){return a.isZero()?-1:a.bitLength()-1}function En(a,e){return new Vn(a.toString()).div(Vn.pow(2,64)).toDecimalPlaces(e)}var pe=class{static getDeltaAmountAUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=n.shln(qe),c=t.sub(e);if(!e.gt(K))throw Error("!sqrtPriceX64A.gt(BN_ZERO)");let u=i?Ct(Q(r,c,t),e):j(r,c,t).div(e);if(u.gt(Ce))throw Error("MaxTokenOverflow");return u}static getDeltaAmountBUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=i?Q(n,t.sub(e),X):j(n,t.sub(e),X);if(r.gt(Ce))throw Error("MaxTokenOverflow");return r}static addDelta(e,t){if(t.isNeg()){let n=t.neg();if(e.lt(n))throw new Error("Liquidity underflow");return e.sub(n)}else return e.add(t)}static getLiquidityFromAmountA(e,t,n){if(n.isZero())return K;e.gt(t)&&([e,t]=[t,e]);let i=j(e,t,X),r=t.sub(e);return j(n,i,r)}static getLiquidityFromAmountB(e,t,n){if(n.isZero())return K;e.gt(t)&&([e,t]=[t,e]);let i=t.sub(e);return j(n,X,i)}static getLiquidityFromAmounts(e,t,n,i,r){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return this.getLiquidityFromAmountA(t,n,i);if(e.lt(n)){let c=this.getLiquidityFromAmountA(e,n,i),u=this.getLiquidityFromAmountB(t,e,r);return c.lt(u)?c:u}else return this.getLiquidityFromAmountB(t,n,r)}static getAmountsForLiquidity(e,t,n,i,r){t.gt(n)&&([t,n]=[n,t]);let c=K,u=K;return e.lte(t)?c=this.getDeltaAmountAUnsigned(t,n,i,r):e.lt(n)?(c=this.getDeltaAmountAUnsigned(e,n,i,r),u=this.getDeltaAmountBUnsigned(t,e,i,r)):u=this.getDeltaAmountBUnsigned(t,n,i,r),{amountA:c,amountB:u}}static getAmountsFromLiquidityWithSlippage(e,t,n,i,r,c,u){let{amountA:p,amountB:d}=this.getAmountsForLiquidity(e,t,n,i,c),y=r?1+u:1-u,P=new Rt(new Dn(p.toString()).mul(y).toFixed(0)),k=new Rt(new Dn(d.toString()).mul(y).toFixed(0));return{amountSlippageA:P,amountSlippageB:k}}static getLiquidityAndAmountsFromAmount({sqrtPriceCurrentX64:e,sqrtPriceLowerX64:t,sqrtPriceUpperX64:n,amountInfo:i}){let r;if(i.type==="liquidity")r=i.amount;else if(i.type==="amountA")r=e.gte(n)?K:this.getLiquidityFromAmountA(Rt.max(e,t),n,i.amount);else if(i.type==="amountB")r=e.lte(t)?K:this.getLiquidityFromAmountB(t,Rt.min(e,n),i.amount);else throw Error("amount info type check error");return N({liquidity:r},this.getAmountsForLiquidity(e,t,n,i.amount,!0))}};import{PublicKey as Wo}from"@solana/web3.js";import Tn from"bn.js";import{PublicKey as si}from"@solana/web3.js";import Xn,{isBN as Yn}from"bn.js";import{bits as Zo,BitStructure as ls,blob as Ho,Blob as ms,cstr as ds,f32 as ps,f32be as fs,f64 as ys,f64be as bs,greedy as gs,Layout as jo,ns64 as Ps,ns64be as As,nu64 as $o,nu64be as ws,offset as Jo,s16 as ks,s16be as Ts,s24 as hs,s24be as Is,s32 as ei,s32be as Bs,s40 as Ss,s40be as xs,s48 as Ks,s48be as Cs,s8 as Rs,seq as ti,struct as Ls,Structure as ni,u16 as oi,u16be as Os,u24 as Ns,u24be as Ms,u32 as ii,u32be as Fs,u40 as vs,u40be as Vs,u48 as _s,u48be as Es,u8 as ri,UInt as ai,union as Ds,Union as Ws,unionLayoutDiscriminator as qs,utf8 as Us}from"@solana/buffer-layout";var Lt=jo,Wn=ni;var Zt=ai;var qn=ri,ne=oi;var Ot=ii;var Un=$o;var Pe=ei;var Gn=ti;var E=Ho;var Ht=Zo,zn=Jo;var ve=class extends Lt{constructor(t,n,i){super(t,i);this.blob=E(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)}},Nt=class extends Lt{constructor(t){super(8,t);this._lower=Ht(Ot(),!1),this._upper=Ht(Ot(),!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 N(N({},i),r)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function b(a){return new Zt(1,a)}function Z(a){return new Zt(4,a)}function o(a){return new ve(8,!1,a)}function M(a){return new ve(16,!1,a)}function Qn(a){return new ve(1,!0,a)}function Ge(a){return new ve(8,!0,a)}function Zn(a){return new ve(16,!0,a)}var st=class extends Lt{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 s(a){return new st(E(32),e=>new si(e),e=>e.toBuffer(),a)}function be(a){return new st(qn(),ui,ci,a)}function ui(a){if(a===0)return!1;if(a===1)return!0;throw new Error("Invalid bool: "+a)}function ci(a){return a?1:0}function Hn(a,e){let t=Ot("length"),n=g([t,A(a,zn(t,-t.span),"values")]);return new st(n,({values:i})=>i,i=>({values:i}),e)}var jt=class extends Wn{decode(e,t){return super.decode(e,t)}};function g(a,e,t){return new jt(a,e,t)}function A(a,e,t){let n,i=typeof e=="number"?e:Yn(e)?e.toNumber():new Proxy(e,{get(r,c){if(!n){let u=Reflect.get(r,"count");n=Yn(u)?u.toNumber():u,Reflect.set(r,"count",n)}return Reflect.get(r,c)},set(r,c,u){return c==="count"&&(n=u),Reflect.set(r,c,u)}});return Gn(a,i,t)}var li=g([E(8),b("bump"),ne("index"),s("owner"),Z("protocolFeeRate"),Z("tradeFeeRate"),ne("tickSpacing"),Z("fundFeeRate"),A(Z(),1),s("fundOwner"),A(o(),3)]),mi=g([Z("blockTimestamp"),Ge("tickCumulative"),A(o(),4)]),jn=g([E(8),be("initialized"),o("recentEpoch"),ne("observationIndex"),s("poolId"),A(mi,Mn,"observations"),A(o(),4)]),di=g([ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),Pe("tickSpacingIndexReference"),Z("volatilityReference"),Z("volatilityAccumulator"),o("lastUpdateTimestamp"),A(b(),46)]),pi=g([b("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),M("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),s("mint"),s("vault"),s("creator"),M("growthGlobalX64")]),$t=g([E(8),b("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("observationId"),b("mintDecimalsA"),b("mintDecimalsB"),ne("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),Pe("tickCurrent"),Z(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),A(M(),4),b("status"),b("feeOn"),E(6),A(pi,at,"rewardInfos"),E(8*16,"tickArrayBitmap"),A(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),di.replicate("dynamicFeeInfo"),A(o(),46)]),fi=g([M("growthInsideLastX64"),o("rewardAmountOwed")]),yi=g([E(8),b("bump"),s("nftMint"),s("poolId"),Pe("tickLower"),Pe("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(fi,at,"rewardInfos"),o("recentEpoch"),A(o(),7)]),tu=g([E(8),b("bump"),s("poolId"),Pe("tickLower"),Pe("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(M(),at,"rewardGrowthInside"),o("recentEpoch"),A(o(),7)]),bi=g([Pe("tick"),Zn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),A(M(),at,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),M("unfilledRatioX64"),A(Z(),3)]),$n=g([E(8),s("poolId"),Pe("startTickIndex"),A(bi,de,"ticks"),b("initializedTickCount"),o("recentEpoch"),A(b(),107)]),gi=g([E(8),b("bump"),A(s(),Fn,"operationOwners"),A(s(),vn,"whitelistMints")]),Pi=g([E(8),s("poolId"),s("owner"),Pe("tick"),be("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),M("unfilledRatioX64"),A(o(),4)]),Jn=g([E(8),s("poolId"),E(8*8*Ue,"positiveTickArrayBitmap"),E(8*8*Ue,"negativeTickArrayBitmap")]),nu=g([E(8),ne("index"),ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),A(o(),8)]),Ai=g([E(8),s("wallet"),b("nonceIndex"),o("orderNonce"),A(o(),4)]),ou=g([o(),b("bump"),s("owner"),s("poolId"),s("positionId"),s("nftAccount"),A(o(),8)]),wi=g([E(8),b("bump"),s("lockOwner"),s("poolId"),s("positionId"),s("nftAccount"),s("lockNftMint"),o("recentEpoch"),A(o(),8)]);import{PublicKey as hi}from"@solana/web3.js";import{get as eo,set as ki}from"lodash";var Jt=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}},to={},Ti={};function q(a){let e=eo(to,a);if(!e){let t=eo(Ti,a);e=new Jt({name:a,logLevel:t}),ki(to,a,e)}return e}import{MINT_SIZE as fu,TOKEN_PROGRAM_ID as yu,getTransferFeeConfig as bu,unpackMint as gu}from"@solana/spl-token";var en=q("Raydium_accountInfo_util");async function Le(a,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:r=100}=N({batchRequest:!1},t),c=tn(e,r),u=new Array(c.length).fill([]);if(n){let p=c.map(P=>{let k=a._buildArgs([P.map(w=>w.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:k}}),d=tn(p,10);u=(await(await Promise.all(d.map(async P=>await a._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${P.error.message}`),P.result.value.map(k=>{if(k){let{data:w,executable:R,lamports:h,owner:I,rentEpoch:B}=k;return w.length!==2&&w[1]!=="base64"&&en.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:R,lamports:h,owner:new hi(I),rentEpoch:B}}return null})))}else try{u=await Promise.all(c.map(p=>a.getMultipleAccountsInfo(p,i)))}catch(p){p instanceof Error&&en.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.message}`)}return u.flat()}import De from"bn.js";import CC from"decimal.js";import Li from"big.js";import Mu from"bn.js";import Ii from"toformat";var Bi=Ii,ct=Bi;import Ft from"big.js";import xi from"bn.js";import Ki from"decimal.js-light";import lt from"bn.js";var no=9007199254740991;function ce(a){let e=q("Raydium_parseBigNumberish");if(a instanceof lt)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new lt(a);e.logWithError(`invalid BigNumberish string: ${a}`)}return typeof a=="number"?(a%1&&e.logWithError(`BigNumberish number underflow: ${a}`),(a>=no||a<=-no)&&e.logWithError(`BigNumberish number overflow: ${a}`),new lt(String(a))):typeof a=="bigint"?new lt(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new lt(0))}var Mt=q("module/fraction"),nn=ct(Ft),mt=ct(Ki),Ci={[0]:mt.ROUND_DOWN,[1]:mt.ROUND_HALF_UP,[2]:mt.ROUND_UP},Ri={[0]:Ft.roundDown,[1]:Ft.roundHalfUp,[2]:Ft.roundUp},Y=class{constructor(e,t=new xi(1)){this.numerator=ce(e),this.denominator=ce(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(ce(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(ce(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(ce(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(ce(e));return new Y(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Mt.logWithError(`${e} is not an integer.`),e<=0&&Mt.logWithError(`${e} is not positive.`),mt.set({precision:e+1,rounding:Ci[n]});let i=new mt(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)||Mt.logWithError(`${e} is not an integer.`),e<0&&Mt.logWithError(`${e} is negative.`),nn.DP=e,nn.RM=Ri[n]||1,new nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Uu=q("Raydium_amount"),Gu=ct(Li);import{PublicKey as Ni}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as oo}from"@solana/spl-token";var vt={chainId:101,address:Ni.default.toBase58(),programId:oo.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Be={chainId:101,address:"So11111111111111111111111111111111111111112",programId:oo.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 rn}from"@solana/web3.js";import{PublicKey as H,SystemProgram as io,SYSVAR_RENT_PUBKEY as Mi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fi}from"@solana/spl-token";function ze({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var vi=[ze({pubkey:Fi,isWritable:!1}),ze({pubkey:io.programId,isWritable:!1}),ze({pubkey:Mi,isWritable:!1})];function ro({publicKey:a,transformSol:e}){let t=ao(a.toString());if(t instanceof H)return e&&t.equals(Ve)?Ie:t;if(e&&t.toString()===Ve.toBase58())return Ie;if(typeof t=="string"){if(t===H.default.toBase58())return H.default;try{return new H(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function ao(a){try{return new H(a)}catch{return a}}var on=new H("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new H("SysvarRent111111111111111111111111111111111"),Vi=new H("SysvarC1ock11111111111111111111111111111111"),Vt=new H("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_i=new H("Sysvar1nstructions1111111111111111111111111"),so=io.programId,$u=new H("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ju=new H("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ec=new H("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),tc=new H("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),nc=new H("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),oc=new H("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),ic=new H("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),rc=new H("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ac=new H("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),sc=new H("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),uc=new H("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=new H("So11111111111111111111111111111111111111112"),Ve=H.default;var an=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:c=!1}){if(e===Ve.toBase58()||e instanceof rn&&Ve.equals(e)){this.decimals=Be.decimals,this.symbol=Be.symbol,this.name=Be.name,this.mint=new rn(Be.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?rn.default:ro({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}},se=an;se.WSOL=new an(D(N({},Be),{mint:Be.address}));var sn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},_t=sn;_t.SOL=new sn(vt);import Ei from"bn.js";var wc=new Y(new Ei(100));var Sc=q("Raydium_price");import{merge as CK}from"lodash";import Fc from"axios";var uo={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"},Di=D(N({},uo),{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 il=q("Raydium_Api");import{PublicKey as Om,SystemProgram as Nm}from"@solana/web3.js";import{AccountLayout as _m,createAssociatedTokenAccountIdempotentInstruction as Em,TOKEN_PROGRAM_ID as Dm,TOKEN_2022_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as je,sendAndConfirmTransaction as pn,SystemProgram as Xi,Transaction as ft,TransactionMessage as yt,VersionedTransaction as bt}from"@solana/web3.js";import Yi from"axios";import{PublicKey as un,AddressLookupTableAccount as Ze}from"@solana/web3.js";async function cn({connection:a,address:e,cluster:t="mainnet"}){let n=await Le(a,[...new Set(e.map(r=>r.toString()))].map(r=>new un(r))),i={};for(let r=0;r<e.length;r++){let c=n[r],u=e[r];if(!c)continue;let p=new Ze({key:u,state:Ze.deserialize(c.data)});i[u.toString()]=p,t==="devnet"?Qe[u.toString()]=p:Ye[u.toString()]=p}return i}var Ye={},ln=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ye[e])return Ye;let t=new un(e),n=await a.getAccountInfo(t);return n&&(Ye[e]=new Ze({key:t,state:Ze.deserialize(n.data)})),Ye},Qe={},mn=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Qe[e])return Qe;let t=new un(e),n=await a.getAccountInfo(t);return n&&(Qe[e]=new Ze({key:t,state:Ze.deserialize(n.data)})),Qe};var oe={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 co,Keypair as mo,PublicKey as Wi,Transaction as po,TransactionMessage as qi,VersionedTransaction as fo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ui}from"@solana/spl-token";var lo=q("Raydium_txUtil"),yo=1644;function Et(a){let e=[],t=[];return a.microLamports&&(e.push(co.setComputeUnitPrice({microLamports:a.microLamports})),t.push(oe.SetComputeUnitPrice)),a.units&&(e.push(co.setComputeUnitLimit({units:a.units})),t.push(oe.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function He(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 Dt(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 dn(a,e){a.length<1&&lo.logWithError(`no instructions provided: ${a.toString()}`),e.length<1&&lo.logWithError(`no signers provided:, ${e.toString()}`);let t=new po;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...a);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<yo}catch{return!1}}function Ae(a,e){let[t,n]=Wi.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function dt({instructions:a,payer:e,signers:t}){return dn(a,[e,...t])}function pt({instructions:a,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=mo.generate().publicKey.toString()}){let r=new qi({payerKey:e,recentBlockhash:n,instructions:a}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new fo(r).serialize()).toString("base64").length<yo}catch{return!1}}var Gi=a=>Buffer.isBuffer(a)?a:a instanceof Uint8Array?Buffer.from(a.buffer,a.byteOffset,a.byteLength):Buffer.from(a),zi=a=>{let e=a.serialize({requireAllSignatures:!1,verifySignatures:!1});a instanceof fo&&(e=Gi(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 po&&(t.recentBlockhash||(t.recentBlockhash=Ui.toBase58()),t.feePayer||(t.feePayer=mo.generate().publicKey)),e.push(zi(t))}),console.log("simulate tx string:",e),e}var Wt=2e3,qt=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 Yi.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}=Et(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Xi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new je(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(oe.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:c=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...c.filter(u=>u!==je.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(D(N({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new ft;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 y;let{recentBlockHash:r,skipPreflight:c=!0,sendAndConfirm:u,notSendToRpc:p}=i||{},d=r!=null?r:await He(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),_e([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:u?await pn(this.connection,t,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:c}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:c}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let k of P)try{k.sign(...this.signers)}catch{}return{txId:p?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:c}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var d;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),r=t.filter(y=>y.transaction.instructions.length>0),c=[i,...r.map(y=>y.transaction)],u=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&u.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:u,instructionTypes:p,execute:async y=>{var B;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:R,skipPreflight:h=!0}=y||{},I=R!=null?R:await He(this.connection,this.blockhashCommitment);if((B=this.owner)!=null&&B.isKeyPair){if(P){let S=[],F=0;for(let v of c){if(++F,F<=w)continue;let f=await pn(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});S.push(f)}return{txIds:S,signedTxs:c}}return{txIds:await await Promise.all(c.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:h})))),signedTxs:c}}if(this.signAllTransactions){let S=c.map((v,f)=>(v.recentBlockhash=I,u[f].length&&v.sign(...u[f]),v));_e(S);let F=await this.signAllTransactions(S);if(P){let v=0,f=[],T=async()=>{if(!F[v])return;let x=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:h});f.push({txId:x,status:"sent",signedTx:F[v]}),k==null||k([...f]),v++;let O=!1,L=null,V=null,ie=z=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let _=f.findIndex(J=>J.txId===x);if(_>-1){if(f[_].status==="error"||f[_].status==="success")return;f[_].status=z.err?"error":"success"}k==null||k([...f]),z.err||T()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var z;if(O){clearInterval(L);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(O=!0,clearInterval(L),ie({err:((z=_.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){O=!0,clearInterval(L),console.error("getTransaction timeout:",_,x)}},Wt)),V=this.connection.onSignature(x,z=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,ie(z)},"confirmed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:f.map(x=>x.txId),signedTxs:F}}else{let v=[];for(let f=0;f<F.length;f+=1){let T=await this.connection.sendRawTransaction(F[f].serialize(),{skipPreflight:h});v.push(T)}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 h;let R=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:r}=R,c=Te(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=N(N({},this.cluster==="devnet"?await mn(this.connection):await ln(this.connection)),t),p=Array.from(new Set([...n,...this.lookupTableAddress])),d=[];for(let I of p)u[I]===void 0&&d.push(new je(I));let y=await cn({connection:this.connection,address:d});for(let[I,B]of Object.entries(y))u[I]=B;let P=i?je.default.toBase58():r!=null?r:await He(this.connection,this.blockhashCommitment),k=new yt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new bt(k);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var v;let{skipPreflight:B=!0,sendAndConfirm:S,notSendToRpc:F}=I||{};if(_e([w]),(v=this.owner)!=null&&v.isKeyPair){let f=await this.connection.sendTransaction(w,{skipPreflight:B});return S&&await Dt(this.connection,f),{txId:f,signedTx:w}}if(this.signAllTransactions){let f=await this.signAllTransactions([w]);if(this.signers.length)for(let T of f)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(f[0],{skipPreflight:B}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(e){var d;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),r=t.filter(y=>y.builder.instructions.length>0),c=[i,...r.map(y=>y.transaction)],u=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&u.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(y,P)=>{y.sign(u[P])}),{builder:this,transactions:c,signers:u,instructionTypes:p,buildProps:n,execute:async y=>{var h;let{sequentially:P,onTxUpdate:k,recentBlockHash:w,skipPreflight:R=!0}=y||{};if(w&&c.forEach(I=>I.message.recentBlockhash=w),_e(c),(h=this.owner)!=null&&h.isKeyPair){if(P){let I=[];for(let B of c){let S=await this.connection.sendTransaction(B,{skipPreflight:R});await Dt(this.connection,S),I.push(S)}return{txIds:I,signedTxs:c}}return{txIds:await Promise.all(c.map(async I=>await this.connection.sendTransaction(I,{skipPreflight:R}))),signedTxs:c}}if(this.signAllTransactions){let I=await this.signAllTransactions(c);if(P){let B=0,S=[],F=async()=>{if(!I[B])return;let v=await this.connection.sendTransaction(I[B],{skipPreflight:R});S.push({txId:v,status:"sent",signedTx:I[B]}),k==null||k([...S]),B++;let f=!1,T=null,x=null,O=L=>{T!==null&&clearInterval(T),x!==null&&this.connection.removeSignatureListener(x);let V=S.findIndex(ie=>ie.txId===v);if(V>-1){if(S[V].status==="error"||S[V].status==="success")return;S[V].status=L.err?"error":"success"}k==null||k([...S]),L.err||F()};this.loopMultiTxStatus&&(T=setInterval(async()=>{var L;if(f){clearInterval(T);return}try{let V=await this.connection.getTransaction(v,{commitment:"confirmed",maxSupportedTransactionVersion:0});V&&(f=!0,clearInterval(T),O({err:((L=V.meta)==null?void 0:L.err)||null}),console.log("tx status from getTransaction:",v))}catch(V){f=!0,clearInterval(T),console.error("getTransaction timeout:",V,v)}},Wt)),x=this.connection.onSignature(v,L=>{if(f){this.connection.removeSignatureListener(x);return}f=!0,O(L)},"confirmed"),this.connection.getSignatureStatus(v)};return F(),{txIds:[],signedTxs:I}}else{let B=[];for(let S=0;S<I.length;S+=1){let F=await this.connection.sendTransaction(I[S],{skipPreflight:R});B.push(F)}return{txIds:B,signedTxs:I}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var k;let P=e||{},{splitIns:t=[],computeBudgetConfig:n}=P,i=Te(P,["splitIns","computeBudgetConfig"]),r=n?Et(n):{instructions:[],instructionTypes:[]},c=this.signers.reduce((w,R)=>D(N({},w),{[R.publicKey.toBase58()]:R}),{}),u=[],p=[],d=[],y=0;if(this.allInstructions.forEach(w=>{let R=[...d,w],h=n?[...r.instructions,...R]:R,B=[...new Set(R.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(S=>new je(S));if(w!==t[y]&&d.length<12&&(dt({instructions:h,payer:this.feePayer,signers:B})||dt({instructions:R,payer:this.feePayer,signers:B})))d.push(w);else{if(d.length===0)throw Error("item ins too big");y+=w===t[y]?1:0,dt({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:B})?u.push(new ft().add(...r.instructions,...d)):u.push(new ft().add(...d)),p.push(Array.from(new Set(d.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(S=>c[S]).filter(S=>S!==void 0)),d=[w]}}),d.length>0){let R=[...new Set(d.map(h=>h.keys.filter(I=>I.isSigner).map(I=>I.pubkey.toString())).flat()).values()].map(h=>c[h]).filter(h=>h!==void 0);dt({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:R.map(h=>h.publicKey)})?u.push(new ft().add(...r.instructions,...d)):u.push(new ft().add(...d)),p.push(R)}return u.forEach(w=>w.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&p.forEach(w=>{w.some(R=>R.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:u,signers:p,instructionTypes:this.instructionTypes,execute:async w=>{var v;let{sequentially:R,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:B,skipPreflight:S=!0}=w||{},F=B!=null?B:await He(this.connection,this.blockhashCommitment);if(u.forEach(async(f,T)=>{f.recentBlockhash=F,p[T].length&&f.sign(...p[T])}),_e(u),(v=this.owner)!=null&&v.isKeyPair){if(R){let f=0,T=[];for(let x of u){if(++f,f<=I){T.push("tx skipped");continue}let O=await pn(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});T.push(O)}return{txIds:T,signedTxs:u}}return{txIds:await Promise.all(u.map(async f=>await this.connection.sendRawTransaction(f.serialize(),{skipPreflight:S}))),signedTxs:u}}if(this.signAllTransactions){let f=await this.signAllTransactions(u.slice(I,u.length)),T=[...u.slice(0,I),...f];if(R){let x=0,O=[],L=async()=>{if(!T[x])return;x<I&&(O.push({txId:"",status:"success",signedTx:T[x]}),h==null||h([...O]),x++,L());let V=await this.connection.sendRawTransaction(T[x].serialize(),{skipPreflight:S});O.push({txId:V,status:"sent",signedTx:T[x]}),h==null||h([...O]),x++;let ie=!1,z=null,_=null,J=G=>{z!==null&&clearInterval(z),_!==null&&this.connection.removeSignatureListener(_);let re=O.findIndex(xe=>xe.txId===V);if(re>-1){if(O[re].status==="error"||O[re].status==="success")return;O[re].status=G.err?"error":"success"}h==null||h([...O]),G.err||L()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var G;if(ie){clearInterval(z);return}try{let re=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});re&&(ie=!0,clearInterval(z),J({err:((G=re.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(re){ie=!0,clearInterval(z),console.error("getTransaction timeout:",re,V)}},Wt)),_=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(_);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:O.map(V=>V.txId),signedTxs:T}}else{let x=[];for(let O=0;O<T.length;O+=1){let L=await this.connection.sendRawTransaction(T[O].serialize(),{skipPreflight:S});x.push(L)}return{txIds:x,signedTxs:T}}}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:c=12}=F,u=Te(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),p=N(N({},this.cluster==="devnet"?await mn(this.connection):await ln(this.connection)),i),d=Array.from(new Set([...this.lookupTableAddress,...r])),y=[];for(let f of d)p[f]===void 0&&y.push(new je(f));let P=await cn({connection:this.connection,address:y});for(let[f,T]of Object.entries(P))p[f]=T;let k=t?Et(t):{instructions:[],instructionTypes:[]},w=await He(this.connection,this.blockhashCommitment),R=this.signers.reduce((f,T)=>D(N({},f),{[T.publicKey.toBase58()]:T}),{}),h=[],I=[],B=[],S=0;if(this.allInstructions.forEach(f=>{let T=[...B,f],x=t?[...k.instructions,...T]:T;if(f!==n[S]&&B.length<c&&(pt({instructions:x,payer:this.feePayer,lookupTableAddressAccount:p})||pt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:p})))B.push(f);else{if(B.length===0)throw Error("item ins too big");S+=f===n[S]?1:0;let O={};for(let L of[...new Set(d)])p[L]!==void 0&&(O[L]=p[L]);if(t&&pt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let L=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new bt(L))}else{let L=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new bt(L))}I.push(Array.from(new Set(B.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>R[L]).filter(L=>L!==void 0)),B=[f]}}),B.length>0){let T=[...new Set(B.map(x=>x.keys.filter(O=>O.isSigner).map(O=>O.pubkey.toString())).flat()).values()].map(x=>R[x]).filter(x=>x!==void 0);if(t&&pt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let x=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new bt(x))}else{let x=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new bt(x))}I.push(T)}return(v=this.owner)!=null&&v.signer&&I.forEach(f=>{f.some(T=>T.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),h.forEach((f,T)=>{f.sign(I[T])}),{builder:this,transactions:h,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async f=>{var ie;let{sequentially:T,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:L,skipPreflight:V=!0}=f||{};if(h.map(async(z,_)=>{I[_].length&&z.sign(I[_]),L&&(z.message.recentBlockhash=L)}),_e(h),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let z=0,_=[];for(let J of h){if(++z,z<=O){console.log("skip tx: ",z),_.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:V});await Dt(this.connection,G),_.push(G)}return{txIds:_,signedTxs:h}}return{txIds:await Promise.all(h.map(async z=>await this.connection.sendTransaction(z,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let z=await this.signAllTransactions(h.slice(O,h.length)),_=[...h.slice(0,O),...z];if(T){let J=0,G=[],re=async()=>{if(!_[J])return;if(J<O){G.push({txId:"",status:"success",signedTx:_[J]}),x==null||x([...G]),J++,re();return}let xe=await this.connection.sendTransaction(_[J],{skipPreflight:V});G.push({txId:xe,status:"sent",signedTx:_[J]}),x==null||x([...G]),J++;let it=!1,We=null,Bt=null,hn=Fe=>{We!==null&&clearInterval(We),Bt!==null&&this.connection.removeSignatureListener(Bt);let Ke=G.findIndex(qo=>qo.txId===xe);if(Ke>-1){if(G[Ke].status==="error"||G[Ke].status==="success")return;G[Ke].status=Fe.err?"error":"success"}x==null||x([...G]),Fe.err||re()};this.loopMultiTxStatus&&(We=setInterval(async()=>{var Fe;if(it){clearInterval(We);return}try{let Ke=await this.connection.getTransaction(xe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ke&&(it=!0,clearInterval(We),hn({err:((Fe=Ke.meta)==null?void 0:Fe.err)||null}),console.log("tx status from getTransaction:",xe))}catch(Ke){it=!0,clearInterval(We),console.error("getTransaction timeout:",Ke,xe)}},Wt)),Bt=this.connection.onSignature(xe,Fe=>{if(it){this.connection.removeSignatureListener(Bt);return}it=!0,hn(Fe)},"confirmed"),this.connection.getSignatureStatus(xe)};return re(),{txIds:[],signedTxs:_}}else{let J=[];for(let G=0;G<_.length;G+=1){let re=await this.connection.sendTransaction(_[G],{skipPreflight:V});J.push(re)}return{txIds:J,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var fn=(...a)=>a.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),le=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=q(t)}createTxBuilder(e){return this.scope.checkOwner(),new qt({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(fn(e))}logInfo(...e){this.logger.info(fn(e))}logAndCreateError(...e){let t=fn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as cm,SystemProgram as mm}from"@solana/web3.js";import fm from"bn.js";import{createCloseAccountInstruction as Pm,createInitializeAccountInstruction as Am,createTransferInstruction as wm,TOKEN_PROGRAM_ID as km}from"@solana/spl-token";import{Keypair as Hl,PublicKey as jl}from"@solana/web3.js";import em from"bn.js";import{TOKEN_PROGRAM_ID as om}from"@solana/spl-token";var Ut=g([s("mint"),s("owner"),o("amount"),Z("delegateOption"),s("delegate"),b("state"),Z("isNativeOption"),o("isNative"),o("delegatedAmount"),Z("closeAuthorityOption"),s("closeAuthority")]);import{PublicKey as eg,SystemProgram as tg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as og}from"@solana/spl-token";import{PublicKey as Qm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Hm}from"@solana/spl-token";import{PublicKey as C}from"@solana/web3.js";var go=new C("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Po=new C("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ao=new C("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),yn=new C("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),ed=new C("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Zi=new C("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),wo=new C("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ko=new C("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),td=new C("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Hi=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),To=new C("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ji=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new C("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ho=new C("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),nd=new C("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ji=new C("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),er=new C("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),tr=new C("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),nr=new C("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),or=new C("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),bn=new C("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ir=new C("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),od=new C("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),rr=new C("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ar=new C("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),sr=new C("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),id=new C("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),rd=new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ad=new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),sd=new C("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ud=new C("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),gt={IDO_PROGRAM_ID_V1:er,IDO_PROGRAM_ID_V2:tr,IDO_PROGRAM_ID_V3:nr,IDO_PROGRAM_ID_V4:or};var Me={OPEN_BOOK_PROGRAM:new C("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new C("Ray1111111111111111111111111111111111111111"),AMM_V4:new C("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new C("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new C("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new C("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new C("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new C("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new C("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new C("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new C("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:C.default,Router:new C("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new C("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new C("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new C("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new C("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new C("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new C("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new C("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new C("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new C("9y8ENuuZ3b19quffx9hQvRVygG5