@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 96.9 kB
JavaScript
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,Ea=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),Da=new W(-1);var Wa=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 Xa=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 es,blob as Yo,Blob as ts,cstr as ns,f32 as os,f32be as is,f64 as rs,f64be as as,greedy as ss,Layout as Qo,ns64 as us,ns64be as cs,nu64 as ls,nu64be as ms,offset as Zo,s16 as ds,s16be as ps,s24 as fs,s24be as ys,s32 as Ho,s32be as bs,s40 as gs,s40be as Ps,s48 as As,s48be as ws,s8 as ks,seq as jo,struct as Ts,Structure as $o,u16 as Jo,u16be as hs,u24 as Is,u24be as Bs,u32 as ei,u32be as Ss,u40 as xs,u40be as Ks,u48 as Cs,u48be as Rs,u8 as ti,UInt as ni,union as Ls,Union as Os,unionLayoutDiscriminator as Ns,utf8 as Ms}from"@solana/buffer-layout";var Rt=Qo,Dn=$o;var Qt=ni;var Wn=ti,ee=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"),ee("index"),s("owner"),Z("protocolFeeRate"),Z("tradeFeeRate"),ee("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"),ee("observationIndex"),s("poolId"),A(si,Nn,"observations"),A(o(),4)]),ui=g([ee("filterPeriod"),ee("decayPeriod"),ee("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"),ee("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)]),Xs=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")]),Ys=g([E(8),ee("index"),ee("filterPeriod"),ee("decayPeriod"),ee("reductionFactor"),Z("dynamicFeeControl"),Z("maxVolatilityAccumulator"),A(o(),8)]),yi=g([E(8),s("wallet"),b("nonceIndex"),o("orderNonce"),A(o(),4)]),Qs=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 ru,TOKEN_PROGRAM_ID as au,getTransferFeeConfig as su,unpackMint as uu}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 zK from"decimal.js";import xi from"big.js";import Bu 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 Mu=q("Raydium_amount"),Fu=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"),Uu=new H("SysvarC1ock11111111111111111111111111111111"),vt=new H("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Ni=new H("Sysvar1nstructions1111111111111111111111111"),Mi=no.programId,Gu=new H("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),zu=new H("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Xu=new H("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Yu=new H("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Qu=new H("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Zu=new H("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Hu=new H("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),ju=new H("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),$u=new H("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Ju=new H("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),ec=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 dc=new Y(new Fi(100));var Pc=q("Raydium_price");import{merge as Yx}from"lodash";import xc 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 Hc=q("Raydium_Api");import{PublicKey as Im,SystemProgram as Bm}from"@solana/web3.js";import{AccountLayout as Rm,createAssociatedTokenAccountIdempotentInstruction as Lm,TOKEN_PROGRAM_ID as Om,TOKEN_2022_PROGRAM_ID as Nm}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,re=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),re({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,re(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(re=>re.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 re=!1,z=null,_=null,J=G=>{z!==null&&clearInterval(z),_!==null&&this.connection.removeSignatureListener(_);let ae=O.findIndex(Se=>Se.txId===V);if(ae>-1){if(O[ae].status==="error"||O[ae].status==="success")return;O[ae].status=G.err?"error":"success"}h==null||h([...O]),G.err||L()};this.loopMultiTxStatus&&(z=setInterval(async()=>{var G;if(re){clearInterval(z);return}try{let ae=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});ae&&(re=!0,clearInterval(z),J({err:((G=ae.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",V))}catch(ae){re=!0,clearInterval(z),console.error("getTransaction timeout:",ae,V)}},Dt)),_=this.connection.onSignature(V,G=>{if(re){this.connection.removeSignatureListener(_);return}re=!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 re;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),(re=this.owner)!=null&&re.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=[],ae=async()=>{if(!_[J])return;if(J<O){G.push({txId:"",status:"success",signedTx:_[J]}),x==null||x([...G]),J++,ae();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||ae()};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 ae(),{txIds:[],signedTxs:_}}else{let J=[];for(let G=0;G<_.length;G+=1){let ae=await this.connection.sendTransaction(_[G],{skipPreflight:V});J.push(ae)}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 tm,SystemProgram as om}from"@solana/web3.js";import am from"bn.js";import{createCloseAccountInstruction as lm,createInitializeAccountInstruction as mm,createTransferInstruction as dm,TOKEN_PROGRAM_ID as pm}from"@solana/spl-token";import{Keypair as ql,PublicKey as Ul}from"@solana/web3.js";import Xl from"bn.js";import{TOKEN_PROGRAM_ID as Zl}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 Hb}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as $b}from"@solana/spl-token";import{PublicKey as Dm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as qm}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"),Xm=new R("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),zi=new R("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),go=new R("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Po=new R("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Ym=new R("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Xi=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Ao=new R("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Yi=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Qi=new R("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),wo=new R("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Qm=new R("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Zi=new R("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),yn=new R("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Hi=new R("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Zm=new R("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),ji=new R("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),$i=new R("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Ji=new R("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Hm=new R("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),jm=new R("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),$m=new R("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Jm=new R("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ed=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 ug from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as If,TOKEN_2022_PROGRAM_ID as Bf,TOKEN_PROGRAM_ID as Sf}from"@solana/spl-token";import{PublicKey as Kf}from"@solana/web3.js";import Rf from"bn.js";import Of from"decimal.js";import{TOKEN_PROGRAM_ID as fd}