UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

1 lines 96.8 kB
var Do=Object.defineProperty,Wo=Object.defineProperties;var qo=Object.getOwnPropertyDescriptors;var Bt=Object.getOwnPropertySymbols;var In=Object.prototype.hasOwnProperty,Bn=Object.prototype.propertyIsEnumerable;var hn=(a,e,t)=>e in a?Do(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,N=(a,e)=>{for(var t in e||(e={}))In.call(e,t)&&hn(a,t,e[t]);if(Bt)for(var t of Bt(e))Bn.call(e,t)&&hn(a,t,e[t]);return a},D=(a,e)=>Wo(a,qo(e));var Te=(a,e)=>{var t={};for(var n in a)In.call(a,n)&&e.indexOf(n)<0&&(t[n]=a[n]);if(a!=null&&Bt)for(var n of Bt(a))e.indexOf(n)<0&&Bn.call(a,n)&&(t[n]=a[n]);return t};import nt from"bn.js";import W from"bn.js";var X=new W(1).shln(64),qe=64,Uo=new W(1).shln(128),Ke=new W(1).shln(64).subn(1),Go=new W(1).shln(128).subn(1),fe=-443636,ye=443636,Oe=new W("4295048016"),Ne=new W("79226673521066979257578248091"),Sn=new W("59543866431248"),xn=new W("184467440737095516"),Kn=new W("15793534762490258745"),Cn=16,St=512,me=60,_a=new W("18446743708227953217"),Rn=[{bit:0,factor:new W("fffcb933bd6fb800",16)},{bit:1,factor:new W("fff97272373d4000",16)},{bit:2,factor:new W("fff2e50f5f657000",16)},{bit:3,factor:new W("ffe5caca7e10f000",16)},{bit:4,factor:new W("ffcb9843d60f7000",16)},{bit:5,factor:new W("ff973b41fa98e800",16)},{bit:6,factor:new W("ff2ea16466c9b000",16)},{bit:7,factor:new W("fe5dee046a9a3800",16)},{bit:8,factor:new W("fcbe86c7900bb000",16)},{bit:9,factor:new W("f987a7253ac65800",16)},{bit:10,factor:new W("f3392b0822bb6000",16)},{bit:11,factor:new W("e7159475a2caf000",16)},{bit:12,factor:new W("d097f3bdfd2f2000",16)},{bit:13,factor:new W("a9f746462d9f8000",16)},{bit:14,factor:new W("70d869a156f31c00",16)},{bit:15,factor:new W("31be135f97ed3200",16)},{bit:16,factor:new W("9aa508b5b85a500",16)},{bit:17,factor:new W("5d6af8dedc582c",16)},{bit:18,factor:new W("2216e584f5fa",16)}],Ce=1e6;var xt=1e5,it=1e4,Ln=1e4,On=1e5;var rt=3,Nn=100;var Mn=10,Fn=100,Ue=14;var K=new W(0),he=new W(1),Ea=new W(-1);var Da=new W("18446744073700000000");import Ct from"bn.js";import En from"decimal.js";import zo from"bn.js";import vn from"decimal.js";function j(a,e,t){if(t.isZero())throw new Error("Division by zero");return a.mul(e).div(t)}function Q(a,e,t){if(t.isZero())throw new Error("Division by zero");let n=a.mul(e),i=n.div(t);return n.mod(t).isZero()?i:i.addn(1)}function Kt(a,e){return a.div(e).add(a.mod(e).isZero()?K:he)}var za=new zo(1).shln(256).subn(1);function Vn(a){return a.isZero()?-1:a.bitLength()-1}function _n(a,e){return new vn(a.toString()).div(vn.pow(2,64)).toDecimalPlaces(e)}var de=class{static getDeltaAmountAUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=n.shln(qe),c=t.sub(e);if(!e.gt(K))throw Error("!sqrtPriceX64A.gt(BN_ZERO)");let u=i?Kt(Q(r,c,t),e):j(r,c,t).div(e);if(u.gt(Ke))throw Error("MaxTokenOverflow");return u}static getDeltaAmountBUnsigned(e,t,n,i){e.gt(t)&&([e,t]=[t,e]);let r=i?Q(n,t.sub(e),X):j(n,t.sub(e),X);if(r.gt(Ke))throw Error("MaxTokenOverflow");return r}static addDelta(e,t){if(t.isNeg()){let n=t.neg();if(e.lt(n))throw new Error("Liquidity underflow");return e.sub(n)}else return e.add(t)}static getLiquidityFromAmountA(e,t,n){if(n.isZero())return K;e.gt(t)&&([e,t]=[t,e]);let i=j(e,t,X),r=t.sub(e);return j(n,i,r)}static getLiquidityFromAmountB(e,t,n){if(n.isZero())return K;e.gt(t)&&([e,t]=[t,e]);let i=t.sub(e);return j(n,X,i)}static getLiquidityFromAmounts(e,t,n,i,r){if(t.gt(n)&&([t,n]=[n,t]),e.lte(t))return this.getLiquidityFromAmountA(t,n,i);if(e.lt(n)){let c=this.getLiquidityFromAmountA(e,n,i),u=this.getLiquidityFromAmountB(t,e,r);return c.lt(u)?c:u}else return this.getLiquidityFromAmountB(t,n,r)}static getAmountsForLiquidity(e,t,n,i,r){t.gt(n)&&([t,n]=[n,t]);let c=K,u=K;return e.lte(t)?c=this.getDeltaAmountAUnsigned(t,n,i,r):e.lt(n)?(c=this.getDeltaAmountAUnsigned(e,n,i,r),u=this.getDeltaAmountBUnsigned(t,e,i,r)):u=this.getDeltaAmountBUnsigned(t,n,i,r),{amountA:c,amountB:u}}static getAmountsFromLiquidityWithSlippage(e,t,n,i,r,c,u){let{amountA:p,amountB:d}=this.getAmountsForLiquidity(e,t,n,i,c),y=r?1+u:1-u,P=new Ct(new En(p.toString()).mul(y).toFixed(0)),k=new Ct(new En(d.toString()).mul(y).toFixed(0));return{amountSlippageA:P,amountSlippageB:k}}static getLiquidityAndAmountsFromAmount({sqrtPriceCurrentX64:e,sqrtPriceLowerX64:t,sqrtPriceUpperX64:n,amountInfo:i}){let r;if(i.type==="liquidity")r=i.amount;else if(i.type==="amountA")r=e.gte(n)?K:this.getLiquidityFromAmountA(Ct.max(e,t),n,i.amount);else if(i.type==="amountB")r=e.lte(t)?K:this.getLiquidityFromAmountB(t,Ct.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 _o}from"@solana/web3.js";import kn from"bn.js";import{PublicKey as oi}from"@solana/web3.js";import Gn,{isBN as zn}from"bn.js";import{bits as Xo,BitStructure as Ja,blob as Yo,Blob as es,cstr as ts,f32 as ns,f32be as os,f64 as is,f64be as rs,greedy as as,Layout as Qo,ns64 as ss,ns64be as us,nu64 as cs,nu64be as ls,offset as Zo,s16 as ms,s16be as ds,s24 as ps,s24be as fs,s32 as Ho,s32be as ys,s40 as bs,s40be as gs,s48 as Ps,s48be as As,s8 as ws,seq as jo,struct as ks,Structure as $o,u16 as Jo,u16be as Ts,u24 as hs,u24be as Is,u32 as ei,u32be as Bs,u40 as Ss,u40be as xs,u48 as Ks,u48be as Cs,u8 as ti,UInt as ni,union as Rs,Union as Ls,unionLayoutDiscriminator as Os,utf8 as Ns}from"@solana/buffer-layout";var Rt=Qo,Dn=$o;var Qt=ni;var Wn=ti,ne=Jo;var Lt=ei;var Pe=Ho;var qn=jo;var E=Yo;var Zt=Xo,Un=Zo;var ve=class extends Rt{constructor(t,n,i){super(t,i);this.blob=E(t),this.signed=n}decode(t,n=0){let i=new Gn(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 Gn(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),n,i)}},Ot=class extends Rt{constructor(t){super(8,t);this._lower=Zt(Lt(),!1),this._upper=Zt(Lt(),!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 Qt(1,a)}function Z(a){return new Qt(4,a)}function o(a){return new ve(8,!1,a)}function M(a){return new ve(16,!1,a)}function Xn(a){return new ve(1,!0,a)}function Ge(a){return new ve(8,!0,a)}function Yn(a){return new ve(16,!0,a)}var at=class extends Rt{constructor(t,n,i,r){super(t.span,r);this.layout=t,this.decoder=n,this.encoder=i}decode(t,n){return this.decoder(this.layout.decode(t,n))}encode(t,n,i){return this.layout.encode(this.encoder(t),n,i)}getSpan(t,n){return this.layout.getSpan(t,n)}};function s(a){return new at(E(32),e=>new oi(e),e=>e.toBuffer(),a)}function be(a){return new at(Wn(),ii,ri,a)}function ii(a){if(a===0)return!1;if(a===1)return!0;throw new Error("Invalid bool: "+a)}function ri(a){return a?1:0}function Qn(a,e){let t=Lt("length"),n=g([t,A(a,Un(t,-t.span),"values")]);return new at(n,({values:i})=>i,i=>({values:i}),e)}var Ht=class extends Dn{decode(e,t){return super.decode(e,t)}};function g(a,e,t){return new Ht(a,e,t)}function A(a,e,t){let n,i=typeof e=="number"?e:zn(e)?e.toNumber():new Proxy(e,{get(r,c){if(!n){let u=Reflect.get(r,"count");n=zn(u)?u.toNumber():u,Reflect.set(r,"count",n)}return Reflect.get(r,c)},set(r,c,u){return c==="count"&&(n=u),Reflect.set(r,c,u)}});return qn(a,i,t)}var ai=g([E(8),b("bump"),ne("index"),s("owner"),Z("protocolFeeRate"),Z("tradeFeeRate"),ne("tickSpacing"),Z("fundFeeRate"),A(Z(),1),s("fundOwner"),A(o(),3)]),si=g([Z("blockTimestamp"),Ge("tickCumulative"),A(o(),4)]),Zn=g([E(8),be("initialized"),o("recentEpoch"),ne("observationIndex"),s("poolId"),A(si,Nn,"observations"),A(o(),4)]),ui=g([ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),Pe("tickSpacingIndexReference"),Z("volatilityReference"),Z("volatilityAccumulator"),o("lastUpdateTimestamp"),A(b(),46)]),ci=g([b("state"),o("openTime"),o("endTime"),o("lastUpdateTime"),M("emissionsPerSecondX64"),o("totalEmissioned"),o("claimed"),s("mint"),s("vault"),s("creator"),M("growthGlobalX64")]),jt=g([E(8),b("bump"),s("configId"),s("creator"),s("mintA"),s("mintB"),s("vaultA"),s("vaultB"),s("observationId"),b("mintDecimalsA"),b("mintDecimalsB"),ne("tickSpacing"),M("liquidity"),M("sqrtPriceX64"),Pe("tickCurrent"),Z(),M("feeGrowthGlobalX64A"),M("feeGrowthGlobalX64B"),o("protocolFeesTokenA"),o("protocolFeesTokenB"),A(M(),4),b("status"),b("feeOn"),E(6),A(ci,rt,"rewardInfos"),E(8*16,"tickArrayBitmap"),A(o(),4),o("fundFeesTokenA"),o("fundFeesTokenB"),o("startTime"),o("recentEpoch"),ui.replicate("dynamicFeeInfo"),A(o(),46)]),li=g([M("growthInsideLastX64"),o("rewardAmountOwed")]),mi=g([E(8),b("bump"),s("nftMint"),s("poolId"),Pe("tickLower"),Pe("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(li,rt,"rewardInfos"),o("recentEpoch"),A(o(),7)]),zs=g([E(8),b("bump"),s("poolId"),Pe("tickLower"),Pe("tickUpper"),M("liquidity"),M("feeGrowthInsideLastX64A"),M("feeGrowthInsideLastX64B"),o("tokenFeesOwedA"),o("tokenFeesOwedB"),A(M(),rt,"rewardGrowthInside"),o("recentEpoch"),A(o(),7)]),di=g([Pe("tick"),Yn("liquidityNet"),M("liquidityGross"),M("feeGrowthOutsideX64A"),M("feeGrowthOutsideX64B"),A(M(),rt,"rewardGrowthsOutsideX64"),o("orderPhase"),o("ordersAmount"),o("partFilledOrdersRemaining"),M("unfilledRatioX64"),A(Z(),3)]),Hn=g([E(8),s("poolId"),Pe("startTickIndex"),A(di,me,"ticks"),b("initializedTickCount"),o("recentEpoch"),A(b(),107)]),pi=g([E(8),b("bump"),A(s(),Mn,"operationOwners"),A(s(),Fn,"whitelistMints")]),fi=g([E(8),s("poolId"),s("owner"),Pe("tick"),be("zeroForOne"),o("orderPhase"),o("totalAmount"),o("filledAmount"),o("settleBase"),o("settleOutput"),o("openTime"),M("unfilledRatioX64"),A(o(),4)]),jn=g([E(8),s("poolId"),E(8*8*Ue,"positiveTickArrayBitmap"),E(8*8*Ue,"negativeTickArrayBitmap")]),Xs=g([E(8),ne("index"),ne("filterPeriod"),ne("decayPeriod"),ne("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),A(o(),8)]),yi=g([E(8),s("wallet"),b("nonceIndex"),o("orderNonce"),A(o(),4)]),Ys=g([o(),b("bump"),s("owner"),s("poolId"),s("positionId"),s("nftAccount"),A(o(),8)]),bi=g([E(8),b("bump"),s("lockOwner"),s("poolId"),s("positionId"),s("nftAccount"),s("lockNftMint"),o("recentEpoch"),A(o(),8)]);import{PublicKey as Ai}from"@solana/web3.js";import{get as $n,set as gi}from"lodash";var $t=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}},Jn={},Pi={};function q(a){let e=$n(Jn,a);if(!e){let t=$n(Pi,a);e=new $t({name:a,logLevel:t}),gi(Jn,a,e)}return e}import{MINT_SIZE as iu,TOKEN_PROGRAM_ID as ru,getTransferFeeConfig as au,unpackMint as su}from"@solana/spl-token";var Jt=q("Raydium_accountInfo_util");async function Re(a,e,t){let{batchRequest:n,commitment:i="confirmed",chunkCount:r=100}=N({batchRequest:!1},t),c=en(e,r),u=new Array(c.length).fill([]);if(n){let p=c.map(P=>{let k=a._buildArgs([P.map(w=>w.toBase58())],i,"base64");return{methodName:"getMultipleAccounts",args:k}}),d=en(p,10);u=(await(await Promise.all(d.map(async P=>await a._rpcBatchRequest(P)))).flat()).map(P=>(P.error&&Jt.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"&&Jt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(w[0],"base64"),executable:C,lamports:h,owner:new Ai(I),rentEpoch:B}}return null})))}else try{u=await Promise.all(c.map(p=>a.getMultipleAccountsInfo(p,i)))}catch(p){p instanceof Error&&Jt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${p.message}`)}return u.flat()}import De from"bn.js";import qK from"decimal.js";import xi from"big.js";import Iu from"bn.js";import wi from"toformat";var ki=wi,ut=ki;import Mt from"big.js";import hi from"bn.js";import Ii from"decimal.js-light";import ct from"bn.js";var eo=9007199254740991;function ce(a){let e=q("Raydium_parseBigNumberish");if(a instanceof ct)return a;if(typeof a=="string"){if(a.match(/^-?[0-9]+$/))return new ct(a);e.logWithError(`invalid BigNumberish string: ${a}`)}return typeof a=="number"?(a%1&&e.logWithError(`BigNumberish number underflow: ${a}`),(a>=eo||a<=-eo)&&e.logWithError(`BigNumberish number overflow: ${a}`),new ct(String(a))):typeof a=="bigint"?new ct(a.toString()):(e.error(`invalid BigNumberish value: ${a}`),new ct(0))}var Nt=q("module/fraction"),tn=ut(Mt),lt=ut(Ii),Bi={[0]:lt.ROUND_DOWN,[1]:lt.ROUND_HALF_UP,[2]:lt.ROUND_UP},Si={[0]:Mt.roundDown,[1]:Mt.roundHalfUp,[2]:Mt.roundUp},Y=class{constructor(e,t=new hi(1)){this.numerator=ce(e),this.denominator=ce(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new Y(this.denominator,this.numerator)}add(e){let t=e instanceof Y?e:new Y(ce(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.add(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof Y?e:new Y(ce(e));return this.denominator.eq(t.denominator)?new Y(this.numerator.sub(t.numerator),this.denominator):new Y(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof Y?e:new Y(ce(e));return new Y(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof Y?e:new Y(ce(e));return new Y(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},n=1){Number.isInteger(e)||Nt.logWithError(`${e} is not an integer.`),e<=0&&Nt.logWithError(`${e} is not positive.`),lt.set({precision:e+1,rounding:Bi[n]});let i=new lt(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)||Nt.logWithError(`${e} is not an integer.`),e<0&&Nt.logWithError(`${e} is negative.`),tn.DP=e,tn.RM=Si[n]||1,new tn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Nu=q("Raydium_amount"),Mu=ut(xi);import{PublicKey as Ci}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as to}from"@solana/spl-token";var Ft={chainId:101,address:Ci.default.toBase58(),programId:to.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ie={chainId:101,address:"So11111111111111111111111111111111111111112",programId:to.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 on}from"@solana/web3.js";import{PublicKey as H,SystemProgram as no,SYSVAR_RENT_PUBKEY as Ri}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Li}from"@solana/spl-token";function ze({pubkey:a,isSigner:e=!1,isWritable:t=!0}){return{pubkey:a,isWritable:t,isSigner:e}}var Oi=[ze({pubkey:Li,isWritable:!1}),ze({pubkey:no.programId,isWritable:!1}),ze({pubkey:Ri,isWritable:!1})];function oo({publicKey:a,transformSol:e}){let t=io(a.toString());if(t instanceof H)return e&&t.equals(Ve)?Le:t;if(e&&t.toString()===Ve.toBase58())return Le;if(typeof t=="string"){if(t===H.default.toBase58())return H.default;try{return new H(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function io(a){try{return new H(a)}catch{return a}}var nn=new H("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),mt=new H("SysvarRent111111111111111111111111111111111"),qu=new H("SysvarC1ock11111111111111111111111111111111"),vt=new H("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ni=new H("Sysvar1nstructions1111111111111111111111111"),Mi=no.programId,Uu=new H("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Gu=new H("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),zu=new H("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Xu=new H("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Yu=new H("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Qu=new H("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Zu=new H("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Hu=new H("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),ju=new H("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),$u=new H("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ju=new H("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Le=new H("So11111111111111111111111111111111111111112"),Ve=H.default;var rn=class{constructor({mint:e,decimals:t,symbol:n,name:i,skipMint:r=!1,isToken2022:c=!1}){if(e===Ve.toBase58()||e instanceof on&&Ve.equals(e)){this.decimals=Ie.decimals,this.symbol=Ie.symbol,this.name=Ie.name,this.mint=new on(Ie.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?on.default:oo({publicKey:e}),this.isToken2022=c}equals(e){return this===e?!0:this.mint.equals(e.mint)}},se=rn;se.WSOL=new rn(D(N({},Ie),{mint:Ie.address}));var an=class{constructor({decimals:e,symbol:t="UNKNOWN",name:n="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=n}equals(e){return this===e}},Vt=an;Vt.SOL=new an(Ft);import Fi from"bn.js";var mc=new Y(new Fi(100));var gc=q("Raydium_price");import{merge as Gx}from"lodash";import Sc from"axios";var ro={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},vi=D(N({},ro),{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 Zc=q("Raydium_Api");import{PublicKey as hm,SystemProgram as Im}from"@solana/web3.js";import{AccountLayout as Cm,createAssociatedTokenAccountIdempotentInstruction as Rm,TOKEN_PROGRAM_ID as Lm,TOKEN_2022_PROGRAM_ID as Om}from"@solana/spl-token";import{PublicKey as He,sendAndConfirmTransaction as dn,SystemProgram as qi,Transaction as ft,TransactionMessage as yt,VersionedTransaction as bt}from"@solana/web3.js";import Ui from"axios";import{PublicKey as sn,AddressLookupTableAccount as Qe}from"@solana/web3.js";async function un({connection:a,address:e,cluster:t="mainnet"}){let n=await Re(a,[...new Set(e.map(r=>r.toString()))].map(r=>new sn(r))),i={};for(let r=0;r<e.length;r++){let c=n[r],u=e[r];if(!c)continue;let p=new Qe({key:u,state:Qe.deserialize(c.data)});i[u.toString()]=p,t==="devnet"?Ye[u.toString()]=p:Xe[u.toString()]=p}return i}var Xe={},cn=async a=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Xe[e])return Xe;let t=new sn(e),n=await a.getAccountInfo(t);return n&&(Xe[e]=new Qe({key:t,state:Qe.deserialize(n.data)})),Xe},Ye={},ln=async a=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ye[e])return Ye;let t=new sn(e),n=await a.getAccountInfo(t);return n&&(Ye[e]=new Qe({key:t,state:Qe.deserialize(n.data)})),Ye};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 ao,Keypair as uo,PublicKey as Vi,Transaction as co,TransactionMessage as _i,VersionedTransaction as lo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Ei}from"@solana/spl-token";var so=q("Raydium_txUtil"),mo=1644;function _t(a){let e=[],t=[];return a.microLamports&&(e.push(ao.setComputeUnitPrice({microLamports:a.microLamports})),t.push(oe.SetComputeUnitPrice)),a.units&&(e.push(ao.setComputeUnitLimit({units:a.units})),t.push(oe.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ze(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 Et(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 mn(a,e){a.length<1&&so.logWithError(`no instructions provided: ${a.toString()}`),e.length<1&&so.logWithError(`no signers provided:, ${e.toString()}`);let t=new co;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...a);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<mo}catch{return!1}}function Ae(a,e){let[t,n]=Vi.findProgramAddressSync(a,e);return{publicKey:t,nonce:n}}function dt({instructions:a,payer:e,signers:t}){return mn(a,[e,...t])}function pt({instructions:a,payer:e,lookupTableAddressAccount:t,recentBlockhash:n=uo.generate().publicKey.toString()}){let r=new _i({payerKey:e,recentBlockhash:n,instructions:a}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new lo(r).serialize()).toString("base64").length<mo}catch{return!1}}var Di=a=>Buffer.isBuffer(a)?a:a instanceof Uint8Array?Buffer.from(a.buffer,a.byteOffset,a.byteLength):Buffer.from(a),Wi=a=>{let e=a.serialize({requireAllSignatures:!1,verifySignatures:!1});a instanceof lo&&(e=Di(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function _e(a){let e=[];return a.forEach(t=>{t instanceof co&&(t.recentBlockhash||(t.recentBlockhash=Ei.toBase58()),t.feePayer||(t.feePayer=uo.generate().publicKey)),e.push(Wi(t))}),console.log("simulate tx string:",e),e}var Dt=2e3,Wt=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 Ui.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}=_t(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...n),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(qi.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new He(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(oe.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let n=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(n))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:n=[],instructionTypes:i=[],endInstructionTypes:r=[],lookupTableAddress:c=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...n),this.instructionTypes.push(...i),this.endInstructionTypes.push(...r),this.lookupTableAddress.push(...c.filter(u=>u!==He.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:n}){return e===0?await this.buildV0(D(N({},t||{}),{lookupTableAddress:n})):this.build(t)}build(e){var n;let t=new ft;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((n=this.owner)==null?void 0:n.signer)&&!this.signers.some(i=>i.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async i=>{var y;let{recentBlockHash:r,skipPreflight:c=!0,sendAndConfirm:u,notSendToRpc:p}=i||{},d=r!=null?r:await Ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=d,this.signers.length&&t.sign(...this.signers),_e([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:u?await dn(this.connection,t,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:c}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:c}),signedTx:t};if(this.signAllTransactions){let P=await this.signAllTransactions([t]);if(this.signers.length)for(let k of P)try{k.sign(...this.signers)}catch{}return{txId:p?"":await this.connection.sendRawTransaction(P[0].serialize(),{skipPreflight:c}),signedTx:P[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var d;let{extraPreBuildData:t=[],extInfo:n}=e,{transaction:i}=this.build(n),r=t.filter(y=>y.transaction.instructions.length>0),c=[i,...r.map(y=>y.transaction)],u=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&u.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:c,signers:u,instructionTypes:p,execute:async y=>{var B;let{sequentially:P,onTxUpdate:k,skipTxCount:w=0,recentBlockHash:C,skipPreflight:h=!0}=y||{},I=C!=null?C:await Ze(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 dn(this.connection,v,this.signers.find(T=>T.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});S.push(f)}return{txIds:S,signedTxs:c}}return{txIds:await await Promise.all(c.map(async S=>(S.recentBlockhash=I,await this.connection.sendRawTransaction(S.serialize(),{skipPreflight:h})))),signedTxs:c}}if(this.signAllTransactions){let S=c.map((v,f)=>(v.recentBlockhash=I,u[f].length&&v.sign(...u[f]),v));_e(S);let F=await this.signAllTransactions(S);if(P){let v=0,f=[],T=async()=>{if(!F[v])return;let x=await this.connection.sendRawTransaction(F[v].serialize(),{skipPreflight:h});f.push({txId:x,status:"sent",signedTx:F[v]}),k==null||k([...f]),v++;let O=!1,L=null,V=null,ie=z=>{L!==null&&clearInterval(L),V!==null&&this.connection.removeSignatureListener(V);let _=f.findIndex(J=>J.txId===x);if(_>-1){if(f[_].status==="error"||f[_].status==="success")return;f[_].status=z.err?"error":"success"}k==null||k([...f]),z.err||T()};this.loopMultiTxStatus&&(L=setInterval(async()=>{var z;if(O){clearInterval(L);return}try{let _=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});_&&(O=!0,clearInterval(L),ie({err:((z=_.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",x))}catch(_){O=!0,clearInterval(L),console.error("getTransaction timeout:",_,x)}},Dt)),V=this.connection.onSignature(x,z=>{if(O){this.connection.removeSignatureListener(V);return}O=!0,ie(z)},"confirmed"),this.connection.getSignatureStatus(x)};return await T(),{txIds:f.map(x=>x.txId),signedTxs:F}}else{let v=[];for(let f=0;f<F.length;f+=1){let T=await this.connection.sendRawTransaction(F[f].serialize(),{skipPreflight:h});v.push(T)}return{txIds:v,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:n||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:n}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:n||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:n})}async buildV0(e){var h;let C=e||{},{lookupTableCache:t={},lookupTableAddress:n=[],forerunCreate:i,recentBlockhash:r}=C,c=Te(C,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),u=N(N({},this.cluster==="devnet"?await ln(this.connection):await cn(this.connection)),t),p=Array.from(new Set([...n,...this.lookupTableAddress])),d=[];for(let I of p)u[I]===void 0&&d.push(new He(I));let y=await un({connection:this.connection,address:d});for(let[I,B]of Object.entries(y))u[I]=B;let P=i?He.default.toBase58():r!=null?r:await Ze(this.connection,this.blockhashCommitment),k=new yt({payerKey:this.feePayer,recentBlockhash:P,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(u));((h=this.owner)==null?void 0:h.signer)&&!this.signers.some(I=>I.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let w=new bt(k);return w.sign(this.signers),{builder:this,transaction:w,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async I=>{var v;let{skipPreflight:B=!0,sendAndConfirm:S,notSendToRpc:F}=I||{};if(_e([w]),(v=this.owner)!=null&&v.isKeyPair){let f=await this.connection.sendTransaction(w,{skipPreflight:B});return S&&await Et(this.connection,f),{txId:f,signedTx:w}}if(this.signAllTransactions){let f=await this.signAllTransactions([w]);if(this.signers.length)for(let T of f)try{T.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(f[0],{skipPreflight:B}),signedTx:f[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:c||{}}}async buildV0MultiTx(e){var d;let{extraPreBuildData:t=[],buildProps:n}=e,{transaction:i}=await this.buildV0(n),r=t.filter(y=>y.builder.instructions.length>0),c=[i,...r.map(y=>y.transaction)],u=[this.signers,...r.map(y=>y.signers)],p=[...this.instructionTypes,...r.map(y=>y.instructionTypes).flat()];return(d=this.owner)!=null&&d.signer&&u.forEach(y=>{y.some(P=>P.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),c.forEach(async(y,P)=>{y.sign(u[P])}),{builder:this,transactions:c,signers:u,instructionTypes:p,buildProps:n,execute:async y=>{var h;let{sequentially:P,onTxUpdate:k,recentBlockHash:w,skipPreflight:C=!0}=y||{};if(w&&c.forEach(I=>I.message.recentBlockhash=w),_e(c),(h=this.owner)!=null&&h.isKeyPair){if(P){let I=[];for(let B of c){let S=await this.connection.sendTransaction(B,{skipPreflight:C});await Et(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)}},Dt)),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=Te(P,["splitIns","computeBudgetConfig"]),r=n?_t(n):{instructions:[],instructionTypes:[]},c=this.signers.reduce((w,C)=>D(N({},w),{[C.publicKey.toBase58()]:C}),{}),u=[],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 He(S));if(w!==t[y]&&d.length<12&&(dt({instructions:h,payer:this.feePayer,signers:B})||dt({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,dt({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:B})?u.push(new ft().add(...r.instructions,...d)):u.push(new ft().add(...d)),p.push(Array.from(new Set(d.map(S=>S.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(S=>c[S]).filter(S=>S!==void 0)),d=[w]}}),d.length>0){let 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);dt({instructions:n?[...r.instructions,...d]:[...d],payer:this.feePayer,signers:C.map(h=>h.publicKey)})?u.push(new ft().add(...r.instructions,...d)):u.push(new ft().add(...d)),p.push(C)}return u.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:u,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 Ze(this.connection,this.blockhashCommitment);if(u.forEach(async(f,T)=>{f.recentBlockhash=F,p[T].length&&f.sign(...p[T])}),_e(u),(v=this.owner)!=null&&v.isKeyPair){if(C){let f=0,T=[];for(let x of u){if(++f,f<=I){T.push("tx skipped");continue}let O=await dn(this.connection,x,this.signers.find(L=>L.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:S});T.push(O)}return{txIds:T,signedTxs:u}}return{txIds:await Promise.all(u.map(async f=>await this.connection.sendRawTransaction(f.serialize(),{skipPreflight:S}))),signedTxs:u}}if(this.signAllTransactions){let f=await this.signAllTransactions(u.slice(I,u.length)),T=[...u.slice(0,I),...f];if(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,z=null,_=null,J=G=>{z!==null&&clearInterval(z),_!==null&&this.connection.removeSignatureListener(_);let re=O.findIndex(Se=>Se.txId===V);if(re>-1){if(O[re].status==="error"||O[re].status==="success")return;O[re].status=G.err?"error":"success"}h==null||h([...O]),G.err||L()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var G;if(ie){clearInterval(z);return}try{let re=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});re&&(ie=!0,clearInterval(z),J({err:((G=re.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(re){ie=!0,clearInterval(z),console.error("getTransaction timeout:",re,V)}},Dt)),_=this.connection.onSignature(V,G=>{if(ie){this.connection.removeSignatureListener(_);return}ie=!0,J(G)},"confirmed"),this.connection.getSignatureStatus(V)};return await L(),{txIds:O.map(V=>V.txId),signedTxs:T}}else{let x=[];for(let O=0;O<T.length;O+=1){let L=await this.connection.sendRawTransaction(T[O].serialize(),{skipPreflight:S});x.push(L)}return{txIds:x,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuildV0(e){var v;let F=e||{},{computeBudgetConfig:t,splitIns:n=[],lookupTableCache:i={},lookupTableAddress:r=[],insCountLimit:c=12}=F,u=Te(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),p=N(N({},this.cluster==="devnet"?await ln(this.connection):await cn(this.connection)),i),d=Array.from(new Set([...this.lookupTableAddress,...r])),y=[];for(let f of d)p[f]===void 0&&y.push(new He(f));let P=await un({connection:this.connection,address:y});for(let[f,T]of Object.entries(P))p[f]=T;let k=t?_t(t):{instructions:[],instructionTypes:[]},w=await Ze(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&&(pt({instructions:x,payer:this.feePayer,lookupTableAddressAccount:p})||pt({instructions:T,payer:this.feePayer,lookupTableAddressAccount:p})))B.push(f);else{if(B.length===0)throw Error("item ins too big");S+=f===n[S]?1:0;let O={};for(let L of[...new Set(d)])p[L]!==void 0&&(O[L]=p[L]);if(t&&pt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let L=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new bt(L))}else{let L=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new bt(L))}I.push(Array.from(new Set(B.map(L=>L.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(L=>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&&pt({instructions:[...k.instructions,...B],payer:this.feePayer,lookupTableAddressAccount:p,recentBlockhash:w})){let x=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...k.instructions,...B]}).compileToV0Message(Object.values(p));h.push(new bt(x))}else{let x=new yt({payerKey:this.feePayer,recentBlockhash:w,instructions:[...B]}).compileToV0Message(Object.values(p));h.push(new bt(x))}I.push(T)}return(v=this.owner)!=null&&v.signer&&I.forEach(f=>{f.some(T=>T.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),h.forEach((f,T)=>{f.sign(I[T])}),{builder:this,transactions:h,buildProps:e,signers:I,instructionTypes:this.instructionTypes,execute:async f=>{var ie;let{sequentially:T,onTxUpdate:x,skipTxCount:O=0,recentBlockHash:L,skipPreflight:V=!0}=f||{};if(h.map(async(z,_)=>{I[_].length&&z.sign(I[_]),L&&(z.message.recentBlockhash=L)}),_e(h),(ie=this.owner)!=null&&ie.isKeyPair){if(T){let z=0,_=[];for(let J of h){if(++z,z<=O){console.log("skip tx: ",z),_.push("tx skipped");continue}let G=await this.connection.sendTransaction(J,{skipPreflight:V});await Et(this.connection,G),_.push(G)}return{txIds:_,signedTxs:h}}return{txIds:await Promise.all(h.map(async z=>await this.connection.sendTransaction(z,{skipPreflight:V}))),signedTxs:h}}if(this.signAllTransactions){let z=await this.signAllTransactions(h.slice(O,h.length)),_=[...h.slice(0,O),...z];if(T){let J=0,G=[],re=async()=>{if(!_[J])return;if(J<O){G.push({txId:"",status:"success",signedTx:_[J]}),x==null||x([...G]),J++,re();return}let Se=await this.connection.sendTransaction(_[J],{skipPreflight:V});G.push({txId:Se,status:"sent",signedTx:_[J]}),x==null||x([...G]),J++;let ot=!1,We=null,It=null,Tn=Fe=>{We!==null&&clearInterval(We),It!==null&&this.connection.removeSignatureListener(It);let xe=G.findIndex(Eo=>Eo.txId===Se);if(xe>-1){if(G[xe].status==="error"||G[xe].status==="success")return;G[xe].status=Fe.err?"error":"success"}x==null||x([...G]),Fe.err||re()};this.loopMultiTxStatus&&(We=setInterval(async()=>{var Fe;if(ot){clearInterval(We);return}try{let xe=await this.connection.getTransaction(Se,{commitment:"confirmed",maxSupportedTransactionVersion:0});xe&&(ot=!0,clearInterval(We),Tn({err:((Fe=xe.meta)==null?void 0:Fe.err)||null}),console.log("tx status from getTransaction:",Se))}catch(xe){ot=!0,clearInterval(We),console.error("getTransaction timeout:",xe,Se)}},Dt)),It=this.connection.onSignature(Se,Fe=>{if(ot){this.connection.removeSignatureListener(It);return}ot=!0,Tn(Fe)},"confirmed"),this.connection.getSignatureStatus(Se)};return re(),{txIds:[],signedTxs:_}}else{let J=[];for(let G=0;G<_.length;G+=1){let re=await this.connection.sendTransaction(_[G],{skipPreflight:V});J.push(re)}return{txIds:J,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}};var pn=(...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=q(t)}createTxBuilder(e){return this.scope.checkOwner(),new Wt({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(pn(e))}logInfo(...e){this.logger.info(pn(e))}logAndCreateError(...e){let t=pn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as em,SystemProgram as nm}from"@solana/web3.js";import rm from"bn.js";import{createCloseAccountInstruction as cm,createInitializeAccountInstruction as lm,createTransferInstruction as mm,TOKEN_PROGRAM_ID as dm}from"@solana/spl-token";import{Keypair as Wl,PublicKey as ql}from"@solana/web3.js";import zl from"bn.js";import{TOKEN_PROGRAM_ID as Ql}from"@solana/spl-token";var qt=g([s("mint"),s("owner"),o("amount"),Z("delegateOption"),s("delegate"),b("state"),Z("isNativeOption"),o("isNative"),o("delegatedAmount"),Z("closeAuthorityOption"),s("closeAuthority")]);import{PublicKey as zb,SystemProgram as Xb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as Qb}from"@solana/spl-token";import{PublicKey as Em}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Wm}from"@solana/spl-token";import{PublicKey as R}from"@solana/web3.js";var fo=new R("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),yo=new R("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),bo=new R("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),fn=new R("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),zm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),go=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Po=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Xm=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ao=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),wo=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ym=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Zi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),yn=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Hi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Qm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ji=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ji=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Zm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Hm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),jm=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),$m=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Jm=new R("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Me={OPEN_BOOK_PROGRAM:new R("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new R("Ray1111111111111111111111111111111111111111"),AMM_V4:new R("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new R("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new R("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new R("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new R("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new R("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new R("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new R("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new R("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:R.default,Router:new R("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new R("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new R("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new R("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new R("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new R("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new R("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new R("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new R("Ray1111111111111111111111111111111111111111")};import ig from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as wf,TOKEN_2022_PROGRAM_ID as kf,TOKEN_PROGRAM_ID as Tf}from"@solana/spl-token";import{PublicKey as If}from"@solana/web3.js";import Sf from"bn.js";import Kf from"decimal.js";import{TOKEN_PROGRAM_ID as pd}