@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 98.1 kB
JavaScript
var Li=Object.create;var ft=Object.defineProperty,Oi=Object.defineProperties,Ni=Object.getOwnPropertyDescriptor,Mi=Object.getOwnPropertyDescriptors,Fi=Object.getOwnPropertyNames,Mt=Object.getOwnPropertySymbols,vi=Object.getPrototypeOf,yn=Object.prototype.hasOwnProperty,eo=Object.prototype.propertyIsEnumerable;var Jn=(a,e,t)=>e in a?ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,M=(a,e)=>{for(var t in e||(e={}))yn.call(e,t)&&Jn(a,t,e[t]);if(Mt)for(var t of Mt(e))eo.call(e,t)&&Jn(a,t,e[t]);return a},W=(a,e)=>Oi(a,Mi(e));var xe=(a,e)=>{var t={};for(var n in a)yn.call(a,n)&&e.indexOf(n)<0&&(t[n]=a[n]);if(a!=null&&Mt)for(var n of Mt(a))e.indexOf(n)<0&&eo.call(a,n)&&(t[n]=a[n]);return t};var Vi=(a,e)=>{for(var t in e)ft(a,t,{get:e[t],enumerable:!0})},to=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fi(e))!yn.call(a,i)&&i!==t&&ft(a,i,{get:()=>e[i],enumerable:!(n=Ni(e,i))||n.enumerable});return a};var T=(a,e,t)=>(t=a!=null?Li(vi(a)):{},to(e||!a||!a.__esModule?ft(t,"default",{value:a,enumerable:!0}):t,a)),_i=a=>to(ft({},"__esModule",{value:!0}),a);var uu={};Vi(uu,{swapInternal:()=>Ci});module.exports=_i(uu);var Ze=T(require("bn.js"));var q=T(require("bn.js")),Q=new q.default(1).shln(64),je=64,Ei=new q.default(1).shln(128),Ne=new q.default(1).shln(64).subn(1),Di=new q.default(1).shln(128).subn(1),ge=-443636,Pe=443636,ve=new q.default("4295048016"),Ve=new q.default("79226673521066979257578248091"),no=new q.default("59543866431248"),oo=new q.default("184467440737095516"),io=new q.default("15793534762490258745"),ro=16,Ft=512,ye=60,lu=new q.default("18446743708227953217"),ao=[{bit:0,factor:new q.default("fffcb933bd6fb800",16)},{bit:1,factor:new q.default("fff97272373d4000",16)},{bit:2,factor:new q.default("fff2e50f5f657000",16)},{bit:3,factor:new q.default("ffe5caca7e10f000",16)},{bit:4,factor:new q.default("ffcb9843d60f7000",16)},{bit:5,factor:new q.default("ff973b41fa98e800",16)},{bit:6,factor:new q.default("ff2ea16466c9b000",16)},{bit:7,factor:new q.default("fe5dee046a9a3800",16)},{bit:8,factor:new q.default("fcbe86c7900bb000",16)},{bit:9,factor:new q.default("f987a7253ac65800",16)},{bit:10,factor:new q.default("f3392b0822bb6000",16)},{bit:11,factor:new q.default("e7159475a2caf000",16)},{bit:12,factor:new q.default("d097f3bdfd2f2000",16)},{bit:13,factor:new q.default("a9f746462d9f8000",16)},{bit:14,factor:new q.default("70d869a156f31c00",16)},{bit:15,factor:new q.default("31be135f97ed3200",16)},{bit:16,factor:new q.default("9aa508b5b85a500",16)},{bit:17,factor:new q.default("5d6af8dedc582c",16)},{bit:18,factor:new q.default("2216e584f5fa",16)}],Me=1e6;var vt=1e5,yt=1e4,so=1e4,uo=1e5;var bt=3,co=100;var lo=10,mo=100,$e=14;var L=new q.default(0),Ae=new q.default(1),mu=new q.default(-1);var du=new q.default("18446744073700000000");var gt=T(require("bn.js")),gn=T(require("decimal.js"));var po=T(require("bn.js")),bn=T(require("decimal.js"));function $(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function H(a,e,t){if(t.isZero())throw new Error("Division by zero");let n=a.mul(e),i=n.div(t);return n.mod(t).isZero()?i:i.addn(1)}function Vt(a,e){return a.div(e).add(a.mod(e).isZero()?L:Ae)}var yu=new po.default(1).shln(256).subn(1);function fo(a){return a.isZero()?-1:a.bitLength()-1}function yo(a,e){return new bn.default(a.toString()).div(bn.default.pow(2,64)).toDecimalPlaces(e)}var _e=class{static getNextSqrtPriceFromAmountARoundingUp(e,t,n,i){if(n.isZero())return e;let r=t.shln(je);if(i){let c=n.mul(e),s=r.add(c);if(s.gte(r))return H(r,e,s);let d=$(r,Ae,e);return H(r,Ae,d.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 H(r,e,s)}}static getNextSqrtPriceFromAmountBRoundingDown(e,t,n,i){if(n.isZero())return e;if(i){let r=n.shln(je).div(t);return e.add(r)}else{let r=Vt(n.shln(je),t);return e.sub(r)}}static getNextSqrtPriceFromInput(e,t,n,i){if(!e.gt(L))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(L))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(L))throw Error("sqrtPriceX64.gt(BN_ZERO)");if(!t.gt(L))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?H(c,Ae,s):$(c,Ae,s)}static getAmountBDeltaUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=t.sub(e);return i?H(n,r,Q):$(n,r,Q)}};var be=class{static getDeltaAmountAUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=n.shln(je),c=t.sub(e);if(!e.gt(L))throw Error("!sqrtPriceX64A.gt(BN_ZERO)");let s=i?Vt(H(r,c,t),e):$(r,c,t).div(e);if(s.gt(Ne))throw Error("MaxTokenOverflow");return s}static getDeltaAmountBUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=i?H(n,t.sub(e),Q):$(n,t.sub(e),Q);if(r.gt(Ne))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=$(e,t,Q),r=t.sub(e);return $(n,i,r)}static getLiquidityFromAmountB(e,t,n){e.gt(t)&&([e,t]=[t,e]);let i=t.sub(e);return $(n,Q,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 _e.getAmountADeltaUnsigned(e,t,n,i)}static getAmountForLiquidityB(e,t,n,i){return _e.getAmountBDeltaUnsigned(e,t,n,i)}static getAmountsForLiquidity(e,t,n,i,r){t.gt(n)&&([t,n]=[n,t]);let c=L,s=L;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:d,amountB:m}=this.getAmountsForLiquidity(e,t,n,i,c),f=r?1+s:1-s,g=new gt.default(new gn.default(d.toString()).mul(f).toFixed(0)),w=new gt.default(new gn.default(m.toString()).mul(f).toFixed(0));return{amountSlippageA:g,amountSlippageB:w}}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)?L:this.getLiquidityFromAmountA(gt.default.max(e,t),n,i.amount);else if(i.type==="amountB")r=e.lte(t)?L:this.getLiquidityFromAmountB(t,gt.default.min(e,n),i.amount);else throw Error("amount info type check error");return M({liquidity:r},this.getAmountsForLiquidity(e,t,n,i.amount,!0))}};var jn=require("@solana/web3.js"),fn=T(require("bn.js"));var ko=require("@solana/web3.js"),Je=T(require("bn.js"));var I=require("@solana/buffer-layout"),_t=I.Layout,bo=I.Structure;var Pn=I.UInt;var go=I.u8,ie=I.u16;var Et=I.u32;var Po=I.nu64;var he=I.s32;var Ao=I.seq;var D=I.blob;var An=I.bits,wo=I.offset;var Ue=class extends _t{constructor(t,n,i){super(t,i);this.blob=D(t),this.signed=n}decode(t,n=0){let i=new Je.default(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 Je.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Dt=class extends _t{constructor(t){super(8,t);this._lower=An(Et(),!1),this._upper=An(Et(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,n=0){let i=this._lower.decode(t,n),r=this._upper.decode(t,n+this._lower.span);return M(M({},i),r)}encode(t,n,i=0){return this._lower.encode(t,n,i)+this._upper.encode(t,n,i+this._lower.span)}};function y(a){return new Pn(1,a)}function J(a){return new Pn(4,a)}function o(a){return new Ue(8,!1,a)}function F(a){return new Ue(16,!1,a)}function To(a){return new Ue(1,!0,a)}function et(a){return new Ue(8,!0,a)}function ho(a){return new Ue(16,!0,a)}var Pt=class extends _t{constructor(t,n,i,r){super(t.span,r);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function u(a){return new Pt(D(32),e=>new ko.PublicKey(e),e=>e.toBuffer(),a)}function we(a){return new Pt(go(),Wi,qi,a)}function Wi(a){if(a===0)return!1;if(a===1)return!0;throw new Error("Invalid bool: "+a)}function qi(a){return a?1:0}function Io(a,e){let t=Et("length"),n=b([t,P(a,wo(t,-t.span),"values")]);return new Pt(n,({values:i})=>i,i=>({values:i}),e)}var wn=class extends bo{decode(e,t){return super.decode(e,t)}};function b(a,e,t){return new wn(a,e,t)}function P(a,e,t){let n,i=typeof e=="number"?e:(0,Je.isBN)(e)?e.toNumber():new Proxy(e,{get(r,c){if(!n){let s=Reflect.get(r,"count");n=(0,Je.isBN)(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 Ao(a,i,t)}var Ui=b([D(8),y("bump"),ie("index"),u("owner"),J("protocolFeeRate"),J("tradeFeeRate"),ie("tickSpacing"),J("fundFeeRate"),P(J(),1),u("fundOwner"),P(o(),3)]),Gi=b([J("blockTimestamp"),et("tickCumulative"),P(o(),4)]),Bo=b([D(8),we("initialized"),o("recentEpoch"),ie("observationIndex"),u("poolId"),P(Gi,co,"observations"),P(o(),4)]),zi=b([ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),he("tickSpacingIndexReference"),J("volatilityReference"),J("volatilityAccumulator"),o("lastUpdateTimestamp"),P(y(),46)]),Yi=b([y("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),F("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),u("mint"),u("vault"),u("creator"),F("growthGlobalX64")]),kn=b([D(8),y("bump"),u("configId"),u("creator"),u("mintA"),u("mintB"),u("vaultA"),u("vaultB"),u("observationId"),y("mintDecimalsA"),y("mintDecimalsB"),ie("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),he("tickCurrent"),J(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),P(F(),4),y("status"),y("feeOn"),D(6),P(Yi,bt,"rewardInfos"),D(8*16,"tickArrayBitmap"),P(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),zi.replicate("dynamicFeeInfo"),P(o(),46)]),Xi=b([F("growthInsideLastX64"),o("rewardAmountOwed")]),Qi=b([D(8),y("bump"),u("nftMint"),u("poolId"),he("tickLower"),he("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),P(Xi,bt,"rewardInfos"),o("recentEpoch"),P(o(),7)]),Nu=b([D(8),y("bump"),u("poolId"),he("tickLower"),he("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),P(F(),bt,"rewardGrowthInside"),o("recentEpoch"),P(o(),7)]),Zi=b([he("tick"),ho("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),P(F(),bt,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),F("unfilledRatioX64"),P(J(),3)]),So=b([D(8),u("poolId"),he("startTickIndex"),P(Zi,ye,"ticks"),y("initializedTickCount"),o("recentEpoch"),P(y(),107)]),Hi=b([D(8),y("bump"),P(u(),lo,"operationOwners"),P(u(),mo,"whitelistMints")]),ji=b([D(8),u("poolId"),u("owner"),he("tick"),we("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),F("unfilledRatioX64"),P(o(),4)]),xo=b([D(8),u("poolId"),D(8*8*$e,"positiveTickArrayBitmap"),D(8*8*$e,"negativeTickArrayBitmap")]),Mu=b([D(8),ie("index"),ie("filterPeriod"),ie("decayPeriod"),ie("reductionFactor"),J("dynamicFeeControl"),J("maxVolatilityAccumulator"),P(o(),8)]),$i=b([D(8),u("wallet"),y("nonceIndex"),o("orderNonce"),P(o(),4)]),Fu=b([o(),y("bump"),u("owner"),u("poolId"),u("positionId"),u("nftAccount"),P(o(),8)]),Ji=b([D(8),y("bump"),u("lockOwner"),u("poolId"),u("positionId"),u("nftAccount"),u("lockNftMint"),o("recentEpoch"),P(o(),8)]);var Co=require("@solana/web3.js");var At=require("lodash");var Tn=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}},Ko={},er={};function G(a){let e=(0,At.get)(Ko,a);if(!e){let t=(0,At.get)(er,a);e=new Tn({name:a,logLevel:t}),(0,At.set)(Ko,a,e)}return e}var Wt=require("@solana/spl-token"),hn=G("Raydium_accountInfo_util");async function Fe(a,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:r=100}=M({batchRequest:!1},t),c=In(e,r),s=new Array(c.length).fill([]);if(n){let d=c.map(g=>{let w=a._buildArgs([g.map(A=>A.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:w}}),m=In(d,10);s=(await(await Promise.all(m.map(async g=>await a._rpcBatchRequest(g)))).flat()).map(g=>(g.error&&hn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.error.message}`),g.result.value.map(w=>{if(w){let{data:A,executable:R,lamports:h,owner:B,rentEpoch:S}=w;return A.length!==2&&A[1]!=="base64"&&hn.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(A[0],"base64"),executable:R,lamports:h,owner:new Co.PublicKey(B),rentEpoch:S}}return null})))}else try{s=await Promise.all(c.map(d=>a.getMultipleAccountsInfo(d,i)))}catch(d){d instanceof Error&&hn.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return s.flat()}var We=T(require("bn.js")),ru=T(require("decimal.js"));var Mo=T(require("big.js")),rr=T(require("bn.js"));var Ro=T(require("toformat")),tr=Ro.default,kt=tr;var Tt=T(require("big.js")),Oo=T(require("bn.js")),No=T(require("decimal.js-light"));var tt=T(require("bn.js"));var Lo=9007199254740991;function de(a){let e=G("Raydium_parseBigNumberish");if(a instanceof tt.default)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new tt.default(a);e.logWithError(`invalid BigNumberish string: ${a}`)}return typeof a=="number"?(a%1&&e.logWithError(`BigNumberish number underflow: ${a}`),(a>=Lo||a<=-Lo)&&e.logWithError(`BigNumberish number overflow: ${a}`),new tt.default(String(a))):typeof a=="bigint"?new tt.default(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new tt.default(0))}var qt=G("module/fraction"),Bn=kt(Tt.default),ht=kt(No.default),or={[0]:ht.ROUND_DOWN,[1]:ht.ROUND_HALF_UP,[2]:ht.ROUND_UP},ir={[0]:Tt.default.roundDown,[1]:Tt.default.roundHalfUp,[2]:Tt.default.roundUp},j=class{constructor(e,t=new Oo.default(1)){this.numerator=de(e),this.denominator=de(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new j(this.denominator,this.numerator)}add(e){let t=e instanceof j?e:new j(de(e));return this.denominator.eq(t.denominator)?new j(this.numerator.add(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof j?e:new j(de(e));return this.denominator.eq(t.denominator)?new j(this.numerator.sub(t.numerator),this.denominator):new j(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof j?e:new j(de(e));return new j(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof j?e:new j(de(e));return new j(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||qt.logWithError(`${e} is not an integer.`),e<=0&&qt.logWithError(`${e} is not positive.`),ht.set({precision:e+1,rounding:or[n]});let i=new ht(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)||qt.logWithError(`${e} is not an integer.`),e<0&&qt.logWithError(`${e} is negative.`),Bn.DP=e,Bn.RM=ir[n]||1,new Bn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var ac=G("Raydium_amount"),sc=kt(Mo.default);var Fo=require("@solana/web3.js"),Sn=require("@solana/spl-token"),Ut={chainId:101,address:Fo.PublicKey.default.toBase58(),programId:Sn.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ce={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Sn.TOKEN_PROGRAM_ID.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"}};var zt=require("@solana/web3.js");var X=require("@solana/web3.js"),vo=require("@solana/spl-token");function nt({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var sr=[nt({pubkey:vo.TOKEN_PROGRAM_ID,isWritable:!1}),nt({pubkey:X.SystemProgram.programId,isWritable:!1}),nt({pubkey:X.SYSVAR_RENT_PUBKEY,isWritable:!1})];function Vo({publicKey:a,transformSol:e}){let t=_o(a.toString());if(t instanceof X.PublicKey)return e&&t.equals(Ge)?Ke:t;if(e&&t.toString()===Ge.toBase58())return Ke;if(typeof t=="string"){if(t===X.PublicKey.default.toBase58())return X.PublicKey.default;try{return new X.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function _o(a){try{return new X.PublicKey(a)}catch{return a}}var xn=new X.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),ot=new X.PublicKey("SysvarRent111111111111111111111111111111111"),ur=new X.PublicKey("SysvarC1ock11111111111111111111111111111111"),Gt=new X.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),cr=new X.PublicKey("Sysvar1nstructions1111111111111111111111111"),Eo=X.SystemProgram.programId,mc=new X.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),dc=new X.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),pc=new X.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),fc=new X.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),yc=new X.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),bc=new X.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),gc=new X.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Pc=new X.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Ac=new X.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),wc=new X.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),kc=new X.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ke=new X.PublicKey("So11111111111111111111111111111111111111112"),Ge=X.PublicKey.default;var Kn=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:c=!1}){if(e===Ge.toBase58()||e instanceof zt.PublicKey&&Ge.equals(e)){this.decimals=Ce.decimals,this.symbol=Ce.symbol,this.name=Ce.name,this.mint=new zt.PublicKey(Ce.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?zt.PublicKey.default:Vo({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ce=Kn;ce.WSOL=new Kn(W(M({},Ce),{mint:Ce.address}));var Cn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Yt=Cn;Yt.SOL=new Cn(Ut);var Do=T(require("bn.js"));var Lc=new j(new Do.default(100));var Vc=G("Raydium_price");var iu=require("lodash");var mr=T(require("axios"));var Wo={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_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"},lr=W(M({},Wo),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var pl=G("Raydium_Api");var Zo=require("@solana/web3.js");var en=require("@solana/spl-token");var Y=require("@solana/web3.js"),zo=T(require("axios"));var Ie=require("@solana/web3.js");async function Rn({connection:a,address:e,cluster:t="mainnet"}){let n=await Fe(a,[...new Set(e.map(r=>r.toString()))].map(r=>new Ie.PublicKey(r))),i={};for(let r=0;r<e.length;r++){let c=n[r],s=e[r];if(!c)continue;let d=new Ie.AddressLookupTableAccount({key:s,state:Ie.AddressLookupTableAccount.deserialize(c.data)});i[s.toString()]=d,t==="devnet"?rt[s.toString()]=d:it[s.toString()]=d}return i}var it={},Ln=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(it[e])return it;let t=new Ie.PublicKey(e),n=await a.getAccountInfo(t);return n&&(it[e]=new Ie.AddressLookupTableAccount({key:t,state:Ie.AddressLookupTableAccount.deserialize(n.data)})),it},rt={},On=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(rt[e])return rt;let t=new Ie.PublicKey(e),n=await a.getAccountInfo(t);return n&&(rt[e]=new Ie.AddressLookupTableAccount({key:t,state:Ie.AddressLookupTableAccount.deserialize(n.data)})),rt};var re={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"};var le=require("@solana/web3.js");var Uo=require("@solana/spl-token"),qo=G("Raydium_txUtil"),Go=1644;function Xt(a){let e=[],t=[];return a.microLamports&&(e.push(le.ComputeBudgetProgram.setComputeUnitPrice({microLamports:a.microLamports})),t.push(re.SetComputeUnitPrice)),a.units&&(e.push(le.ComputeBudgetProgram.setComputeUnitLimit({units:a.units})),t.push(re.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function at(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 Qt(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 Nn(a,e){a.length<1&&qo.logWithError(`no instructions provided: ${a.toString()}`),e.length<1&&qo.logWithError(`no signers provided:, ${e.toString()}`);let t=new le.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...a);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<Go}catch{return!1}}function Be(a,e){let[t,n]=le.PublicKey.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function It({instructions:a,payer:e,signers:t}){return Nn(a,[e,...t])}function Bt({instructions:a,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=le.Keypair.generate().publicKey.toString()}){let r=new le.TransactionMessage({payerKey:e,recentBlockhash:n,instructions:a}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new le.VersionedTransaction(r).serialize()).toString("base64").length<Go}catch{return!1}}var dr=a=>Buffer.isBuffer(a)?a:a instanceof Uint8Array?Buffer.from(a.buffer,a.byteOffset,a.byteLength):Buffer.from(a),pr=a=>{let e=a.serialize({requireAllSignatures:!1,verifySignatures:!1});a instanceof le.VersionedTransaction&&(e=dr(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function ze(a){let e=[];return a.forEach(t=>{t instanceof le.Transaction&&(t.recentBlockhash||(t.recentBlockhash=Uo.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=le.Keypair.generate().publicKey)),e.push(pr(t))}),console.log("simulate tx string:",e),e}var Zt=2e3,Ht=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var n;let e=(await zo.default.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}=Xt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(Y.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new Y.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(re.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!==Y.PublicKey.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(W(M({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new Y.Transaction;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 f;let{recentBlockHash:r,skipPreflight:c=!0,sendAndConfirm:s,notSendToRpc:d}=i||{},m=r!=null?r:await at(this.connection,this.blockhashCommitment);if(t.recentBlockhash=m,this.signers.length&&t.sign(...this.signers),ze([t]),(f=this.owner)!=null&&f.isKeyPair)return{txId:s?await(0,Y.sendAndConfirmTransaction)(this.connection,t,this.signers.find(w=>w.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 g=await this.signAllTransactions([t]);if(this.signers.length)for(let w of g)try{w.sign(...this.signers)}catch{}return{txId:d?"":await this.connection.sendRawTransaction(g[0].serialize(),{skipPreflight:c}),signedTx:g[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var m;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),r=t.filter(f=>f.transaction.instructions.length>0),c=[i,...r.map(f=>f.transaction)],s=[this.signers,...r.map(f=>f.signers)],d=[...this.instructionTypes,...r.map(f=>f.instructionTypes).flat()];return(m=this.owner)!=null&&m.signer&&s.forEach(f=>{f.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:s,instructionTypes:d,execute:async f=>{var S;let{sequentially:g,onTxUpdate:w,skipTxCount:A=0,recentBlockHash:R,skipPreflight:h=!0}=f||{},B=R!=null?R:await at(this.connection,this.blockhashCommitment);if((S=this.owner)!=null&&S.isKeyPair){if(g){let K=[],v=0;for(let V of c){if(++v,v<=A)continue;let p=await(0,Y.sendAndConfirmTransaction)(this.connection,V,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});K.push(p)}return{txIds:K,signedTxs:c}}return{txIds:await await Promise.all(c.map(async K=>(K.recentBlockhash=B,await this.connection.sendRawTransaction(K.serialize(),{skipPreflight:h})))),signedTxs:c}}if(this.signAllTransactions){let K=c.map((V,p)=>(V.recentBlockhash=B,s[p].length&&V.sign(...s[p]),V));ze(K);let v=await this.signAllTransactions(K);if(g){let V=0,p=[],k=async()=>{if(!v[V])return;let C=await this.connection.sendRawTransaction(v[V].serialize(),{skipPreflight:h});p.push({txId:C,status:"sent",signedTx:v[V]}),w==null||w([...p]),V++;let N=!1,O=null,_=null,ae=Z=>{O!==null&&clearInterval(O),_!==null&&this.connection.removeSignatureListener(_);let E=p.findIndex(oe=>oe.txId===C);if(E>-1){if(p[E].status==="error"||p[E].status==="success")return;p[E].status=Z.err?"error":"success"}w==null||w([...p]),Z.err||k()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var Z;if(N){clearInterval(O);return}try{let E=await this.connection.getTransaction(C,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(N=!0,clearInterval(O),ae({err:((Z=E.meta)==null?void 0:Z.err)||null}),console.log("tx status from getTransaction:",C))}catch(E){N=!0,clearInterval(O),console.error("getTransaction timeout:",E,C)}},Zt)),_=this.connection.onSignature(C,Z=>{if(N){this.connection.removeSignatureListener(_);return}N=!0,ae(Z)},"confirmed"),this.connection.getSignatureStatus(C)};return await k(),{txIds:p.map(C=>C.txId),signedTxs:v}}else{let V=[];for(let p=0;p<v.length;p+=1){let k=await this.connection.sendRawTransaction(v[p].serialize(),{skipPreflight:h});V.push(k)}return{txIds:V,signedTxs:v}}}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=xe(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),s=M(M({},this.cluster==="devnet"?await On(this.connection):await Ln(this.connection)),t),d=Array.from(new Set([...n,...this.lookupTableAddress])),m=[];for(let B of d)s[B]===void 0&&m.push(new Y.PublicKey(B));let f=await Rn({connection:this.connection,address:m});for(let[B,S]of Object.entries(f))s[B]=S;let g=i?Y.PublicKey.default.toBase58():r!=null?r:await at(this.connection,this.blockhashCommitment),w=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:g,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(s));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(B=>B.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let A=new Y.VersionedTransaction(w);return A.sign(this.signers),{builder:this,transaction:A,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async B=>{var V;let{skipPreflight:S=!0,sendAndConfirm:K,notSendToRpc:v}=B||{};if(ze([A]),(V=this.owner)!=null&&V.isKeyPair){let p=await this.connection.sendTransaction(A,{skipPreflight:S});return K&&await Qt(this.connection,p),{txId:p,signedTx:A}}if(this.signAllTransactions){let p=await this.signAllTransactions([A]);if(this.signers.length)for(let k of p)try{k.sign(this.signers)}catch{}return{txId:v?"":await this.connection.sendTransaction(p[0],{skipPreflight:S}),signedTx:p[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(e){var m;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),r=t.filter(f=>f.builder.instructions.length>0),c=[i,...r.map(f=>f.transaction)],s=[this.signers,...r.map(f=>f.signers)],d=[...this.instructionTypes,...r.map(f=>f.instructionTypes).flat()];return(m=this.owner)!=null&&m.signer&&s.forEach(f=>{f.some(g=>g.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(f,g)=>{f.sign(s[g])}),{builder:this,transactions:c,signers:s,instructionTypes:d,buildProps:n,execute:async f=>{var h;let{sequentially:g,onTxUpdate:w,recentBlockHash:A,skipPreflight:R=!0}=f||{};if(A&&c.forEach(B=>B.message.recentBlockhash=A),ze(c),(h=this.owner)!=null&&h.isKeyPair){if(g){let B=[];for(let S of c){let K=await this.connection.sendTransaction(S,{skipPreflight:R});await Qt(this.connection,K),B.push(K)}return{txIds:B,signedTxs:c}}return{txIds:await Promise.all(c.map(async B=>await this.connection.sendTransaction(B,{skipPreflight:R}))),signedTxs:c}}if(this.signAllTransactions){let B=await this.signAllTransactions(c);if(g){let S=0,K=[],v=async()=>{if(!B[S])return;let V=await this.connection.sendTransaction(B[S],{skipPreflight:R});K.push({txId:V,status:"sent",signedTx:B[S]}),w==null||w([...K]),S++;let p=!1,k=null,C=null,N=O=>{k!==null&&clearInterval(k),C!==null&&this.connection.removeSignatureListener(C);let _=K.findIndex(ae=>ae.txId===V);if(_>-1){if(K[_].status==="error"||K[_].status==="success")return;K[_].status=O.err?"error":"success"}w==null||w([...K]),O.err||v()};this.loopMultiTxStatus&&(k=setInterval(async()=>{var O;if(p){clearInterval(k);return}try{let _=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(p=!0,clearInterval(k),N({err:((O=_.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",V))}catch(_){p=!0,clearInterval(k),console.error("getTransaction timeout:",_,V)}},Zt)),C=this.connection.onSignature(V,O=>{if(p){this.connection.removeSignatureListener(C);return}p=!0,N(O)},"confirmed"),this.connection.getSignatureStatus(V)};return v(),{txIds:[],signedTxs:B}}else{let S=[];for(let K=0;K<B.length;K+=1){let v=await this.connection.sendTransaction(B[K],{skipPreflight:R});S.push(v)}return{txIds:S,signedTxs:B}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async sizeCheckBuild(e){var w;let g=e||{},{splitIns:t=[],computeBudgetConfig:n}=g,i=xe(g,["splitIns","computeBudgetConfig"]),r=n?Xt(n):{instructions:[],instructionTypes:[]},c=this.signers.reduce((A,R)=>W(M({},A),{[R.publicKey.toBase58()]:R}),{}),s=[],d=[],m=[],f=0;if(this.allInstructions.forEach(A=>{let R=[...m,A],h=n?[...r.instructions,...R]:R,S=[...new Set(R.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat()).values()].map(K=>new Y.PublicKey(K));if(A!==t[f]&&m.length<12&&(It({instructions:h,payer:this.feePayer,signers:S})||It({instructions:R,payer:this.feePayer,signers:S})))m.push(A);else{if(m.length===0)throw Error("item ins too big");f+=A===t[f]?1:0,It({instructions:n?[...r.instructions,...m]:[...m],payer:this.feePayer,signers:S})?s.push(new Y.Transaction().add(...r.instructions,...m)):s.push(new Y.Transaction().add(...m)),d.push(Array.from(new Set(m.map(K=>K.keys.filter(v=>v.isSigner).map(v=>v.pubkey.toString())).flat())).map(K=>c[K]).filter(K=>K!==void 0)),m=[A]}}),m.length>0){let R=[...new Set(m.map(h=>h.keys.filter(B=>B.isSigner).map(B=>B.pubkey.toString())).flat()).values()].map(h=>c[h]).filter(h=>h!==void 0);It({instructions:n?[...r.instructions,...m]:[...m],payer:this.feePayer,signers:R.map(h=>h.publicKey)})?s.push(new Y.Transaction().add(...r.instructions,...m)):s.push(new Y.Transaction().add(...m)),d.push(R)}return s.forEach(A=>A.feePayer=this.feePayer),(w=this.owner)!=null&&w.signer&&d.forEach(A=>{A.some(R=>R.publicKey.equals(this.owner.publicKey))||A.push(this.owner.signer)}),{builder:this,transactions:s,signers:d,instructionTypes:this.instructionTypes,execute:async A=>{var V;let{sequentially:R,onTxUpdate:h,skipTxCount:B=0,recentBlockHash:S,skipPreflight:K=!0}=A||{},v=S!=null?S:await at(this.connection,this.blockhashCommitment);if(s.forEach(async(p,k)=>{p.recentBlockhash=v,d[k].length&&p.sign(...d[k])}),ze(s),(V=this.owner)!=null&&V.isKeyPair){if(R){let p=0,k=[];for(let C of s){if(++p,p<=B){k.push("tx skipped");continue}let N=await(0,Y.sendAndConfirmTransaction)(this.connection,C,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:K});k.push(N)}return{txIds:k,signedTxs:s}}return{txIds:await Promise.all(s.map(async p=>await this.connection.sendRawTransaction(p.serialize(),{skipPreflight:K}))),signedTxs:s}}if(this.signAllTransactions){let p=await this.signAllTransactions(s.slice(B,s.length)),k=[...s.slice(0,B),...p];if(R){let C=0,N=[],O=async()=>{if(!k[C])return;C<B&&(N.push({txId:"",status:"success",signedTx:k[C]}),h==null||h([...N]),C++,O());let _=await this.connection.sendRawTransaction(k[C].serialize(),{skipPreflight:K});N.push({txId:_,status:"sent",signedTx:k[C]}),h==null||h([...N]),C++;let ae=!1,Z=null,E=null,oe=z=>{Z!==null&&clearInterval(Z),E!==null&&this.connection.removeSignatureListener(E);let se=N.findIndex(Le=>Le.txId===_);if(se>-1){if(N[se].status==="error"||N[se].status==="success")return;N[se].status=z.err?"error":"success"}h==null||h([...N]),z.err||O()};this.loopMultiTxStatus&&(Z=setInterval(async()=>{var z;if(ae){clearInterval(Z);return}try{let se=await this.connection.getTransaction(_,{commitment:"confirmed",maxSupportedTransactionVersion:0});se&&(ae=!0,clearInterval(Z),oe({err:((z=se.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",_))}catch(se){ae=!0,clearInterval(Z),console.error("getTransaction timeout:",se,_)}},Zt)),E=this.connection.onSignature(_,z=>{if(ae){this.connection.removeSignatureListener(E);return}ae=!0,oe(z)},"confirmed"),this.connection.getSignatureStatus(_)};return await O(),{txIds:N.map(_=>_.txId),signedTxs:k}}else{let C=[];for(let N=0;N<k.length;N+=1){let O=await this.connection.sendRawTransaction(k[N].serialize(),{skipPreflight:K});C.push(O)}return{txIds:C,signedTxs:k}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var V;let v=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:r=[],insCountLimit:c=12}=v,s=xe(v,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=M(M({},this.cluster==="devnet"?await On(this.connection):await Ln(this.connection)),i),m=Array.from(new Set([...this.lookupTableAddress,...r])),f=[];for(let p of m)d[p]===void 0&&f.push(new Y.PublicKey(p));let g=await Rn({connection:this.connection,address:f});for(let[p,k]of Object.entries(g))d[p]=k;let w=t?Xt(t):{instructions:[],instructionTypes:[]},A=await at(this.connection,this.blockhashCommitment),R=this.signers.reduce((p,k)=>W(M({},p),{[k.publicKey.toBase58()]:k}),{}),h=[],B=[],S=[],K=0;if(this.allInstructions.forEach(p=>{let k=[...S,p],C=t?[...w.instructions,...k]:k;if(p!==n[K]&&S.length<c&&(Bt({instructions:C,payer:this.feePayer,lookupTableAddressAccount:d})||Bt({instructions:k,payer:this.feePayer,lookupTableAddressAccount:d})))S.push(p);else{if(S.length===0)throw Error("item ins too big");K+=p===n[K]?1:0;let N={};for(let O of[...new Set(m)])d[O]!==void 0&&(N[O]=d[O]);if(t&&Bt({instructions:[...w.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:A})){let O=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...w.instructions,...S]}).compileToV0Message(Object.values(d));h.push(new Y.VersionedTransaction(O))}else{let O=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...S]}).compileToV0Message(Object.values(d));h.push(new Y.VersionedTransaction(O))}B.push(Array.from(new Set(S.map(O=>O.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(O=>R[O]).filter(O=>O!==void 0)),S=[p]}}),S.length>0){let k=[...new Set(S.map(C=>C.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(C=>R[C]).filter(C=>C!==void 0);if(t&&Bt({instructions:[...w.instructions,...S],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:A})){let C=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...w.instructions,...S]}).compileToV0Message(Object.values(d));h.push(new Y.VersionedTransaction(C))}else{let C=new Y.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...S]}).compileToV0Message(Object.values(d));h.push(new Y.VersionedTransaction(C))}B.push(k)}return(V=this.owner)!=null&&V.signer&&B.forEach(p=>{p.some(k=>k.publicKey.equals(this.owner.publicKey))||p.push(this.owner.signer)}),h.forEach((p,k)=>{p.sign(B[k])}),{builder:this,transactions:h,buildProps:e,signers:B,instructionTypes:this.instructionTypes,execute:async p=>{var ae;let{sequentially:k,onTxUpdate:C,skipTxCount:N=0,recentBlockHash:O,skipPreflight:_=!0}=p||{};if(h.map(async(Z,E)=>{B[E].length&&Z.sign(B[E]),O&&(Z.message.recentBlockhash=O)}),ze(h),(ae=this.owner)!=null&&ae.isKeyPair){if(k){let Z=0,E=[];for(let oe of h){if(++Z,Z<=N){console.log("skip tx: ",Z),E.push("tx skipped");continue}let z=await this.connection.sendTransaction(oe,{skipPreflight:_});await Qt(this.connection,z),E.push(z)}return{txIds:E,signedTxs:h}}return{txIds:await Promise.all(h.map(async Z=>await this.connection.sendTransaction(Z,{skipPreflight:_}))),signedTxs:h}}if(this.signAllTransactions){let Z=await this.signAllTransactions(h.slice(N,h.length)),E=[...h.slice(0,N),...Z];if(k){let oe=0,z=[],se=async()=>{if(!E[oe])return;if(oe<N){z.push({txId:"",status:"success",signedTx:E[oe]}),C==null||C([...z]),oe++,se();return}let Le=await this.connection.sendTransaction(E[oe],{skipPreflight:_});z.push({txId:Le,status:"sent",signedTx:E[oe]}),C==null||C([...z]),oe++;let pt=!1,He=null,Nt=null,$n=qe=>{He!==null&&clearInterval(He),Nt!==null&&this.connection.removeSignatureListener(Nt);let Oe=z.findIndex(Ri=>Ri.txId===Le);if(Oe>-1){if(z[Oe].status==="error"||z[Oe].status==="success")return;z[Oe].status=qe.err?"error":"success"}C==null||C([...z]),qe.err||se()};this.loopMultiTxStatus&&(He=setInterval(async()=>{var qe;if(pt){clearInterval(He);return}try{let Oe=await this.connection.getTransaction(Le,{commitment:"confirmed",maxSupportedTransactionVersion:0});Oe&&(pt=!0,clearInterval(He),$n({err:((qe=Oe.meta)==null?void 0:qe.err)||null}),console.log("tx status from getTransaction:",Le))}catch(Oe){pt=!0,clearInterval(He),console.error("getTransaction timeout:",Oe,Le)}},Zt)),Nt=this.connection.onSignature(Le,qe=>{if(pt){this.connection.removeSignatureListener(Nt);return}pt=!0,$n(qe)},"confirmed"),this.connection.getSignatureStatus(Le)};return se(),{txIds:[],signedTxs:E}}else{let oe=[];for(let z=0;z<E.length;z+=1){let se=await this.connection.sendTransaction(E[z],{skipPreflight:_});oe.push(se)}return{txIds:oe,signedTxs:E}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:s||{}}}};var Mn=(...a)=>a.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),pe=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=G(t)}createTxBuilder(e){return this.scope.checkOwner(),new Ht({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Mn(e))}logInfo(...e){this.logger.info(Mn(e))}logAndCreateError(...e){let t=Mn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var Xo=require("@solana/web3.js"),br=T(require("bn.js"));var Jt=require("@solana/spl-token");var Yo=require("@solana/web3.js"),fr=T(require("bn.js"));var yr=require("@solana/spl-token");var jt=b([u("mint"),u("owner"),o("amount"),J("delegateOption"),u("delegate"),y("state"),J("isNativeOption"),o("isNative"),o("delegatedAmount"),J("closeAuthorityOption"),u("closeAuthority")]);var mi=require("@solana/web3.js"),va=require("@solana/spl-token");var Pr=require("@solana/web3.js"),Ar=require("@solana/spl-token");var x=require("@solana/web3.js"),Ho=new x.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),jo=new x.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),$o=new x.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Fn=new x.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Km=new x.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),wr=new x.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Jo=new x.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),ei=new x.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Cm=new x.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),kr=new x.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),ti=new x.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Tr=new x.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),hr=new x.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),ni=new x.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Rm=new x.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ir=new x.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Br=new x.PublicKey("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Sr=new x.PublicKey("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),xr=new x.PublicKey("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Kr=new x.PublicKey("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),vn=new x.Publi