@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 80.8 kB
JavaScript
var Lo=Object.defineProperty,Oo=Object.defineProperties;var No=Object.getOwnPropertyDescriptors;var st=Object.getOwnPropertySymbols;var bn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var yn=(o,t,n)=>t in o?Lo(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n,K=(o,t)=>{for(var n in t||(t={}))bn.call(t,n)&&yn(o,n,t[n]);if(st)for(var n of st(t))gn.call(t,n)&&yn(o,n,t[n]);return o},v=(o,t)=>Oo(o,No(t));var de=(o,t)=>{var n={};for(var i in o)bn.call(o,i)&&t.indexOf(i)<0&&(n[i]=o[i]);if(o!=null&&st)for(var i of st(o))t.indexOf(i)<0&&gn.call(o,i)&&(n[i]=o[i]);return n};import ie from"bn.js";import{PublicKey as vo}from"@solana/web3.js";import{get as Pn,set as Mo}from"lodash";var Ct=class{constructor(t){this.logLevel=t.logLevel!==void 0?t.logLevel:0,this.name=t.name}set level(t){this.logLevel=t}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(t){return t<=this.logLevel}error(...t){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...t),this):this}logWithError(...t){let n=t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(n)}warning(...t){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...t),this):this}info(...t){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...t),this):this}debug(...t){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...t),this):this}},An={},Fo={};function _(o){let t=Pn(An,o);if(!t){let n=Pn(Fo,o);t=new Ct({name:o,logLevel:n}),Mo(An,o,t)}return t}import{MINT_SIZE as ns,TOKEN_PROGRAM_ID as os,getTransferFeeConfig as is,unpackMint as rs}from"@solana/spl-token";var Rt=_("Raydium_accountInfo_util");async function pe(o,t,n){let{batchRequest:i,commitment:a="confirmed",chunkCount:m=100}=K({batchRequest:!1},n),d=Lt(t,m),p=new Array(d.length).fill([]);if(i){let g=d.map(C=>{let k=o._buildArgs([C.map(b=>b.toBase58())],a,"base64");return{methodName:"getMultipleAccounts",args:k}}),P=Lt(g,10);p=(await(await Promise.all(P.map(async C=>await o._rpcBatchRequest(C)))).flat()).map(C=>(C.error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${C.error.message}`),C.result.value.map(k=>{if(k){let{data:b,executable:R,lamports:I,owner:A,rentEpoch:T}=k;return b.length!==2&&b[1]!=="base64"&&Rt.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(b[0],"base64"),executable:R,lamports:I,owner:new vo(A),rentEpoch:T}}return null})))}else try{p=await Promise.all(d.map(g=>o.getMultipleAccountsInfo(g,a)))}catch(g){g instanceof Error&&Rt.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${g.message}`)}return p.flat()}async function we(o,t,n){let i=await pe(o,t.map(a=>a.pubkey),n);return t.map((a,m)=>v(K({},a),{accountInfo:i[m]}))}import Ke from"bn.js";import iR from"decimal.js";import Go from"big.js";import lt from"bn.js";import Vo from"toformat";var _o=Vo,Ye=_o;import ct from"big.js";import Do from"bn.js";import Wo from"decimal.js-light";import Qe from"bn.js";var wn=9007199254740991;function U(o){let t=_("Raydium_parseBigNumberish");if(o instanceof Qe)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Qe(o);t.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&t.logWithError(`BigNumberish number underflow: ${o}`),(o>=wn||o<=-wn)&&t.logWithError(`BigNumberish number overflow: ${o}`),new Qe(String(o))):typeof o=="bigint"?new Qe(o.toString()):(t.error(`invalid BigNumberish value: ${o}`),new Qe(0))}var ut=_("module/fraction"),Ot=Ye(ct),Ze=Ye(Wo),qo={[0]:Ze.ROUND_DOWN,[1]:Ze.ROUND_HALF_UP,[2]:Ze.ROUND_UP},Uo={[0]:ct.roundDown,[1]:ct.roundHalfUp,[2]:ct.roundUp},W=class{constructor(t,n=new Do(1)){this.numerator=U(t),this.denominator=U(n)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new W(this.denominator,this.numerator)}add(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.add(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).add(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}sub(t){let n=t instanceof W?t:new W(U(t));return this.denominator.eq(n.denominator)?new W(this.numerator.sub(n.numerator),this.denominator):new W(this.numerator.mul(n.denominator).sub(n.numerator.mul(this.denominator)),this.denominator.mul(n.denominator))}mul(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.numerator),this.denominator.mul(n.denominator))}div(t){let n=t instanceof W?t:new W(U(t));return new W(this.numerator.mul(n.denominator),this.denominator.mul(n.numerator))}toSignificant(t,n={groupSeparator:""},i=1){Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<=0&&ut.logWithError(`${t} is not positive.`),Ze.set({precision:t+1,rounding:qo[i]});let a=new Ze(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(t);return a.toFormat(a.decimalPlaces(),n)}toFixed(t,n={groupSeparator:""},i=1){return Number.isInteger(t)||ut.logWithError(`${t} is not an integer.`),t<0&&ut.logWithError(`${t} is negative.`),Ot.DP=t,Ot.RM=Uo[i]||1,new Ot(this.numerator.toString()).div(this.denominator.toString()).toFormat(t,n)}isZero(){return this.numerator.isZero()}};var zo=_("Raydium_amount"),kn=Ye(Go);function Xo(o,t){let n="0",i="0";if(o.includes(".")){let a=o.split(".");a.length===2?([n,i]=a,i=i.padEnd(t,"0")):zo.logWithError(`invalid number string, num: ${o}`)}else n=o;return[n,i.slice(0,t)||i]}var ae=class extends W{constructor(n,i,a=!0,m){let d=new lt(0),p=Nt.pow(new lt(n.decimals));if(a)d=U(i);else{let g=new lt(0),P=new lt(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[y,C]=Xo(i.toString(),n.decimals);g=U(y),P=U(C)}g=g.mul(p),d=g.add(P)}super(d,p);this.logger=_(m||"TokenAmount"),this.token=n}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(n){return this.token.equals(n.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(n.raw)}lt(n){return this.token.equals(n.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(n.raw)}add(n){return this.token.equals(n.token)||this.logger.logWithError("add token not equals"),new ae(this.token,this.raw.add(n.raw))}subtract(n){return this.token.equals(n.token)||this.logger.logWithError("sub token not equals"),new ae(this.token,this.raw.sub(n.raw))}toSignificant(n=this.token.decimals,i,a=0){return super.toSignificant(n,i,a)}toFixed(n=this.token.decimals,i,a=0){return n>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(n,i,a)}toExact(n={groupSeparator:""}){return kn.DP=this.token.decimals,new kn(this.numerator.toString()).div(this.denominator.toString()).toFormat(n)}};import{PublicKey as Yo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tn}from"@solana/spl-token";var mt={chainId:101,address:Yo.default.toBase58(),programId:Tn.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},ye={chainId:101,address:"So11111111111111111111111111111111111111112",programId:Tn.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 vt}from"@solana/web3.js";import{PublicKey as X,SystemProgram as hn,SYSVAR_RENT_PUBKEY as Qo}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Zo}from"@solana/spl-token";function Re({pubkey:o,isSigner:t=!1,isWritable:n=!0}){return{pubkey:o,isWritable:n,isSigner:t}}var Ho=[Re({pubkey:Zo,isWritable:!1}),Re({pubkey:hn.programId,isWritable:!1}),Re({pubkey:Qo,isWritable:!1})];function In({publicKey:o,transformSol:t}){let n=Mt(o.toString());if(n instanceof X)return t&&n.equals(Ie)?fe:n;if(t&&n.toString()===Ie.toBase58())return fe;if(typeof n=="string"){if(n===X.default.toBase58())return X.default;try{return new X(n)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Mt(o){try{return new X(o)}catch{return o}}var Ft=new X("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Le=new X("SysvarRent111111111111111111111111111111111"),jo=new X("SysvarC1ock11111111111111111111111111111111"),dt=new X("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),$o=new X("Sysvar1nstructions1111111111111111111111111"),Bn=hn.programId,Vs=new X("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),_s=new X("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Es=new X("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Ds=new X("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),Ws=new X("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),qs=new X("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Us=new X("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Gs=new X("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),zs=new X("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Xs=new X("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Ys=new X("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),fe=new X("So11111111111111111111111111111111111111112"),Ie=X.default;var Vt=class{constructor({mint:t,decimals:n,symbol:i,name:a,skipMint:m=!1,isToken2022:d=!1}){if(t===Ie.toBase58()||t instanceof vt&&Ie.equals(t)){this.decimals=ye.decimals,this.symbol=ye.symbol,this.name=ye.name,this.mint=new vt(ye.address),this.isToken2022=!1;return}this.decimals=n,this.symbol=i||t.toString().substring(0,6),this.name=a||t.toString().substring(0,6),this.mint=m?vt.default:In({publicKey:t}),this.isToken2022=d}equals(t){return this===t?!0:this.mint.equals(t.mint)}},J=Vt;J.WSOL=new Vt(v(K({},ye),{mint:ye.address}));var _t=class{constructor({decimals:t,symbol:n="UNKNOWN",name:i="UNKNOWN"}){this.decimals=t,this.symbol=n,this.name=i}equals(t){return this===t}},pt=_t;pt.SOL=new _t(mt);import Jo from"bn.js";var Sn=new W(new Jo(100)),Ae=class extends W{toSignificant(t=5,n,i){return this.mul(Sn).toSignificant(t,n,i)}toFixed(t=2,n,i){return this.mul(Sn).toFixed(t,n,i)}};var ei=_("Raydium_price"),ce=class extends W{constructor(n){let{baseToken:i,quoteToken:a,numerator:m,denominator:d}=n;super(m,d);this.baseToken=i,this.quoteToken=a,this.scalar=new W(Et(i.decimals),Et(a.decimals))}get raw(){return new W(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new ce({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(n){this.quoteToken!==n.baseToken&&ei.logWithError("mul token not equals");let i=super.mul(n);return new ce({baseToken:this.baseToken,quoteToken:n.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(n=this.quoteToken.decimals,i,a){return this.adjusted.toSignificant(n,i,a)}toFixed(n=this.quoteToken.decimals,i,a){return this.adjusted.toFixed(n,i,a)}};import{merge as iC}from"lodash";import gu from"axios";var xn={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_IDO:"/main/ido/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",IDO_KEYS:"/ido/key/ids",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},ti=v(K({},xn),{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 Du=_("Raydium_Api");import{PublicKey as im,SystemProgram as rm}from"@solana/web3.js";import{AccountLayout as lm,createAssociatedTokenAccountIdempotentInstruction as mm,TOKEN_PROGRAM_ID as dm,TOKEN_2022_PROGRAM_ID as pm}from"@solana/spl-token";import{PublicKey as ve,sendAndConfirmTransaction as zt,SystemProgram as si,Transaction as $e,TransactionMessage as Je,VersionedTransaction as et}from"@solana/web3.js";import ui from"axios";import{PublicKey as Dt,AddressLookupTableAccount as Me}from"@solana/web3.js";async function Wt({connection:o,address:t,cluster:n="mainnet"}){let i=await pe(o,[...new Set(t.map(m=>m.toString()))].map(m=>new Dt(m))),a={};for(let m=0;m<t.length;m++){let d=i[m],p=t[m];if(!d)continue;let g=new Me({key:p,state:Me.deserialize(d.data)});a[p.toString()]=g,n==="devnet"?Ne[p.toString()]=g:Oe[p.toString()]=g}return a}var Oe={},qt=async o=>{let t="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Oe[t])return Oe;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Oe[t]=new Me({key:n,state:Me.deserialize(i.data)})),Oe},Ne={},Ut=async o=>{let t="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Ne[t])return Ne;let n=new Dt(t),i=await o.getAccountInfo(n);return i&&(Ne[t]=new Me({key:n,state:Me.deserialize(i.data)})),Ne};var Z={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 Kn,Keypair as Rn,PublicKey as ni,Transaction as Ln,TransactionMessage as oi,VersionedTransaction as On}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as ii}from"@solana/spl-token";var Cn=_("Raydium_txUtil"),Nn=1644;function ft(o){let t=[],n=[];return o.microLamports&&(t.push(Kn.setComputeUnitPrice({microLamports:o.microLamports})),n.push(Z.SetComputeUnitPrice)),o.units&&(t.push(Kn.setComputeUnitLimit({units:o.units})),n.push(Z.SetComputeUnitLimit)),{instructions:t,instructionTypes:n}}async function Fe(o,t){var i,a;let n=t!=null?t:"confirmed";return(a=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:n})))==null?void 0:a.blockhash}async function yt(o,t){return o.getSignatureStatuses([t]),new Promise((n,i)=>{let a=setTimeout(i,6e4);o.onSignature(t,m=>{if(clearTimeout(a),!m.err){n("");return}i(Object.assign(m.err,{txId:t}))},"confirmed")})}function Gt(o,t){o.length<1&&Cn.logWithError(`no instructions provided: ${o.toString()}`),t.length<1&&Cn.logWithError(`no signers provided:, ${t.toString()}`);let n=new Ln;n.recentBlockhash="11111111111111111111111111111111",n.feePayer=t[0],n.add(...o);try{return Buffer.from(n.serialize({verifySignatures:!1})).toString("base64").length<Nn}catch{return!1}}function se(o,t){let[n,i]=ni.findProgramAddressSync(o,t);return{publicKey:n,nonce:i}}function He({instructions:o,payer:t,signers:n}){return Gt(o,[t,...n])}function je({instructions:o,payer:t,lookupTableAddressAccount:n,recentBlockhash:i=Rn.generate().publicKey.toString()}){let m=new oi({payerKey:t,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(n!=null?n:{}));try{return Buffer.from(new On(m).serialize()).toString("base64").length<Nn}catch{return!1}}var ri=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),ai=o=>{let t=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof On&&(t=ri(t));try{return t instanceof Buffer?t.toString("base64"):Buffer.from(t).toString("base64")}catch{return t.toString("base64")}};function Be(o){let t=[];return o.forEach(n=>{n instanceof Ln&&(n.recentBlockhash||(n.recentBlockhash=ii.toBase58()),n.feePayer||(n.feePayer=Rn.generate().publicKey)),t.push(ai(n))}),console.log("simulate tx string:",t),t}var bt=2e3,gt=class{constructor(t){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=t.connection,this.feePayer=t.feePayer,this.signAllTransactions=t.signAllTransactions,this.owner=t.owner,this.cluster=t.cluster,this.blockhashCommitment=t.blockhashCommitment,this.loopMultiTxStatus=!!t.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 i;let t=(await ui.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:n}=(i=t==null?void 0:t[15])!=null?i:{};if(!!n)return{units:6e5,microLamports:Math.min(Math.ceil(n*1e6/6e5),25e3)}}addCustomComputeBudget(t){if(t){let{instructions:n,instructionTypes:i}=ft(t);return this.instructions.unshift(...n),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(t){var n;return t?(this.endInstructions.push(si.transfer({fromPubkey:(n=t.feePayer)!=null?n:this.feePayer,toPubkey:new ve(t.address),lamports:BigInt(t.amount.toString())})),this.endInstructionTypes.push(Z.TransferTip),!0):!1}async calComputeBudget({config:t,defaultIns:n}){try{let i=t||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;n&&this.instructions.unshift(...n)}catch{n&&this.instructions.unshift(...n)}}addInstruction({instructions:t=[],endInstructions:n=[],signers:i=[],instructionTypes:a=[],endInstructionTypes:m=[],lookupTableAddress:d=[]}){return this.instructions.push(...t),this.endInstructions.push(...n),this.signers.push(...i),this.instructionTypes.push(...a),this.endInstructionTypes.push(...m),this.lookupTableAddress.push(...d.filter(p=>p!==ve.default.toString())),this}async versionBuild({txVersion:t,extInfo:n,lookupTableAddress:i}){return t===0?await this.buildV0(v(K({},n||{}),{lookupTableAddress:i})):this.build(n)}build(t){var i;let n=new $e;return this.allInstructions.length&&n.add(...this.allInstructions),n.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(a=>a.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:n,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async a=>{var y;let{recentBlockHash:m,skipPreflight:d=!0,sendAndConfirm:p,notSendToRpc:g}=a||{},P=m!=null?m:await Fe(this.connection,this.blockhashCommitment);if(n.recentBlockhash=P,this.signers.length&&n.sign(...this.signers),Be([n]),(y=this.owner)!=null&&y.isKeyPair)return{txId:p?await zt(this.connection,n,this.signers.find(k=>k.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:d}):await this.connection.sendRawTransaction(n.serialize(),{skipPreflight:d}),signedTx:n};if(this.signAllTransactions){let C=await this.signAllTransactions([n]);if(this.signers.length)for(let k of C)try{k.sign(...this.signers)}catch{}return{txId:g?"":await this.connection.sendRawTransaction(C[0].serialize(),{skipPreflight:d}),signedTx:C[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:t||{}}}buildMultiTx(t){var P;let{extraPreBuildData:n=[],extInfo:i}=t,{transaction:a}=this.build(i),m=n.filter(y=>y.transaction.instructions.length>0),d=[a,...m.map(y=>y.transaction)],p=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(y=>{y.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:d,signers:p,instructionTypes:g,execute:async y=>{var T;let{sequentially:C,onTxUpdate:k,skipTxCount:b=0,recentBlockHash:R,skipPreflight:I=!0}=y||{},A=R!=null?R:await Fe(this.connection,this.blockhashCommitment);if((T=this.owner)!=null&&T.isKeyPair){if(C){let h=[],F=0;for(let V of d){if(++F,F<=b)continue;let w=await zt(this.connection,V,this.signers.find(S=>S.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:I});h.push(w)}return{txIds:h,signedTxs:d}}return{txIds:await await Promise.all(d.map(async h=>(h.recentBlockhash=A,await this.connection.sendRawTransaction(h.serialize(),{skipPreflight:I})))),signedTxs:d}}if(this.signAllTransactions){let h=d.map((V,w)=>(V.recentBlockhash=A,p[w].length&&V.sign(...p[w]),V));Be(h);let F=await this.signAllTransactions(h);if(C){let V=0,w=[],S=async()=>{if(!F[V])return;let x=await this.connection.sendRawTransaction(F[V].serialize(),{skipPreflight:I});w.push({txId:x,status:"sent",signedTx:F[V]}),k==null||k([...w]),V++;let L=!1,O=null,E=null,re=G=>{O!==null&&clearInterval(O),E!==null&&this.connection.removeSignatureListener(E);let q=w.findIndex($=>$.txId===x);if(q>-1){if(w[q].status==="error"||w[q].status==="success")return;w[q].status=G.err?"error":"success"}k==null||k([...w]),G.err||S()};this.loopMultiTxStatus&&(O=setInterval(async()=>{var G;if(L){clearInterval(O);return}try{let q=await this.connection.getTransaction(x,{commitment:"confirmed",maxSupportedTransactionVersion:0});q&&(L=!0,clearInterval(O),re({err:((G=q.meta)==null?void 0:G.err)||null}),console.log("tx status from getTransaction:",x))}catch(q){L=!0,clearInterval(O),console.error("getTransaction timeout:",q,x)}},bt)),E=this.connection.onSignature(x,G=>{if(L){this.connection.removeSignatureListener(E);return}L=!0,re(G)},"confirmed"),this.connection.getSignatureStatus(x)};return await S(),{txIds:w.map(x=>x.txId),signedTxs:F}}else{let V=[];for(let w=0;w<F.length;w+=1){let S=await this.connection.sendRawTransaction(F[w].serialize(),{skipPreflight:I});V.push(S)}return{txIds:V,signedTxs:F}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:t,txVersion:n,extInfo:i}){return n===0?await this.buildV0MultiTx({extraPreBuildData:t,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:t,extInfo:i})}async buildV0(t){var I;let R=t||{},{lookupTableCache:n={},lookupTableAddress:i=[],forerunCreate:a,recentBlockhash:m}=R,d=de(R,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),p=K(K({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),n),g=Array.from(new Set([...i,...this.lookupTableAddress])),P=[];for(let A of g)p[A]===void 0&&P.push(new ve(A));let y=await Wt({connection:this.connection,address:P});for(let[A,T]of Object.entries(y))p[A]=T;let C=a?ve.default.toBase58():m!=null?m:await Fe(this.connection,this.blockhashCommitment),k=new Je({payerKey:this.feePayer,recentBlockhash:C,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(p));((I=this.owner)==null?void 0:I.signer)&&!this.signers.some(A=>A.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let b=new et(k);return b.sign(this.signers),{builder:this,transaction:b,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async A=>{var V;let{skipPreflight:T=!0,sendAndConfirm:h,notSendToRpc:F}=A||{};if(Be([b]),(V=this.owner)!=null&&V.isKeyPair){let w=await this.connection.sendTransaction(b,{skipPreflight:T});return h&&await yt(this.connection,w),{txId:w,signedTx:b}}if(this.signAllTransactions){let w=await this.signAllTransactions([b]);if(this.signers.length)for(let S of w)try{S.sign(this.signers)}catch{}return{txId:F?"":await this.connection.sendTransaction(w[0],{skipPreflight:T}),signedTx:w[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:d||{}}}async buildV0MultiTx(t){var P;let{extraPreBuildData:n=[],buildProps:i}=t,{transaction:a}=await this.buildV0(i),m=n.filter(y=>y.builder.instructions.length>0),d=[a,...m.map(y=>y.transaction)],p=[this.signers,...m.map(y=>y.signers)],g=[...this.instructionTypes,...m.map(y=>y.instructionTypes).flat()];return(P=this.owner)!=null&&P.signer&&p.forEach(y=>{y.some(C=>C.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),d.forEach(async(y,C)=>{y.sign(p[C])}),{builder:this,transactions:d,signers:p,instructionTypes:g,buildProps:i,execute:async y=>{var I;let{sequentially:C,onTxUpdate:k,recentBlockHash:b,skipPreflight:R=!0}=y||{};if(b&&d.forEach(A=>A.message.recentBlockhash=b),Be(d),(I=this.owner)!=null&&I.isKeyPair){if(C){let A=[];for(let T of d){let h=await this.connection.sendTransaction(T,{skipPreflight:R});await yt(this.connection,h),A.push(h)}return{txIds:A,signedTxs:d}}return{txIds:await Promise.all(d.map(async A=>await this.connection.sendTransaction(A,{skipPreflight:R}))),signedTxs:d}}if(this.signAllTransactions){let A=await this.signAllTransactions(d);if(C){let T=0,h=[],F=async()=>{if(!A[T])return;let V=await this.connection.sendTransaction(A[T],{skipPreflight:R});h.push({txId:V,status:"sent",signedTx:A[T]}),k==null||k([...h]),T++;let w=!1,S=null,x=null,L=O=>{S!==null&&clearInterval(S),x!==null&&this.connection.removeSignatureListener(x);let E=h.findIndex(re=>re.txId===V);if(E>-1){if(h[E].status==="error"||h[E].status==="success")return;h[E].status=O.err?"error":"success"}k==null||k([...h]),O.err||F()};this.loopMultiTxStatus&&(S=setInterval(async()=>{var O;if(w){clearInterval(S);return}try{let E=await this.connection.getTransaction(V,{commitment:"confirmed",maxSupportedTransactionVersion:0});E&&(w=!0,clearInterval(S),L({err:((O=E.meta)==null?void 0:O.err)||null}),console.log("tx status from getTransaction:",V))}catch(E){w=!0,clearInterval(S),console.error("getTransaction timeout:",E,V)}},bt)),x=this.connection.onSignature(V,O=>{if(w){this.connection.removeSignatureListener(x);return}w=!0,L(O)},"confirmed"),this.connection.getSignatureStatus(V)};return F(),{txIds:[],signedTxs:A}}else{let T=[];for(let h=0;h<A.length;h+=1){let F=await this.connection.sendTransaction(A[h],{skipPreflight:R});T.push(F)}return{txIds:T,signedTxs:A}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(t){var k;let C=t||{},{splitIns:n=[],computeBudgetConfig:i}=C,a=de(C,["splitIns","computeBudgetConfig"]),m=i?ft(i):{instructions:[],instructionTypes:[]},d=this.signers.reduce((b,R)=>v(K({},b),{[R.publicKey.toBase58()]:R}),{}),p=[],g=[],P=[],y=0;if(this.allInstructions.forEach(b=>{let R=[...P,b],I=i?[...m.instructions,...R]:R,T=[...new Set(R.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat()).values()].map(h=>new ve(h));if(b!==n[y]&&P.length<12&&(He({instructions:I,payer:this.feePayer,signers:T})||He({instructions:R,payer:this.feePayer,signers:T})))P.push(b);else{if(P.length===0)throw Error("item ins too big");y+=b===n[y]?1:0,He({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:T})?p.push(new $e().add(...m.instructions,...P)):p.push(new $e().add(...P)),g.push(Array.from(new Set(P.map(h=>h.keys.filter(F=>F.isSigner).map(F=>F.pubkey.toString())).flat())).map(h=>d[h]).filter(h=>h!==void 0)),P=[b]}}),P.length>0){let R=[...new Set(P.map(I=>I.keys.filter(A=>A.isSigner).map(A=>A.pubkey.toString())).flat()).values()].map(I=>d[I]).filter(I=>I!==void 0);He({instructions:i?[...m.instructions,...P]:[...P],payer:this.feePayer,signers:R.map(I=>I.publicKey)})?p.push(new $e().add(...m.instructions,...P)):p.push(new $e().add(...P)),g.push(R)}return p.forEach(b=>b.feePayer=this.feePayer),(k=this.owner)!=null&&k.signer&&g.forEach(b=>{b.some(R=>R.publicKey.equals(this.owner.publicKey))||b.push(this.owner.signer)}),{builder:this,transactions:p,signers:g,instructionTypes:this.instructionTypes,execute:async b=>{var V;let{sequentially:R,onTxUpdate:I,skipTxCount:A=0,recentBlockHash:T,skipPreflight:h=!0}=b||{},F=T!=null?T:await Fe(this.connection,this.blockhashCommitment);if(p.forEach(async(w,S)=>{w.recentBlockhash=F,g[S].length&&w.sign(...g[S])}),Be(p),(V=this.owner)!=null&&V.isKeyPair){if(R){let w=0,S=[];for(let x of p){if(++w,w<=A){S.push("tx skipped");continue}let L=await zt(this.connection,x,this.signers.find(O=>O.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:h});S.push(L)}return{txIds:S,signedTxs:p}}return{txIds:await Promise.all(p.map(async w=>await this.connection.sendRawTransaction(w.serialize(),{skipPreflight:h}))),signedTxs:p}}if(this.signAllTransactions){let w=await this.signAllTransactions(p.slice(A,p.length)),S=[...p.slice(0,A),...w];if(R){let x=0,L=[],O=async()=>{if(!S[x])return;x<A&&(L.push({txId:"",status:"success",signedTx:S[x]}),I==null||I([...L]),x++,O());let E=await this.connection.sendRawTransaction(S[x].serialize(),{skipPreflight:h});L.push({txId:E,status:"sent",signedTx:S[x]}),I==null||I([...L]),x++;let re=!1,G=null,q=null,$=z=>{G!==null&&clearInterval(G),q!==null&&this.connection.removeSignatureListener(q);let ne=L.findIndex(ge=>ge.txId===E);if(ne>-1){if(L[ne].status==="error"||L[ne].status==="success")return;L[ne].status=z.err?"error":"success"}I==null||I([...L]),z.err||O()};this.loopMultiTxStatus&&(G=setInterval(async()=>{var z;if(re){clearInterval(G);return}try{let ne=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});ne&&(re=!0,clearInterval(G),$({err:((z=ne.meta)==null?void 0:z.err)||null}),console.log("tx status from getTransaction:",E))}catch(ne){re=!0,clearInterval(G),console.error("getTransaction timeout:",ne,E)}},bt)),q=this.connection.onSignature(E,z=>{if(re){this.connection.removeSignatureListener(q);return}re=!0,$(z)},"confirmed"),this.connection.getSignatureStatus(E)};return await O(),{txIds:L.map(E=>E.txId),signedTxs:S}}else{let x=[];for(let L=0;L<S.length;L+=1){let O=await this.connection.sendRawTransaction(S[L].serialize(),{skipPreflight:h});x.push(O)}return{txIds:x,signedTxs:S}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:a||{}}}async sizeCheckBuildV0(t){var V;let F=t||{},{computeBudgetConfig:n,splitIns:i=[],lookupTableCache:a={},lookupTableAddress:m=[],insCountLimit:d=12}=F,p=de(F,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),g=K(K({},this.cluster==="devnet"?await Ut(this.connection):await qt(this.connection)),a),P=Array.from(new Set([...this.lookupTableAddress,...m])),y=[];for(let w of P)g[w]===void 0&&y.push(new ve(w));let C=await Wt({connection:this.connection,address:y});for(let[w,S]of Object.entries(C))g[w]=S;let k=n?ft(n):{instructions:[],instructionTypes:[]},b=await Fe(this.connection,this.blockhashCommitment),R=this.signers.reduce((w,S)=>v(K({},w),{[S.publicKey.toBase58()]:S}),{}),I=[],A=[],T=[],h=0;if(this.allInstructions.forEach(w=>{let S=[...T,w],x=n?[...k.instructions,...S]:S;if(w!==i[h]&&T.length<d&&(je({instructions:x,payer:this.feePayer,lookupTableAddressAccount:g})||je({instructions:S,payer:this.feePayer,lookupTableAddressAccount:g})))T.push(w);else{if(T.length===0)throw Error("item ins too big");h+=w===i[h]?1:0;let L={};for(let O of[...new Set(P)])g[O]!==void 0&&(L[O]=g[O]);if(n&&je({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let O=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(O))}else{let O=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(O))}A.push(Array.from(new Set(T.map(O=>O.keys.filter(E=>E.isSigner).map(E=>E.pubkey.toString())).flat())).map(O=>R[O]).filter(O=>O!==void 0)),T=[w]}}),T.length>0){let S=[...new Set(T.map(x=>x.keys.filter(L=>L.isSigner).map(L=>L.pubkey.toString())).flat()).values()].map(x=>R[x]).filter(x=>x!==void 0);if(n&&je({instructions:[...k.instructions,...T],payer:this.feePayer,lookupTableAddressAccount:g,recentBlockhash:b})){let x=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...k.instructions,...T]}).compileToV0Message(Object.values(g));I.push(new et(x))}else{let x=new Je({payerKey:this.feePayer,recentBlockhash:b,instructions:[...T]}).compileToV0Message(Object.values(g));I.push(new et(x))}A.push(S)}return(V=this.owner)!=null&&V.signer&&A.forEach(w=>{w.some(S=>S.publicKey.equals(this.owner.publicKey))||w.push(this.owner.signer)}),I.forEach((w,S)=>{w.sign(A[S])}),{builder:this,transactions:I,buildProps:t,signers:A,instructionTypes:this.instructionTypes,execute:async w=>{var re;let{sequentially:S,onTxUpdate:x,skipTxCount:L=0,recentBlockHash:O,skipPreflight:E=!0}=w||{};if(I.map(async(G,q)=>{A[q].length&&G.sign(A[q]),O&&(G.message.recentBlockhash=O)}),Be(I),(re=this.owner)!=null&&re.isKeyPair){if(S){let G=0,q=[];for(let $ of I){if(++G,G<=L){console.log("skip tx: ",G),q.push("tx skipped");continue}let z=await this.connection.sendTransaction($,{skipPreflight:E});await yt(this.connection,z),q.push(z)}return{txIds:q,signedTxs:I}}return{txIds:await Promise.all(I.map(async G=>await this.connection.sendTransaction(G,{skipPreflight:E}))),signedTxs:I}}if(this.signAllTransactions){let G=await this.signAllTransactions(I.slice(L,I.length)),q=[...I.slice(0,L),...G];if(S){let $=0,z=[],ne=async()=>{if(!q[$])return;if($<L){z.push({txId:"",status:"success",signedTx:q[$]}),x==null||x([...z]),$++,ne();return}let ge=await this.connection.sendTransaction(q[$],{skipPreflight:E});z.push({txId:ge,status:"sent",signedTx:q[$]}),x==null||x([...z]),$++;let ze=!1,Ce=null,at=null,fn=he=>{Ce!==null&&clearInterval(Ce),at!==null&&this.connection.removeSignatureListener(at);let Pe=z.findIndex(Ro=>Ro.txId===ge);if(Pe>-1){if(z[Pe].status==="error"||z[Pe].status==="success")return;z[Pe].status=he.err?"error":"success"}x==null||x([...z]),he.err||ne()};this.loopMultiTxStatus&&(Ce=setInterval(async()=>{var he;if(ze){clearInterval(Ce);return}try{let Pe=await this.connection.getTransaction(ge,{commitment:"confirmed",maxSupportedTransactionVersion:0});Pe&&(ze=!0,clearInterval(Ce),fn({err:((he=Pe.meta)==null?void 0:he.err)||null}),console.log("tx status from getTransaction:",ge))}catch(Pe){ze=!0,clearInterval(Ce),console.error("getTransaction timeout:",Pe,ge)}},bt)),at=this.connection.onSignature(ge,he=>{if(ze){this.connection.removeSignatureListener(at);return}ze=!0,fn(he)},"confirmed"),this.connection.getSignatureStatus(ge)};return ne(),{txIds:[],signedTxs:q}}else{let $=[];for(let z=0;z<q.length;z+=1){let ne=await this.connection.sendTransaction(q[z],{skipPreflight:E});$.push(ne)}return{txIds:$,signedTxs:q}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:p||{}}}};var Xt=(...o)=>o.map(t=>{try{return typeof t=="object"?JSON.stringify(t):t}catch{return t}}).join(", "),oe=class{constructor({scope:t,moduleName:n}){this.disabled=!1;this.scope=t,this.logger=_(n)}createTxBuilder(t){return this.scope.checkOwner(),new gt({connection:this.scope.connection,feePayer:t||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(...t){this.logger.debug(Xt(t))}logInfo(...t){this.logger.info(Xt(t))}logAndCreateError(...t){let n=Xt(t);throw new Error(n)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};import{PublicKey as Fl,SystemProgram as Vl}from"@solana/web3.js";import Dl from"bn.js";import{createCloseAccountInstruction as Gl,createInitializeAccountInstruction as zl,createTransferInstruction as Xl,TOKEN_PROGRAM_ID as Yl}from"@solana/spl-token";import{Keypair as Tl,PublicKey as hl}from"@solana/web3.js";import Sl from"bn.js";import{TOKEN_PROGRAM_ID as Cl}from"@solana/spl-token";import{PublicKey as ki}from"@solana/web3.js";import En,{isBN as Dn}from"bn.js";import{bits as ci,BitStructure as Kc,blob as li,Blob as Cc,cstr as Rc,f32 as Lc,f32be as Oc,f64 as Nc,f64be as Mc,greedy as Fc,Layout as mi,ns64 as vc,ns64be as Vc,nu64 as di,nu64be as _c,offset as pi,s16 as Ec,s16be as Dc,s24 as Wc,s24be as qc,s32 as fi,s32be as Uc,s40 as Gc,s40be as zc,s48 as Xc,s48be as Yc,s8 as Qc,seq as yi,struct as Zc,Structure as bi,u16 as gi,u16be as Hc,u24 as jc,u24be as $c,u32 as Pi,u32be as Jc,u40 as el,u40be as tl,u48 as nl,u48be as ol,u8 as Ai,UInt as wi,union as il,Union as rl,unionLayoutDiscriminator as al,utf8 as sl}from"@solana/buffer-layout";var Pt=mi,Mn=bi;var Yt=wi;var Fn=Ai,H=gi;var At=Pi;var vn=di;var le=fi;var Vn=yi;var M=li;var Qt=ci,_n=pi;var xe=class extends Pt{constructor(n,i,a){super(n,a);this.blob=M(n),this.signed=i}decode(n,i=0){let a=new En(this.blob.decode(n,i),10,"le");return this.signed?a.fromTwos(this.span*8).clone():a}encode(n,i,a=0){return typeof n=="number"&&(n=new En(n)),this.signed&&(n=n.toTwos(this.span*8)),this.blob.encode(n.toArrayLike(Buffer,"le",this.span),i,a)}},wt=class extends Pt{constructor(n){super(8,n);this._lower=Qt(At(),!1),this._upper=Qt(At(),!1)}addBoolean(n){this._lower.fields.length<32?this._lower.addBoolean(n):this._upper.addBoolean(n)}decode(n,i=0){let a=this._lower.decode(n,i),m=this._upper.decode(n,i+this._lower.span);return K(K({},a),m)}encode(n,i,a=0){return this._lower.encode(n,i,a)+this._upper.encode(n,i,a+this._lower.span)}};function c(o){return new Yt(1,o)}function Y(o){return new Yt(4,o)}function e(o){return new xe(8,!1,o)}function N(o){return new xe(16,!1,o)}function Wn(o){return new xe(1,!0,o)}function Ve(o){return new xe(8,!0,o)}function qn(o){return new xe(16,!0,o)}var tt=class extends Pt{constructor(n,i,a,m){super(n.span,m);this.layout=n,this.decoder=i,this.encoder=a}decode(n,i){return this.decoder(this.layout.decode(n,i))}encode(n,i,a){return this.layout.encode(this.encoder(n),i,a)}getSpan(n,i){return this.layout.getSpan(n,i)}};function r(o){return new tt(M(32),t=>new ki(t),t=>t.toBuffer(),o)}function ue(o){return new tt(Fn(),Ti,hi,o)}function Ti(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function hi(o){return o?1:0}function Un(o,t){let n=At("length"),i=l([n,f(o,_n(n,-n.span),"values")]);return new tt(i,({values:a})=>a,a=>({values:a}),t)}var Zt=class extends Mn{decode(t,n){return super.decode(t,n)}};function l(o,t,n){return new Zt(o,t,n)}function f(o,t,n){let i,a=typeof t=="number"?t:Dn(t)?t.toNumber():new Proxy(t,{get(m,d){if(!i){let p=Reflect.get(m,"count");i=Dn(p)?p.toNumber():p,Reflect.set(m,"count",i)}return Reflect.get(m,d)},set(m,d,p){return d==="count"&&(i=p),Reflect.set(m,d,p)}});return Vn(o,a,n)}var _e=l([r("mint"),r("owner"),e("amount"),Y("delegateOption"),r("delegate"),c("state"),Y("isNativeOption"),e("isNative"),e("delegatedAmount"),Y("closeAuthorityOption"),r("closeAuthority")]);import{PublicKey as Ig,SystemProgram as Bg}from"@solana/web3.js";import{createAssociatedTokenAccountIdempotentInstruction as xg}from"@solana/spl-token";import{PublicKey as wm}from"@solana/web3.js";import{TOKEN_PROGRAM_ID as Tm}from"@solana/spl-token";import{PublicKey as B}from"@solana/web3.js";var zn=new B("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),Xn=new B("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Yn=new B("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),Ht=new B("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Sm=new B("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Bi=new B("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Qn=new B("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Zn=new B("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),xm=new B("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Si=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hn=new B("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),xi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Ki=new B("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),jn=new B("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Km=new B("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Ci=new B("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),Ri=new B("6FJon3QE27qgPVggARueB22hLvoh22VzJpXv4rBEoSLF"),Li=new B("CC12se5To1CdEuw7fDS27B7Geo5jJyL7t5UK2B44NgiH"),Oi=new B("9HzJyW1qZsEiSfMUf6L2jo3CcTKAyBmSyKdwQeYisHrC"),Ni=new B("DropEU8AvevN3UrXWXTMuz3rqnMczQVNjq3kcSdW2SQi"),jt=new B("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),Mi=new B("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Cm=new B("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Fi=new B("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),vi=new B("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Vi=new B("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Rm=new B("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Lm=new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Om=new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Nm=new B("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),Mm=new B("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX"),nt={IDO_PROGRAM_ID_V1:Ri,IDO_PROGRAM_ID_V2:Li,IDO_PROGRAM_ID_V3:Oi,IDO_PROGRAM_ID_V4:Ni};var ke={OPEN_BOOK_PROGRAM:new B("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new B("Ray1111111111111111111111111111111111111111"),AMM_V4:new B("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new B("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new B("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new B("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new B("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new B("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new B("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new B("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new B("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:B.default,Router:new B("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new B("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new B("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new B("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new B("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new B("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new B("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new B("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new B("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new B("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new B("Ray1111111111111111111111111111111111111111")};import Vg from"decimal.js";import{createAssociatedTokenAccountIdempotentInstruction as Oy,TOKEN_2022_PROGRAM_ID as Ny,TOKEN_PROGRAM_ID as My}from"@solana/spl-token";import{PublicKey as vy}from"@solana/web3.js";import _y from"bn.js";import Dy from"decimal.js";import{TOKEN_PROGRAM_ID as Qm}from"@solana/spl-token";import{PublicKey as $m}from"@solana/web3.js";var _i=l([Y("mintAuthorityOption"),r("mintAuthority"),e("supply"),c("decimals"),c("isInitialized"),Y("freezeAuthorityOption"),r("freezeAuthority")]);import{ASSOCIATED_TOKEN_PROGRAM_ID as ey,TOKEN_2022_PROGRAM_ID as ty,TOKEN_PROGRAM_ID as ny}from"@solana/spl-token";import{Keypair as ry,PublicKey as ay,SystemProgram as uy,TransactionInstruction as cy}from"@solana/web3.js";import my from"bn.js";import D from"bn.js";var Ee=new D(1).shln(64);var Ei=new D(1).shln(128),$t=new D(1).shln(64).subn(1),Di=new D(1).shln(128).subn(1);var De=new D("4295048016"),We=new D("79226673521066979257578248091"),Wi=new D("59543866431248"),qi=new D("184467440737095516"),Ui=new D("15793534762490258745");var Jt=60,ld=new D("18446743708227953217"),Gi=[{bit:0,factor:new D("fffcb933bd6fb800",16)},{bit:1,factor:new D("fff97272373d4000",16)},{bit:2,factor:new D("fff2e50f5f657000",16)},{bit:3,factor:new D("ffe5caca7e10f000",16)},{bit:4,factor:new D("ffcb9843d60f7000",16)},{bit:5,factor:new D("ff973b41fa98e800",16)},{bit:6,factor:new D("ff2ea16466c9b000",16)},{bit:7,factor:new D("fe5dee046a9a3800",16)},{bit:8,factor:new D("fcbe86c7900bb000",16)},{bit:9,factor:new D("f987a7253ac65800",16)},{bit:10,factor:new D("f3392b0822bb6000",16)},{bit:11,factor:new D("e7159475a2caf000",16)},{bit:12,factor:new D("d097f3bdfd2f2000",16)},{bit:13,factor:new D("a9f746462d9f8000",16)},{bit:14,factor:new D("70d869a156f31c00",16)},{bit:15,factor:new D("31be135f97ed3200",16)},{bit:16,factor:new D("9aa508b5b85a500",16)},{bit:17,factor:new D("5d6af8dedc582c",16)},{bit:18,factor:new D("2216e584f5fa",16)}];var ot=3,$n=100;var Jn=10,eo=100,Tt=14;var j=new D(0),qe=new D(1),md=new D(-1);var dd=new D("18446744073700000000");var zi=l([M(8),c("bump"),H("index"),r("owner"),Y("protocolFeeRate"),Y("tradeFeeRate"),H("tickSpacing"),Y("fundFeeRate"),f(Y(),1),r("fundOwner"),f(e(),3)]),Xi=l([Y("blockTimestamp"),Ve("tickCumulative"),f(e(),4)]),to=l([M(8),ue("initialized"),e("recentEpoch"),H("observationIndex"),r("poolId"),f(Xi,$n,"observations"),f(e(),4)]),Yi=l([H("filterPeriod"),H("decayPeriod"),H("reductionFactor"),Y("dynamicFeeControl"),Y("maxVolatilityAccumulator"),le("tickSpacingIndexReference"),Y("volatilityReference"),Y("volatilityAccumulator"),e("lastUpdateTimestamp"),f(c(),46)]),Qi=l([c("state"),e("openTime"),e("endTime"),e("lastUpdateTime"),N("emissionsPerSecondX64"),e("totalEmissioned"),e("claimed"),r("mint"),r("vault"),r("creator"),N("growthGlobalX64")]),en=l([M(8),c("bump"),r("configId"),r("creator"),r("mintA"),r("mintB"),r("vaultA"),r("vaultB"),r("observationId"),c("mintDecimalsA"),c("mintDecimalsB"),H("tickSpacing"),N("liquidity"),N("sqrtPriceX64"),le("tickCurrent"),Y(),N("feeGrowthGlobalX64A"),N("feeGrowthGlobalX64B"),e("protocolFeesTokenA"),e("protocolFeesTokenB"),f(N(),4),c("status"),c("feeOn"),M(6),f(Qi,ot,"rewardInfos"),M(8*16,"tickArrayBitmap"),f(e(),4),e("fundFeesTokenA"),e("fundFeesTokenB"),e("startTime"),e("recentEpoch"),Yi.replicate("dynamicFeeInfo"),f(e(),46)]),Zi=l([N("growthInsideLastX64"),e("rewardAmountOwed")]),Hi=l([M(8),c("bump"),r("nftMint"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(Zi,ot,"rewardInfos"),e("recentEpoch"),f(e(),7)]),bd=l([M(8),c("bump"),r("poolId"),le("tickLower"),le("tickUpper"),N("liquidity"),N("feeGrowthInsideLastX64A"),N("feeGrowthInsideLastX64B"),e("tokenFeesOwedA"),e("tokenFeesOwedB"),f(N(),ot,"rewardGrowthInside"),e("recentEpoch"),f(e(),7)]),ji=l([le("tick"),qn("liquidityNet"),N("liquidityGross"),N("feeGrowthOutsideX64A"),N("feeGrowthOutsideX64B"),f(N(),ot,"rewardGrowthsOutsideX64"),e("orderPhase"),e("ordersAmount"),e("partFilledOrdersRemaining"),N("unfilledRatioX64"),f(Y(),3)]),no=l([M(8),r("poolId"),le("startTickIndex"),f(ji,Jt,"ticks"),c("initializedTickCount"),e("recentEpoch"),f(c(),107)]),$i=l([M(8),c("bump"),f(r(),Jn,"operationOwners"),f(r(),eo,"whitelistMints")]),Ji=l([M(8),r("poolId"),r("owner"),le("tick"),ue("zeroForOne"),e("orderPhase"),e("totalAmount"),e("filledAmount"),e("settleBase"),e("settleOutput"),e("openTime"),N("unfilledRatioX64"