@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 98.2 kB
JavaScript
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 he=(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 rt from"bn.js";import q from"bn.js";var z=new q(1).shln(64),Ue=64,Yo=new q(1).shln(128),Ce=new q(1).shln(64).subn(1),Xo=new q(1).shln(128).subn(1),fe=-443636,ye=443636,Oe=new q("4295048016"),Ne=new q("79226673521066979257578248091"),xn=new q("59543866431248"),Kn=new q("184467440737095516"),Cn=new q("15793534762490258745"),Rn=16,xt=512,de=60,Za=new q("18446743708227953217"),Ln=[{bit:0,factor:new q("fffcb933bd6fb800",16)},{bit:1,factor:new q("fff97272373d4000",16)},{bit:2,factor:new q("fff2e50f5f657000",16)},{bit:3,factor:new q("ffe5caca7e10f000",16)},{bit:4,factor:new q("ffcb9843d60f7000",16)},{bit:5,factor:new q("ff973b41fa98e800",16)},{bit:6,factor:new q("ff2ea16466c9b000",16)},{bit:7,factor:new q("fe5dee046a9a3800",16)},{bit:8,factor:new q("fcbe86c7900bb000",16)},{bit:9,factor:new q("f987a7253ac65800",16)},{bit:10,factor:new q("f3392b0822bb6000",16)},{bit:11,factor:new q("e7159475a2caf000",16)},{bit:12,factor:new q("d097f3bdfd2f2000",16)},{bit:13,factor:new q("a9f746462d9f8000",16)},{bit:14,factor:new q("70d869a156f31c00",16)},{bit:15,factor:new q("31be135f97ed3200",16)},{bit:16,factor:new q("9aa508b5b85a500",16)},{bit:17,factor:new q("5d6af8dedc582c",16)},{bit:18,factor:new q("2216e584f5fa",16)}],Re=1e6;var Kt=1e5,st=1e4,On=1e4,Nn=1e5;var ut=3,Mn=100;var Fn=10,vn=100,Ge=14;var R=new q(0),be=new q(1),Ha=new q(-1);var ja=new q("18446744073700000000");import Rt from"bn.js";import Dn from"decimal.js";import Qo from"bn.js";import Vn from"decimal.js";function Z(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function X(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()?R:be)}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 Me=class{static getNextSqrtPriceFromAmountARoundingUp(e,t,n,i){if(n.isZero())return e;let r=t.shln(Ue);if(i){let c=n.mul(e),s=r.add(c);if(s.gte(r))return X(r,e,s);let p=Z(r,be,e);return X(r,be,p.add(n))}else{let c=n.mul(e);if(r.lte(c))throw new Error("Insufficient liquidity for token0 removal");let s=r.sub(c);return X(r,e,s)}}static getNextSqrtPriceFromAmountBRoundingDown(e,t,n,i){if(n.isZero())return e;if(i){let r=n.shln(Ue).div(t);return e.add(r)}else{let r=Ct(n.shln(Ue),t);return e.sub(r)}}static getNextSqrtPriceFromInput(e,t,n,i){if(!e.gt(R))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(R))throw Error("liquidity.gt(BN_ZERO)");return i?this.getNextSqrtPriceFromAmountARoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmountBRoundingDown(e,t,n,!0)}static getNextSqrtPriceFromOutput(e,t,n,i){if(!e.gt(R))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(R))throw Error("liquidity.gt(BN_ZERO)");return i?this.getNextSqrtPriceFromAmountBRoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmountARoundingUp(e,t,n,!1)}static getAmountADeltaUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=t.sub(e),c=n.mul(r).shln(64),s=e.mul(t);return i?X(c,be,s):Z(c,be,s)}static getAmountBDeltaUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=t.sub(e);return i?X(n,r,z):Z(n,r,z)}};var pe=class{static getDeltaAmountAUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=n.shln(Ue),c=t.sub(e);if(!e.gt(R))throw Error("!sqrtPriceX64A.gt(BN_ZERO)");let s=i?Ct(X(r,c,t),e):Z(r,c,t).div(e);if(s.gt(Ce))throw Error("MaxTokenOverflow");return s}static getDeltaAmountBUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=i?X(n,t.sub(e),z):Z(n,t.sub(e),z);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){e.gt(t)&&([e,t]=[t,e]);let i=Z(e,t,z),r=t.sub(e);return Z(n,i,r)}static getLiquidityFromAmountB(e,t,n){e.gt(t)&&([e,t]=[t,e]);let i=t.sub(e);return Z(n,z,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),s=this.getLiquidityFromAmountB(t,e,r);return c.lt(s)?c:s}else return this.getLiquidityFromAmountB(t,n,r)}static getAmountForLiquidityA(e,t,n,i){return Me.getAmountADeltaUnsigned(e,t,n,i)}static getAmountForLiquidityB(e,t,n,i){return Me.getAmountBDeltaUnsigned(e,t,n,i)}static getAmountsForLiquidity(e,t,n,i,r){t.gt(n)&&([t,n]=[n,t]);let c=R,s=R;return e.lte(t)?c=this.getAmountForLiquidityA(t,n,i,r):e.lt(n)?(c=this.getAmountForLiquidityA(e,n,i,r),s=this.getAmountForLiquidityB(t,e,i,r)):s=this.getAmountForLiquidityB(t,n,i,r),{amountA:c,amountB:s}}static getAmountsFromLiquidityWithSlippage(e,t,n,i,r,c,s){let{amountA:p,amountB:d}=this.getAmountsForLiquidity(e,t,n,i,c),y=r?1+s:1-s,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)?R:this.getLiquidityFromAmountA(Rt.max(e,t),n,i.amount);else if(i.type==="amountB")r=e.lte(t)?R: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 Yn,{isBN as Xn}from"bn.js";import{bits as Zo,BitStructure as fs,blob as Ho,Blob as ys,cstr as bs,f32 as gs,f32be as Ps,f64 as As,f64be as ws,greedy as ks,Layout as jo,ns64 as Ts,ns64be as hs,nu64 as $o,nu64be as Is,offset as Jo,s16 as Bs,s16be as Ss,s24 as xs,s24be as Ks,s32 as ei,s32be as Cs,s40 as Rs,s40be as Ls,s48 as Os,s48be as Ns,s8 as Ms,seq as ti,struct as Fs,Structure as ni,u16 as oi,u16be as vs,u24 as Vs,u24be as _s,u32 as ii,u32be as Es,u40 as Ds,u40be as Ws,u48 as qs,u48be as Us,u8 as ri,UInt as ai,union as Gs,Union as zs,unionLayoutDiscriminator as Ys,utf8 as Xs}from"@solana/buffer-layout";var Lt=jo,Wn=ni;var Zt=ai;var qn=ri,ne=oi;var Ot=ii;var Un=$o;var we=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 Yn(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 Yn(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 H(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 ze(a){return new Ve(8,!0,a)}function Zn(a){return new Ve(16,!0,a)}var ct=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 u(a){return new ct(E(32),e=>new si(e),e=>e.toBuffer(),a)}function ge(a){return new ct(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 ct(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:Xn(e)?e.toNumber():new Proxy(e,{get(r,c){if(!n){let s=Reflect.get(r,"count");n=Xn(s)?s.toNumber():s,Reflect.set(r,"count",n)}return Reflect.get(r,c)},set(r,c,s){return c==="count"&&(n=s),Reflect.set(r,c,s)}});return Gn(a,i,t)}var li=g([E(8),b("bump"),ne("index"),u("owner"),H("protocolFeeRate"),H("tradeFeeRate"),ne("tickSpacing"),H("fundFeeRate"),A(H(),1),u("fundOwner"),A(o(),3)]),mi=g([H("blockTimestamp"),ze("tickCumulative"),A(o(),4)]),jn=g([E(8),ge("initialized"),o("recentEpoch"),ne("observationIndex"),u("poolId"),A(mi,Mn,"observations"),A(o(),4)]),di=g([ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),we("tickSpacingIndexReference"),H("volatilityReference"),H("volatilityAccumulator"),o("lastUpdateTimestamp"),A(b(),46)]),pi=g([b("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),M("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),u("mint"),u("vault"),u("creator"),M("growthGlobalX64")]),$t=g([E(8),b("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),b("mintDecimalsA"),b("mintDecimalsB"),ne("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),we("tickCurrent"),H(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),A(M(),4),b("status"),b("feeOn"),E(6),A(pi,ut,"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"),u("nftMint"),u("poolId"),we("tickLower"),we("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(fi,ut,"rewardInfos"),o("recentEpoch"),A(o(),7)]),ru=g([E(8),b("bump"),u("poolId"),we("tickLower"),we("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(M(),ut,"rewardGrowthInside"),o("recentEpoch"),A(o(),7)]),bi=g([we("tick"),Zn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),A(M(),ut,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),M("unfilledRatioX64"),A(H(),3)]),$n=g([E(8),u("poolId"),we("startTickIndex"),A(bi,de,"ticks"),b("initializedTickCount"),o("recentEpoch"),A(b(),107)]),gi=g([E(8),b("bump"),A(u(),Fn,"operationOwners"),A(u(),vn,"whitelistMints")]),Pi=g([E(8),u("poolId"),u("owner"),we("tick"),ge("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),M("unfilledRatioX64"),A(o(),4)]),Jn=g([E(8),u("poolId"),E(8*8*Ge,"positiveTickArrayBitmap"),E(8*8*Ge,"negativeTickArrayBitmap")]),au=g([E(8),ne("index"),ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),H("dynamicFeeControl"),H("maxVolatilityAccumulator"),A(o(),8)]),Ai=g([E(8),u("wallet"),b("nonceIndex"),o("orderNonce"),A(o(),4)]),su=g([o(),b("bump"),u("owner"),u("poolId"),u("positionId"),u("nftAccount"),A(o(),8)]),wi=g([E(8),b("bump"),u("lockOwner"),u("poolId"),u("positionId"),u("nftAccount"),u("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 U(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 Pu,TOKEN_PROGRAM_ID as Au,getTransferFeeConfig as wu,unpackMint as ku}from"@solana/spl-token";var en=U("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),s=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);s=(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:C,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:C,lamports:h,owner:new hi(I),rentEpoch:B}}return null})))}else try{s=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 s.flat()}import We from"bn.js";import SC from"decimal.js";import Li from"big.js";import _u from"bn.js";import Ii from"toformat";var Bi=Ii,mt=Bi;import Ft from"big.js";import xi from"bn.js";import Ki from"decimal.js-light";import dt from"bn.js";var no=9007199254740991;function ce(a){let e=U("Raydium_parseBigNumberish");if(a instanceof dt)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new dt(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 dt(String(a))):typeof a=="bigint"?new dt(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new dt(0))}var Mt=U("module/fraction"),nn=mt(Ft),pt=mt(Ki),Ci={[0]:pt.ROUND_DOWN,[1]:pt.ROUND_HALF_UP,[2]:pt.ROUND_UP},Ri={[0]:Ft.roundDown,[1]:Ft.roundHalfUp,[2]:Ft.roundUp},Q=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 Q(this.denominator,this.numerator)}add(e){let t=e instanceof Q?e:new Q(ce(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.add(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Q?e:new Q(ce(e));return this.denominator.eq(t.denominator)?new Q(this.numerator.sub(t.numerator),this.denominator):new Q(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Q?e:new Q(ce(e));return new Q(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Q?e:new Q(ce(e));return new Q(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.`),pt.set({precision:e+1,rounding:Ci[n]});let i=new pt(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 Xu=U("Raydium_amount"),Qu=mt(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 j,SystemProgram as io,SYSVAR_RENT_PUBKEY as Mi}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Fi}from"@solana/spl-token";function Ye({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var vi=[Ye({pubkey:Fi,isWritable:!1}),Ye({pubkey:io.programId,isWritable:!1}),Ye({pubkey:Mi,isWritable:!1})];function ro({publicKey:a,transformSol:e}){let t=ao(a.toString());if(t instanceof j)return e&&t.equals(_e)?Ie:t;if(e&&t.toString()===_e.toBase58())return Ie;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 ao(a){try{return new j(a)}catch{return a}}var on=new j("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Xe=new j("SysvarRent111111111111111111111111111111111"),Vi=new j("SysvarC1ock11111111111111111111111111111111"),Vt=new j("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),_i=new j("Sysvar1nstructions1111111111111111111111111"),so=io.programId,nc=new j("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),oc=new j("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),ic=new j("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),rc=new j("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),ac=new j("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),sc=new j("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),uc=new j("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),cc=new j("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),lc=new j("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),mc=new j("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),dc=new j("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ie=new j("So11111111111111111111111111111111111111112"),_e=j.default;var an=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:c=!1}){if(e===_e.toBase58()||e instanceof rn&&_e.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 Ic=new Q(new Ei(100));var Rc=U("Raydium_price");import{merge as SK}from"lodash";import Ec 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 ul=U("Raydium_Api");import{PublicKey as vm,SystemProgram as Vm}from"@solana/web3.js";import{AccountLayout as qm,createAssociatedTokenAccountIdempotentInstruction as Um,TOKEN_PROGRAM_ID as Gm,TOKEN_2022_PROGRAM_ID as zm}from"@solana/spl-token";import{PublicKey as $e,sendAndConfirmTransaction as pn,SystemProgram as Yi,Transaction as bt,TransactionMessage as gt,VersionedTransaction as Pt}from"@solana/web3.js";import Xi from"axios";import{PublicKey as un,AddressLookupTableAccount as He}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],s=e[r];if(!c)continue;let p=new He({key:s,state:He.deserialize(c.data)});i[s.toString()]=p,t==="devnet"?Ze[s.toString()]=p:Qe[s.toString()]=p}return i}var Qe={},ln=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Qe[e])return Qe;let t=new un(e),n=await a.getAccountInfo(t);return n&&(Qe[e]=new He({key:t,state:He.deserialize(n.data)})),Qe},Ze={},mn=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ze[e])return Ze;let t=new un(e),n=await a.getAccountInfo(t);return n&&(Ze[e]=new He({key:t,state:He.deserialize(n.data)})),Ze};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=U("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 je(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 ke(a,e){let[t,n]=Wi.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function ft({instructions:a,payer:e,signers:t}){return dn(a,[e,...t])}function yt({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 Ee(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 Xi.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(Yi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new $e(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(s=>s!==$e.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 bt;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:s,notSendToRpc:p}=i||{},d=r!=null?r:await je(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),Ee([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:s?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)],s=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&s.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:s,instructionTypes:p,execute:async y=>{var B;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:C,skipPreflight:h=!0}=y||{},I=C!=null?C:await je(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,s[f].length&&v.sign(...s[f]),v));Ee(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=Y=>{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=Y.err?"error":"success"}k==null||k([...f]),Y.err||T()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var Y;if(O){clearInterval(L);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(O=!0,clearInterval(L),ie({err:((Y=_.meta)==null?void 0:Y.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,Y=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,ie(Y)},"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 C=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:r}=C,c=he(C,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=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)s[I]===void 0&&d.push(new $e(I));let y=await cn({connection:this.connection,address:d});for(let[I,B]of Object.entries(y))s[I]=B;let P=i?$e.default.toBase58():r!=null?r:await je(this.connection,this.blockhashCommitment),k=new gt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((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 Pt(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(Ee([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)],s=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&s.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(y,P)=>{y.sign(s[P])}),{builder:this,transactions:c,signers:s,instructionTypes:p,buildProps:n,execute:async y=>{var h;let{sequentially:P,onTxUpdate:k,recentBlockHash:w,skipPreflight:C=!0}=y||{};if(w&&c.forEach(I=>I.message.recentBlockhash=w),Ee(c),(h=this.owner)!=null&&h.isKeyPair){if(P){let I=[];for(let B of c){let S=await this.connection.sendTransaction(B,{skipPreflight:C});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:C}))),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:C});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:C});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=he(P,["splitIns","computeBudgetConfig"]),r=n?Et(n):{instructions:[],instructionTypes:[]},c=this.signers.reduce((w,C)=>D(N({},w),{[C.publicKey.toBase58()]:C}),{}),s=[],p=[],d=[],y=0;if(this.allInstructions.forEach(w=>{let C=[...d,w],h=n?[...r.instructions,...C]:C,B=[...new Set(C.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(S=>new $e(S));if(w!==t[y]&&d.length<12&&(ft({instructions:h,payer:this.feePayer,signers:B})||ft({instructions:C,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,ft({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:B})?s.push(new bt().add(...r.instructions,...d)):s.push(new bt().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 C=[...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);ft({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:C.map(h=>h.publicKey)})?s.push(new bt().add(...r.instructions,...d)):s.push(new bt().add(...d)),p.push(C)}return s.forEach(w=>w.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&p.forEach(w=>{w.some(C=>C.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),{builder:this,transactions:s,signers:p,instructionTypes:this.instructionTypes,execute:async w=>{var v;let{sequentially:C,onTxUpdate:h,skipTxCount:I=0,recentBlockHash:B,skipPreflight:S=!0}=w||{},F=B!=null?B:await je(this.connection,this.blockhashCommitment);if(s.forEach(async(f,T)=>{f.recentBlockhash=F,p[T].length&&f.sign(...p[T])}),Ee(s),(v=this.owner)!=null&&v.isKeyPair){if(C){let f=0,T=[];for(let x of s){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:s}}return{txIds:await Promise.all(s.map(async f=>await this.connection.sendRawTransaction(f.serialize(),{skipPreflight:S}))),signedTxs:s}}if(this.signAllTransactions){let f=await this.signAllTransactions(s.slice(I,s.length)),T=[...s.slice(0,I),...f];if(C){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,Y=null,_=null,J=G=>{Y!==null&&clearInterval(Y),_!==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&&(Y=setInterval(async()=>{var G;if(ie){clearInterval(Y);return}try{let re=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});re&&(ie=!0,clearInterval(Y),J({err:((G=re.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(re){ie=!0,clearInterval(Y),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,s=he(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 $e(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 je(this.connection,this.blockhashCommitment),C=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&&(yt({instructions:x,payer:this.feePayer,lookupTableAddressAccount:p})||yt({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&&yt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let L=new gt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new Pt(L))}else{let L=new gt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new Pt(L))}I.push(Array.from(new Set(B.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>C[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=>C[x]).filter(x=>x!==void 0);if(t&&yt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let x=new gt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new Pt(x))}else{let x=new gt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new Pt(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(Y,_)=>{I[_].length&&Y.sign(I[_]),L&&(Y.message.recentBlockhash=L)}),Ee(h),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let Y=0,_=[];for(let J of h){if(++Y,Y<=O){console.log("skip tx: ",Y),_.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 Y=>await this.connection.sendTransaction(Y,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let Y=await this.signAllTransactions(h.slice(O,h.length)),_=[...h.slice(0,O),...Y];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 at=!1,qe=null,Bt=null,hn=ve=>{qe!==null&&clearInterval(qe),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=ve.err?"error":"success"}x==null||x([...G]),ve.err||re()};this.loopMultiTxStatus&&(qe=setInterval(async()=>{var ve;if(at){clearInterval(qe);return}try{let Ke=await this.connection.getTransaction(xe,{commitment:"confirmed",maxSupportedTransactionVersion:0});Ke&&(at=!0,clearInterval(qe),hn({err:((ve=Ke.meta)==null?void 0:ve.err)||null}),console.log("tx status from getTransaction:",xe))}catch(Ke){at=!0,clearInterval(qe),console.error("getTransaction timeout:",Ke,xe)}},Wt)),Bt=this.connection.onSignature(xe,ve=>{if(at){this.connection.removeSignatureListener(Bt);return}at=!0,hn(ve)},"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:s||{}}}};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=U(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 pm,SystemProgram as ym}from"@solana/web3.js";import Pm from"bn.js";import{createCloseAccountInstruction as Tm,createInitializeAccountInstruction as hm,createTransferInstruction as Im,TOKEN_PROGRAM_ID as Bm}from"@solana/spl-token";import{Keypair as em,PublicKey as tm}from"@solana/web3.js";import im from"bn.js";import{TOKEN_PROGRAM_ID as sm}from"@solana/spl-token";var Ut=g([u("mint"),u("owner"),o("amount"),H("delegateOption"),u("delegate"),b("state"),H("isNativeOption"),o("isNative"),o("delegatedAmount"),H("closeAuthorityOption"),u("closeAuthority")]);import{PublicKey as eg,SystemProgram as tg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as og}from"@solana/spl-token";import{PublicKey as $m}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ed}from"@solana/spl-token";import{PublicKey as K}from"@solana/web3.js";var go=new K("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Po=new K("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Ao=new K("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),yn=new K("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),id=new K("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Zi=new K("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),wo=new K("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ko=new K("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),rd=new K("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Hi=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),To=new K("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),ji=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new K("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ho=new K("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ad=new K("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ji=new K("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),er=new K("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),tr=new K("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),nr=new K("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),or=new K("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),bn=new K("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),ir=new K("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),sd=new K("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),rr=new K("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),ar=new K("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),sr=new K("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),ud=new K("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),cd=new K("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ld=new K("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),md=new K("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),dd=new K("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),At={IDO_PROGRAM_ID_V1:er,IDO_PROGRAM_ID_V2:tr,IDO_PROGRAM_ID_V3:nr,IDO_PROGRAM_ID_V4:or};var Fe={OPEN_BOOK_PROGRAM:new K("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new K("Ray1111111111111111111111111111111111111111"),AMM_V4:new K("DRaya7Kj3aMWQSy19kSjvmuwq9docC