From 98b46f60b480d1ad7261306b7d22510e42e2176b Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 15:30:03 +0700 Subject: [PATCH 01/51] feat: can call to backend --- agent/package.json | 1 + agent/src/index.ts | 7 + packages/plugin-desk-exchange/.npmignore | 6 + packages/plugin-desk-exchange/README.md | 111 +++ packages/plugin-desk-exchange/package.json | 20 + .../src/actions/spotTrade.ts | 289 ++++++++ packages/plugin-desk-exchange/src/index.ts | 14 + .../plugin-desk-exchange/src/templates.ts | 56 ++ packages/plugin-desk-exchange/src/types.ts | 20 + packages/plugin-desk-exchange/tsconfig.json | 11 + packages/plugin-desk-exchange/tsup.config.ts | 21 + pnpm-lock.yaml | 650 +++++++++--------- 12 files changed, 892 insertions(+), 314 deletions(-) create mode 100644 packages/plugin-desk-exchange/.npmignore create mode 100644 packages/plugin-desk-exchange/README.md create mode 100644 packages/plugin-desk-exchange/package.json create mode 100644 packages/plugin-desk-exchange/src/actions/spotTrade.ts create mode 100644 packages/plugin-desk-exchange/src/index.ts create mode 100644 packages/plugin-desk-exchange/src/templates.ts create mode 100644 packages/plugin-desk-exchange/src/types.ts create mode 100644 packages/plugin-desk-exchange/tsconfig.json create mode 100644 packages/plugin-desk-exchange/tsup.config.ts diff --git a/agent/package.json b/agent/package.json index 87e92ac76b1..5f122803d31 100644 --- a/agent/package.json +++ b/agent/package.json @@ -45,6 +45,7 @@ "@elizaos/plugin-birdeye": "workspace:*", "@elizaos/plugin-coingecko": "workspace:*", "@elizaos/plugin-coinmarketcap": "workspace:*", + "@elizaos/plugin-desk-exchange": "workspace:*", "@elizaos/plugin-zerion": "workspace:*", "@elizaos/plugin-binance": "workspace:*", "@elizaos/plugin-avail": "workspace:*", diff --git a/agent/src/index.ts b/agent/src/index.ts index 2a4cc1c0a58..d9eaa8f13fc 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -84,6 +84,7 @@ import { coinmarketcapPlugin } from "@elizaos/plugin-coinmarketcap"; import { confluxPlugin } from "@elizaos/plugin-conflux"; import { createCosmosPlugin } from "@elizaos/plugin-cosmos"; import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm"; +import { deskExchangePlugin } from "@elizaos/plugin-desk-exchange"; import { evmPlugin } from "@elizaos/plugin-evm"; import { flowPlugin } from "@elizaos/plugin-flow"; import { fuelPlugin } from "@elizaos/plugin-fuel"; @@ -1294,6 +1295,12 @@ export async function createAgent( getSecret(character, "ARBITRAGE_BUNDLE_EXECUTOR_ADDRESS") ? arbitragePlugin : null, + getSecret(character, "DESK_EXCHANGE_PRIVATE_KEY") + ? deskExchangePlugin + : null, + getSecret(character, "DESK_EXCHANGE_NETWORK") + ? deskExchangePlugin + : null, ] .flat() .filter(Boolean), diff --git a/packages/plugin-desk-exchange/.npmignore b/packages/plugin-desk-exchange/.npmignore new file mode 100644 index 00000000000..078562eceab --- /dev/null +++ b/packages/plugin-desk-exchange/.npmignore @@ -0,0 +1,6 @@ +* + +!dist/** +!package.json +!readme.md +!tsup.config.ts \ No newline at end of file diff --git a/packages/plugin-desk-exchange/README.md b/packages/plugin-desk-exchange/README.md new file mode 100644 index 00000000000..a671c61b0e8 --- /dev/null +++ b/packages/plugin-desk-exchange/README.md @@ -0,0 +1,111 @@ +# Hyperliquid Plugin for Eliza + +This plugin enables interaction with the Hyperliquid DEX through Eliza, providing spot trading capabilities. + +## Features + +- 💱 Spot Trading + - Market orders (immediate execution) + - Limit orders (price-specific) + - Smart price validation to prevent mistakes +- 📊 Price Checking + - Real-time price information + - 24h price change + - Volume statistics +- 🔄 Order Management + - Cancel all open orders + - Clear feedback on execution + +## Installation + +Add the plugin to your Eliza configuration: + +```json +{ + "plugins": ["@elizaos/plugin-hyperliquid"] +} +``` + +## Configuration + +Set the following environment variables: + +```env +HYPERLIQUID_PRIVATE_KEY=your_private_key # Required for trading and cancelling orders +HYPERLIQUID_TESTNET=true_or_false # Optional, defaults to false +``` + +## Available Actions + +### 1. SPOT_TRADE + +Place spot market or limit orders. + +Examples: + +``` +# Market Orders +"buy 1 PIP" -> Buys 1 PIP at market price +"sell 2 HYPE" -> Sells 2 HYPE at market price +"market buy 1 ETH" -> Buys 1 ETH at market price + +# Limit Orders +"buy 1 PIP at 20 USDC" -> Places buy order for 1 PIP at 20 USDC +"sell 0.5 HYPE at 21 USDC" -> Places sell order for 0.5 HYPE at 21 USDC +``` + +### 2. PRICE_CHECK + +Get current price information for any token. + +Examples: + +``` +"What's the price of PIP?" +"Check HYPE price" +"Get ETH price" +``` + +Returns: Current price, 24h change, and volume. + +### 3. CANCEL_ORDERS + +Cancel all your open orders. + +Examples: + +``` +"Cancel all orders" +"Cancel my orders" +``` + +## Price Validation + +The plugin includes smart price validation to prevent mistakes: + +- Market Orders: Validates price is within ±50% of market price +- Limit Orders: + - Buy orders must be below market price + - Sell orders must be above market price + - Warns if price is very different from market (±80%) + +## Error Handling + +The plugin provides clear error messages for common issues: + +- Invalid token symbols +- Price validation failures +- Network connection issues +- Order execution failures + +## Security Notes + +- Store your private key securely using environment variables +- Test with small amounts first +- Use testnet for initial testing +- Monitor your orders regularly +- Double-check prices before confirming trades + +## License + +MIT diff --git a/packages/plugin-desk-exchange/package.json b/packages/plugin-desk-exchange/package.json new file mode 100644 index 00000000000..acdab1e0932 --- /dev/null +++ b/packages/plugin-desk-exchange/package.json @@ -0,0 +1,20 @@ +{ + "name": "@elizaos/plugin-desk-exchange", + "version": "0.1.0", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@elizaos/core": "workspace:*", + "zod": "^3.23.8" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "axios": "^1.6.5", + "tsup": "8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch" + } +} diff --git a/packages/plugin-desk-exchange/src/actions/spotTrade.ts b/packages/plugin-desk-exchange/src/actions/spotTrade.ts new file mode 100644 index 00000000000..d13173e3b39 --- /dev/null +++ b/packages/plugin-desk-exchange/src/actions/spotTrade.ts @@ -0,0 +1,289 @@ +import { + type Action, + type ActionExample, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, + composeContext, + elizaLogger, + generateObjectDeprecated, + ModelClass, +} from "@elizaos/core"; +import { DeskExchangeError } from "../types.js"; +import { perpTradeTemplate } from "../templates.js"; + +export const spotTrade: Action = { + name: "SPOT_TRADE", + similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], + description: "Place a perpetual contract trade order on DESK Exchange", + validate: async (runtime: IAgentRuntime) => { + return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + }, + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: Record, + callback?: HandlerCallback + ) => { + elizaLogger.info("DESK EXCHANGE"); + // Initialize or update state + state = !state + ? await runtime.composeState(message) + : await runtime.updateRecentMessageState(state); + + const context = composeContext({ + state, + template: perpTradeTemplate, + }); + + const content = await generateObjectDeprecated({ + runtime, + context, + modelClass: ModelClass.SMALL, + }); + + if (!content) { + throw new DeskExchangeError( + "Could not parse trading parameters from conversation" + ); + } + + elizaLogger.info( + "Raw content from LLM:", + JSON.stringify(content, null, 2) + ); + + const processesOrder = { + symbol: `${content.symbol}USD`, + side: content.side, + amount: content.amount, + price: content.price, + nonce: "1822468699971776000", + broker_id: "DESK", + order_type: "Market", + reduce_only: false, + subaccount: + "0x6629eC35c8Aa279BA45Dbfb575c728d3812aE31a000000000000000000000000", + }; + elizaLogger.info( + "Processed order:", + JSON.stringify(processesOrder, null, 2) + ); + + const result = await fetch( + "https://stg-trade-api.happytrading.global/v2/place-order", + { + headers: { + authorization: + "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NDA1NjAyNTAsImFjY291bnQiOiIweDY2MjllQzM1YzhBYTI3OUJBNDVEYmZiNTc1YzcyOGQzODEyYUUzMWEiLCJzdWJhY2NvdW50X2lkIjowfQ.RUazgjZM3Vulq1MAQ22eYmVVAH1pHbsqzG18VP9VPyI", + "content-type": "application/json", + }, + body: JSON.stringify(processesOrder), + method: "POST", + } + ); + elizaLogger.info(await result.json()); + + // Validate order parameters + // const validatedOrder = SpotOrderSchema.parse(content); + // elizaLogger.info("Validated order:", validatedOrder); + + // // Initialize SDK + // const sdk = new Hyperliquid({ + // privateKey: runtime.getSetting("HYPERLIQUID_PRIVATE_KEY"), + // testnet: runtime.getSetting("HYPERLIQUID_TESTNET") === "true", + // enableWs: false, + // }); + // await sdk.connect(); + + // // Get market data + // const [meta, assetCtxs] = + // await sdk.info.spot.getSpotMetaAndAssetCtxs(); + + // // Find token and market + // const tokenIndex = meta.tokens.findIndex( + // (token) => + // token.name.toUpperCase() === + // validatedOrder.coin.toUpperCase() + // ); + // if (tokenIndex === -1) { + // throw new HyperliquidError( + // `Could not find token ${validatedOrder.coin}` + // ); + // } + // const tokenInfo = meta.tokens[tokenIndex]; + // elizaLogger.info("Found token:", tokenInfo.name); + + // const marketIndex = assetCtxs.findIndex( + // (ctx) => ctx.coin === `${validatedOrder.coin}-SPOT` + // ); + // if (marketIndex === -1) { + // throw new HyperliquidError( + // `Could not find market for ${validatedOrder.coin}` + // ); + // } + // const marketCtx = assetCtxs[marketIndex]; + // if (!marketCtx || !marketCtx.midPx) { + // throw new HyperliquidError( + // `Could not get market price for ${validatedOrder.coin}` + // ); + // } + + // // Calculate prices + // const midPrice = Number(marketCtx.midPx); + // const isMarketOrder = !validatedOrder.limit_px; + // let finalPrice: number; + + // if (isMarketOrder) { + // // For market orders, use current price with slippage + // const slippage = PRICE_VALIDATION.SLIPPAGE; + // finalPrice = validatedOrder.is_buy + // ? midPrice * (1 + slippage) + // : midPrice * (1 - slippage); + + // // Validate market order price + // if ( + // finalPrice < + // midPrice * PRICE_VALIDATION.MARKET_ORDER.MIN_RATIO || + // finalPrice > + // midPrice * PRICE_VALIDATION.MARKET_ORDER.MAX_RATIO + // ) { + // throw new HyperliquidError( + // `Market order price (${finalPrice.toFixed(2)} USDC) is too far from market price (${midPrice.toFixed(2)} USDC). This might be due to low liquidity.` + // ); + // } + // } else { + // // For limit orders + // finalPrice = validatedOrder.limit_px; + + // // Validate limit order price is optimal + // if (validatedOrder.is_buy && finalPrice > midPrice) { + // throw new HyperliquidError( + // `Cannot place buy limit order at ${finalPrice.toFixed(2)} USDC because it's above market price (${midPrice.toFixed(2)} USDC). To execute immediately, use a market order. For a limit order, set a price below ${midPrice.toFixed(2)} USDC.` + // ); + // } else if (!validatedOrder.is_buy && finalPrice < midPrice) { + // throw new HyperliquidError( + // `Cannot place sell limit order at ${finalPrice.toFixed(2)} USDC because it's below market price (${midPrice.toFixed(2)} USDC). To execute immediately, use a market order. For a limit order, set a price above ${midPrice.toFixed(2)} USDC.` + // ); + // } + + // // Log warning if price is very different from market + // if ( + // finalPrice < + // midPrice * + // PRICE_VALIDATION.LIMIT_ORDER.WARNING_MIN_RATIO || + // finalPrice > + // midPrice * + // PRICE_VALIDATION.LIMIT_ORDER.WARNING_MAX_RATIO + // ) { + // elizaLogger.warn( + // `Limit price (${finalPrice.toFixed(2)} USDC) is very different from market price (${midPrice.toFixed(2)} USDC). Make sure this is intentional.`, + // { + // finalPrice, + // midPrice, + // ratio: finalPrice / midPrice, + // } + // ); + // } + // } + + // // Prepare and place order + // const rounded_px = Number(finalPrice.toFixed(tokenInfo.szDecimals)); + // const orderRequest = { + // coin: `${validatedOrder.coin}-SPOT`, + // asset: 10000 + marketIndex, + // is_buy: validatedOrder.is_buy, + // sz: validatedOrder.sz, + // limit_px: rounded_px, + // reduce_only: false, + // order_type: isMarketOrder + // ? { market: {} } + // : { limit: { tif: "Gtc" as const } }, + // }; + + // elizaLogger.info("Placing order:", orderRequest); + // const result = await sdk.exchange.placeOrder(orderRequest); + + // // Check if order was rejected + // if ( + // result.status === "ok" && + // result.response?.type === "order" && + // result.response.data?.statuses?.[0]?.error + // ) { + // throw new HyperliquidError( + // result.response.data.statuses[0].error + // ); + // } + + // // Send success callback + // if (callback) { + // const action = validatedOrder.is_buy ? "buy" : "sell"; + // const executionPrice = + // result.response?.data?.statuses?.[0]?.px || rounded_px; + // callback({ + // text: `Successfully placed ${isMarketOrder ? "a market" : "a limit"} order to ${action} ${validatedOrder.sz} ${validatedOrder.coin} at ${executionPrice}`, + // content: result, + // }); + // } + + // return true; + // } catch (error) { + // elizaLogger.error("Error placing spot order:", error); + // if (callback) { + // callback({ + // text: `Error placing spot order: ${error.message}`, + // content: { error: error.message }, + // }); + // } + // return false; + // } + }, + examples: [ + [ + { + user: "{{user1}}", + content: { + text: "Buy 0.1 BTC at 20 USD", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll place a buy order for 0.1 BTC at 20 USD.", + action: "SPOT_TRADE", + }, + }, + { + user: "{{agent}}", + content: { + text: "Successfully placed a limit order to buy 0.1 BTC at 20 USD", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "Sell 2 BTC at 21 USD", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll place a sell order for 2 BTC at 21 USD.", + action: "SPOT_TRADE", + }, + }, + { + user: "{{agent}}", + content: { + text: "Successfully placed a limit order to sell 2 BTC at 21 USD", + }, + }, + ], + ] as ActionExample[][], +}; + +export default spotTrade; diff --git a/packages/plugin-desk-exchange/src/index.ts b/packages/plugin-desk-exchange/src/index.ts new file mode 100644 index 00000000000..176dcf5ded8 --- /dev/null +++ b/packages/plugin-desk-exchange/src/index.ts @@ -0,0 +1,14 @@ +import type { Plugin } from "@elizaos/core"; +import { spotTrade } from "./actions/spotTrade"; + +export const deskExchangePlugin: Plugin = { + name: "deskExchange", + description: "DESK Exchange plugin", + actions: [spotTrade], + providers: [], + evaluators: [], + services: [], + clients: [], +}; + +export default deskExchangePlugin; diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts new file mode 100644 index 00000000000..79bfca83efa --- /dev/null +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -0,0 +1,56 @@ +export const perpTradeTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed a trade request. +Based on ONLY that last message, extract the trading details: + +For Hyperliquid spot trading: +- Market orders (executes immediately at best available price): + "perp buy 1 HYPE" -> { "coin": "HYPE", "is_buy": true, "sz": 1 } + "perp sell 2 HYPE" -> { "coin": "HYPE", "is_buy": false, "sz": 2 } + "perp market buy 1 HYPE" -> { "coin": "HYPE", "is_buy": true, "sz": 1 } + "perp market sell 2 HYPE" -> { "coin": "HYPE", "is_buy": false, "sz": 2 } + +- Limit orders (waits for specified price): + "buy 1 HYPE at 20 USDC" -> { "coin": "HYPE", "is_buy": true, "sz": 1, "limit_px": 20 } + "sell 0.5 HYPE at 21 USDC" -> { "coin": "HYPE", "is_buy": false, "sz": 0.5, "limit_px": 21 } + "limit buy 1 HYPE at 20 USDC" -> { "coin": "HYPE", "is_buy": true, "sz": 1, "limit_px": 20 } + "limit sell 0.5 HYPE at 21 USDC" -> { "coin": "HYPE", "is_buy": false, "sz": 0.5, "limit_px": 21 } + +\`\`\`json +{ + "symbol": "", + "side": "", + "amount": "", + "price": "" +} +\`\`\` + +Note: +- Just use the coin symbol (HYPE, ETH, etc.) +- price is optional: + - If specified (with "at X USD"), order will be placed at that exact price + - If not specified, order will be placed at current market price +- Words like "market" or "limit" at the start are optional but help clarify intent + +Recent conversation: +{{recentMessages}}`; + +export const priceCheckTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed which token price to check. +Based on ONLY that last message, extract the token symbol. + +For example: +- "I'll check PIP price for you" -> { "symbol": "PIP" } +- "Let me check the price of HYPE" -> { "symbol": "HYPE" } +- "I'll get the current ETH price" -> { "symbol": "ETH" } + +\`\`\`json +{ + "symbol": "" +} +\`\`\` + +Note: +- Just return the token symbol (PIP, HYPE, ETH, etc.) +- Remove any suffixes like "-SPOT" or "USDC" +- If multiple tokens are mentioned, use the last one + +Recent conversation: +{{recentMessages}}`; diff --git a/packages/plugin-desk-exchange/src/types.ts b/packages/plugin-desk-exchange/src/types.ts new file mode 100644 index 00000000000..f7b1ee1c3aa --- /dev/null +++ b/packages/plugin-desk-exchange/src/types.ts @@ -0,0 +1,20 @@ +import { z } from "zod"; + +// Base configuration types +export interface DeskExchangeConfig { + privateKey: string; + network?: "mainnet" | "testnet"; + walletAddress?: string; +} + +// Error handling types +export class DeskExchangeError extends Error { + constructor( + message: string, + public code?: number, + public details?: unknown + ) { + super(message); + this.name = "DeskExchangeError"; + } +} \ No newline at end of file diff --git a/packages/plugin-desk-exchange/tsconfig.json b/packages/plugin-desk-exchange/tsconfig.json new file mode 100644 index 00000000000..33e9858f482 --- /dev/null +++ b/packages/plugin-desk-exchange/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../core/tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src", + "declaration": true + }, + "include": [ + "src" + ] +} \ No newline at end of file diff --git a/packages/plugin-desk-exchange/tsup.config.ts b/packages/plugin-desk-exchange/tsup.config.ts new file mode 100644 index 00000000000..1a96f24afa1 --- /dev/null +++ b/packages/plugin-desk-exchange/tsup.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + outDir: "dist", + sourcemap: true, + clean: true, + format: ["esm"], // Ensure you're targeting CommonJS + external: [ + "dotenv", // Externalize dotenv to prevent bundling + "fs", // Externalize fs to use Node.js built-in module + "path", // Externalize other built-ins if necessary + "@reflink/reflink", + "@node-llama-cpp", + "https", + "http", + "agentkeepalive", + "safe-buffer", + // Add other modules you want to externalize + ], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46946e179d7..2a3c81835a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,7 +39,7 @@ importers: version: 1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@6.0.5) '@vitest/eslint-plugin': specifier: 1.0.1 - version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) amqplib: specifier: 0.10.5 version: 0.10.5 @@ -70,7 +70,7 @@ importers: version: 1.9.4 '@commitlint/cli': specifier: 18.6.1 - version: 18.6.1(@types/node@22.10.10)(typescript@5.6.3) + version: 18.6.1(@types/node@22.12.0)(typescript@5.6.3) '@commitlint/config-conventional': specifier: 18.6.3 version: 18.6.3 @@ -88,7 +88,7 @@ importers: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) lerna: specifier: 8.1.5 version: 8.1.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(babel-plugin-macros@3.1.0)(encoding@0.1.13) @@ -109,10 +109,10 @@ importers: version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1) vite: specifier: 5.4.12 - version: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + version: 5.4.12(@types/node@22.12.0)(terser@5.37.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) agent: dependencies: @@ -272,6 +272,9 @@ importers: '@elizaos/plugin-depin': specifier: workspace:* version: link:../packages/plugin-depin + '@elizaos/plugin-desk-exchange': + specifier: workspace:* + version: link:../packages/plugin-desk-exchange '@elizaos/plugin-devin': specifier: workspace:* version: link:../packages/plugin-devin @@ -614,17 +617,17 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) devDependencies: '@eslint/js': specifier: ^9.17.0 version: 9.19.0 '@types/node': specifier: ^22.10.5 - version: 22.10.10 + version: 22.12.0 '@types/react': specifier: ^19.0.3 version: 19.0.8 @@ -642,7 +645,7 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) '@vitejs/plugin-react-swc': specifier: ^3.5.0 - version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) autoprefixer: specifier: ^10.4.19 version: 10.4.20(postcss@8.5.1) @@ -678,7 +681,7 @@ importers: version: 5.14.0(rollup@4.32.0) tailwindcss: specifier: ^3.4.4 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) typescript: specifier: ~5.6.3 version: 5.6.3 @@ -687,10 +690,10 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) vite: specifier: ^6.0.5 - version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) docs: dependencies: @@ -858,7 +861,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqlite: dependencies: @@ -880,13 +883,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqljs: dependencies: @@ -924,13 +927,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-alexa: dependencies: @@ -955,7 +958,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-auto: dependencies: @@ -1097,7 +1100,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-eliza-home: dependencies: @@ -1107,13 +1110,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-farcaster: dependencies: @@ -1129,7 +1132,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-github: dependencies: @@ -1157,7 +1160,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-instagram: dependencies: @@ -1185,7 +1188,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-lens: dependencies: @@ -1204,13 +1207,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-simsai: dependencies: @@ -1300,7 +1303,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-telegram-account: dependencies: @@ -1322,13 +1325,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-twitter: dependencies: @@ -1353,13 +1356,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-xmtp: dependencies: @@ -1591,13 +1594,13 @@ importers: devDependencies: vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-0x: dependencies: '@0x/swap-ts-sdk': specifier: 2.1.1 - version: 2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13) + version: 2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13) '@elizaos/core': specifier: workspace:* version: link:../core @@ -1623,7 +1626,7 @@ importers: devDependencies: vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-abstract: dependencies: @@ -1648,7 +1651,7 @@ importers: version: 4.9.5 vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-agentkit: dependencies: @@ -1670,7 +1673,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-akash: dependencies: @@ -1773,7 +1776,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1877,10 +1880,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-apro: dependencies: @@ -1896,7 +1899,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-aptos: dependencies: @@ -1920,7 +1923,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1981,7 +1984,7 @@ importers: version: 4.17.14 '@types/node': specifier: ^22.10.9 - version: 22.10.10 + version: 22.12.0 '@types/ws': specifier: ^8.5.13 version: 8.5.14 @@ -2190,17 +2193,17 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 devDependencies: '@types/node': specifier: ^22.10.2 - version: 22.10.10 + version: 22.12.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 @@ -2242,7 +2245,7 @@ importers: version: 5.2.0 '@types/node': specifier: ^22.10.5 - version: 22.10.10 + version: 22.12.0 '@web3-name-sdk/core': specifier: ^0.3.2 version: 0.3.2(@bonfida/spl-name-service@3.0.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@siddomains/injective-sidjs@0.0.2-beta(@injectivelabs/sdk-ts@1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@5.0.10))(@injectivelabs/ts-types@1.14.40))(@siddomains/sei-sidjs@0.0.4(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)) @@ -2376,7 +2379,7 @@ importers: version: 9.1.2 chain-registry: specifier: ^1.69.68 - version: 1.69.106 + version: 1.69.107 interchain: specifier: ^1.10.4 version: 1.10.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -2456,6 +2459,25 @@ importers: specifier: 7.1.0 version: 7.1.0 + packages/plugin-desk-exchange: + dependencies: + '@elizaos/core': + specifier: workspace:* + version: link:../core + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@types/node': + specifier: ^20.0.0 + version: 20.17.9 + axios: + specifier: ^1.6.5 + version: 1.7.9 + tsup: + specifier: 8.3.5 + version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + packages/plugin-devin: dependencies: '@elizaos/core': @@ -2470,7 +2492,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-dexscreener: dependencies: @@ -2522,7 +2544,7 @@ importers: version: link:../core dkg.js: specifier: ^8.0.4 - version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) + version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@4.9.5)(yaml@2.7.0) @@ -2716,7 +2738,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-football: dependencies: @@ -2756,13 +2778,13 @@ importers: version: 4.0.1 fuels: specifier: 0.97.2 - version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -2905,7 +2927,7 @@ importers: devDependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) packages/plugin-hyperbolic: dependencies: @@ -3028,7 +3050,7 @@ importers: version: 29.5.14 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) @@ -3077,7 +3099,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.10 + version: 22.12.0 packages/plugin-injective: dependencies: @@ -3099,7 +3121,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.10.3 - version: 22.10.10 + version: 22.12.0 '@types/sinon': specifier: ^17.0.3 version: 17.0.3 @@ -3117,7 +3139,7 @@ importers: version: 9.16.0(jiti@2.4.2) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) prettier: specifier: 3.4.1 version: 3.4.1 @@ -3126,7 +3148,7 @@ importers: version: 19.0.2 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3) + version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3) typescript: specifier: ^5.7.2 version: 5.7.3 @@ -3337,7 +3359,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 3.0.2 - version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3401,7 +3423,7 @@ importers: version: 5.7.3 vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-multiversx: dependencies: @@ -3434,7 +3456,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3866,7 +3888,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3913,7 +3935,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-primus: dependencies: @@ -3964,7 +3986,7 @@ importers: version: 4.1.0(encoding@0.1.13) eventsource: specifier: ^3.0.2 - version: 3.0.2 + version: 3.0.5 jstat: specifier: ^1.9.6 version: 1.9.6 @@ -4022,7 +4044,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.4 - version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4089,10 +4111,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) packages/plugin-router-nitro: dependencies: @@ -4128,7 +4150,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4240,13 +4262,13 @@ importers: version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10) solana-agent-kit: specifier: ^1.2.0 - version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4292,13 +4314,13 @@ importers: devDependencies: '@types/node': specifier: ^22.8.7 - version: 22.10.10 + version: 22.12.0 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-spheron: dependencies: @@ -4389,7 +4411,7 @@ importers: version: 1.4.0(starknet@6.18.0(encoding@0.1.13)) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4414,7 +4436,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.10.10 + version: 22.12.0 packages/plugin-sui: dependencies: @@ -4438,7 +4460,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4560,7 +4582,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4570,7 +4592,7 @@ importers: version: 3.2.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) packages/plugin-thirdweb: dependencies: @@ -4579,7 +4601,7 @@ importers: version: link:../core thirdweb: specifier: ^5.80.0 - version: 5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) + version: 5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -4652,7 +4674,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4690,7 +4712,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-udio: dependencies: @@ -13307,8 +13329,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.5': - resolution: {integrity: sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==} + '@types/express-serve-static-core@5.0.6': + resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -13488,8 +13510,8 @@ packages: '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.10.10': - resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} + '@types/node@22.12.0': + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -15854,8 +15876,8 @@ packages: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} - chain-registry@1.69.106: - resolution: {integrity: sha512-0ukSRl/FVMgQZs0nCFGvF5iFQowkpvwNiVx9lKmOlnTwps3yUT5PyfTdUlJOgxfkV+ct0h5tInpROYKxPeFGGA==} + chain-registry@1.69.107: + resolution: {integrity: sha512-aBGcm0zxnuD8ZC54PTWS+7evZR0s6M/jGoaPVCo14PoYfW58qOJNp2R00DQkOIpKCaPESzCbzOkjB1HtUryFXg==} chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} @@ -18098,8 +18120,8 @@ packages: resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} engines: {node: '>=12.0.0'} - eventsource@3.0.2: - resolution: {integrity: sha512-YolzkJNxsTL3tCJMWFxpxtG2sCjbZ4LQUBUrkdaJK0ub0p6lmJt+2+1SwhKjLc652lpH9L/79Ptez972H9tphw==} + eventsource@3.0.5: + resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} engines: {node: '>=18.0.0'} evp_bytestokey@1.0.3: @@ -26003,8 +26025,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thirdweb@5.86.3: - resolution: {integrity: sha512-WionZLLh8j3zBGtZE5w9lfmeu4O5GEF2/n7Xl2ck1np6SynelZho2k6KllGOF5Shb9nc84BhbXsKF/rZBHtOeA==} + thirdweb@5.86.6: + resolution: {integrity: sha512-DmAo61RbIF5PsXFf2Ru+FEvrJ9qiBPwifkU7jCAWEooUts5KSwUO3MowWWHbjjN1At4k/IUoiLvkOtAK8cfheg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -28461,13 +28483,13 @@ snapshots: '@0x/contract-addresses@8.13.0': {} - '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13)': + '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13)': dependencies: '@0x/contract-addresses': 8.13.0 '@0x/utils': 7.0.0(encoding@0.1.13) '@trpc/client': 10.40.0(@trpc/server@10.40.0) '@trpc/server': 10.40.0 - trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4) + trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4) zod: 3.22.4 transitivePeerDependencies: - '@types/express' @@ -28575,7 +28597,7 @@ snapshots: - typescript - utf-8-validate - '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@irys/sdk': 0.2.11(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -28593,7 +28615,7 @@ snapshots: fs: 0.0.1-security irys: 0.0.1 node-fetch: 3.3.2 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) tweetnacl: 1.0.3 transitivePeerDependencies: - '@swc/core' @@ -28931,7 +28953,7 @@ snapshots: '@alloralabs/allora-sdk@0.1.0': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 typescript: 5.7.3 '@ampproject/remapping@2.3.0': @@ -31082,11 +31104,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': + '@commitlint/cli@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@22.10.10)(typescript@5.6.3) + '@commitlint/load': 18.6.1(@types/node@22.12.0)(typescript@5.6.3) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -31136,7 +31158,7 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': + '@commitlint/load@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 @@ -31144,7 +31166,7 @@ snapshots: '@commitlint/types': 18.6.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -33405,7 +33427,7 @@ snapshots: - supports-color - utf-8-validate - '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': + '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.108.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -33419,7 +33441,7 @@ snapshots: dotenv: 16.4.5 rpc-websockets: 7.5.1 strict-event-emitter-types: 2.0.0 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - '@swc/core' @@ -34748,23 +34770,23 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) type-fest: 4.33.0 transitivePeerDependencies: - vitest - '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 commander: 12.1.0 glob: 10.4.5 @@ -34775,18 +34797,18 @@ snapshots: transitivePeerDependencies: - vitest - '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 '@noble/curves': 1.8.1 @@ -34799,30 +34821,30 @@ snapshots: - encoding - vitest - '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 bech32: 2.0.0 transitivePeerDependencies: - vitest - '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 @@ -34830,12 +34852,12 @@ snapshots: - encoding - vitest - '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34844,11 +34866,11 @@ snapshots: dependencies: '@fuel-ts/versions': 0.97.2 - '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34861,78 +34883,78 @@ snapshots: '@types/bn.js': 5.1.6 bn.js: 5.2.1 - '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/math': 0.97.2 transitivePeerDependencies: - vitest - '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 transitivePeerDependencies: - encoding - vitest - '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - vitest - '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 '@fuel-ts/versions': 0.97.2 fflate: 0.8.2 - vitest: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@fuel-ts/versions@0.97.2': dependencies: @@ -39324,7 +39346,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.10.10 + '@types/node': 22.12.0 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -39345,7 +39367,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.10.10 + '@types/node': 22.12.0 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -40010,11 +40032,11 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': dependencies: debug: 4.4.0(supports-color@8.1.1) ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color @@ -45614,7 +45636,7 @@ snapshots: '@types/bs58@4.0.4': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 base-x: 3.0.10 '@types/cacheable-request@6.0.3': @@ -45645,7 +45667,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.5 + '@types/express-serve-static-core': 5.0.6 '@types/node': 20.17.9 '@types/connect@3.4.38': @@ -45820,7 +45842,7 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.5': + '@types/express-serve-static-core@5.0.6': dependencies: '@types/node': 20.17.9 '@types/qs': 6.9.18 @@ -45837,7 +45859,7 @@ snapshots: '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 5.0.5 + '@types/express-serve-static-core': 5.0.6 '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 @@ -46015,7 +46037,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.10.10': + '@types/node@22.12.0': dependencies: undici-types: 6.20.0 @@ -46210,7 +46232,7 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 '@types/ws@8.5.3': dependencies: @@ -46724,10 +46746,10 @@ snapshots: moment: 2.30.1 starknet: 6.18.0(encoding@0.1.13) - '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@swc/helpers' @@ -46748,7 +46770,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46763,11 +46785,11 @@ snapshots: std-env: 3.8.0 test-exclude: 6.0.0 v8-to-istanbul: 9.3.0 - vitest: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46782,11 +46804,11 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46801,7 +46823,7 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color @@ -46842,7 +46864,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -46856,17 +46878,17 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: eslint: 9.19.0(jiti@2.4.2) optionalDependencies: '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) typescript: 5.6.3 - vitest: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@vitest/expect@0.34.6': dependencies: @@ -46914,29 +46936,29 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@20.17.9)(terser@5.37.0))': dependencies: @@ -46946,13 +46968,13 @@ snapshots: optionalDependencies: vite: 5.4.12(@types/node@20.17.9)(terser@5.37.0) - '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': + '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@vitest/spy': 3.0.2 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) '@vitest/pretty-format@2.1.4': dependencies: @@ -47499,7 +47521,7 @@ snapshots: dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.2.0(encoding@0.1.13) + cross-fetch: 3.1.8(encoding@0.1.13) events: 3.3.0 transitivePeerDependencies: - encoding @@ -50203,7 +50225,7 @@ snapshots: loupe: 3.1.2 pathval: 2.0.0 - chain-registry@1.69.106: + chain-registry@1.69.107: dependencies: '@chain-registry/types': 0.50.57 @@ -50864,9 +50886,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): dependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 typescript: 5.6.3 @@ -50988,13 +51010,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -51868,7 +51890,7 @@ snapshots: - bufferutil - utf-8-validate - dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@openzeppelin/contracts': 5.2.0 '@polkadot/api': 15.5.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -51877,11 +51899,11 @@ snapshots: '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) '@prb/math': 4.1.0 dotenv: 16.4.7 - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) solady: 0.0.285 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) typescript: 5.7.3 transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' @@ -51893,11 +51915,11 @@ snapshots: - supports-color - utf-8-validate - dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): + dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): dependencies: assertion-tools: 8.0.0-gamma.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) axios: 0.27.2(debug@4.3.4) - dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) jsonld: 8.3.3(web-streams-polyfill@3.3.3) web3: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -53247,7 +53269,7 @@ snapshots: eventsource@2.0.2: {} - eventsource@3.0.2: + eventsource@3.0.5: dependencies: eventsource-parser: 3.0.0 @@ -53898,24 +53920,24 @@ snapshots: fsevents@2.3.3: optional: true - fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): + fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 bundle-require: 5.1.0(esbuild@0.24.2) chalk: 4.1.2 @@ -54514,10 +54536,10 @@ snapshots: hard-rejection@2.1.0: {} - hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): + hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): @@ -54551,7 +54573,7 @@ snapshots: - supports-color - utf-8-validate - hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): + hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -54598,7 +54620,7 @@ snapshots: uuid: 8.3.2 ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - bufferutil @@ -55967,16 +55989,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest-cli@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -56101,7 +56123,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.26.7 '@jest/test-sequencer': 29.7.0 @@ -56126,7 +56148,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -56675,12 +56697,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): + jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest-cli: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -59216,7 +59238,7 @@ snapshots: node-machine-id@1.1.12: {} - node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.10.10): + node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.12.0): dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -59230,7 +59252,7 @@ snapshots: type-is: 1.6.18 optionalDependencies: '@types/express': 5.0.0 - '@types/node': 22.10.10 + '@types/node': 22.12.0 node-releases@2.0.19: {} @@ -60787,13 +60809,13 @@ snapshots: postcss: 8.5.1 ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@16.18.125)(typescript@5.7.3) - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2): dependencies: @@ -63284,15 +63306,15 @@ snapshots: - utf-8-validate - ws - solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@ai-sdk/openai': 1.1.5(zod@3.24.1) '@bonfida/spl-name-service': 3.0.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.107.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) + '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@langchain/core': 0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) '@langchain/groq': 0.1.3(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@langchain/langgraph': 0.2.41(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) @@ -64027,9 +64049,9 @@ snapshots: tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))): dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) tailwindcss@3.4.17: dependencies: @@ -64058,7 +64080,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -64077,7 +64099,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -64263,7 +64285,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thirdweb@5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): + thirdweb@5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): dependencies: '@coinbase/wallet-sdk': 4.2.4 '@emotion/react': 11.14.0(@types/react@19.0.8)(react@19.0.0) @@ -64541,13 +64563,13 @@ snapshots: trough@2.2.0: {} - trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4): + trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4): dependencies: '@trpc/server': 10.40.0 co-body: 6.2.0 h3: 1.14.0 lodash.clonedeep: 4.5.0 - node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.10.10) + node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.12.0) openapi-types: 12.1.3 zod: 3.22.4 zod-to-json-schema: 3.24.1(zod@3.22.4) @@ -64622,12 +64644,12 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.7) - ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3): + ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -64751,14 +64773,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64771,14 +64793,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64791,14 +64813,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.10 + '@types/node': 22.12.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -65904,13 +65926,13 @@ snapshots: - supports-color - terser - vite-node@1.1.3(@types/node@22.10.10)(terser@5.37.0): + vite-node@1.1.3(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -65958,13 +65980,13 @@ snapshots: - supports-color - terser - vite-node@1.2.1(@types/node@22.10.10)(terser@5.37.0): + vite-node@1.2.1(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -65993,12 +66015,12 @@ snapshots: - supports-color - terser - vite-node@2.1.4(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.4(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66010,13 +66032,13 @@ snapshots: - supports-color - terser - vite-node@2.1.5(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.5(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66046,13 +66068,13 @@ snapshots: - supports-color - terser - vite-node@2.1.8(@types/node@22.10.10)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66082,13 +66104,13 @@ snapshots: - supports-color - terser - vite-node@3.0.2(@types/node@22.10.10)(terser@5.37.0): + vite-node@3.0.2(@types/node@22.12.0)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66118,12 +66140,12 @@ snapshots: - supports-color - terser - vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: chalk: 4.1.2 debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -66138,13 +66160,13 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript @@ -66180,13 +66202,13 @@ snapshots: fsevents: 2.3.3 terser: 5.37.0 - vite@5.4.12(@types/node@22.10.10)(terser@5.37.0): + vite@5.4.12(@types/node@22.12.0)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.5.1 rollup: 4.32.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 fsevents: 2.3.3 terser: 5.37.0 @@ -66214,13 +66236,13 @@ snapshots: yaml: 2.7.0 optional: true - vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 rollup: 4.32.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.37.0 @@ -66267,7 +66289,7 @@ snapshots: - supports-color - terser - vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.1.3 '@vitest/runner': 1.1.3 @@ -66287,11 +66309,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.1.3(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.1.3(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66412,7 +66434,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66432,11 +66454,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66448,7 +66470,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66468,11 +66490,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66487,7 +66509,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66523,7 +66545,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66556,10 +66578,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66575,11 +66597,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66592,10 +66614,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66611,11 +66633,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66628,10 +66650,10 @@ snapshots: - supports-color - terser - vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -66647,11 +66669,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.5(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.5(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66667,7 +66689,7 @@ snapshots: vitest@2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66700,10 +66722,10 @@ snapshots: - supports-color - terser - vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66719,11 +66741,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66772,10 +66794,10 @@ snapshots: - supports-color - terser - vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 @@ -66791,11 +66813,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - vite-node: 3.0.2(@types/node@22.10.10)(terser@5.37.0) + vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite-node: 3.0.2(@types/node@22.12.0)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.10 + '@types/node': 22.12.0 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66811,7 +66833,7 @@ snapshots: vitest@3.0.2(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 From a718f33b4db3786b5c39c10ef93efb458c6ecde0 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 15:40:53 +0700 Subject: [PATCH 02/51] feat: trade successful with callback --- .../src/actions/spotTrade.ts | 175 ++---------------- 1 file changed, 19 insertions(+), 156 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/spotTrade.ts b/packages/plugin-desk-exchange/src/actions/spotTrade.ts index d13173e3b39..0c4748e2e14 100644 --- a/packages/plugin-desk-exchange/src/actions/spotTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/spotTrade.ts @@ -13,6 +13,13 @@ import { import { DeskExchangeError } from "../types.js"; import { perpTradeTemplate } from "../templates.js"; +const generateNonce = (): bigint => { + const expiredAt = BigInt(Date.now() + 1000 * 60 * 5) * BigInt(1 << 20); // 5 minutes + // random number between 0 and 2^20 + const random = Math.floor(Math.random() * (1 << 20)) - 1; + return expiredAt + BigInt(random); +}; + export const spotTrade: Action = { name: "SPOT_TRADE", similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], @@ -60,7 +67,7 @@ export const spotTrade: Action = { side: content.side, amount: content.amount, price: content.price, - nonce: "1822468699971776000", + nonce: generateNonce().toString(), broker_id: "DESK", order_type: "Market", reduce_only: false, @@ -72,7 +79,7 @@ export const spotTrade: Action = { JSON.stringify(processesOrder, null, 2) ); - const result = await fetch( + const rawResponse = await fetch( "https://stg-trade-api.happytrading.global/v2/place-order", { headers: { @@ -84,161 +91,17 @@ export const spotTrade: Action = { method: "POST", } ); - elizaLogger.info(await result.json()); - - // Validate order parameters - // const validatedOrder = SpotOrderSchema.parse(content); - // elizaLogger.info("Validated order:", validatedOrder); - - // // Initialize SDK - // const sdk = new Hyperliquid({ - // privateKey: runtime.getSetting("HYPERLIQUID_PRIVATE_KEY"), - // testnet: runtime.getSetting("HYPERLIQUID_TESTNET") === "true", - // enableWs: false, - // }); - // await sdk.connect(); - - // // Get market data - // const [meta, assetCtxs] = - // await sdk.info.spot.getSpotMetaAndAssetCtxs(); - - // // Find token and market - // const tokenIndex = meta.tokens.findIndex( - // (token) => - // token.name.toUpperCase() === - // validatedOrder.coin.toUpperCase() - // ); - // if (tokenIndex === -1) { - // throw new HyperliquidError( - // `Could not find token ${validatedOrder.coin}` - // ); - // } - // const tokenInfo = meta.tokens[tokenIndex]; - // elizaLogger.info("Found token:", tokenInfo.name); - - // const marketIndex = assetCtxs.findIndex( - // (ctx) => ctx.coin === `${validatedOrder.coin}-SPOT` - // ); - // if (marketIndex === -1) { - // throw new HyperliquidError( - // `Could not find market for ${validatedOrder.coin}` - // ); - // } - // const marketCtx = assetCtxs[marketIndex]; - // if (!marketCtx || !marketCtx.midPx) { - // throw new HyperliquidError( - // `Could not get market price for ${validatedOrder.coin}` - // ); - // } - - // // Calculate prices - // const midPrice = Number(marketCtx.midPx); - // const isMarketOrder = !validatedOrder.limit_px; - // let finalPrice: number; - - // if (isMarketOrder) { - // // For market orders, use current price with slippage - // const slippage = PRICE_VALIDATION.SLIPPAGE; - // finalPrice = validatedOrder.is_buy - // ? midPrice * (1 + slippage) - // : midPrice * (1 - slippage); - - // // Validate market order price - // if ( - // finalPrice < - // midPrice * PRICE_VALIDATION.MARKET_ORDER.MIN_RATIO || - // finalPrice > - // midPrice * PRICE_VALIDATION.MARKET_ORDER.MAX_RATIO - // ) { - // throw new HyperliquidError( - // `Market order price (${finalPrice.toFixed(2)} USDC) is too far from market price (${midPrice.toFixed(2)} USDC). This might be due to low liquidity.` - // ); - // } - // } else { - // // For limit orders - // finalPrice = validatedOrder.limit_px; - - // // Validate limit order price is optimal - // if (validatedOrder.is_buy && finalPrice > midPrice) { - // throw new HyperliquidError( - // `Cannot place buy limit order at ${finalPrice.toFixed(2)} USDC because it's above market price (${midPrice.toFixed(2)} USDC). To execute immediately, use a market order. For a limit order, set a price below ${midPrice.toFixed(2)} USDC.` - // ); - // } else if (!validatedOrder.is_buy && finalPrice < midPrice) { - // throw new HyperliquidError( - // `Cannot place sell limit order at ${finalPrice.toFixed(2)} USDC because it's below market price (${midPrice.toFixed(2)} USDC). To execute immediately, use a market order. For a limit order, set a price above ${midPrice.toFixed(2)} USDC.` - // ); - // } - - // // Log warning if price is very different from market - // if ( - // finalPrice < - // midPrice * - // PRICE_VALIDATION.LIMIT_ORDER.WARNING_MIN_RATIO || - // finalPrice > - // midPrice * - // PRICE_VALIDATION.LIMIT_ORDER.WARNING_MAX_RATIO - // ) { - // elizaLogger.warn( - // `Limit price (${finalPrice.toFixed(2)} USDC) is very different from market price (${midPrice.toFixed(2)} USDC). Make sure this is intentional.`, - // { - // finalPrice, - // midPrice, - // ratio: finalPrice / midPrice, - // } - // ); - // } - // } - - // // Prepare and place order - // const rounded_px = Number(finalPrice.toFixed(tokenInfo.szDecimals)); - // const orderRequest = { - // coin: `${validatedOrder.coin}-SPOT`, - // asset: 10000 + marketIndex, - // is_buy: validatedOrder.is_buy, - // sz: validatedOrder.sz, - // limit_px: rounded_px, - // reduce_only: false, - // order_type: isMarketOrder - // ? { market: {} } - // : { limit: { tif: "Gtc" as const } }, - // }; - - // elizaLogger.info("Placing order:", orderRequest); - // const result = await sdk.exchange.placeOrder(orderRequest); - - // // Check if order was rejected - // if ( - // result.status === "ok" && - // result.response?.type === "order" && - // result.response.data?.statuses?.[0]?.error - // ) { - // throw new HyperliquidError( - // result.response.data.statuses[0].error - // ); - // } - - // // Send success callback - // if (callback) { - // const action = validatedOrder.is_buy ? "buy" : "sell"; - // const executionPrice = - // result.response?.data?.statuses?.[0]?.px || rounded_px; - // callback({ - // text: `Successfully placed ${isMarketOrder ? "a market" : "a limit"} order to ${action} ${validatedOrder.sz} ${validatedOrder.coin} at ${executionPrice}`, - // content: result, - // }); - // } + const response = await rawResponse.json(); + elizaLogger.info(response); + + if (callback && response.code === 200) { + callback({ + text: `Successfully placed a ${response.data.order_type} order of size ${response.data.quantity} on ${response.data.symbol} market at ${response.data.avg_fill_price} USD on DESK Exchange.`, + content: response, + }); + } - // return true; - // } catch (error) { - // elizaLogger.error("Error placing spot order:", error); - // if (callback) { - // callback({ - // text: `Error placing spot order: ${error.message}`, - // content: { error: error.message }, - // }); - // } - // return false; - // } + return true; }, examples: [ [ From 265c231e0c5c9d7092249467758fc01766f0b833 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 17:15:56 +0700 Subject: [PATCH 03/51] feat: gen nonce and jwt --- packages/plugin-desk-exchange/package.json | 4 +- .../src/actions/spotTrade.ts | 87 +++++++++++++++---- packages/plugin-desk-exchange/tsconfig.json | 8 +- 3 files changed, 75 insertions(+), 24 deletions(-) diff --git a/packages/plugin-desk-exchange/package.json b/packages/plugin-desk-exchange/package.json index acdab1e0932..aa41d18b586 100644 --- a/packages/plugin-desk-exchange/package.json +++ b/packages/plugin-desk-exchange/package.json @@ -6,11 +6,11 @@ "types": "dist/index.d.ts", "dependencies": { "@elizaos/core": "workspace:*", - "zod": "^3.23.8" + "zod": "^3.23.8", + "ethers": "^6.13.5" }, "devDependencies": { "@types/node": "^20.0.0", - "axios": "^1.6.5", "tsup": "8.3.5" }, "scripts": { diff --git a/packages/plugin-desk-exchange/src/actions/spotTrade.ts b/packages/plugin-desk-exchange/src/actions/spotTrade.ts index 0c4748e2e14..d03dd3cc511 100644 --- a/packages/plugin-desk-exchange/src/actions/spotTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/spotTrade.ts @@ -12,14 +12,51 @@ import { } from "@elizaos/core"; import { DeskExchangeError } from "../types.js"; import { perpTradeTemplate } from "../templates.js"; +import { ethers } from "ethers"; -const generateNonce = (): bigint => { - const expiredAt = BigInt(Date.now() + 1000 * 60 * 5) * BigInt(1 << 20); // 5 minutes +const generateNonce = (): string => { + const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes // random number between 0 and 2^20 const random = Math.floor(Math.random() * (1 << 20)) - 1; - return expiredAt + BigInt(random); + return (expiredAt + random).toString(); }; +const generateJwt = async ( + endpoint: string, + wallet: ethers.Wallet, + subaccountId: number, + nonce: string +): Promise => { + const message = `generate jwt for ${wallet.address?.toLowerCase()} and subaccount id ${subaccountId} to trade on happytrading.global with nonce: ${nonce}`; + const signature = await wallet.signMessage(message); + + const rawResponse = await fetch(`${endpoint}/v2/auth/evm`, { + headers: { "content-type": "application/json" }, + body: JSON.stringify({ + account: wallet.address, + subaccount_id: subaccountId.toString(), + nonce, + signature, + }), + method: "POST", + }); + const response = await rawResponse.json(); + if (response.code === 200) { + return response.data.jwt; + } else { + throw new DeskExchangeError("Could not generate JWT"); + } +}; + +const getSubaccount = (account: string, subaccountId: number): string => { + // pad address with subaccountId to be 32 bytes (64 hex characters) + // 0x + 40 hex characters (address) + 24 hex characters (subaccountId) + const subaccountIdHex = BigInt(subaccountId).toString(16).padStart(24, "0"); + return account.concat(subaccountIdHex); +}; + +let jwt: string = null; + export const spotTrade: Action = { name: "SPOT_TRADE", similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], @@ -34,7 +71,7 @@ export const spotTrade: Action = { options: Record, callback?: HandlerCallback ) => { - elizaLogger.info("DESK EXCHANGE"); + elizaLogger.info("DESK EXCHANGE", jwt); // Initialize or update state state = !state ? await runtime.composeState(message) @@ -57,6 +94,18 @@ export const spotTrade: Action = { ); } + const endpoint = + runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" + ? "https://trade-api.happytrading.global" + : "https://stg-trade-api.happytrading.global"; + + const wallet = new ethers.Wallet( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") + ); + if (!jwt) { + jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + } + elizaLogger.info("jwt", jwt); elizaLogger.info( "Raw content from LLM:", JSON.stringify(content, null, 2) @@ -67,30 +116,25 @@ export const spotTrade: Action = { side: content.side, amount: content.amount, price: content.price, - nonce: generateNonce().toString(), + nonce: generateNonce(), broker_id: "DESK", order_type: "Market", reduce_only: false, - subaccount: - "0x6629eC35c8Aa279BA45Dbfb575c728d3812aE31a000000000000000000000000", + subaccount: getSubaccount(wallet.address, 0), }; elizaLogger.info( "Processed order:", JSON.stringify(processesOrder, null, 2) ); - const rawResponse = await fetch( - "https://stg-trade-api.happytrading.global/v2/place-order", - { - headers: { - authorization: - "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NDA1NjAyNTAsImFjY291bnQiOiIweDY2MjllQzM1YzhBYTI3OUJBNDVEYmZiNTc1YzcyOGQzODEyYUUzMWEiLCJzdWJhY2NvdW50X2lkIjowfQ.RUazgjZM3Vulq1MAQ22eYmVVAH1pHbsqzG18VP9VPyI", - "content-type": "application/json", - }, - body: JSON.stringify(processesOrder), - method: "POST", - } - ); + const rawResponse = await fetch(`${endpoint}/v2/place-order`, { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + body: JSON.stringify(processesOrder), + method: "POST", + }); const response = await rawResponse.json(); elizaLogger.info(response); @@ -99,6 +143,11 @@ export const spotTrade: Action = { text: `Successfully placed a ${response.data.order_type} order of size ${response.data.quantity} on ${response.data.symbol} market at ${response.data.avg_fill_price} USD on DESK Exchange.`, content: response, }); + } else { + callback({ + text: `Place order failed with ${response.errors}.`, + content: response, + }); } return true; diff --git a/packages/plugin-desk-exchange/tsconfig.json b/packages/plugin-desk-exchange/tsconfig.json index 33e9858f482..18c600eec05 100644 --- a/packages/plugin-desk-exchange/tsconfig.json +++ b/packages/plugin-desk-exchange/tsconfig.json @@ -2,10 +2,12 @@ "extends": "../core/tsconfig.json", "compilerOptions": { "outDir": "dist", - "rootDir": "./src", - "declaration": true + "rootDir": "src", + "types": [ + "node" + ] }, "include": [ - "src" + "src/**/*.ts", ] } \ No newline at end of file From 003a061f1842323327f9eefa7a9b04820e6c67fe Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 17:29:06 +0700 Subject: [PATCH 04/51] feat: change to PERP_TRADE --- .../src/actions/{spotTrade.ts => perpTrade.ts} | 10 +++++----- packages/plugin-desk-exchange/src/index.ts | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) rename packages/plugin-desk-exchange/src/actions/{spotTrade.ts => perpTrade.ts} (97%) diff --git a/packages/plugin-desk-exchange/src/actions/spotTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts similarity index 97% rename from packages/plugin-desk-exchange/src/actions/spotTrade.ts rename to packages/plugin-desk-exchange/src/actions/perpTrade.ts index d03dd3cc511..f414214198d 100644 --- a/packages/plugin-desk-exchange/src/actions/spotTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -57,8 +57,8 @@ const getSubaccount = (account: string, subaccountId: number): string => { let jwt: string = null; -export const spotTrade: Action = { - name: "SPOT_TRADE", +export const perpTrade: Action = { + name: "PERP_TRADE", similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], description: "Place a perpetual contract trade order on DESK Exchange", validate: async (runtime: IAgentRuntime) => { @@ -164,7 +164,7 @@ export const spotTrade: Action = { user: "{{agent}}", content: { text: "I'll place a buy order for 0.1 BTC at 20 USD.", - action: "SPOT_TRADE", + action: "PERP_TRADE", }, }, { @@ -185,7 +185,7 @@ export const spotTrade: Action = { user: "{{agent}}", content: { text: "I'll place a sell order for 2 BTC at 21 USD.", - action: "SPOT_TRADE", + action: "PERP_TRADE", }, }, { @@ -198,4 +198,4 @@ export const spotTrade: Action = { ] as ActionExample[][], }; -export default spotTrade; +export default perpTrade; diff --git a/packages/plugin-desk-exchange/src/index.ts b/packages/plugin-desk-exchange/src/index.ts index 176dcf5ded8..7f2a272df4a 100644 --- a/packages/plugin-desk-exchange/src/index.ts +++ b/packages/plugin-desk-exchange/src/index.ts @@ -1,10 +1,10 @@ import type { Plugin } from "@elizaos/core"; -import { spotTrade } from "./actions/spotTrade"; +import { perpTrade } from "./actions/perpTrade"; export const deskExchangePlugin: Plugin = { name: "deskExchange", description: "DESK Exchange plugin", - actions: [spotTrade], + actions: [perpTrade], providers: [], evaluators: [], services: [], From d6cbb7035ff31979ccc015911ad8ca7db2f19c9f Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 17:32:13 +0700 Subject: [PATCH 05/51] feat: add order side in callback message --- packages/plugin-desk-exchange/src/actions/perpTrade.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index f414214198d..642eca1157f 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -140,7 +140,7 @@ export const perpTrade: Action = { if (callback && response.code === 200) { callback({ - text: `Successfully placed a ${response.data.order_type} order of size ${response.data.quantity} on ${response.data.symbol} market at ${response.data.avg_fill_price} USD on DESK Exchange.`, + text: `Successfully placed a ${response.data.side} ${response.data.order_type} order of size ${response.data.quantity} on ${response.data.symbol} market at ${response.data.avg_fill_price} USD on DESK Exchange.`, content: response, }); } else { @@ -157,7 +157,7 @@ export const perpTrade: Action = { { user: "{{user1}}", content: { - text: "Buy 0.1 BTC at 20 USD", + text: "Long 0.1 BTC at 20 USD", }, }, { @@ -178,7 +178,7 @@ export const perpTrade: Action = { { user: "{{user1}}", content: { - text: "Sell 2 BTC at 21 USD", + text: "Short 2 BTC at 21 USD", }, }, { From 718516fbe36b4896ec967f77c4b3eeb63207914f Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Tue, 28 Jan 2025 18:17:02 +0700 Subject: [PATCH 06/51] feat: refactor to use axios --- packages/plugin-desk-exchange/package.json | 3 +- .../src/actions/perpTrade.ts | 55 ++++++++++--------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/packages/plugin-desk-exchange/package.json b/packages/plugin-desk-exchange/package.json index aa41d18b586..d5dc33ad035 100644 --- a/packages/plugin-desk-exchange/package.json +++ b/packages/plugin-desk-exchange/package.json @@ -7,7 +7,8 @@ "dependencies": { "@elizaos/core": "workspace:*", "zod": "^3.23.8", - "ethers": "^6.13.5" + "ethers": "^6.13.5", + "axios": "^1.7.9" }, "devDependencies": { "@types/node": "^20.0.0", diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 642eca1157f..365ef433eb2 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -13,6 +13,7 @@ import { import { DeskExchangeError } from "../types.js"; import { perpTradeTemplate } from "../templates.js"; import { ethers } from "ethers"; +import axios from "axios"; const generateNonce = (): string => { const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes @@ -30,19 +31,21 @@ const generateJwt = async ( const message = `generate jwt for ${wallet.address?.toLowerCase()} and subaccount id ${subaccountId} to trade on happytrading.global with nonce: ${nonce}`; const signature = await wallet.signMessage(message); - const rawResponse = await fetch(`${endpoint}/v2/auth/evm`, { - headers: { "content-type": "application/json" }, - body: JSON.stringify({ + const response = await axios.post( + `${endpoint}/v2/auth/evm`, + { account: wallet.address, subaccount_id: subaccountId.toString(), nonce, signature, - }), - method: "POST", - }); - const response = await rawResponse.json(); - if (response.code === 200) { - return response.data.jwt; + }, + { + headers: { "content-type": "application/json" }, + } + ); + + if (response.status === 200) { + return response.data.data.jwt; } else { throw new DeskExchangeError("Could not generate JWT"); } @@ -98,7 +101,6 @@ export const perpTrade: Action = { runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" ? "https://trade-api.happytrading.global" : "https://stg-trade-api.happytrading.global"; - const wallet = new ethers.Wallet( runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); @@ -127,26 +129,29 @@ export const perpTrade: Action = { JSON.stringify(processesOrder, null, 2) ); - const rawResponse = await fetch(`${endpoint}/v2/place-order`, { - headers: { - authorization: `Bearer ${jwt}`, - "content-type": "application/json", - }, - body: JSON.stringify(processesOrder), - method: "POST", - }); - const response = await rawResponse.json(); - elizaLogger.info(response); + const response = await axios.post( + `${endpoint}/v2/place-order`, + processesOrder, + { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + } + ); + + elizaLogger.info(response.data); - if (callback && response.code === 200) { + if (callback && response.status === 200) { + const orderResponse = response.data.data; callback({ - text: `Successfully placed a ${response.data.side} ${response.data.order_type} order of size ${response.data.quantity} on ${response.data.symbol} market at ${response.data.avg_fill_price} USD on DESK Exchange.`, - content: response, + text: `Successfully placed a ${orderResponse.side} ${orderResponse.order_type} order of size ${orderResponse.quantity} on ${orderResponse.symbol} market at ${orderResponse.avg_fill_price} USD on DESK Exchange.`, + content: response.data, }); } else { callback({ - text: `Place order failed with ${response.errors}.`, - content: response, + text: `Place order failed with ${response.data.errors}.`, + content: response.data, }); } From c78d068a08b9538cad9a2f8508befc5c84efdbcf Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 11:55:53 +0700 Subject: [PATCH 07/51] feat: add content validation --- .../plugin-desk-exchange/src/actions/perpTrade.ts | 8 +++++++- packages/plugin-desk-exchange/src/types.ts | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 365ef433eb2..cd6c935a25c 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -10,7 +10,7 @@ import { generateObjectDeprecated, ModelClass, } from "@elizaos/core"; -import { DeskExchangeError } from "../types.js"; +import { DeskExchangeError, PlaceOrderSchema } from "../types.js"; import { perpTradeTemplate } from "../templates.js"; import { ethers } from "ethers"; import axios from "axios"; @@ -124,6 +124,12 @@ export const perpTrade: Action = { reduce_only: false, subaccount: getSubaccount(wallet.address, 0), }; + const parseResult = PlaceOrderSchema.safeParse(processesOrder); + if (!parseResult.success) { + throw new Error( + `Invalid perp trade content: ${JSON.stringify(parseResult.error.errors, null, 2)}` + ); + } elizaLogger.info( "Processed order:", JSON.stringify(processesOrder, null, 2) diff --git a/packages/plugin-desk-exchange/src/types.ts b/packages/plugin-desk-exchange/src/types.ts index f7b1ee1c3aa..6b9c576f118 100644 --- a/packages/plugin-desk-exchange/src/types.ts +++ b/packages/plugin-desk-exchange/src/types.ts @@ -7,6 +7,19 @@ export interface DeskExchangeConfig { walletAddress?: string; } +export const PlaceOrderSchema = z.object({ + symbol: z.string().min(1).toUpperCase(), + side: z.enum(["Long", "Short"]), + amount: z.number({ coerce: true }).positive(), + price: z.number({ coerce: true }), + nonce: z.string(), + broker_id: z.enum(["DESK"]), + order_type: z.enum(["Market", "Limit"]), + reduce_only: z.boolean(), + subaccount: z.string(), + timeInForce: z.enum(["GTC", "IOC", "FOK"]).optional(), +}); + // Error handling types export class DeskExchangeError extends Error { constructor( @@ -17,4 +30,4 @@ export class DeskExchangeError extends Error { super(message); this.name = "DeskExchangeError"; } -} \ No newline at end of file +} From 7b86f4b306c022c30467314dde11bc385b4dcc05 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 12:21:22 +0700 Subject: [PATCH 08/51] feat: limit trade and better error handling --- .../src/actions/perpTrade.ts | 157 +++++++++++------- 1 file changed, 93 insertions(+), 64 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index cd6c935a25c..35c9b207877 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -75,6 +75,7 @@ export const perpTrade: Action = { callback?: HandlerCallback ) => { elizaLogger.info("DESK EXCHANGE", jwt); + // Initialize or update state state = !state ? await runtime.composeState(message) @@ -91,77 +92,105 @@ export const perpTrade: Action = { modelClass: ModelClass.SMALL, }); - if (!content) { - throw new DeskExchangeError( - "Could not parse trading parameters from conversation" - ); - } + try { + if (!content) { + throw new DeskExchangeError( + "Could not parse trading parameters from conversation" + ); + } - const endpoint = - runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" - ? "https://trade-api.happytrading.global" - : "https://stg-trade-api.happytrading.global"; - const wallet = new ethers.Wallet( - runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") - ); - if (!jwt) { - jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); - } - elizaLogger.info("jwt", jwt); - elizaLogger.info( - "Raw content from LLM:", - JSON.stringify(content, null, 2) - ); - - const processesOrder = { - symbol: `${content.symbol}USD`, - side: content.side, - amount: content.amount, - price: content.price, - nonce: generateNonce(), - broker_id: "DESK", - order_type: "Market", - reduce_only: false, - subaccount: getSubaccount(wallet.address, 0), - }; - const parseResult = PlaceOrderSchema.safeParse(processesOrder); - if (!parseResult.success) { - throw new Error( - `Invalid perp trade content: ${JSON.stringify(parseResult.error.errors, null, 2)}` + const endpoint = + runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" + ? "https://trade-api.happytrading.global" + : "https://stg-trade-api.happytrading.global"; + const wallet = new ethers.Wallet( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); - } - elizaLogger.info( - "Processed order:", - JSON.stringify(processesOrder, null, 2) - ); - - const response = await axios.post( - `${endpoint}/v2/place-order`, - processesOrder, - { - headers: { - authorization: `Bearer ${jwt}`, - "content-type": "application/json", - }, + if (!jwt) { + jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + } + elizaLogger.info("jwt", jwt); + elizaLogger.info( + "Raw content from LLM:", + JSON.stringify(content, null, 2) + ); + + const processesOrder = { + symbol: `${content.symbol}USD`, + side: content.side, + amount: content.amount, + price: content.price, + nonce: generateNonce(), + broker_id: "DESK", + order_type: Number(content.price) === 0 ? "Market" : "Limit", + reduce_only: false, + subaccount: getSubaccount(wallet.address, 0), + }; + const parseResult = PlaceOrderSchema.safeParse(processesOrder); + if (!parseResult.success) { + throw new Error( + `Invalid perp trade content: ${JSON.stringify( + parseResult.error.errors, + null, + 2 + )}` + ); } - ); + elizaLogger.info( + "Processed order:", + JSON.stringify(processesOrder, null, 2) + ); - elizaLogger.info(response.data); + const response = await axios.post( + `${endpoint}/v2/place-order`, + processesOrder, + { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + } + ); - if (callback && response.status === 200) { - const orderResponse = response.data.data; - callback({ - text: `Successfully placed a ${orderResponse.side} ${orderResponse.order_type} order of size ${orderResponse.quantity} on ${orderResponse.symbol} market at ${orderResponse.avg_fill_price} USD on DESK Exchange.`, - content: response.data, - }); - } else { - callback({ - text: `Place order failed with ${response.data.errors}.`, - content: response.data, + elizaLogger.info(response.data); + + if (callback && response.status === 200) { + const orderResponse = response.data.data; + callback({ + text: `Successfully placed a ${orderResponse.side} ${ + orderResponse.order_type + } order of size ${orderResponse.quantity} on ${ + orderResponse.symbol + } at ${ + orderResponse.order_type === "Market" + ? "market price" + : orderResponse.price + ' USD' + } on DESK Exchange.`, + content: response.data, + }); + } else { + callback({ + text: `Place order failed with ${response.data.errors}.`, + content: response.data, + }); + } + + return true; + } catch (error) { + elizaLogger.error("Error executing trade:", { + content, + message: error.message, + code: error.code, + data: error.response?.data, }); + if (callback) { + callback({ + text: `Error executing trade: ${error.message} ${error.response?.data?.errors}`, + content: { error: error.message }, + }); + } + return false; } - - return true; }, examples: [ [ From fb81403a72a36c40e50f714168cee8368a3b3809 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 12:37:17 +0700 Subject: [PATCH 09/51] feat: refactor common functions in to services --- .../src/actions/perpTrade.ts | 77 +++++-------------- .../src/services/trade.ts | 22 ++++++ .../src/services/utils.ts | 56 ++++++++++++++ packages/plugin-desk-exchange/src/types.ts | 3 +- 4 files changed, 99 insertions(+), 59 deletions(-) create mode 100644 packages/plugin-desk-exchange/src/services/trade.ts create mode 100644 packages/plugin-desk-exchange/src/services/utils.ts diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 35c9b207877..ed26499781f 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -10,53 +10,21 @@ import { generateObjectDeprecated, ModelClass, } from "@elizaos/core"; -import { DeskExchangeError, PlaceOrderSchema } from "../types.js"; +import { + DeskExchangeError, + PlaceOrderRequest, + PlaceOrderSchema, +} from "../types.js"; import { perpTradeTemplate } from "../templates.js"; import { ethers } from "ethers"; import axios from "axios"; - -const generateNonce = (): string => { - const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes - // random number between 0 and 2^20 - const random = Math.floor(Math.random() * (1 << 20)) - 1; - return (expiredAt + random).toString(); -}; - -const generateJwt = async ( - endpoint: string, - wallet: ethers.Wallet, - subaccountId: number, - nonce: string -): Promise => { - const message = `generate jwt for ${wallet.address?.toLowerCase()} and subaccount id ${subaccountId} to trade on happytrading.global with nonce: ${nonce}`; - const signature = await wallet.signMessage(message); - - const response = await axios.post( - `${endpoint}/v2/auth/evm`, - { - account: wallet.address, - subaccount_id: subaccountId.toString(), - nonce, - signature, - }, - { - headers: { "content-type": "application/json" }, - } - ); - - if (response.status === 200) { - return response.data.data.jwt; - } else { - throw new DeskExchangeError("Could not generate JWT"); - } -}; - -const getSubaccount = (account: string, subaccountId: number): string => { - // pad address with subaccountId to be 32 bytes (64 hex characters) - // 0x + 40 hex characters (address) + 24 hex characters (subaccountId) - const subaccountIdHex = BigInt(subaccountId).toString(16).padStart(24, "0"); - return account.concat(subaccountIdHex); -}; +import { + generateNonce, + generateJwt, + getSubaccount, + getEndpoint, +} from "../services/utils"; +import { placeOrder } from "../services/trade.js"; let jwt: string = null; @@ -99,10 +67,8 @@ export const perpTrade: Action = { ); } - const endpoint = - runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" - ? "https://trade-api.happytrading.global" - : "https://stg-trade-api.happytrading.global"; + const endpoint = getEndpoint(runtime); + const wallet = new ethers.Wallet( runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); @@ -141,15 +107,10 @@ export const perpTrade: Action = { JSON.stringify(processesOrder, null, 2) ); - const response = await axios.post( - `${endpoint}/v2/place-order`, - processesOrder, - { - headers: { - authorization: `Bearer ${jwt}`, - "content-type": "application/json", - }, - } + const response = await placeOrder( + endpoint, + jwt, + processesOrder as PlaceOrderRequest ); elizaLogger.info(response.data); @@ -164,7 +125,7 @@ export const perpTrade: Action = { } at ${ orderResponse.order_type === "Market" ? "market price" - : orderResponse.price + ' USD' + : orderResponse.price + " USD" } on DESK Exchange.`, content: response.data, }); diff --git a/packages/plugin-desk-exchange/src/services/trade.ts b/packages/plugin-desk-exchange/src/services/trade.ts new file mode 100644 index 00000000000..6f86ed689a1 --- /dev/null +++ b/packages/plugin-desk-exchange/src/services/trade.ts @@ -0,0 +1,22 @@ +import { AxiosResponse } from "axios"; +import { PlaceOrderRequest } from "../types" +import axios from "axios"; + + +export const placeOrder = async ( + endpoint: string, + jwt: string, + order: PlaceOrderRequest, +): Promise => { + const response = await axios.post( + `${endpoint}/v2/place-order`, + order, + { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + } + ); + return response; +} \ No newline at end of file diff --git a/packages/plugin-desk-exchange/src/services/utils.ts b/packages/plugin-desk-exchange/src/services/utils.ts new file mode 100644 index 00000000000..9a481c4899d --- /dev/null +++ b/packages/plugin-desk-exchange/src/services/utils.ts @@ -0,0 +1,56 @@ +import { type IAgentRuntime } from "@elizaos/core"; +import { DeskExchangeError } from "../types.js"; +import { ethers } from "ethers"; +import axios from "axios"; + +export const generateNonce = (): string => { + const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes + // random number between 0 and 2^20 + const random = Math.floor(Math.random() * (1 << 20)) - 1; + return (expiredAt + random).toString(); +}; + +export const generateJwt = async ( + endpoint: string, + wallet: ethers.Wallet, + subaccountId: number, + nonce: string +): Promise => { + const message = `generate jwt for ${wallet.address?.toLowerCase()} and subaccount id ${subaccountId} to trade on happytrading.global with nonce: ${nonce}`; + const signature = await wallet.signMessage(message); + + const response = await axios.post( + `${endpoint}/v2/auth/evm`, + { + account: wallet.address, + subaccount_id: subaccountId.toString(), + nonce, + signature, + }, + { + headers: { "content-type": "application/json" }, + } + ); + + if (response.status === 200) { + return response.data.data.jwt; + } else { + throw new DeskExchangeError("Could not generate JWT"); + } +}; + +export const getSubaccount = ( + account: string, + subaccountId: number +): string => { + // pad address with subaccountId to be 32 bytes (64 hex characters) + // 0x + 40 hex characters (address) + 24 hex characters (subaccountId) + const subaccountIdHex = BigInt(subaccountId).toString(16).padStart(24, "0"); + return account.concat(subaccountIdHex); +}; + +export const getEndpoint = (runtime: IAgentRuntime): string => { + return runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" + ? "https://trade-api.happytrading.global" + : "https://stg-trade-api.happytrading.global"; +}; diff --git a/packages/plugin-desk-exchange/src/types.ts b/packages/plugin-desk-exchange/src/types.ts index 6b9c576f118..45b21b9c8b1 100644 --- a/packages/plugin-desk-exchange/src/types.ts +++ b/packages/plugin-desk-exchange/src/types.ts @@ -19,6 +19,7 @@ export const PlaceOrderSchema = z.object({ subaccount: z.string(), timeInForce: z.enum(["GTC", "IOC", "FOK"]).optional(), }); +export type PlaceOrderRequest = z.infer; // Error handling types export class DeskExchangeError extends Error { @@ -30,4 +31,4 @@ export class DeskExchangeError extends Error { super(message); this.name = "DeskExchangeError"; } -} +} \ No newline at end of file From 40dd70fcbfeb5991fe5c5130688f06918cf3dbdb Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 14:03:06 +0700 Subject: [PATCH 10/51] feat: account summary --- .../src/actions/accountSummary.ts | 187 ++++++++++++++++++ packages/plugin-desk-exchange/src/index.ts | 3 +- .../src/services/account.ts | 15 ++ .../src/services/trade.ts | 24 +-- .../plugin-desk-exchange/src/templates.ts | 12 ++ 5 files changed, 225 insertions(+), 16 deletions(-) create mode 100644 packages/plugin-desk-exchange/src/actions/accountSummary.ts create mode 100644 packages/plugin-desk-exchange/src/services/account.ts diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts new file mode 100644 index 00000000000..e8d86765736 --- /dev/null +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -0,0 +1,187 @@ +import { + type Action, + type ActionExample, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, + composeContext, + elizaLogger, + generateObjectDeprecated, + ModelClass, +} from "@elizaos/core"; +import { DeskExchangeError, PlaceOrderSchema } from "../types.js"; +import { perpTradeTemplate } from "../templates.js"; +import { ethers } from "ethers"; +import axios from "axios"; +import { + generateNonce, + generateJwt, + getSubaccount, + getEndpoint, +} from "../services/utils"; +import { getSubaccountSummary } from "../services/account.js"; + +let jwt: string = null; + +export const accountSummary: Action = { + name: "GET_PERP_ACCOUNT_SUMMARY", + similes: [ + "CHECK_ACCOUNT", + "CHECK_PERP_ACCOUNT", + "ACCOUNT_SUMMARY", + "PERP_ACCOUNT_SUMMARY", + ], + description: "Get the current account summary", + validate: async (runtime: IAgentRuntime) => { + return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + }, + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: Record, + callback?: HandlerCallback + ) => { + // Initialize or update state + state = !state + ? await runtime.composeState(message) + : await runtime.updateRecentMessageState(state); + + const context = composeContext({ + state, + template: perpTradeTemplate, + }); + + const content = await generateObjectDeprecated({ + runtime, + context, + modelClass: ModelClass.SMALL, + }); + + try { + const endpoint = getEndpoint(runtime); + const wallet = new ethers.Wallet( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") + ); + if (!jwt) { + jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + } + elizaLogger.info("jwt", jwt); + const response = await getSubaccountSummary( + endpoint, + jwt, + getSubaccount(wallet.address, 0) + ); + elizaLogger.info(response.data); + + const subaccountSummaryData = response.data.data; + const positionSummary = + subaccountSummaryData.positions.length > 0 + ? subaccountSummaryData.positions + .map((p) => { + return `- ${p.side} ${p.quantity} ${p.symbol}`; + }) + .join("\n") + : "- No active position"; + const orderSummary = + subaccountSummaryData.open_orders.length > 0 + ? subaccountSummaryData.open_orders + .map((o) => { + return `- ${o.side === "Long" ? "Buy" : "Sell"} ${ + Number(o.original_quantity) - + Number(o.remaining_quantity) + }/${o.original_quantity} ${o.symbol} @${ + Number(o.price) > 0 + ? o.price + : o.trigger_price + }`; + }) + .join("\n") + : "- No orders"; + const collateralSummary = + subaccountSummaryData.collaterals.length > 0 + ? subaccountSummaryData.collaterals + .map((c) => { + return `- ${c.amount} ${c.asset}`; + }) + .join("\n") + : "- No collateral"; + callback({ + text: + `Here is the summary of your account ${wallet.address}\n` + + `Your positions:\n` + + positionSummary + + `\n` + + `Your orders:\n` + + orderSummary + + `\n` + + `Your collaterals:\n` + + collateralSummary, + content: subaccountSummaryData, + }); + + return true; + } catch (error) { + elizaLogger.error("Error executing trade:", { + content, + message: error.message, + code: error.code, + data: error.response?.data, + }); + if (callback) { + callback({ + text: `Error executing trade: ${error.message} ${error.response?.data?.errors}`, + content: { error: error.message }, + }); + } + return false; + } + }, + examples: [ + [ + { + user: "{{user1}}", + content: { + text: "Long 0.1 BTC at 20 USD", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll place a buy order for 0.1 BTC at 20 USD.", + action: "PERP_TRADE", + }, + }, + { + user: "{{agent}}", + content: { + text: "Successfully placed a limit order to buy 0.1 BTC at 20 USD", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "Short 2 BTC at 21 USD", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll place a sell order for 2 BTC at 21 USD.", + action: "PERP_TRADE", + }, + }, + { + user: "{{agent}}", + content: { + text: "Successfully placed a limit order to sell 2 BTC at 21 USD", + }, + }, + ], + ] as ActionExample[][], +}; + +export default accountSummary; diff --git a/packages/plugin-desk-exchange/src/index.ts b/packages/plugin-desk-exchange/src/index.ts index 7f2a272df4a..bb8770f3044 100644 --- a/packages/plugin-desk-exchange/src/index.ts +++ b/packages/plugin-desk-exchange/src/index.ts @@ -1,10 +1,11 @@ import type { Plugin } from "@elizaos/core"; import { perpTrade } from "./actions/perpTrade"; +import accountSummary from "./actions/accountSummary"; export const deskExchangePlugin: Plugin = { name: "deskExchange", description: "DESK Exchange plugin", - actions: [perpTrade], + actions: [perpTrade, accountSummary], providers: [], evaluators: [], services: [], diff --git a/packages/plugin-desk-exchange/src/services/account.ts b/packages/plugin-desk-exchange/src/services/account.ts new file mode 100644 index 00000000000..a5ce146c209 --- /dev/null +++ b/packages/plugin-desk-exchange/src/services/account.ts @@ -0,0 +1,15 @@ +import { AxiosResponse } from "axios"; +import axios from "axios"; + +export const getSubaccountSummary = async ( + endpoint: string, + jwt: string, + subaccount: string +): Promise => { + return await axios.get(`${endpoint}/v2/subaccount-summary/${subaccount}`, { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + }); +}; diff --git a/packages/plugin-desk-exchange/src/services/trade.ts b/packages/plugin-desk-exchange/src/services/trade.ts index 6f86ed689a1..12ea5ea58f2 100644 --- a/packages/plugin-desk-exchange/src/services/trade.ts +++ b/packages/plugin-desk-exchange/src/services/trade.ts @@ -1,22 +1,16 @@ import { AxiosResponse } from "axios"; -import { PlaceOrderRequest } from "../types" +import { PlaceOrderRequest } from "../types"; import axios from "axios"; - export const placeOrder = async ( endpoint: string, jwt: string, - order: PlaceOrderRequest, + order: PlaceOrderRequest ): Promise => { - const response = await axios.post( - `${endpoint}/v2/place-order`, - order, - { - headers: { - authorization: `Bearer ${jwt}`, - "content-type": "application/json", - }, - } - ); - return response; -} \ No newline at end of file + return await axios.post(`${endpoint}/v2/place-order`, order, { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + }); +}; diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts index 79bfca83efa..4654ca153b7 100644 --- a/packages/plugin-desk-exchange/src/templates.ts +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -33,6 +33,18 @@ Note: Recent conversation: {{recentMessages}}`; +export const accountSummaryTemplate = `Look at ONLY your LAST RESPONSE message in this conversation, where you just confirmed if the user want to check the information of their account. + +For example: +- I would like to check the summary of my account on DESK Exchange. +- I want to check the information on my account. +- How is my positions going? +- How is my account? +- Check account summary please + +Last part of conversation: +{{recentMessages}}`; + export const priceCheckTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed which token price to check. Based on ONLY that last message, extract the token symbol. From 31916c24c0414b153237764a7cf9638352cb0063 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:03:51 +0700 Subject: [PATCH 11/51] feat: cancel orders --- .../src/actions/accountSummary.ts | 15 +-- .../src/actions/cancelOrders.ts | 124 ++++++++++++++++++ .../src/actions/perpTrade.ts | 2 - packages/plugin-desk-exchange/src/index.ts | 3 +- .../src/services/trade.ts | 15 ++- .../plugin-desk-exchange/src/templates.ts | 12 ++ packages/plugin-desk-exchange/src/types.ts | 10 ++ 7 files changed, 166 insertions(+), 15 deletions(-) create mode 100644 packages/plugin-desk-exchange/src/actions/cancelOrders.ts diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts index e8d86765736..3d3ead17db5 100644 --- a/packages/plugin-desk-exchange/src/actions/accountSummary.ts +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -11,7 +11,7 @@ import { ModelClass, } from "@elizaos/core"; import { DeskExchangeError, PlaceOrderSchema } from "../types.js"; -import { perpTradeTemplate } from "../templates.js"; +import { accountSummaryTemplate, perpTradeTemplate } from "../templates.js"; import { ethers } from "ethers"; import axios from "axios"; import { @@ -50,13 +50,7 @@ export const accountSummary: Action = { const context = composeContext({ state, - template: perpTradeTemplate, - }); - - const content = await generateObjectDeprecated({ - runtime, - context, - modelClass: ModelClass.SMALL, + template: accountSummaryTemplate, }); try { @@ -123,15 +117,14 @@ export const accountSummary: Action = { return true; } catch (error) { - elizaLogger.error("Error executing trade:", { - content, + elizaLogger.error("Error getting account summary:", { message: error.message, code: error.code, data: error.response?.data, }); if (callback) { callback({ - text: `Error executing trade: ${error.message} ${error.response?.data?.errors}`, + text: `Error getting account summary: ${error.message} ${error.response?.data?.errors}`, content: { error: error.message }, }); } diff --git a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts new file mode 100644 index 00000000000..e24eaf9df3f --- /dev/null +++ b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts @@ -0,0 +1,124 @@ +import { + type Action, + type ActionExample, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, + elizaLogger, + composeContext, +} from "@elizaos/core"; +import { + generateJwt, + generateNonce, + getEndpoint, + getSubaccount, +} from "../services/utils"; +import { ethers } from "ethers"; +import { getSubaccountSummary } from "../services/account"; +import { cancelOrder } from "../services/trade"; +import { cancelOrderTemplate } from "../templates"; + +let jwt: string = null; + +export const cancelOrders: Action = { + name: "CANCEL_ORDERS", + similes: ["CANCEL_ALL_ORDERS", "CANCEL", "CANCEL_ALL"], + description: "Cancel all open orders on DESK Exchange", + validate: async (runtime: IAgentRuntime) => { + return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + }, + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + options: Record, + callback?: HandlerCallback + ) => { + // Initialize or update state + state = !state + ? await runtime.composeState(message) + : await runtime.updateRecentMessageState(state); + const context = composeContext({ + state, + template: cancelOrderTemplate, + }); + + try { + const endpoint = getEndpoint(runtime); + const wallet = new ethers.Wallet( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") + ); + if (!jwt) { + jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + } + + const subaccountSummaryResponse = await getSubaccountSummary( + endpoint, + jwt, + getSubaccount(wallet.address, 0) + ); + + const openOrders = + subaccountSummaryResponse.data?.data?.open_orders; + + if (openOrders && openOrders.length > 0) { + await Promise.all( + openOrders.map((o) => { + return cancelOrder(endpoint, jwt, { + symbol: o.symbol, + subaccount: getSubaccount(wallet.address, 0), + order_digest: o.order_digest, + nonce: generateNonce(), + is_conditional_order: false, + wait_for_reply: false, + }); + }) + ); + callback({ + text: `Successfully cancelled ${openOrders.length} orders.`, + }); + } + + return true; + } catch (error) { + elizaLogger.error("Error canceling orders:", { + message: error.message, + code: error.code, + data: error.response?.data, + }); + if (callback) { + callback({ + text: `Error canceling orders: ${error.message} ${error.response?.data?.errors}`, + content: { error: error.message }, + }); + } + return false; + } + }, + examples: [ + [ + { + user: "{{user1}}", + content: { + text: "Cancel all my orders", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll cancel all your open orders.", + action: "CANCEL_ORDERS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Successfully cancelled 2 open orders", + }, + }, + ], + ] as ActionExample[][], +}; + +export default cancelOrders; diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index ed26499781f..24c87743f4f 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -42,8 +42,6 @@ export const perpTrade: Action = { options: Record, callback?: HandlerCallback ) => { - elizaLogger.info("DESK EXCHANGE", jwt); - // Initialize or update state state = !state ? await runtime.composeState(message) diff --git a/packages/plugin-desk-exchange/src/index.ts b/packages/plugin-desk-exchange/src/index.ts index bb8770f3044..3c64528e271 100644 --- a/packages/plugin-desk-exchange/src/index.ts +++ b/packages/plugin-desk-exchange/src/index.ts @@ -1,11 +1,12 @@ import type { Plugin } from "@elizaos/core"; import { perpTrade } from "./actions/perpTrade"; import accountSummary from "./actions/accountSummary"; +import cancelOrders from "./actions/cancelOrders"; export const deskExchangePlugin: Plugin = { name: "deskExchange", description: "DESK Exchange plugin", - actions: [perpTrade, accountSummary], + actions: [perpTrade, accountSummary, cancelOrders], providers: [], evaluators: [], services: [], diff --git a/packages/plugin-desk-exchange/src/services/trade.ts b/packages/plugin-desk-exchange/src/services/trade.ts index 12ea5ea58f2..b17c6d78662 100644 --- a/packages/plugin-desk-exchange/src/services/trade.ts +++ b/packages/plugin-desk-exchange/src/services/trade.ts @@ -1,5 +1,5 @@ import { AxiosResponse } from "axios"; -import { PlaceOrderRequest } from "../types"; +import { CancelOrderRequest, PlaceOrderRequest } from "../types"; import axios from "axios"; export const placeOrder = async ( @@ -14,3 +14,16 @@ export const placeOrder = async ( }, }); }; + +export const cancelOrder = async ( + endpoint: string, + jwt: string, + order: CancelOrderRequest +): Promise => { + return await axios.post(`${endpoint}/v2/cancel-order`, order, { + headers: { + authorization: `Bearer ${jwt}`, + "content-type": "application/json", + }, + }); +}; diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts index 4654ca153b7..a13c13c0802 100644 --- a/packages/plugin-desk-exchange/src/templates.ts +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -33,6 +33,18 @@ Note: Recent conversation: {{recentMessages}}`; +export const cancelOrderTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed that user want to cancel all orders. + +For example: +- I would like to cancel all my orders. +- Cancel all orders +- Cancel orders please + +If the user ask to cancel a specific order, please let them know that it is not possible at the moment. Let them know that you now only have the ability to cancel all order only. + +Recent conversation: +{{recentMessages}}`; + export const accountSummaryTemplate = `Look at ONLY your LAST RESPONSE message in this conversation, where you just confirmed if the user want to check the information of their account. For example: diff --git a/packages/plugin-desk-exchange/src/types.ts b/packages/plugin-desk-exchange/src/types.ts index 45b21b9c8b1..0bda29c05c5 100644 --- a/packages/plugin-desk-exchange/src/types.ts +++ b/packages/plugin-desk-exchange/src/types.ts @@ -21,6 +21,16 @@ export const PlaceOrderSchema = z.object({ }); export type PlaceOrderRequest = z.infer; +export const CancelOrderSchema = z.object({ + symbol: z.string().min(1).toUpperCase(), + subaccount: z.string(), + order_digest: z.string(), + nonce: z.string(), + is_conditional_order: z.boolean(), + wait_for_reply: z.boolean(), +}); +export type CancelOrderRequest = z.infer; + // Error handling types export class DeskExchangeError extends Error { constructor( From f5fac7f071b03a64a2ab1e930fadec5e731c716d Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:08:58 +0700 Subject: [PATCH 12/51] feat: make example inconsistent --- .../src/actions/accountSummary.ts | 29 ++++++++++--------- .../plugin-desk-exchange/src/templates.ts | 16 +++++----- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts index 3d3ead17db5..61930695043 100644 --- a/packages/plugin-desk-exchange/src/actions/accountSummary.ts +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -136,20 +136,14 @@ export const accountSummary: Action = { { user: "{{user1}}", content: { - text: "Long 0.1 BTC at 20 USD", + text: "Check my account please", }, }, { user: "{{agent}}", content: { - text: "I'll place a buy order for 0.1 BTC at 20 USD.", - action: "PERP_TRADE", - }, - }, - { - user: "{{agent}}", - content: { - text: "Successfully placed a limit order to buy 0.1 BTC at 20 USD", + text: "Here is the summary of your account", + action: "GET_PERP_ACCOUNT_SUMMARY", }, }, ], @@ -157,20 +151,29 @@ export const accountSummary: Action = { { user: "{{user1}}", content: { - text: "Short 2 BTC at 21 USD", + text: "How is my account doing?", }, }, { user: "{{agent}}", content: { - text: "I'll place a sell order for 2 BTC at 21 USD.", - action: "PERP_TRADE", + text: "Here is the summary of your account", + action: "GET_PERP_ACCOUNT_SUMMARY", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "Account summary", }, }, { user: "{{agent}}", content: { - text: "Successfully placed a limit order to sell 2 BTC at 21 USD", + text: "Here is the summary of your account", + action: "GET_PERP_ACCOUNT_SUMMARY", }, }, ], diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts index a13c13c0802..4889f7f7403 100644 --- a/packages/plugin-desk-exchange/src/templates.ts +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -3,16 +3,16 @@ Based on ONLY that last message, extract the trading details: For Hyperliquid spot trading: - Market orders (executes immediately at best available price): - "perp buy 1 HYPE" -> { "coin": "HYPE", "is_buy": true, "sz": 1 } - "perp sell 2 HYPE" -> { "coin": "HYPE", "is_buy": false, "sz": 2 } - "perp market buy 1 HYPE" -> { "coin": "HYPE", "is_buy": true, "sz": 1 } - "perp market sell 2 HYPE" -> { "coin": "HYPE", "is_buy": false, "sz": 2 } + "perp buy 1 HYPE" -> { "symbol": "HYPE", "side": true, "amount": 1 } + "perp sell 2 HYPE" -> { "symbol": "HYPE", "side": false, "amount": 2 } + "perp market buy 1 HYPE" -> { "symbol": "HYPE", "side": true, "amount": 1 } + "perp market sell 2 HYPE" -> { "symbol": "HYPE", "side": false, "amount": 2 } - Limit orders (waits for specified price): - "buy 1 HYPE at 20 USDC" -> { "coin": "HYPE", "is_buy": true, "sz": 1, "limit_px": 20 } - "sell 0.5 HYPE at 21 USDC" -> { "coin": "HYPE", "is_buy": false, "sz": 0.5, "limit_px": 21 } - "limit buy 1 HYPE at 20 USDC" -> { "coin": "HYPE", "is_buy": true, "sz": 1, "limit_px": 20 } - "limit sell 0.5 HYPE at 21 USDC" -> { "coin": "HYPE", "is_buy": false, "sz": 0.5, "limit_px": 21 } + "buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": true, "amount": 1, "price": 20 } + "sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": false, "amount": 0.5, "price": 21 } + "limit buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": true, "amount": 1, "price": 20 } + "limit sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": false, "amount": 0.5, "price": 21 } \`\`\`json { From b4d2508d79b0c9e52135fb791d144e9d2c4cdf2d Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:10:30 +0700 Subject: [PATCH 13/51] feat: prevent duplicate plugin initialization --- agent/src/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/agent/src/index.ts b/agent/src/index.ts index d9eaa8f13fc..59294bef4af 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -1295,9 +1295,7 @@ export async function createAgent( getSecret(character, "ARBITRAGE_BUNDLE_EXECUTOR_ADDRESS") ? arbitragePlugin : null, - getSecret(character, "DESK_EXCHANGE_PRIVATE_KEY") - ? deskExchangePlugin - : null, + getSecret(character, "DESK_EXCHANGE_PRIVATE_KEY") || getSecret(character, "DESK_EXCHANGE_NETWORK") ? deskExchangePlugin : null, From 1f4bcac476021b76a08d00d1856febd51cf02fb9 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:17:28 +0700 Subject: [PATCH 14/51] chore: readme and housekeeping --- packages/plugin-desk-exchange/README.md | 84 ++++++++----------- .../plugin-desk-exchange/src/templates.ts | 24 +----- 2 files changed, 36 insertions(+), 72 deletions(-) diff --git a/packages/plugin-desk-exchange/README.md b/packages/plugin-desk-exchange/README.md index a671c61b0e8..0c6156572df 100644 --- a/packages/plugin-desk-exchange/README.md +++ b/packages/plugin-desk-exchange/README.md @@ -1,20 +1,18 @@ -# Hyperliquid Plugin for Eliza +# DESK Exchange Plugin for Eliza -This plugin enables interaction with the Hyperliquid DEX through Eliza, providing spot trading capabilities. +This plugin enables interaction with the DESK Perpetial DEX through Eliza, providing perpetual futures trading capabilities. Visit http://desk.exchange/ for more details. ## Features -- 💱 Spot Trading +- 💱 Perpetual Trading - Market orders (immediate execution) - Limit orders (price-specific) - - Smart price validation to prevent mistakes -- 📊 Price Checking - - Real-time price information - - 24h price change - - Volume statistics - 🔄 Order Management - Cancel all open orders - - Clear feedback on execution +- 🏦 Account summary + - View open orders + - View active positions + - View collateral balances ## Installation @@ -22,7 +20,7 @@ Add the plugin to your Eliza configuration: ```json { - "plugins": ["@elizaos/plugin-hyperliquid"] + "plugins": ["@elizaos/plugin-desk-exchange"] } ``` @@ -31,44 +29,30 @@ Add the plugin to your Eliza configuration: Set the following environment variables: ```env -HYPERLIQUID_PRIVATE_KEY=your_private_key # Required for trading and cancelling orders -HYPERLIQUID_TESTNET=true_or_false # Optional, defaults to false +DESK_EXCHANGE_PRIVATE_KEY=your_private_key # Required for trading and cancelling orders +DESK_EXCHANGE_NETWORK= # "mainent" or "testnet ``` ## Available Actions -### 1. SPOT_TRADE +### 1. PERP_TRADE -Place spot market or limit orders. +Place perp market or limit orders. Examples: ``` # Market Orders -"buy 1 PIP" -> Buys 1 PIP at market price -"sell 2 HYPE" -> Sells 2 HYPE at market price -"market buy 1 ETH" -> Buys 1 ETH at market price +"long 1 BTC" -> Place buy order of 1 BTC at market price +"sell 2 ETH" -> Sells 2 ETH at market price +"market buy 1 ETH" -> Buys 1 ETH at market price # Limit Orders -"buy 1 PIP at 20 USDC" -> Places buy order for 1 PIP at 20 USDC -"sell 0.5 HYPE at 21 USDC" -> Places sell order for 0.5 HYPE at 21 USDC +"buy 1 SOL at 20 USDC" -> Places buy order for 1 SOL at 20 USDC +"sell 0.5 BASE at 21 USDC" -> Places sell order for 0.5 BASE at 21 USDC ``` -### 2. PRICE_CHECK - -Get current price information for any token. - -Examples: - -``` -"What's the price of PIP?" -"Check HYPE price" -"Get ETH price" -``` - -Returns: Current price, 24h change, and volume. - -### 3. CANCEL_ORDERS +### 2. CANCEL_ORDERS Cancel all your open orders. @@ -79,24 +63,26 @@ Examples: "Cancel my orders" ``` -## Price Validation - -The plugin includes smart price validation to prevent mistakes: - -- Market Orders: Validates price is within ±50% of market price -- Limit Orders: - - Buy orders must be below market price - - Sell orders must be above market price - - Warns if price is very different from market (±80%) +### 3. GET_PERP_ACCOUNT_SUMMARY -## Error Handling +Display the summary of your current account with details on open orders, active position and collateral tokens. -The plugin provides clear error messages for common issues: +Examples: -- Invalid token symbols -- Price validation failures -- Network connection issues -- Order execution failures +``` +"Check my account please" + +"Here is the summary of your account 0xxxxxxxx +Your positions: +- Long 1.0039 BTCUSD +- Short 10.01 ETHUSD +- Long 135808.80 SOLUSD +Your orders: +- Sell 0/0.0001 BTCUSD @200000.00 +Your collaterals: +- 1382295.125325162 USDC +- 2000000.00 CREDIT" +``` ## Security Notes diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts index 4889f7f7403..345064587b4 100644 --- a/packages/plugin-desk-exchange/src/templates.ts +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -1,7 +1,7 @@ export const perpTradeTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed a trade request. Based on ONLY that last message, extract the trading details: -For Hyperliquid spot trading: +For DESK Exchange perp trading: - Market orders (executes immediately at best available price): "perp buy 1 HYPE" -> { "symbol": "HYPE", "side": true, "amount": 1 } "perp sell 2 HYPE" -> { "symbol": "HYPE", "side": false, "amount": 2 } @@ -56,25 +56,3 @@ For example: Last part of conversation: {{recentMessages}}`; - -export const priceCheckTemplate = `Look at your LAST RESPONSE in the conversation where you confirmed which token price to check. -Based on ONLY that last message, extract the token symbol. - -For example: -- "I'll check PIP price for you" -> { "symbol": "PIP" } -- "Let me check the price of HYPE" -> { "symbol": "HYPE" } -- "I'll get the current ETH price" -> { "symbol": "ETH" } - -\`\`\`json -{ - "symbol": "" -} -\`\`\` - -Note: -- Just return the token symbol (PIP, HYPE, ETH, etc.) -- Remove any suffixes like "-SPOT" or "USDC" -- If multiple tokens are mentioned, use the last one - -Recent conversation: -{{recentMessages}}`; From 45cbc0a9d8d6f8e70d8c39d215e9a2d4210b2a4a Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:21:17 +0700 Subject: [PATCH 15/51] chore: add env in example --- .env.example | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.env.example b/.env.example index cb434aa1f4e..5f2a5e8578a 100644 --- a/.env.example +++ b/.env.example @@ -946,4 +946,7 @@ ARBITRAGE_EVM_PRIVATE_KEY= # Private key for the wallet executi FLASHBOTS_RELAY_SIGNING_KEY= # Signing key for Flashbots relay interactions BUNDLE_EXECUTOR_ADDRESS= # Address of the bundle executor contract +# DESK Exchange Plugin Configration +DESK_EXCHANGE_PRIVATE_KEY= # Required for trading and cancelling orders +DESK_EXCHANGE_NETWORK= # "mainent" or "testnet From be8299c5cd356e8cf59ada27de861567bcb2fe44 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:22:19 +0700 Subject: [PATCH 16/51] feat: add validation and timeout --- packages/plugin-desk-exchange/src/services/account.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/plugin-desk-exchange/src/services/account.ts b/packages/plugin-desk-exchange/src/services/account.ts index a5ce146c209..182d46656b5 100644 --- a/packages/plugin-desk-exchange/src/services/account.ts +++ b/packages/plugin-desk-exchange/src/services/account.ts @@ -6,10 +6,15 @@ export const getSubaccountSummary = async ( jwt: string, subaccount: string ): Promise => { + if (!endpoint || !jwt || !subaccount) { + throw new Error("Missing required parameters"); + } return await axios.get(`${endpoint}/v2/subaccount-summary/${subaccount}`, { headers: { authorization: `Bearer ${jwt}`, "content-type": "application/json", }, + timeout: 5000, + validateStatus: (status) => status === 200, }); }; From a151be23c99395bea6a457bcda875a658233d496 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:29:53 +0700 Subject: [PATCH 17/51] feat: refrain from storing jwt for now --- .../plugin-desk-exchange/src/actions/accountSummary.ts | 8 ++------ packages/plugin-desk-exchange/src/actions/cancelOrders.ts | 6 +----- packages/plugin-desk-exchange/src/actions/perpTrade.ts | 8 ++------ 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts index 61930695043..5d55d71c978 100644 --- a/packages/plugin-desk-exchange/src/actions/accountSummary.ts +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -22,8 +22,6 @@ import { } from "../services/utils"; import { getSubaccountSummary } from "../services/account.js"; -let jwt: string = null; - export const accountSummary: Action = { name: "GET_PERP_ACCOUNT_SUMMARY", similes: [ @@ -58,10 +56,8 @@ export const accountSummary: Action = { const wallet = new ethers.Wallet( runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); - if (!jwt) { - jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); - } - elizaLogger.info("jwt", jwt); + const jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + const response = await getSubaccountSummary( endpoint, jwt, diff --git a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts index e24eaf9df3f..ffc57332eac 100644 --- a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts +++ b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts @@ -19,8 +19,6 @@ import { getSubaccountSummary } from "../services/account"; import { cancelOrder } from "../services/trade"; import { cancelOrderTemplate } from "../templates"; -let jwt: string = null; - export const cancelOrders: Action = { name: "CANCEL_ORDERS", similes: ["CANCEL_ALL_ORDERS", "CANCEL", "CANCEL_ALL"], @@ -49,9 +47,7 @@ export const cancelOrders: Action = { const wallet = new ethers.Wallet( runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); - if (!jwt) { - jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); - } + const jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); const subaccountSummaryResponse = await getSubaccountSummary( endpoint, diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 24c87743f4f..479595506e6 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -26,8 +26,6 @@ import { } from "../services/utils"; import { placeOrder } from "../services/trade.js"; -let jwt: string = null; - export const perpTrade: Action = { name: "PERP_TRADE", similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], @@ -70,10 +68,8 @@ export const perpTrade: Action = { const wallet = new ethers.Wallet( runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") ); - if (!jwt) { - jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); - } - elizaLogger.info("jwt", jwt); + const jwt = await generateJwt(endpoint, wallet, 0, generateNonce()); + elizaLogger.info( "Raw content from LLM:", JSON.stringify(content, null, 2) From dcc3131e84fb189ca4ce89f76f10ac8c175a281f Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:30:03 +0700 Subject: [PATCH 18/51] feat: edit wrong template --- packages/plugin-desk-exchange/src/templates.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/plugin-desk-exchange/src/templates.ts b/packages/plugin-desk-exchange/src/templates.ts index 345064587b4..3de662f7cfd 100644 --- a/packages/plugin-desk-exchange/src/templates.ts +++ b/packages/plugin-desk-exchange/src/templates.ts @@ -3,23 +3,23 @@ Based on ONLY that last message, extract the trading details: For DESK Exchange perp trading: - Market orders (executes immediately at best available price): - "perp buy 1 HYPE" -> { "symbol": "HYPE", "side": true, "amount": 1 } - "perp sell 2 HYPE" -> { "symbol": "HYPE", "side": false, "amount": 2 } - "perp market buy 1 HYPE" -> { "symbol": "HYPE", "side": true, "amount": 1 } - "perp market sell 2 HYPE" -> { "symbol": "HYPE", "side": false, "amount": 2 } + "perp buy 1 HYPE" -> { "symbol": "HYPE", "side": "Long", "amount": "1" } + "perp sell 2 HYPE" -> { "symbol": "HYPE", "side": "Short", "amount": "2" } + "perp market buy 1 HYPE" -> { "symbol": "HYPE", "side": "Long", "amount": "1" } + "perp market sell 2 HYPE" -> { "symbol": "HYPE", "side": "Short", "amount": "2" } - Limit orders (waits for specified price): - "buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": true, "amount": 1, "price": 20 } - "sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": false, "amount": 0.5, "price": 21 } - "limit buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": true, "amount": 1, "price": 20 } - "limit sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": false, "amount": 0.5, "price": 21 } + "buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": "Long", "amount": "1", "price": "20" } + "sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": "Short", "amount": "0.5", "price": "21" } + "limit buy 1 HYPE at 20 USDC" -> { "symbol": "HYPE", "side": "Long", "amount": "1", "price": "20" } + "limit sell 0.5 HYPE at 21 USDC" -> { "symbol": "HYPE", "side": "Short", "amount": "0.5", "price": "21" } \`\`\`json { "symbol": "", "side": "", "amount": "", - "price": "" + "price": "<"price in USD if limit order, 0 if market order>" } \`\`\` From c690e8b9a28e3f3c8bbf2c9bb4414701752d6014 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:33:29 +0700 Subject: [PATCH 19/51] feat: update nonce generation to be crypto secured --- packages/plugin-desk-exchange/src/services/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-desk-exchange/src/services/utils.ts b/packages/plugin-desk-exchange/src/services/utils.ts index 9a481c4899d..2926fbb9612 100644 --- a/packages/plugin-desk-exchange/src/services/utils.ts +++ b/packages/plugin-desk-exchange/src/services/utils.ts @@ -2,11 +2,11 @@ import { type IAgentRuntime } from "@elizaos/core"; import { DeskExchangeError } from "../types.js"; import { ethers } from "ethers"; import axios from "axios"; +import { randomBytes } from "crypto"; export const generateNonce = (): string => { const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes - // random number between 0 and 2^20 - const random = Math.floor(Math.random() * (1 << 20)) - 1; + const random = parseInt(randomBytes(3).toString("hex"), 16) % (1 << 20); return (expiredAt + random).toString(); }; From f740f5102ffe4fccfd6f17f8272c51fb12e54f36 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:33:38 +0700 Subject: [PATCH 20/51] feat: add timeout and validation --- packages/plugin-desk-exchange/src/services/trade.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/plugin-desk-exchange/src/services/trade.ts b/packages/plugin-desk-exchange/src/services/trade.ts index b17c6d78662..a28cd87209c 100644 --- a/packages/plugin-desk-exchange/src/services/trade.ts +++ b/packages/plugin-desk-exchange/src/services/trade.ts @@ -7,11 +7,16 @@ export const placeOrder = async ( jwt: string, order: PlaceOrderRequest ): Promise => { + if (!endpoint || !jwt || !order) { + throw new Error("Missing required parameters"); + } return await axios.post(`${endpoint}/v2/place-order`, order, { headers: { authorization: `Bearer ${jwt}`, "content-type": "application/json", }, + timeout: 5000, + validateStatus: (status) => status === 200, }); }; @@ -20,10 +25,18 @@ export const cancelOrder = async ( jwt: string, order: CancelOrderRequest ): Promise => { + if (!endpoint || !jwt || !order) { + throw new Error("Missing required parameters"); + } + if (!order.order_digest) { + throw new Error("Missing order digest"); + } return await axios.post(`${endpoint}/v2/cancel-order`, order, { headers: { authorization: `Bearer ${jwt}`, "content-type": "application/json", }, + timeout: 5000, + validateStatus: (status) => status === 200, }); }; From 08857ab2e884025a445d3260473c2d599e02165c Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:40:22 +0700 Subject: [PATCH 21/51] feat: proper env validation --- packages/plugin-desk-exchange/src/actions/accountSummary.ts | 5 ++++- packages/plugin-desk-exchange/src/actions/cancelOrders.ts | 5 ++++- packages/plugin-desk-exchange/src/actions/perpTrade.ts | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts index 5d55d71c978..35344efdabe 100644 --- a/packages/plugin-desk-exchange/src/actions/accountSummary.ts +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -32,7 +32,10 @@ export const accountSummary: Action = { ], description: "Get the current account summary", validate: async (runtime: IAgentRuntime) => { - return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + return !!( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") && + runtime.getSetting("DESK_EXCHANGE_NETWORK") + ); }, handler: async ( runtime: IAgentRuntime, diff --git a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts index ffc57332eac..00574cd0d92 100644 --- a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts +++ b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts @@ -24,7 +24,10 @@ export const cancelOrders: Action = { similes: ["CANCEL_ALL_ORDERS", "CANCEL", "CANCEL_ALL"], description: "Cancel all open orders on DESK Exchange", validate: async (runtime: IAgentRuntime) => { - return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + return !!( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") && + runtime.getSetting("DESK_EXCHANGE_NETWORK") + ); }, handler: async ( runtime: IAgentRuntime, diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 479595506e6..4285eb3cb3f 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -31,7 +31,10 @@ export const perpTrade: Action = { similes: ["PERP_ORDER", "PERP_BUY", "PERP_SELL"], description: "Place a perpetual contract trade order on DESK Exchange", validate: async (runtime: IAgentRuntime) => { - return !!runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY"); + return !!( + runtime.getSetting("DESK_EXCHANGE_PRIVATE_KEY") && + runtime.getSetting("DESK_EXCHANGE_NETWORK") + ); }, handler: async ( runtime: IAgentRuntime, From a182c8cf2811d3f2803aa7dc57f074791e467ee9 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 15:43:22 +0700 Subject: [PATCH 22/51] feat: revert pnpm-lock --- pnpm-lock.yaml | 650 ++++++++++++++++++++++++------------------------- 1 file changed, 314 insertions(+), 336 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a3c81835a5..46946e179d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,7 +39,7 @@ importers: version: 1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@6.0.5) '@vitest/eslint-plugin': specifier: 1.0.1 - version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) amqplib: specifier: 0.10.5 version: 0.10.5 @@ -70,7 +70,7 @@ importers: version: 1.9.4 '@commitlint/cli': specifier: 18.6.1 - version: 18.6.1(@types/node@22.12.0)(typescript@5.6.3) + version: 18.6.1(@types/node@22.10.10)(typescript@5.6.3) '@commitlint/config-conventional': specifier: 18.6.3 version: 18.6.3 @@ -88,7 +88,7 @@ importers: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) lerna: specifier: 8.1.5 version: 8.1.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(babel-plugin-macros@3.1.0)(encoding@0.1.13) @@ -109,10 +109,10 @@ importers: version: 2.21.58(bufferutil@4.0.9)(typescript@5.6.3)(utf-8-validate@6.0.5)(zod@3.24.1) vite: specifier: 5.4.12 - version: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + version: 5.4.12(@types/node@22.10.10)(terser@5.37.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) agent: dependencies: @@ -272,9 +272,6 @@ importers: '@elizaos/plugin-depin': specifier: workspace:* version: link:../packages/plugin-depin - '@elizaos/plugin-desk-exchange': - specifier: workspace:* - version: link:../packages/plugin-desk-exchange '@elizaos/plugin-devin': specifier: workspace:* version: link:../packages/plugin-devin @@ -617,17 +614,17 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) devDependencies: '@eslint/js': specifier: ^9.17.0 version: 9.19.0 '@types/node': specifier: ^22.10.5 - version: 22.12.0 + version: 22.10.10 '@types/react': specifier: ^19.0.3 version: 19.0.8 @@ -645,7 +642,7 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) '@vitejs/plugin-react-swc': specifier: ^3.5.0 - version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) autoprefixer: specifier: ^10.4.19 version: 10.4.20(postcss@8.5.1) @@ -681,7 +678,7 @@ importers: version: 5.14.0(rollup@4.32.0) tailwindcss: specifier: ^3.4.4 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) + version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) typescript: specifier: ~5.6.3 version: 5.6.3 @@ -690,10 +687,10 @@ importers: version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) vite: specifier: ^6.0.5 - version: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) docs: dependencies: @@ -861,7 +858,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqlite: dependencies: @@ -883,13 +880,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/adapter-sqljs: dependencies: @@ -927,13 +924,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^3.0.2 - version: 3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^3.0.2 - version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-alexa: dependencies: @@ -958,7 +955,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-auto: dependencies: @@ -1100,7 +1097,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-eliza-home: dependencies: @@ -1110,13 +1107,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-farcaster: dependencies: @@ -1132,7 +1129,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-github: dependencies: @@ -1160,7 +1157,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-instagram: dependencies: @@ -1188,7 +1185,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-lens: dependencies: @@ -1207,13 +1204,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-simsai: dependencies: @@ -1303,7 +1300,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-telegram-account: dependencies: @@ -1325,13 +1322,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-twitter: dependencies: @@ -1356,13 +1353,13 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: 1.1.3 - version: 1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 1.1.3 - version: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/client-xmtp: dependencies: @@ -1594,13 +1591,13 @@ importers: devDependencies: vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-0x: dependencies: '@0x/swap-ts-sdk': specifier: 2.1.1 - version: 2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13) + version: 2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13) '@elizaos/core': specifier: workspace:* version: link:../core @@ -1626,7 +1623,7 @@ importers: devDependencies: vitest: specifier: ^2.1.5 - version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-abstract: dependencies: @@ -1651,7 +1648,7 @@ importers: version: 4.9.5 vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-agentkit: dependencies: @@ -1673,7 +1670,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-akash: dependencies: @@ -1776,7 +1773,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1880,10 +1877,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-apro: dependencies: @@ -1899,7 +1896,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-aptos: dependencies: @@ -1923,7 +1920,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -1984,7 +1981,7 @@ importers: version: 4.17.14 '@types/node': specifier: ^22.10.9 - version: 22.12.0 + version: 22.10.10 '@types/ws': specifier: ^8.5.13 version: 8.5.14 @@ -2193,17 +2190,17 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 devDependencies: '@types/node': specifier: ^22.10.2 - version: 22.12.0 + version: 22.10.10 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 @@ -2245,7 +2242,7 @@ importers: version: 5.2.0 '@types/node': specifier: ^22.10.5 - version: 22.12.0 + version: 22.10.10 '@web3-name-sdk/core': specifier: ^0.3.2 version: 0.3.2(@bonfida/spl-name-service@3.0.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10))(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@siddomains/injective-sidjs@0.0.2-beta(@injectivelabs/sdk-ts@1.14.40(@types/react@19.0.8)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(utf-8-validate@5.0.10))(@injectivelabs/ts-types@1.14.40))(@siddomains/sei-sidjs@0.0.4(@sei-js/core@3.2.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(viem@2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1)) @@ -2379,7 +2376,7 @@ importers: version: 9.1.2 chain-registry: specifier: ^1.69.68 - version: 1.69.107 + version: 1.69.106 interchain: specifier: ^1.10.4 version: 1.10.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -2459,25 +2456,6 @@ importers: specifier: 7.1.0 version: 7.1.0 - packages/plugin-desk-exchange: - dependencies: - '@elizaos/core': - specifier: workspace:* - version: link:../core - zod: - specifier: ^3.23.8 - version: 3.23.8 - devDependencies: - '@types/node': - specifier: ^20.0.0 - version: 20.17.9 - axios: - specifier: ^1.6.5 - version: 1.7.9 - tsup: - specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) - packages/plugin-devin: dependencies: '@elizaos/core': @@ -2492,7 +2470,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-dexscreener: dependencies: @@ -2544,7 +2522,7 @@ importers: version: link:../core dkg.js: specifier: ^8.0.4 - version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) + version: 8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@4.9.5)(yaml@2.7.0) @@ -2738,7 +2716,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-football: dependencies: @@ -2778,13 +2756,13 @@ importers: version: 4.0.1 fuels: specifier: 0.97.2 - version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + version: 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -2927,7 +2905,7 @@ importers: devDependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) packages/plugin-hyperbolic: dependencies: @@ -3050,7 +3028,7 @@ importers: version: 29.5.14 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.7.0) @@ -3099,7 +3077,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.12.0 + version: 22.10.10 packages/plugin-injective: dependencies: @@ -3121,7 +3099,7 @@ importers: version: 29.5.14 '@types/node': specifier: ^22.10.3 - version: 22.12.0 + version: 22.10.10 '@types/sinon': specifier: ^17.0.3 version: 17.0.3 @@ -3139,7 +3117,7 @@ importers: version: 9.16.0(jiti@2.4.2) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) prettier: specifier: 3.4.1 version: 3.4.1 @@ -3148,7 +3126,7 @@ importers: version: 19.0.2 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3) + version: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3) typescript: specifier: ^5.7.2 version: 5.7.3 @@ -3359,7 +3337,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 3.0.2 - version: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3423,7 +3401,7 @@ importers: version: 5.7.3 vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-multiversx: dependencies: @@ -3456,7 +3434,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3888,7 +3866,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3935,7 +3913,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-primus: dependencies: @@ -3986,7 +3964,7 @@ importers: version: 4.1.0(encoding@0.1.13) eventsource: specifier: ^3.0.2 - version: 3.0.5 + version: 3.0.2 jstat: specifier: ^1.9.6 version: 1.9.6 @@ -4044,7 +4022,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.4 - version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4111,10 +4089,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^1.2.1 - version: 1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) + version: 1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0)) vitest: specifier: ^1.2.1 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) packages/plugin-router-nitro: dependencies: @@ -4150,7 +4128,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4262,13 +4240,13 @@ importers: version: 1.3.2(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(rollup@4.32.0)(typescript@5.7.3)(utf-8-validate@5.0.10) solana-agent-kit: specifier: ^1.2.0 - version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4314,13 +4292,13 @@ importers: devDependencies: '@types/node': specifier: ^22.8.7 - version: 22.12.0 + version: 22.10.10 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-spheron: dependencies: @@ -4411,7 +4389,7 @@ importers: version: 1.4.0(starknet@6.18.0(encoding@0.1.13)) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4436,7 +4414,7 @@ importers: devDependencies: '@types/node': specifier: ^22.10.1 - version: 22.12.0 + version: 22.10.10 packages/plugin-sui: dependencies: @@ -4460,7 +4438,7 @@ importers: version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4582,7 +4560,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4592,7 +4570,7 @@ importers: version: 3.2.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + version: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) packages/plugin-thirdweb: dependencies: @@ -4601,7 +4579,7 @@ importers: version: link:../core thirdweb: specifier: ^5.80.0 - version: 5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) + version: 5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -4674,7 +4652,7 @@ importers: version: 11.0.3 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -4712,7 +4690,7 @@ importers: devDependencies: vitest: specifier: ^1.0.0 - version: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-udio: dependencies: @@ -13329,8 +13307,8 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-serve-static-core@5.0.6': - resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + '@types/express-serve-static-core@5.0.5': + resolution: {integrity: sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -13510,8 +13488,8 @@ packages: '@types/node@20.17.9': resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} - '@types/node@22.12.0': - resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/node@22.10.10': + resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -15876,8 +15854,8 @@ packages: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} - chain-registry@1.69.107: - resolution: {integrity: sha512-aBGcm0zxnuD8ZC54PTWS+7evZR0s6M/jGoaPVCo14PoYfW58qOJNp2R00DQkOIpKCaPESzCbzOkjB1HtUryFXg==} + chain-registry@1.69.106: + resolution: {integrity: sha512-0ukSRl/FVMgQZs0nCFGvF5iFQowkpvwNiVx9lKmOlnTwps3yUT5PyfTdUlJOgxfkV+ct0h5tInpROYKxPeFGGA==} chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} @@ -18120,8 +18098,8 @@ packages: resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} engines: {node: '>=12.0.0'} - eventsource@3.0.5: - resolution: {integrity: sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==} + eventsource@3.0.2: + resolution: {integrity: sha512-YolzkJNxsTL3tCJMWFxpxtG2sCjbZ4LQUBUrkdaJK0ub0p6lmJt+2+1SwhKjLc652lpH9L/79Ptez972H9tphw==} engines: {node: '>=18.0.0'} evp_bytestokey@1.0.3: @@ -26025,8 +26003,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thirdweb@5.86.6: - resolution: {integrity: sha512-DmAo61RbIF5PsXFf2Ru+FEvrJ9qiBPwifkU7jCAWEooUts5KSwUO3MowWWHbjjN1At4k/IUoiLvkOtAK8cfheg==} + thirdweb@5.86.3: + resolution: {integrity: sha512-WionZLLh8j3zBGtZE5w9lfmeu4O5GEF2/n7Xl2ck1np6SynelZho2k6KllGOF5Shb9nc84BhbXsKF/rZBHtOeA==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -28483,13 +28461,13 @@ snapshots: '@0x/contract-addresses@8.13.0': {} - '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.12.0)(encoding@0.1.13)': + '@0x/swap-ts-sdk@2.1.1(@types/express@5.0.0)(@types/node@22.10.10)(encoding@0.1.13)': dependencies: '@0x/contract-addresses': 8.13.0 '@0x/utils': 7.0.0(encoding@0.1.13) '@trpc/client': 10.40.0(@trpc/server@10.40.0) '@trpc/server': 10.40.0 - trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4) + trpc-openapi: 1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4) zod: 3.22.4 transitivePeerDependencies: - '@types/express' @@ -28597,7 +28575,7 @@ snapshots: - typescript - utf-8-validate - '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@3land/listings-sdk@0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/borsh': 0.30.1(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@irys/sdk': 0.2.11(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -28615,7 +28593,7 @@ snapshots: fs: 0.0.1-security irys: 0.0.1 node-fetch: 3.3.2 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3) tweetnacl: 1.0.3 transitivePeerDependencies: - '@swc/core' @@ -28953,7 +28931,7 @@ snapshots: '@alloralabs/allora-sdk@0.1.0': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 typescript: 5.7.3 '@ampproject/remapping@2.3.0': @@ -31104,11 +31082,11 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': + '@commitlint/cli@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@22.12.0)(typescript@5.6.3) + '@commitlint/load': 18.6.1(@types/node@22.10.10)(typescript@5.6.3) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -31158,7 +31136,7 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@22.12.0)(typescript@5.6.3)': + '@commitlint/load@18.6.1(@types/node@22.10.10)(typescript@5.6.3)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 @@ -31166,7 +31144,7 @@ snapshots: '@commitlint/types': 18.6.1 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.6.3) - cosmiconfig-typescript-loader: 5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig-typescript-loader: 5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -33427,7 +33405,7 @@ snapshots: - supports-color - utf-8-validate - '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': + '@drift-labs/vaults-sdk@0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.108.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -33441,7 +33419,7 @@ snapshots: dotenv: 16.4.5 rpc-websockets: 7.5.1 strict-event-emitter-types: 2.0.0 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - '@swc/core' @@ -34770,23 +34748,23 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-coder@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) type-fest: 4.33.0 transitivePeerDependencies: - vitest - '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/abi-typegen@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 commander: 12.1.0 glob: 10.4.5 @@ -34797,18 +34775,18 @@ snapshots: transitivePeerDependencies: - vitest - '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/account@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 '@noble/curves': 1.8.1 @@ -34821,30 +34799,30 @@ snapshots: - encoding - vitest - '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/address@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 bech32: 2.0.0 transitivePeerDependencies: - vitest - '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/contract@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 @@ -34852,12 +34830,12 @@ snapshots: - encoding - vitest - '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/crypto@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34866,11 +34844,11 @@ snapshots: dependencies: '@fuel-ts/versions': 0.97.2 - '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/hasher@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@noble/hashes': 1.7.1 transitivePeerDependencies: - vitest @@ -34883,78 +34861,78 @@ snapshots: '@types/bn.js': 5.1.6 bn.js: 5.2.1 - '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/merkle@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/math': 0.97.2 transitivePeerDependencies: - vitest - '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/program@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuels/vm-asm': 0.58.2 ramda: 0.30.1 transitivePeerDependencies: - encoding - vitest - '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/recipes@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/script@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - encoding - vitest - '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/transactions@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) transitivePeerDependencies: - vitest - '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@fuel-ts/utils@0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@fuel-ts/errors': 0.97.2 '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 '@fuel-ts/versions': 0.97.2 fflate: 0.8.2 - vitest: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@fuel-ts/versions@0.97.2': dependencies: @@ -39346,7 +39324,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.12.0 + '@types/node': 22.10.10 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -39367,7 +39345,7 @@ snapshots: '@solana/buffer-layout': 4.0.1 '@solana/spl-token': 0.4.9(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@types/node': 22.12.0 + '@types/node': 22.10.10 decimal.js: 10.5.0 gaussian: 1.3.0 js-sha256: 0.11.0 @@ -40032,11 +40010,11 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10))': dependencies: debug: 4.4.0(supports-color@8.1.1) ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color @@ -45636,7 +45614,7 @@ snapshots: '@types/bs58@4.0.4': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 base-x: 3.0.10 '@types/cacheable-request@6.0.3': @@ -45667,7 +45645,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.5 '@types/node': 20.17.9 '@types/connect@3.4.38': @@ -45842,7 +45820,7 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express-serve-static-core@5.0.6': + '@types/express-serve-static-core@5.0.5': dependencies: '@types/node': 20.17.9 '@types/qs': 6.9.18 @@ -45859,7 +45837,7 @@ snapshots: '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 5.0.6 + '@types/express-serve-static-core': 5.0.5 '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 @@ -46037,7 +46015,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.12.0': + '@types/node@22.10.10': dependencies: undici-types: 6.20.0 @@ -46232,7 +46210,7 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 '@types/ws@8.5.3': dependencies: @@ -46746,10 +46724,10 @@ snapshots: moment: 2.30.1 starknet: 6.18.0(encoding@0.1.13) - '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': + '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@swc/helpers' @@ -46770,7 +46748,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.1.3(vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46785,11 +46763,11 @@ snapshots: std-env: 3.8.0 test-exclude: 6.0.0 v8-to-istanbul: 9.3.0 - vitest: 1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46804,11 +46782,11 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -46823,7 +46801,7 @@ snapshots: std-env: 3.8.0 strip-literal: 2.1.1 test-exclude: 6.0.0 - vitest: 1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color @@ -46864,7 +46842,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/coverage-v8@3.0.4(vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -46878,17 +46856,17 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': + '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3)(vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0))': dependencies: eslint: 9.19.0(jiti@2.4.2) optionalDependencies: '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.6.3) typescript: 5.6.3 - vitest: 2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + vitest: 2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) '@vitest/expect@0.34.6': dependencies: @@ -46936,29 +46914,29 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': + '@vitest/mocker@2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': + '@vitest/mocker@2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) - '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@20.17.9)(terser@5.37.0))': dependencies: @@ -46968,13 +46946,13 @@ snapshots: optionalDependencies: vite: 5.4.12(@types/node@20.17.9)(terser@5.37.0) - '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0))': + '@vitest/mocker@3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0))': dependencies: '@vitest/spy': 3.0.2 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) '@vitest/pretty-format@2.1.4': dependencies: @@ -47521,7 +47499,7 @@ snapshots: dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.8(encoding@0.1.13) + cross-fetch: 3.2.0(encoding@0.1.13) events: 3.3.0 transitivePeerDependencies: - encoding @@ -50225,7 +50203,7 @@ snapshots: loupe: 3.1.2 pathval: 2.0.0 - chain-registry@1.69.107: + chain-registry@1.69.106: dependencies: '@chain-registry/types': 0.50.57 @@ -50886,9 +50864,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.1.0(@types/node@22.12.0)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): + cosmiconfig-typescript-loader@5.1.0(@types/node@22.10.10)(cosmiconfig@8.3.6(typescript@5.6.3))(typescript@5.6.3): dependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 typescript: 5.6.3 @@ -51010,13 +50988,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -51890,7 +51868,7 @@ snapshots: - bufferutil - utf-8-validate - dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dkg-evm-module@8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@openzeppelin/contracts': 5.2.0 '@polkadot/api': 15.5.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -51899,11 +51877,11 @@ snapshots: '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) '@prb/math': 4.1.0 dotenv: 16.4.7 - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) - hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat-deploy-ethers: 0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) solady: 0.0.285 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) typescript: 5.7.3 transitivePeerDependencies: - '@nomicfoundation/hardhat-ethers' @@ -51915,11 +51893,11 @@ snapshots: - supports-color - utf-8-validate - dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): + dkg.js@8.0.4(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3): dependencies: assertion-tools: 8.0.0-gamma.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)(web-streams-polyfill@3.3.3) axios: 0.27.2(debug@4.3.4) - dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + dkg-evm-module: 8.0.1(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(bufferutil@4.0.9)(utf-8-validate@5.0.10) ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) jsonld: 8.3.3(web-streams-polyfill@3.3.3) web3: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -53269,7 +53247,7 @@ snapshots: eventsource@2.0.2: {} - eventsource@3.0.5: + eventsource@3.0.2: dependencies: eventsource-parser: 3.0.0 @@ -53920,24 +53898,24 @@ snapshots: fsevents@2.3.3: optional: true - fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): + fuels@0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)): dependencies: - '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-coder': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/abi-typegen': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/account': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/address': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/contract': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/crypto': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/errors': 0.97.2 - '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/hasher': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/interfaces': 0.97.2 '@fuel-ts/math': 0.97.2 - '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) - '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/merkle': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/program': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/recipes': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/script': 0.97.2(encoding@0.1.13)(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/transactions': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) + '@fuel-ts/utils': 0.97.2(vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) '@fuel-ts/versions': 0.97.2 bundle-require: 5.1.0(esbuild@0.24.2) chalk: 4.1.2 @@ -54536,10 +54514,10 @@ snapshots: hard-rejection@2.1.0: {} - hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): + hardhat-deploy-ethers@0.4.2(@nomicfoundation/hardhat-ethers@3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)))(hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)): dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) - hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) + '@nomicfoundation/hardhat-ethers': 3.0.8(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@5.7.3)(utf-8-validate@5.0.10)) + hardhat: 2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10) hardhat-deploy: 0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) hardhat-deploy@0.12.4(bufferutil@4.0.9)(utf-8-validate@5.0.10): @@ -54573,7 +54551,7 @@ snapshots: - supports-color - utf-8-validate - hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): + hardhat@2.22.18(bufferutil@4.0.9)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3))(typescript@4.9.5)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -54620,7 +54598,7 @@ snapshots: uuid: 8.3.2 ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - bufferutil @@ -55989,16 +55967,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): + jest-cli@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -56123,7 +56101,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.26.7 '@jest/test-sequencer': 29.7.0 @@ -56148,7 +56126,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -56697,12 +56675,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0): + jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + jest-cli: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -59238,7 +59216,7 @@ snapshots: node-machine-id@1.1.12: {} - node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.12.0): + node-mocks-http@1.16.2(@types/express@5.0.0)(@types/node@22.10.10): dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -59252,7 +59230,7 @@ snapshots: type-is: 1.6.18 optionalDependencies: '@types/express': 5.0.0 - '@types/node': 22.12.0 + '@types/node': 22.10.10 node-releases@2.0.19: {} @@ -60809,13 +60787,13 @@ snapshots: postcss: 8.5.1 ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@16.18.125)(typescript@5.7.3) - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3) postcss-load-config@5.1.0(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2): dependencies: @@ -63306,15 +63284,15 @@ snapshots: - utf-8-validate - ws - solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@3land/listings-sdk': 0.0.7(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@ai-sdk/openai': 1.1.5(zod@3.24.1) '@bonfida/spl-name-service': 3.0.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.107.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) + '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@langchain/core': 0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) '@langchain/groq': 0.1.3(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@langchain/langgraph': 0.2.41(@langchain/core@0.3.36(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) @@ -64049,9 +64027,9 @@ snapshots: tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3))): dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) tailwindcss@3.4.17: dependencies: @@ -64080,7 +64058,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -64099,7 +64077,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -64285,7 +64263,7 @@ snapshots: dependencies: any-promise: 1.3.0 - thirdweb@5.86.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): + thirdweb@5.86.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(ethers@6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10))(ioredis@5.4.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(zod@3.24.1): dependencies: '@coinbase/wallet-sdk': 4.2.4 '@emotion/react': 11.14.0(@types/react@19.0.8)(react@19.0.0) @@ -64563,13 +64541,13 @@ snapshots: trough@2.2.0: {} - trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.12.0)(zod@3.22.4): + trpc-openapi@1.2.0(@trpc/server@10.40.0)(@types/express@5.0.0)(@types/node@22.10.10)(zod@3.22.4): dependencies: '@trpc/server': 10.40.0 co-body: 6.2.0 h3: 1.14.0 lodash.clonedeep: 4.5.0 - node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.12.0) + node-mocks-http: 1.16.2(@types/express@5.0.0)(@types/node@22.10.10) openapi-types: 12.1.3 zod: 3.22.4 zod-to-json-schema: 3.24.1(zod@3.22.4) @@ -64644,12 +64622,12 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.7) - ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0))(typescript@5.7.3): + ts-jest@29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.12.0)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@22.10.10)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -64773,14 +64751,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.12.0 + '@types/node': 22.10.10 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64793,14 +64771,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.12.0 + '@types/node': 22.10.10 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -64813,14 +64791,14 @@ snapshots: optionalDependencies: '@swc/core': 1.10.11(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(typescript@5.7.3): + ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.10.10)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.12.0 + '@types/node': 22.10.10 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -65926,13 +65904,13 @@ snapshots: - supports-color - terser - vite-node@1.1.3(@types/node@22.12.0)(terser@5.37.0): + vite-node@1.1.3(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -65980,13 +65958,13 @@ snapshots: - supports-color - terser - vite-node@1.2.1(@types/node@22.12.0)(terser@5.37.0): + vite-node@1.2.1(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66015,12 +65993,12 @@ snapshots: - supports-color - terser - vite-node@2.1.4(@types/node@22.12.0)(terser@5.37.0): + vite-node@2.1.4(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) pathe: 1.1.2 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66032,13 +66010,13 @@ snapshots: - supports-color - terser - vite-node@2.1.5(@types/node@22.12.0)(terser@5.37.0): + vite-node@2.1.5(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66068,13 +66046,13 @@ snapshots: - supports-color - terser - vite-node@2.1.8(@types/node@22.12.0)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66104,13 +66082,13 @@ snapshots: - supports-color - terser - vite-node@3.0.2(@types/node@22.12.0)(terser@5.37.0): + vite-node@3.0.2(@types/node@22.10.10)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -66140,12 +66118,12 @@ snapshots: - supports-color - terser - vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-compression@0.5.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: chalk: 4.1.2 debug: 4.4.0(supports-color@8.1.1) fs-extra: 10.1.0 - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -66160,13 +66138,13 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript @@ -66202,13 +66180,13 @@ snapshots: fsevents: 2.3.3 terser: 5.37.0 - vite@5.4.12(@types/node@22.12.0)(terser@5.37.0): + vite@5.4.12(@types/node@22.10.10)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.5.1 rollup: 4.32.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 fsevents: 2.3.3 terser: 5.37.0 @@ -66236,13 +66214,13 @@ snapshots: yaml: 2.7.0 optional: true - vite@6.0.11(@types/node@22.12.0)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 rollup: 4.32.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.37.0 @@ -66289,7 +66267,7 @@ snapshots: - supports-color - terser - vitest@1.1.3(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.1.3(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.1.3 '@vitest/runner': 1.1.3 @@ -66309,11 +66287,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 1.1.3(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 1.1.3(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66434,7 +66412,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66454,11 +66432,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66470,7 +66448,7 @@ snapshots: - supports-color - terser - vitest@1.2.1(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@1.2.1(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 1.2.1 '@vitest/runner': 1.2.1 @@ -66490,11 +66468,11 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 1.2.1(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 1.2.1(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66509,7 +66487,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66545,7 +66523,7 @@ snapshots: vitest@2.1.4(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66578,10 +66556,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): + vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66597,11 +66575,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10) transitivePeerDependencies: - less @@ -66614,10 +66592,10 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.4(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.4(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -66633,11 +66611,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 2.1.4(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 2.1.4(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66650,10 +66628,10 @@ snapshots: - supports-color - terser - vitest@2.1.5(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.5(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.5(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -66669,11 +66647,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 2.1.5(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 2.1.5(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66689,7 +66667,7 @@ snapshots: vitest@2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66722,10 +66700,10 @@ snapshots: - supports-color - terser - vitest@2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -66741,11 +66719,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66794,10 +66772,10 @@ snapshots: - supports-color - terser - vitest@3.0.2(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): + vitest@3.0.2(@types/node@22.10.10)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 @@ -66813,11 +66791,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.12(@types/node@22.12.0)(terser@5.37.0) - vite-node: 3.0.2(@types/node@22.12.0)(terser@5.37.0) + vite: 5.4.12(@types/node@22.10.10)(terser@5.37.0) + vite-node: 3.0.2(@types/node@22.10.10)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.10.10 jsdom: 25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5) transitivePeerDependencies: - less @@ -66833,7 +66811,7 @@ snapshots: vitest@3.0.2(@types/node@22.8.4)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.12.0)(terser@5.37.0)) + '@vitest/mocker': 3.0.2(vite@5.4.12(@types/node@22.10.10)(terser@5.37.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 From 8c874cfc83ba334e3b500987db6b5eafed550290 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Wed, 29 Jan 2025 16:10:09 +0700 Subject: [PATCH 23/51] feat: edit prod endpoints --- packages/plugin-desk-exchange/src/services/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-desk-exchange/src/services/utils.ts b/packages/plugin-desk-exchange/src/services/utils.ts index 2926fbb9612..4bc217cac61 100644 --- a/packages/plugin-desk-exchange/src/services/utils.ts +++ b/packages/plugin-desk-exchange/src/services/utils.ts @@ -1,5 +1,5 @@ import { type IAgentRuntime } from "@elizaos/core"; -import { DeskExchangeError } from "../types.js"; +import { DeskExchangeError } from "../types"; import { ethers } from "ethers"; import axios from "axios"; import { randomBytes } from "crypto"; @@ -51,6 +51,6 @@ export const getSubaccount = ( export const getEndpoint = (runtime: IAgentRuntime): string => { return runtime.getSetting("DESK_EXCHANGE_NETWORK") === "mainnet" - ? "https://trade-api.happytrading.global" + ? "https://api.happytrading.global" : "https://stg-trade-api.happytrading.global"; }; From ab6ed36c15dc38e20e259fa932d0ab210b395483 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Thu, 30 Jan 2025 12:38:12 +0700 Subject: [PATCH 24/51] chore: typo --- packages/plugin-desk-exchange/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin-desk-exchange/README.md b/packages/plugin-desk-exchange/README.md index 0c6156572df..d0d6b7846e4 100644 --- a/packages/plugin-desk-exchange/README.md +++ b/packages/plugin-desk-exchange/README.md @@ -30,7 +30,7 @@ Set the following environment variables: ```env DESK_EXCHANGE_PRIVATE_KEY=your_private_key # Required for trading and cancelling orders -DESK_EXCHANGE_NETWORK= # "mainent" or "testnet +DESK_EXCHANGE_NETWORK= # "mainnet" or "testnet ``` ## Available Actions From 79b4238e59dc6ad1188e06a7ec94930496983b06 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Thu, 30 Jan 2025 12:38:22 +0700 Subject: [PATCH 25/51] chore: typo --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 4b8d6ebd221..220f76f257f 100644 --- a/.env.example +++ b/.env.example @@ -954,5 +954,5 @@ BUNDLE_EXECUTOR_ADDRESS= # Address of the bundle executor contract # DESK Exchange Plugin Configration DESK_EXCHANGE_PRIVATE_KEY= # Required for trading and cancelling orders -DESK_EXCHANGE_NETWORK= # "mainent" or "testnet +DESK_EXCHANGE_NETWORK= # "mainnet" or "testnet From 768b0d81d697d0717b171a8352e4a65fb1d650a4 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Thu, 30 Jan 2025 15:37:06 +0700 Subject: [PATCH 26/51] feat: format number --- .../src/actions/accountSummary.ts | 31 +++++++++++-------- .../src/actions/perpTrade.ts | 16 +++++----- .../src/services/utils.ts | 11 +++++++ 3 files changed, 37 insertions(+), 21 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/accountSummary.ts b/packages/plugin-desk-exchange/src/actions/accountSummary.ts index 35344efdabe..4d78b742962 100644 --- a/packages/plugin-desk-exchange/src/actions/accountSummary.ts +++ b/packages/plugin-desk-exchange/src/actions/accountSummary.ts @@ -7,20 +7,17 @@ import { type HandlerCallback, composeContext, elizaLogger, - generateObjectDeprecated, - ModelClass, } from "@elizaos/core"; -import { DeskExchangeError, PlaceOrderSchema } from "../types.js"; -import { accountSummaryTemplate, perpTradeTemplate } from "../templates.js"; +import { accountSummaryTemplate } from "../templates"; import { ethers } from "ethers"; -import axios from "axios"; import { generateNonce, generateJwt, getSubaccount, getEndpoint, + formatNumber, } from "../services/utils"; -import { getSubaccountSummary } from "../services/account.js"; +import { getSubaccountSummary } from "../services/account"; export const accountSummary: Action = { name: "GET_PERP_ACCOUNT_SUMMARY", @@ -73,7 +70,9 @@ export const accountSummary: Action = { subaccountSummaryData.positions.length > 0 ? subaccountSummaryData.positions .map((p) => { - return `- ${p.side} ${p.quantity} ${p.symbol}`; + return `- ${p.side} ${formatNumber(p.quantity)} ${ + p.symbol + }`; }) .join("\n") : "- No active position"; @@ -81,13 +80,17 @@ export const accountSummary: Action = { subaccountSummaryData.open_orders.length > 0 ? subaccountSummaryData.open_orders .map((o) => { - return `- ${o.side === "Long" ? "Buy" : "Sell"} ${ + return `- ${ + o.side === "Long" ? "Buy" : "Sell" + } ${formatNumber( Number(o.original_quantity) - - Number(o.remaining_quantity) - }/${o.original_quantity} ${o.symbol} @${ + Number(o.remaining_quantity) + )}/${formatNumber(o.original_quantity)} ${ + o.symbol + } @${ Number(o.price) > 0 - ? o.price - : o.trigger_price + ? formatNumber(o.price) + : formatNumber(o.trigger_price) }`; }) .join("\n") @@ -96,7 +99,9 @@ export const accountSummary: Action = { subaccountSummaryData.collaterals.length > 0 ? subaccountSummaryData.collaterals .map((c) => { - return `- ${c.amount} ${c.asset}`; + return `- ${formatNumber(c.amount, 4)} ${ + c.asset + }`; }) .join("\n") : "- No collateral"; diff --git a/packages/plugin-desk-exchange/src/actions/perpTrade.ts b/packages/plugin-desk-exchange/src/actions/perpTrade.ts index 4285eb3cb3f..1252f5b9848 100644 --- a/packages/plugin-desk-exchange/src/actions/perpTrade.ts +++ b/packages/plugin-desk-exchange/src/actions/perpTrade.ts @@ -14,17 +14,17 @@ import { DeskExchangeError, PlaceOrderRequest, PlaceOrderSchema, -} from "../types.js"; -import { perpTradeTemplate } from "../templates.js"; +} from "../types"; +import { perpTradeTemplate } from "../templates"; import { ethers } from "ethers"; -import axios from "axios"; import { generateNonce, generateJwt, getSubaccount, getEndpoint, + formatNumber, } from "../services/utils"; -import { placeOrder } from "../services/trade.js"; +import { placeOrder } from "../services/trade"; export const perpTrade: Action = { name: "PERP_TRADE", @@ -117,12 +117,12 @@ export const perpTrade: Action = { callback({ text: `Successfully placed a ${orderResponse.side} ${ orderResponse.order_type - } order of size ${orderResponse.quantity} on ${ - orderResponse.symbol - } at ${ + } order of size ${formatNumber( + orderResponse.quantity + )} on ${orderResponse.symbol} at ${ orderResponse.order_type === "Market" ? "market price" - : orderResponse.price + " USD" + : formatNumber(orderResponse.price) + " USD" } on DESK Exchange.`, content: response.data, }); diff --git a/packages/plugin-desk-exchange/src/services/utils.ts b/packages/plugin-desk-exchange/src/services/utils.ts index 4bc217cac61..d9c9370b2ec 100644 --- a/packages/plugin-desk-exchange/src/services/utils.ts +++ b/packages/plugin-desk-exchange/src/services/utils.ts @@ -54,3 +54,14 @@ export const getEndpoint = (runtime: IAgentRuntime): string => { ? "https://api.happytrading.global" : "https://stg-trade-api.happytrading.global"; }; + +export const formatNumber = ( + num: string | number, + decimalPlaces?: number +): string => { + return Number(num).toLocaleString(undefined, { + style: "decimal", + minimumFractionDigits: 0, + maximumFractionDigits: decimalPlaces || 8, + }); +}; From 97be0fd6b9ba2c87a3657d85e148d6a58c50b44f Mon Sep 17 00:00:00 2001 From: Gal Date: Thu, 30 Jan 2025 14:07:01 +0200 Subject: [PATCH 27/51] Add edwin plugin to eliza --- agent/package.json | 1 + agent/src/index.ts | 5 + packages/plugin-edwin/README.md | 67 +++++++++++++ packages/plugin-edwin/package.json | 17 ++++ packages/plugin-edwin/src/actions.ts | 138 ++++++++++++++++++++++++++ packages/plugin-edwin/src/index.ts | 28 ++++++ packages/plugin-edwin/src/provider.ts | 34 +++++++ packages/plugin-edwin/tsconfig.json | 9 ++ packages/plugin-edwin/tsup.config.ts | 21 ++++ 9 files changed, 320 insertions(+) create mode 100644 packages/plugin-edwin/README.md create mode 100644 packages/plugin-edwin/package.json create mode 100644 packages/plugin-edwin/src/actions.ts create mode 100644 packages/plugin-edwin/src/index.ts create mode 100644 packages/plugin-edwin/src/provider.ts create mode 100644 packages/plugin-edwin/tsconfig.json create mode 100644 packages/plugin-edwin/tsup.config.ts diff --git a/agent/package.json b/agent/package.json index 4d2e88e48b6..0c61b9c2ed6 100644 --- a/agent/package.json +++ b/agent/package.json @@ -57,6 +57,7 @@ "@elizaos/plugin-cosmos": "workspace:*", "@elizaos/plugin-echochambers": "workspace:*", "@elizaos/plugin-evm": "workspace:*", + "@elizaos/plugin-edwin": "workspace:*", "@elizaos/plugin-flow": "workspace:*", "@elizaos/plugin-gelato": "workspace:*", "@elizaos/plugin-giphy": "workspace:*", diff --git a/agent/src/index.ts b/agent/src/index.ts index 7159c99f8a1..447423a6416 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -85,6 +85,7 @@ import { confluxPlugin } from "@elizaos/plugin-conflux"; import { createCosmosPlugin } from "@elizaos/plugin-cosmos"; import { cronosZkEVMPlugin } from "@elizaos/plugin-cronoszkevm"; import { evmPlugin } from "@elizaos/plugin-evm"; +import { edwinPlugin } from "@elizaos/plugin-edwin"; import { flowPlugin } from "@elizaos/plugin-flow"; import { fuelPlugin } from "@elizaos/plugin-fuel"; import { genLayerPlugin } from "@elizaos/plugin-genlayer"; @@ -1068,6 +1069,10 @@ export async function createAgent( getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x")) ? evmPlugin : null, + (getSecret(character, "EVM_PRIVATE_KEY") || + getSecret(character, "SOLANA_PRIVATE_KEY")) + ? edwinPlugin + : null, (getSecret(character, "EVM_PUBLIC_KEY") || getSecret(character, "INJECTIVE_PUBLIC_KEY")) && getSecret(character, "INJECTIVE_PRIVATE_KEY") diff --git a/packages/plugin-edwin/README.md b/packages/plugin-edwin/README.md new file mode 100644 index 00000000000..193dd0aa79c --- /dev/null +++ b/packages/plugin-edwin/README.md @@ -0,0 +1,67 @@ +# @elizaos/plugin-edwin + +Edwin plugin for Eliza that enables interaction with Edwin tools for DeFi operations. + +## About + +See full info and docs at [Edwin docs](https://docs.edwin.finance). +## Setup + +1. Install dependencies: + +```bash +pnpm install +``` + +2. Configure environment variables for chains you want to support: + +```env +EVM_PRIVATE_KEY= +SOLANA_PRIVATE_KEY= +``` + +## Available Tools + +The plugin provides access to the following Edwin tools: + +- supply +- withdraw +- stake +- addLiquidity +- removeLiquidity + +## Usage Examples + +1. Supply on AAVE: + +``` +Supply 100 USDC to AAVE +``` + +2. Add liquidity on Meteora: + +``` +Find a meteora pool with high liquidity and add to td 10 USDC and 0.01 SOL. +``` + +## Development + +1. Build the plugin: + +```bash +pnpm build +``` + +2. Run in development mode: + +```bash +pnpm dev +``` + +## Dependencies + +- edwin-sdk + +## License + +MIT diff --git a/packages/plugin-edwin/package.json b/packages/plugin-edwin/package.json new file mode 100644 index 00000000000..cb121d35e27 --- /dev/null +++ b/packages/plugin-edwin/package.json @@ -0,0 +1,17 @@ +{ + "name": "@elizaos/plugin-edwin", + "version": "0.1.0", + "description": "Edwin plugin for elizaos agent", + "main": "dist/index.js", + "type": "module", + "types": "dist/index.d.ts", + "dependencies": { + "@elizaos/core": "workspace:*", + "edwin-sdk": "0.3.4", + "tsup": "8.3.5" + }, + "scripts": { + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch" + } +} diff --git a/packages/plugin-edwin/src/actions.ts b/packages/plugin-edwin/src/actions.ts new file mode 100644 index 00000000000..bd5c067cad5 --- /dev/null +++ b/packages/plugin-edwin/src/actions.ts @@ -0,0 +1,138 @@ +import { + type Action, + generateText, + type HandlerCallback, + type IAgentRuntime, + type Memory, + ModelClass, + type State, + composeContext, + generateObjectDeprecated, +} from "@elizaos/core"; + +import { Edwin, EdwinAction } from "edwin-sdk"; + +type GetEdwinActionsParams = { + getClient: () => Promise; +}; + +/** + * Get all edwin actions + */ +export async function getEdwinActions({ + getClient, +}: GetEdwinActionsParams): Promise { + const edwin = await getClient(); + const edwinActions = await edwin.getActions(); + const actions = edwinActions.map((action: EdwinAction) => ({ + name: action.name.toUpperCase(), + description: action.description, + similes: [], + validate: async () => true, + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State | undefined, + options?: Record, + callback?: HandlerCallback + ): Promise => { + try { + const client = await getClient(); + if (!state) { + state = (await runtime.composeState(message)) as State; + } else { + state = await runtime.updateRecentMessageState(state); + } + const parameterContext = composeContext({ + state, + template: action.template, + }); + const parameters = await generateObjectDeprecated({ + runtime, + context: parameterContext, + modelClass: ModelClass.LARGE, + }); + const result = await executeAction(action, parameters, client); + const responseContext = composeResponseContext( + action, + result, + state + ); + const response = await generateResponse( + runtime, + responseContext + ); + callback?.({ text: response, content: result }); + return true; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : String(error); + callback?.({ + text: `Error executing action ${action.name}: ${errorMessage}`, + content: { error: errorMessage }, + }); + return false; + } + }, + examples: [], + })); + return actions; +} + +async function executeAction( + action: EdwinAction, + parameters: any, + edwin: Edwin +): Promise { + const result = await action.execute(parameters); + return result; +} + +function composeResponseContext( + action: EdwinAction, + result: unknown, + state: State +): string { + const responseTemplate = ` +# Action Examples +{{actionExamples}} + +# Knowledge +{{knowledge}} + +# Task: Generate dialog and actions for the character {{agentName}}. +About {{agentName}}: +{{bio}} +{{lore}} + +{{providers}} + +{{attachments}} + +# Capabilities +Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section. + +The action "${action.name}" was executed successfully. +Here is the result: +${JSON.stringify(result)} + +{{actions}} + +Respond to the message knowing that the action was successful and these were the previous messages: +{{recentMessages}} +`; + const context = composeContext({ state, template: responseTemplate }); + return context; +} + +async function generateResponse( + runtime: IAgentRuntime, + context: string +): Promise { + const response = await generateText({ + runtime, + context, + modelClass: ModelClass.LARGE, + }); + return response; +} diff --git a/packages/plugin-edwin/src/index.ts b/packages/plugin-edwin/src/index.ts new file mode 100644 index 00000000000..6fd83c782c1 --- /dev/null +++ b/packages/plugin-edwin/src/index.ts @@ -0,0 +1,28 @@ +import type { Plugin } from "@elizaos/core"; +import { edwinProvider, getEdwinClient } from "./provider"; +import { getEdwinActions } from "./actions"; + +// Initial banner +console.log("\n┌═════════════════════════════════════┐"); +console.log("│ EDWIN PLUGIN │"); +console.log("│ ,_, │"); +console.log("│ (o,o) │"); +console.log("│ {`\"'} │"); +console.log("│ -\"-\"- │"); +console.log("├─────────────────────────────────────┤"); +console.log("│ Initializing Edwin Plugin... │"); +console.log("│ Version: 0.0.1 │"); +console.log("└═════════════════════════════════════┘"); + +export const edwinPlugin: Plugin = { + name: "[Edwin] Integration", + description: "Edwin integration plugin", + providers: [edwinProvider], + evaluators: [], + services: [], + actions: await getEdwinActions({ + getClient: getEdwinClient, + }), +}; + +export default edwinPlugin; diff --git a/packages/plugin-edwin/src/provider.ts b/packages/plugin-edwin/src/provider.ts new file mode 100644 index 00000000000..658725a3d67 --- /dev/null +++ b/packages/plugin-edwin/src/provider.ts @@ -0,0 +1,34 @@ +import type { Provider, IAgentRuntime } from "@elizaos/core"; +import { Edwin } from "edwin-sdk"; +import { EdwinConfig } from "edwin-sdk"; + +// Static variable to hold the singleton instance +let edwinRunningInstance: Edwin | null = null; + +export async function getEdwinClient(): Promise { + // If instance exists, return it + if (edwinRunningInstance) { + return edwinRunningInstance; + } + // Otherwise create new instance + const edwinConfig: EdwinConfig = { + evmPrivateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`, + solanaPrivateKey: process.env.SOLANA_PRIVATE_KEY as string, + actions: ["supply", "withdraw", "stake", "getPools", "addLiquidity"], + }; + + edwinRunningInstance = new Edwin(edwinConfig); + return edwinRunningInstance; +} + +export const edwinProvider: Provider = { + async get(runtime: IAgentRuntime): Promise { + try { + const edwin = await getEdwinClient(); + return edwin.getPortfolio(); + } catch (error) { + console.error("Error in Edwin provider:", error); + return null; + } + }, +}; diff --git a/packages/plugin-edwin/tsconfig.json b/packages/plugin-edwin/tsconfig.json new file mode 100644 index 00000000000..f642a90aee1 --- /dev/null +++ b/packages/plugin-edwin/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../core/tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "./src", + "declaration": true + }, + "include": ["src"] +} diff --git a/packages/plugin-edwin/tsup.config.ts b/packages/plugin-edwin/tsup.config.ts new file mode 100644 index 00000000000..a68ccd636ad --- /dev/null +++ b/packages/plugin-edwin/tsup.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/index.ts"], + outDir: "dist", + sourcemap: true, + clean: true, + format: ["esm"], // Ensure you're targeting CommonJS + external: [ + "dotenv", // Externalize dotenv to prevent bundling + "fs", // Externalize fs to use Node.js built-in module + "path", // Externalize other built-ins if necessary + "@reflink/reflink", + "@node-llama-cpp", + "https", + "http", + "agentkeepalive", + "viem", + "@lifi/sdk", + ], +}); From 632365dc86b6b7a088763377051bd14ceac49bec Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Fri, 31 Jan 2025 15:36:34 +0700 Subject: [PATCH 28/51] chore: readme --- packages/plugin-desk-exchange/README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/plugin-desk-exchange/README.md b/packages/plugin-desk-exchange/README.md index d0d6b7846e4..c236e7a36dd 100644 --- a/packages/plugin-desk-exchange/README.md +++ b/packages/plugin-desk-exchange/README.md @@ -1,18 +1,16 @@ # DESK Exchange Plugin for Eliza -This plugin enables interaction with the DESK Perpetial DEX through Eliza, providing perpetual futures trading capabilities. Visit http://desk.exchange/ for more details. - +This plugin enables interaction with the DESK Perpetual DEX through Eliza, providing perpetual futures trading capabilities. Visit [DESK Exchange](https://desk.exchange/) for more details. ## Features - - 💱 Perpetual Trading - - Market orders (immediate execution) - - Limit orders (price-specific) + - Market orders (immediate execution) + - Limit orders (price-specific) - 🔄 Order Management - - Cancel all open orders + - Cancel all open orders - 🏦 Account summary - - View open orders - - View active positions - - View collateral balances + - View open orders + - View active positions + - View collateral balances ## Installation From cb99f44d847a8e89d136265108379caffe7349a3 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Fri, 31 Jan 2025 15:39:56 +0700 Subject: [PATCH 29/51] feat: sequentially cancel orders --- .../src/actions/cancelOrders.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts index 00574cd0d92..6d959a1cc44 100644 --- a/packages/plugin-desk-exchange/src/actions/cancelOrders.ts +++ b/packages/plugin-desk-exchange/src/actions/cancelOrders.ts @@ -62,18 +62,16 @@ export const cancelOrders: Action = { subaccountSummaryResponse.data?.data?.open_orders; if (openOrders && openOrders.length > 0) { - await Promise.all( - openOrders.map((o) => { - return cancelOrder(endpoint, jwt, { - symbol: o.symbol, - subaccount: getSubaccount(wallet.address, 0), - order_digest: o.order_digest, - nonce: generateNonce(), - is_conditional_order: false, - wait_for_reply: false, - }); - }) - ); + for (const o of openOrders) { + await cancelOrder(endpoint, jwt, { + symbol: o.symbol, + subaccount: getSubaccount(wallet.address, 0), + order_digest: o.order_digest, + nonce: generateNonce(), + is_conditional_order: false, + wait_for_reply: false, + }); + } callback({ text: `Successfully cancelled ${openOrders.length} orders.`, }); From 64ed7f726dabac582913a886bba31929ca05c2d8 Mon Sep 17 00:00:00 2001 From: Jonathan Xina Date: Fri, 31 Jan 2025 17:09:36 +0700 Subject: [PATCH 30/51] feat: use bigint to prevent overflow --- packages/plugin-desk-exchange/src/services/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-desk-exchange/src/services/utils.ts b/packages/plugin-desk-exchange/src/services/utils.ts index d9c9370b2ec..b683db8bc52 100644 --- a/packages/plugin-desk-exchange/src/services/utils.ts +++ b/packages/plugin-desk-exchange/src/services/utils.ts @@ -5,9 +5,9 @@ import axios from "axios"; import { randomBytes } from "crypto"; export const generateNonce = (): string => { - const expiredAt = (Date.now() + 1000 * 60 * 1) * (1 << 20); // 1 minutes + const expiredAt = BigInt(Date.now() + 1000 * 60) * BigInt(1 << 20); const random = parseInt(randomBytes(3).toString("hex"), 16) % (1 << 20); - return (expiredAt + random).toString(); + return (expiredAt + BigInt(random)).toString(); }; export const generateJwt = async ( From 10c4030cff4df491fb6e4de6bc8f9ff7cb1efdd1 Mon Sep 17 00:00:00 2001 From: CardinalError Date: Fri, 31 Jan 2025 23:25:41 +0100 Subject: [PATCH 31/51] add provider, action and template for pools per network --- .../src/actions/getTrendingPoolsPerChain.ts | 271 ++++++++++++++++++ packages/plugin-coingecko/src/index.ts | 3 +- .../src/providers/networkProvider.ts | 135 +++++++++ .../src/templates/networkTrendingPools.ts | 37 +++ 4 files changed, 445 insertions(+), 1 deletion(-) create mode 100644 packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts create mode 100644 packages/plugin-coingecko/src/providers/networkProvider.ts create mode 100644 packages/plugin-coingecko/src/templates/networkTrendingPools.ts diff --git a/packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts b/packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts new file mode 100644 index 00000000000..dcb270cbf4c --- /dev/null +++ b/packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts @@ -0,0 +1,271 @@ +import { + type ActionExample, + composeContext, + type Content, + elizaLogger, + generateObject, + type HandlerCallback, + type IAgentRuntime, + type Memory, + ModelClass, + type State, + type Action, +} from "@elizaos/core"; +import axios from "axios"; +import { z } from "zod"; +import { getApiConfig, validateCoingeckoConfig } from "../environment"; +import { getNetworkTrendingPoolsTemplate } from "../templates/networkTrendingPools"; + +interface TrendingPool { + id: string; + type: string; + attributes: { + name: string; + market_cap_usd: string; + fdv_usd: string; + reserve_in_usd: string; + pool_created_at: string; + }; +} + +interface TrendingPoolsResponse { + data: TrendingPool[]; +} + +export const GetNetworkTrendingPoolsSchema = z.object({ + networkId: z.string(), + limit: z.number().min(1).max(100).default(10), +}); + +export type GetNetworkTrendingPoolsContent = z.infer< + typeof GetNetworkTrendingPoolsSchema +> & + Content; + +export const isGetNetworkTrendingPoolsContent = ( + obj: unknown +): obj is GetNetworkTrendingPoolsContent => { + return GetNetworkTrendingPoolsSchema.safeParse(obj).success; +}; + +export default { + name: "GET_NETWORK_TRENDING_POOLS", + similes: [ + "NETWORK_TRENDING_POOLS", + "CHAIN_HOT_POOLS", + "BLOCKCHAIN_POPULAR_POOLS", + ], + validate: async (runtime: IAgentRuntime, _message: Memory) => { + await validateCoingeckoConfig(runtime); + return true; + }, + description: + "Get list of trending pools for a specific network from CoinGecko's onchain data", + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + _options: { [key: string]: unknown }, + callback?: HandlerCallback + ): Promise => { + elizaLogger.log( + "Starting CoinGecko GET_NETWORK_TRENDING_POOLS handler..." + ); + + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; + } else { + currentState = await runtime.updateRecentMessageState(currentState); + } + + try { + elizaLogger.log("Composing network trending pools context..."); + const trendingContext = composeContext({ + state: currentState, + template: getNetworkTrendingPoolsTemplate, + }); + + const result = await generateObject({ + runtime, + context: trendingContext, + modelClass: ModelClass.LARGE, + schema: GetNetworkTrendingPoolsSchema, + }); + + if (!isGetNetworkTrendingPoolsContent(result.object)) { + elizaLogger.error( + "Invalid network trending pools request format" + ); + return false; + } + + const config = await validateCoingeckoConfig(runtime); + const { baseUrl, apiKey, headerKey } = getApiConfig(config); + + elizaLogger.log( + `Fetching trending pools data for network: ${result.object.networkId}` + ); + + const response = await axios.get( + `${baseUrl}/onchain/networks/${result.object.networkId}/trending_pools?include=base_token,dex`, + { + headers: { + [headerKey]: apiKey, + }, + } + ); + + if (!response.data) { + throw new Error("No data received from CoinGecko API"); + } + + const formattedData = response.data.data + .slice(0, result.object.limit) + .map((pool) => ({ + name: pool.attributes.name, + marketCap: Number( + pool.attributes.market_cap_usd + ).toLocaleString("en-US", { + style: "currency", + currency: "USD", + }), + fdv: Number(pool.attributes.fdv_usd).toLocaleString( + "en-US", + { + style: "currency", + currency: "USD", + } + ), + reserveUSD: Number( + pool.attributes.reserve_in_usd + ).toLocaleString("en-US", { + style: "currency", + currency: "USD", + }), + createdAt: new Date( + pool.attributes.pool_created_at + ).toLocaleDateString(), + })); + + const responseText = [ + `Trending Pools Overview for ${result.object.networkId.toUpperCase()}:`, + "", + ...formattedData.map((pool, index) => + [ + `${index + 1}. ${pool.name}`, + ` Market Cap: ${pool.marketCap}`, + ` FDV: ${pool.fdv}`, + ` Reserve: ${pool.reserveUSD}`, + ` Created: ${pool.createdAt}`, + "", + ].join("\n") + ), + ].join("\n"); + + elizaLogger.success( + "Network trending pools data retrieved successfully!" + ); + + if (callback) { + callback({ + text: responseText, + content: { + networkId: result.object.networkId, + trendingPools: formattedData, + timestamp: new Date().toISOString(), + }, + }); + } + + return true; + } catch (error) { + elizaLogger.error( + "Error in GET_NETWORK_TRENDING_POOLS handler:", + error + ); + + const errorMessage = + error.response?.status === 429 + ? "Rate limit exceeded. Please try again later." + : `Error fetching trending pools data: ${error.message}`; + + if (callback) { + callback({ + text: errorMessage, + content: { + error: error.message, + statusCode: error.response?.status, + }, + }); + } + return false; + } + }, + + examples: [ + [ + { + user: "{{user1}}", + content: { + text: "Show me trending liquidity pools on Solana", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll check the trending Solana liquidity pools for you.", + action: "GET_NETWORK_TRENDING_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are the trending pools on SOLANA:\n1. MELANIA / USDC\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025\n2. TRUMP / USDC\n Market Cap: $8,844,297,825\n FDV: $43,874,068,484\n Reserve: $718,413,745\n Created: 1/17/2025", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "What are the top 5 hottest pools on Ethereum?", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll fetch the top 5 hottest pools on Ethereum for you.", + action: "GET_NETWORK_TRENDING_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are the top 5 trending pools on ETHEREUM:\n1. PEPE / WETH\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "List all BSC pools with highest volume", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll get all the trending pools on BSC for you.", + action: "GET_NETWORK_TRENDING_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are all trending pools on BSC:\n1. CAKE / WBNB\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025", + }, + }, + ], + ] as ActionExample[][], +} as Action; diff --git a/packages/plugin-coingecko/src/index.ts b/packages/plugin-coingecko/src/index.ts index fe242bfd7dc..b18884301de 100644 --- a/packages/plugin-coingecko/src/index.ts +++ b/packages/plugin-coingecko/src/index.ts @@ -8,6 +8,7 @@ import getTrendingPools from "./actions/getTrendingPools"; import getNewlyListed from "./actions/getNewlyListed"; import { categoriesProvider } from "./providers/categoriesProvider"; import { coinsProvider } from "./providers/coinsProvider"; +import { networksProvider } from "./providers/networkProvider"; export const coingeckoPlugin: Plugin = { name: "coingecko", @@ -22,7 +23,7 @@ export const coingeckoPlugin: Plugin = { getNewlyListed, ], evaluators: [], - providers: [categoriesProvider, coinsProvider], + providers: [categoriesProvider, coinsProvider, networksProvider], }; export default coingeckoPlugin; diff --git a/packages/plugin-coingecko/src/providers/networkProvider.ts b/packages/plugin-coingecko/src/providers/networkProvider.ts new file mode 100644 index 00000000000..3656a648f2b --- /dev/null +++ b/packages/plugin-coingecko/src/providers/networkProvider.ts @@ -0,0 +1,135 @@ +import { + type IAgentRuntime, + type Memory, + type Provider, + type State, + elizaLogger, +} from "@elizaos/core"; +import axios from "axios"; +import { getApiConfig, validateCoingeckoConfig } from "../environment"; + +interface NetworkAttributes { + name: string; + coingecko_asset_platform_id: string; +} + +interface NetworkItem { + id: string; + type: string; + attributes: NetworkAttributes; +} + +interface NetworksResponse { + data: NetworkItem[]; +} + +const CACHE_KEY = "coingecko:networks"; +const CACHE_TTL = 30 * 60; // 30 minutes +const MAX_RETRIES = 3; + +async function fetchNetworks(runtime: IAgentRuntime): Promise { + const config = await validateCoingeckoConfig(runtime); + const { baseUrl, apiKey, headerKey } = getApiConfig(config); + + const response = await axios.get( + `${baseUrl}/onchain/networks`, + { + headers: { + accept: "application/json", + [headerKey]: apiKey, + }, + timeout: 5000, // 5 second timeout + } + ); + + if (!response.data?.data?.length) { + throw new Error("Invalid networks data received"); + } + + return response.data.data; +} + +async function fetchWithRetry(runtime: IAgentRuntime): Promise { + let lastError: Error | null = null; + + for (let i = 0; i < MAX_RETRIES; i++) { + try { + return await fetchNetworks(runtime); + } catch (error) { + lastError = error; + elizaLogger.error(`Networks fetch attempt ${i + 1} failed:`, error); + await new Promise((resolve) => setTimeout(resolve, 1000 * (i + 1))); + } + } + + throw ( + lastError || + new Error("Failed to fetch networks after multiple attempts") + ); +} + +async function getNetworks(runtime: IAgentRuntime): Promise { + try { + // Try to get from cache first + const cached = await runtime.cacheManager.get(CACHE_KEY); + if (cached) { + return cached; + } + + // Fetch fresh data + const networks = await fetchWithRetry(runtime); + + // Cache the result + await runtime.cacheManager.set(CACHE_KEY, networks, { + expires: CACHE_TTL, + }); + + return networks; + } catch (error) { + elizaLogger.error("Error fetching networks:", error); + throw error; + } +} + +function formatNetworksContext(networks: NetworkItem[]): string { + const mainNetworks = ["eth", "bsc", "polygon_pos", "avax", "solana"]; + + const popular = networks + .filter((n) => mainNetworks.includes(n.id)) + .map((n) => `${n.attributes.name} - ID: ${n.id}`); + + return ` +Available blockchain networks: + +Major networks: +${popular.map((n) => `- ${n}`).join("\n")} + +Total available networks: ${networks.length} + +You can use these network IDs when querying network-specific data. +`.trim(); +} + +export const networksProvider: Provider = { + // eslint-disable-next-line + get: async ( + runtime: IAgentRuntime, + message: Memory, + state?: State + ): Promise => { + try { + const networks = await getNetworks(runtime); + return formatNetworksContext(networks); + } catch (error) { + elizaLogger.error("Networks provider error:", error); + return "Blockchain networks list is temporarily unavailable. Please try again later."; + } + }, +}; + +// Helper function for actions to get raw networks data +export async function getNetworksData( + runtime: IAgentRuntime +): Promise { + return getNetworks(runtime); +} diff --git a/packages/plugin-coingecko/src/templates/networkTrendingPools.ts b/packages/plugin-coingecko/src/templates/networkTrendingPools.ts new file mode 100644 index 00000000000..19db65f813e --- /dev/null +++ b/packages/plugin-coingecko/src/templates/networkTrendingPools.ts @@ -0,0 +1,37 @@ +export const getNetworkTrendingPoolsTemplate = `Determine if this is a network-specific trending pools request. If it is one of the specified situations, extract the network ID and limit: + +Situation 1: "Get network trending pools" +- Message contains: network name (e.g., "solana", "ethereum", "bsc") AND phrases about pools +- Example: "Show trending pools on Solana" or "What are the hot pools on ETH?" +- Action: Extract network ID and use default limit + +Situation 2: "Get specific number of network pools" +- Message contains: number AND network name AND pools reference +- Example: "Show top 5 pools on BSC" or "Get 20 trending pools on Ethereum" +- Action: Extract network ID and specific limit + +Situation 3: "Get all network pools" +- Message contains: "all" AND network name AND pools reference +- Example: "Show all trending pools on Polygon" or "List all hot pools on Avalanche" +- Action: Extract network ID and set maximum limit + +Network ID mappings: +- "solana", "sol" => "solana" +- "ethereum", "eth" => "eth" +- "binance smart chain", "bsc", "bnb chain" => "bsc" +- "polygon", "matic" => "polygon_pos" +- "avalanche", "avax" => "avax" + +For all situations, respond with a JSON object in the format: +\`\`\`json +{ + "networkId": string, + "limit": number +} +\`\`\` + +Previous conversation for context: +{{conversation}} + +You are replying to: {{message}} +`; From cb0e01736833c702a1d7bfa364dd01519145fdc4 Mon Sep 17 00:00:00 2001 From: CardinalError Date: Fri, 31 Jan 2025 23:28:06 +0100 Subject: [PATCH 32/51] change names --- .../{getTrendingPoolsPerChain.ts => getNetworkTrendingPools.ts} | 0 packages/plugin-coingecko/src/index.ts | 2 ++ 2 files changed, 2 insertions(+) rename packages/plugin-coingecko/src/actions/{getTrendingPoolsPerChain.ts => getNetworkTrendingPools.ts} (100%) diff --git a/packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts b/packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts similarity index 100% rename from packages/plugin-coingecko/src/actions/getTrendingPoolsPerChain.ts rename to packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts diff --git a/packages/plugin-coingecko/src/index.ts b/packages/plugin-coingecko/src/index.ts index b18884301de..99e057fc7c8 100644 --- a/packages/plugin-coingecko/src/index.ts +++ b/packages/plugin-coingecko/src/index.ts @@ -6,6 +6,7 @@ import getTopGainersLosers from "./actions/getTopGainersLosers"; import getTrending from "./actions/getTrending"; import getTrendingPools from "./actions/getTrendingPools"; import getNewlyListed from "./actions/getNewlyListed"; +import getNetworkTrendingPools from "./actions/getNetworkTrendingPools"; import { categoriesProvider } from "./providers/categoriesProvider"; import { coinsProvider } from "./providers/coinsProvider"; import { networksProvider } from "./providers/networkProvider"; @@ -21,6 +22,7 @@ export const coingeckoPlugin: Plugin = { getMarkets, getTopGainersLosers, getNewlyListed, + getNetworkTrendingPools, ], evaluators: [], providers: [categoriesProvider, coinsProvider, networksProvider], From fe21a0206608ac3ad115ffc97329546f994e4206 Mon Sep 17 00:00:00 2001 From: Ting Chien Meng Date: Sat, 1 Feb 2025 10:48:11 +0800 Subject: [PATCH 33/51] remove duplicated plugins --- agent/package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/agent/package.json b/agent/package.json index 4d2e88e48b6..7a2bfc75587 100644 --- a/agent/package.json +++ b/agent/package.json @@ -66,9 +66,7 @@ "@elizaos/plugin-icp": "workspace:*", "@elizaos/plugin-initia": "workspace:*", "@elizaos/plugin-image-generation": "workspace:*", - "@elizaos/plugin-intiface": "workspace:*", "@elizaos/plugin-lens-network": "workspace:*", - "@elizaos/plugin-letzai": "workspace:*", "@elizaos/plugin-lit": "workspace:*", "@elizaos/plugin-massa": "workspace:*", "@elizaos/plugin-mind-network": "workspace:*", From 9bf304d03c731e56d39205a638e42892b31b897d Mon Sep 17 00:00:00 2001 From: comfsrt <155266597+comfsrt@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:02:11 +0100 Subject: [PATCH 34/51] Update chat_2024-12-07.md --- .../Discord/collaborations/3d-ai-tv/chat_2024-12-07.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md index a41aa77f3de..062f542cb93 100644 --- a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md +++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md @@ -15,7 +15,7 @@ The conversation focused on integrating @bigdookie's artwork as bumpers in their - Do we need video producers? Why is it complicated for comfy stuff to be fast-paced? (asked by [boom](09:56)) - What are the next steps in establishing a Creative Studio and bidding on projects? How does budget influence project success? (asked by [whobody, boom](10:27)) - How will the open-source approach help us? How can Banodoco handle bids on their end? (asked by [boom (10:00)]) -- Can we prompt an engineer to help the story arch or main punchlines for AI-assisted writing? How does it come together with human and AI collaboration in filmmaking? (asked by [boom] (10:05)) +- Can we prompt an engineer to help the story arc or main punchlines for AI-assisted writing? How does it come together with human and AI collaboration in filmmaking? (asked by [boom] (10:05)) ## Who Helped Who From 42ac7a8c9ad896a38292df64fa1e19b91f3f6eb3 Mon Sep 17 00:00:00 2001 From: comfsrt <155266597+comfsrt@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:02:35 +0100 Subject: [PATCH 35/51] Update chat_2024-10-27.md --- docs/community/Discord/development/coders/chat_2024-10-27.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/community/Discord/development/coders/chat_2024-10-27.md b/docs/community/Discord/development/coders/chat_2024-10-27.md index 5020d493c06..7589eb8ad96 100644 --- a/docs/community/Discord/development/coders/chat_2024-10-27.md +++ b/docs/community/Discord/development/coders/chat_2024-10-27.md @@ -2,7 +2,7 @@ ## Summary -In the chat, Cyfer785 sought assistance for creating a frontend interface that would display AI-generated content in a retro style with live scrolling text, reminiscent of Claude's capabilities but tailored to their own AI pipe output. DegenSpartan and Poe engaged in the conversation, suggesting that Cyfer785 was essentially attempting to replicate features from existing projects like Infinite Backrooms and Claude without adding original value. The discussion highlighted a divergence of interests as Cyfer785's vision did not align with what DegenSpartan and Poe were willing or able to provide, leading to the conclusion that they were not suitable collaborators for this project. Despite some initial enthusiasm from other participants like astr0x., who humorously claimed a share of non-existent profits, the technical focus remained on Cyfer785's request for a unique AI interface development. +In the chat, Cyfer785 sought assistance for creating a frontend interface that would display AI-generated content in a retro style with live scrolling text, reminiscent of Claude's capabilities but tailored to their own AI pipe output. DegenSpartan and Poe engaged in the conversation, suggesting that Cyfer785 was essentially attempting to replicate features from existing projects like Infinite Backrooms and Claude without adding original value. The discussion highlighted a divergence of interests as Cyfer785's vision did not align with what DegenSpartan and Poe were willing or able to provide, leading to the conclusion that they were not suitable collaborators for this project. Despite some initial enthusiasm from other participants like astr0x, who humorously claimed a share of non-existent profits, the technical focus remained on Cyfer785's request for a unique AI interface development. ## FAQ From 074a0a14662604edd6145e2f942a3750babe53b6 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 03:54:03 +0700 Subject: [PATCH 36/51] Fixed all the issues and added biome --- packages/plugin-allora/biome.json | 41 +++++++++++++++++++ packages/plugin-allora/package.json | 12 +++++- .../plugin-allora/src/actions/getInference.ts | 13 +++--- .../plugin-allora/src/providers/topics.ts | 4 +- 4 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 packages/plugin-allora/biome.json diff --git a/packages/plugin-allora/biome.json b/packages/plugin-allora/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-allora/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-allora/package.json b/packages/plugin-allora/package.json index 6dee6303b49..754cf4e8813 100644 --- a/packages/plugin-allora/package.json +++ b/packages/plugin-allora/package.json @@ -5,16 +5,24 @@ "type": "module", "types": "dist/index.d.ts", "dependencies": { - "@alloralabs/allora-sdk": "0.0.4", "@elizaos/core": "workspace:*", "node-cache": "5.1.2", "vitest": "2.1.8", "@alloralabs/allora-sdk": "^0.1.0" }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "tsup": "8.3.5", + "vitest": "2.1.8" + }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", - "test": "vitest run" + "test": "vitest run", + "lint": "biome lint .", + "lint:fix": "biome check --apply .", + "format": "biome format .", + "format:fix": "biome format --write ." }, "peerDependencies": { "whatwg-url": "7.1.0" diff --git a/packages/plugin-allora/src/actions/getInference.ts b/packages/plugin-allora/src/actions/getInference.ts index d875aa35994..9b1c7acb823 100644 --- a/packages/plugin-allora/src/actions/getInference.ts +++ b/packages/plugin-allora/src/actions/getInference.ts @@ -36,22 +36,23 @@ export const getInferenceAction: Action = { runtime: IAgentRuntime, message: Memory, state: State, - options: { [key: string]: unknown }, + _options: { [key: string]: unknown }, callback: HandlerCallback ): Promise => { // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; } else { - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } // Get Allora topics information from the provider - state.alloraTopics = await topicsProvider.get(runtime, message, state); + currentState.alloraTopics = await topicsProvider.get(runtime, message, currentState); // Compose context for extracting the inference fields const inferenceTopicContext = composeContext({ - state, + state: currentState, template: getInferenceTemplate, }); diff --git a/packages/plugin-allora/src/providers/topics.ts b/packages/plugin-allora/src/providers/topics.ts index 6dd72da36ac..2288c3f22e1 100644 --- a/packages/plugin-allora/src/providers/topics.ts +++ b/packages/plugin-allora/src/providers/topics.ts @@ -23,14 +23,14 @@ export class TopicsProvider implements Provider { const alloraTopics = await this.getAlloraTopics(runtime); // Format the topics into a string to be added to the prompt context - let output = `Allora Network Topics: \n`; + let output = 'Allora Network Topics: \n'; for (const topic of alloraTopics) { output += `Topic Name: ${topic.topic_name}\n`; output += `Topic Description: ${topic.description}\n`; output += `Topic ID: ${topic.topic_id}\n`; output += `Topic is Active: ${topic.is_active}\n`; output += `Topic Updated At: ${topic.updated_at}\n`; - output += `\n`; + output += '\n'; } return output; From b788b9dd0ff19a1fef447bdf997c067d4c921b20 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 04:11:01 +0700 Subject: [PATCH 37/51] Fixed multiple issues and aded biome. --- packages/plugin-akash/biome.json | 41 +++++++++++++++++++ packages/plugin-akash/package.json | 9 ++-- .../src/actions/closeDeployment.ts | 2 +- .../src/actions/createCertificate.ts | 6 +-- .../src/actions/createDeployment.ts | 4 +- .../src/actions/getDeploymentApi.ts | 12 +++--- .../src/actions/getDeploymentStatus.ts | 2 +- .../plugin-akash/src/actions/getGPUPricing.ts | 12 +++--- .../plugin-akash/src/actions/getManifest.ts | 8 ++-- .../src/actions/getProvidersList.ts | 4 +- packages/plugin-akash/src/error/error.ts | 3 +- packages/plugin-akash/src/index.ts | 2 +- packages/plugin-akash/src/runtime_inspect.ts | 4 +- 13 files changed, 75 insertions(+), 34 deletions(-) create mode 100644 packages/plugin-akash/biome.json diff --git a/packages/plugin-akash/biome.json b/packages/plugin-akash/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-akash/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-akash/package.json b/packages/plugin-akash/package.json index 8da2ca91a7c..40bac98c74c 100644 --- a/packages/plugin-akash/package.json +++ b/packages/plugin-akash/package.json @@ -9,7 +9,10 @@ "build": "tsup", "dev": "tsup --watch", "clean": "rm -rf dist", - "lint:fix": "eslint . --fix", + "lint": "biome lint .", + "lint:fix": "biome check --apply .", + "format": "biome format .", + "format:fix": "biome format --write .", "test": "vitest", "test:watch": "vitest watch", "test:coverage": "vitest run --coverage", @@ -32,15 +35,13 @@ "ora": "^8.0.1" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@types/dotenv": "^8.2.0", "@types/jest": "^29.5.11", "@types/js-yaml": "^4.0.9", "@types/node": "^20.10.5", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", "@vitest/coverage-v8": "^0.34.6", "@vitest/ui": "^0.34.6", - "eslint": "^9.16.0", "tsup": "^8.0.1", "typescript": "^5.3.3", "vite": "^5.0.10", diff --git a/packages/plugin-akash/src/actions/closeDeployment.ts b/packages/plugin-akash/src/actions/closeDeployment.ts index 47c7e17a64b..1b6b9a9fc6d 100644 --- a/packages/plugin-akash/src/actions/closeDeployment.ts +++ b/packages/plugin-akash/src/actions/closeDeployment.ts @@ -311,7 +311,7 @@ export const closeDeploymentAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/actions/createCertificate.ts b/packages/plugin-akash/src/actions/createCertificate.ts index 6e026596629..801d0e9863e 100644 --- a/packages/plugin-akash/src/actions/createCertificate.ts +++ b/packages/plugin-akash/src/actions/createCertificate.ts @@ -8,8 +8,8 @@ import type { CertificatePem } from "@akashnetwork/akashjs/build/certificates/ce import { getAkashTypeRegistry } from "@akashnetwork/akashjs/build/stargate"; import { validateAkashConfig } from "../environment"; import { AkashError, AkashErrorCode, withRetry } from "../error/error"; -import * as fs from 'fs'; -import * as path from 'path'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; import { Registry } from "@cosmjs/proto-signing"; import type { SigningStargateClient as AkashSigningStargateClient } from "@akashnetwork/akashjs/node_modules/@cosmjs/stargate"; import { getCertificatePath } from "../utils/paths"; @@ -271,7 +271,7 @@ export const createCertificateAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, options: { callback?: HandlerCallback } = {} ): Promise => { const actionId = Date.now().toString(); diff --git a/packages/plugin-akash/src/actions/createDeployment.ts b/packages/plugin-akash/src/actions/createDeployment.ts index 2032961fe44..d21cecd416c 100644 --- a/packages/plugin-akash/src/actions/createDeployment.ts +++ b/packages/plugin-akash/src/actions/createDeployment.ts @@ -13,8 +13,8 @@ import { DirectSecp256k1HdWallet, Registry } from "@cosmjs/proto-signing"; import { SigningStargateClient } from "@cosmjs/stargate"; import { validateAkashConfig } from "../environment"; import { AkashError, AkashErrorCode, withRetry } from "../error/error"; -import * as fs from 'fs'; -import * as path from 'path'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; import { getCertificatePath, getDefaultSDLPath } from "../utils/paths"; // import { fileURLToPath } from 'url'; import { inspectRuntime, isPluginLoaded } from "../runtime_inspect"; diff --git a/packages/plugin-akash/src/actions/getDeploymentApi.ts b/packages/plugin-akash/src/actions/getDeploymentApi.ts index 503be32530e..fc46ac9ed30 100644 --- a/packages/plugin-akash/src/actions/getDeploymentApi.ts +++ b/packages/plugin-akash/src/actions/getDeploymentApi.ts @@ -3,8 +3,8 @@ import type { IAgentRuntime, Memory, State, HandlerCallback, Content, ActionExam import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; import { validateAkashConfig } from "../environment"; import { AkashError, AkashErrorCode } from "../error/error"; -import * as fs from 'fs'; -import * as path from 'path'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; import { getDeploymentsPath } from "../utils/paths"; export interface DeploymentInfo { @@ -48,7 +48,7 @@ async function fetchWithRetry(url: string, options: RequestInit, retries = 3, de }); if (i < retries - 1) { - await sleep(delay * Math.pow(2, i)); // Exponential backoff + await sleep(delay * (2 ** i)); // Exponential backoff continue; } @@ -63,7 +63,7 @@ async function fetchWithRetry(url: string, options: RequestInit, retries = 3, de elizaLogger.warn(`API request error (attempt ${i + 1}/${retries})`, { error: error instanceof Error ? error.message : String(error) }); - await sleep(delay * Math.pow(2, i)); + await sleep(delay * (2 ** i)); } } throw new AkashError( @@ -336,7 +336,7 @@ export const getDeploymentApiAction: Action = { } as ActionExample ]], - validate: async (runtime: IAgentRuntime, message: Memory): Promise => { + validate: async (_runtime: IAgentRuntime, message: Memory): Promise => { elizaLogger.debug("Validating get deployments request", { message }); try { const params = message.content as Partial; @@ -381,7 +381,7 @@ export const getDeploymentApiAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/actions/getDeploymentStatus.ts b/packages/plugin-akash/src/actions/getDeploymentStatus.ts index b927a8961df..2dfd2abae5a 100644 --- a/packages/plugin-akash/src/actions/getDeploymentStatus.ts +++ b/packages/plugin-akash/src/actions/getDeploymentStatus.ts @@ -143,7 +143,7 @@ export const getDeploymentStatusAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/actions/getGPUPricing.ts b/packages/plugin-akash/src/actions/getGPUPricing.ts index a3a4073a2ea..395fa5796e2 100644 --- a/packages/plugin-akash/src/actions/getGPUPricing.ts +++ b/packages/plugin-akash/src/actions/getGPUPricing.ts @@ -58,23 +58,23 @@ export const getGPUPricingAction: Action = { } as ActionExample ]], - validate: async (runtime: IAgentRuntime, message: Memory): Promise => { + validate: async (_runtime: IAgentRuntime, message: Memory): Promise => { elizaLogger.debug("Validating GPU pricing request", { message }); try { const params = message.content as Partial; // Validate CPU if provided - if (params.cpu !== undefined && (isNaN(params.cpu) || params.cpu <= 0)) { + if (params.cpu !== undefined && (Number.isNaN(params.cpu) || params.cpu <= 0)) { throw new GPUPricingError("CPU units must be a positive number", "INVALID_CPU"); } // Validate memory if provided - if (params.memory !== undefined && (isNaN(params.memory) || params.memory <= 0)) { + if (params.memory !== undefined && (Number.isNaN(params.memory) || params.memory <= 0)) { throw new GPUPricingError("Memory must be a positive number", "INVALID_MEMORY"); } // Validate storage if provided - if (params.storage !== undefined && (isNaN(params.storage) || params.storage <= 0)) { + if (params.storage !== undefined && (Number.isNaN(params.storage) || params.storage <= 0)) { throw new GPUPricingError("Storage must be a positive number", "INVALID_STORAGE"); } @@ -91,9 +91,9 @@ export const getGPUPricingAction: Action = { }, handler: async ( - runtime: IAgentRuntime, + _runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown; } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/actions/getManifest.ts b/packages/plugin-akash/src/actions/getManifest.ts index 099ae0f412d..5760617d262 100644 --- a/packages/plugin-akash/src/actions/getManifest.ts +++ b/packages/plugin-akash/src/actions/getManifest.ts @@ -3,8 +3,8 @@ import type { IAgentRuntime, Memory, State, HandlerCallback, Content, ActionExam import { SDL } from "@akashnetwork/akashjs/build/sdl"; import { validateAkashConfig } from "../environment"; import { AkashError, AkashErrorCode } from "../error/error"; -import * as fs from 'fs'; -import * as path from 'path'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; import yaml from 'js-yaml'; // import { getAkashTypeRegistry } from "@akashnetwork/akashjs/build/stargate"; import { getDefaultSDLPath } from "../utils/paths"; @@ -70,7 +70,7 @@ const loadSDLFromFile = (filePath: string): string => { // If we get here, none of the paths worked throw new AkashError( - `SDL file not found in any of the possible locations`, + 'SDL file not found in any of the possible locations', AkashErrorCode.VALIDATION_SDL_FAILED, { filePath, @@ -185,7 +185,7 @@ export const getManifestAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown; } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/actions/getProvidersList.ts b/packages/plugin-akash/src/actions/getProvidersList.ts index 8a01783fd27..e8449b82e55 100644 --- a/packages/plugin-akash/src/actions/getProvidersList.ts +++ b/packages/plugin-akash/src/actions/getProvidersList.ts @@ -162,7 +162,7 @@ export const getProvidersListAction: Action = { } as ActionExample ]], - validate: async (runtime: IAgentRuntime, message: Memory): Promise => { + validate: async (_runtime: IAgentRuntime, message: Memory): Promise => { elizaLogger.debug("Validating get providers list request", { message }); try { const params = message.content as Partial; @@ -210,7 +210,7 @@ export const getProvidersListAction: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State | undefined, + _state: State | undefined, _options: { [key: string]: unknown; } = {}, callback?: HandlerCallback ): Promise => { diff --git a/packages/plugin-akash/src/error/error.ts b/packages/plugin-akash/src/error/error.ts index 0ddbdc603ee..9b6adeed193 100644 --- a/packages/plugin-akash/src/error/error.ts +++ b/packages/plugin-akash/src/error/error.ts @@ -1,4 +1,3 @@ - export enum AkashErrorCategory { WALLET = 'WALLET', DEPLOYMENT = 'DEPLOYMENT', @@ -117,7 +116,7 @@ export async function withRetry( } catch (error) { lastError = error as Error; if (i < maxRetries - 1) { - await new Promise(resolve => setTimeout(resolve, delay * Math.pow(2, i))); + await new Promise(resolve => setTimeout(resolve, delay * (2 ** i))); } } } diff --git a/packages/plugin-akash/src/index.ts b/packages/plugin-akash/src/index.ts index fdd7f59f84d..5ff80a4aca3 100644 --- a/packages/plugin-akash/src/index.ts +++ b/packages/plugin-akash/src/index.ts @@ -1,4 +1,4 @@ -import { Plugin} from "@elizaos/core"; +import type { Plugin} from "@elizaos/core"; import chalk from 'chalk'; import Table from 'cli-table3'; import ora from 'ora'; diff --git a/packages/plugin-akash/src/runtime_inspect.ts b/packages/plugin-akash/src/runtime_inspect.ts index 25b5aee39fd..985b6d0d466 100644 --- a/packages/plugin-akash/src/runtime_inspect.ts +++ b/packages/plugin-akash/src/runtime_inspect.ts @@ -56,7 +56,7 @@ export function isPluginLoaded(runtime: IAgentRuntime, pluginName: string): bool // Check plugins array const plugins = (runtime as any).plugins as Plugin[]; if (!plugins) { - elizaLogger.warn(`No plugins array found in runtime`); + elizaLogger.warn('No plugins array found in runtime'); return false; } @@ -70,7 +70,7 @@ export function isPluginLoaded(runtime: IAgentRuntime, pluginName: string): bool // Check if actions are registered const actions = (runtime as any).actions as Action[]; if (!actions || !actions.length) { - elizaLogger.warn(`No actions found in runtime`); + elizaLogger.warn('No actions found in runtime'); return false; } From d7f83bce0b9e53b73bb71bd396101a7098f92b1a Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 04:20:38 +0700 Subject: [PATCH 38/51] Fixed the typing and added biome --- packages/plugin-agentkit/biome.json | 41 ++++++++++++++++++++++++ packages/plugin-agentkit/package.json | 7 +++- packages/plugin-agentkit/src/actions.ts | 6 ++-- packages/plugin-agentkit/src/provider.ts | 7 ++-- 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 packages/plugin-agentkit/biome.json diff --git a/packages/plugin-agentkit/biome.json b/packages/plugin-agentkit/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-agentkit/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-agentkit/package.json b/packages/plugin-agentkit/package.json index 19a716a51ed..12b633ddc39 100644 --- a/packages/plugin-agentkit/package.json +++ b/packages/plugin-agentkit/package.json @@ -12,6 +12,7 @@ "tsup": "8.3.5" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "vitest": "^1.0.0" }, "scripts": { @@ -19,6 +20,10 @@ "dev": "tsup --format esm --dts --watch", "test": "vitest run", "test:watch": "vitest watch", - "test:coverage": "vitest run --coverage" + "test:coverage": "vitest run --coverage", + "lint": "biome lint .", + "lint:fix": "biome check --apply .", + "format": "biome format .", + "format:fix": "biome format --write ." } } diff --git a/packages/plugin-agentkit/src/actions.ts b/packages/plugin-agentkit/src/actions.ts index 7bf3827c51c..b08c65f927e 100644 --- a/packages/plugin-agentkit/src/actions.ts +++ b/packages/plugin-agentkit/src/actions.ts @@ -37,7 +37,7 @@ export async function getAgentKitActions({ runtime: IAgentRuntime, message: Memory, state: State | undefined, - options?: Record, + _options?: Record, callback?: HandlerCallback ): Promise => { try { @@ -93,7 +93,7 @@ export async function getAgentKitActions({ async function executeToolAction( tool: Tool, - parameters: any, + parameters: unknown, client: CdpAgentkit ): Promise { const toolkit = new CdpToolkit(client); @@ -107,7 +107,7 @@ async function executeToolAction( return await selectedTool.call(parameters); } -function composeParameterContext(tool: any, state: State): string { +function composeParameterContext(tool: Tool, state: State): string { const contextTemplate = `{{recentMessages}} Given the recent messages, extract the following information for the action "${tool.name}": diff --git a/packages/plugin-agentkit/src/provider.ts b/packages/plugin-agentkit/src/provider.ts index f55719e2c14..038a9c0143d 100644 --- a/packages/plugin-agentkit/src/provider.ts +++ b/packages/plugin-agentkit/src/provider.ts @@ -1,6 +1,6 @@ import type { Provider, IAgentRuntime } from "@elizaos/core"; import { CdpAgentkit } from "@coinbase/cdp-agentkit-core"; -import * as fs from "fs"; +import * as fs from "node:fs"; const WALLET_DATA_FILE = "wallet_data.txt"; @@ -46,10 +46,11 @@ export async function getClient(): Promise { } export const walletProvider: Provider = { - async get(runtime: IAgentRuntime): Promise { + async get(_runtime: IAgentRuntime): Promise { try { const client = await getClient(); - const address = (await (client as any).wallet.addresses)[0].id; + // Access wallet addresses using type assertion based on the known structure + const address = (client as unknown as { wallet: { addresses: Array<{ id: string }> } }).wallet.addresses[0].id; return `AgentKit Wallet Address: ${address}`; } catch (error) { console.error("Error in AgentKit provider:", error); From ebe6c14b539abf946f0080998eff50ec42a41059 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 04:52:09 +0700 Subject: [PATCH 39/51] fixed all the issues but deployTokenAction.ts for the ANY and the result need probaly a refactoring. --- packages/plugin-abstract/biome.json | 41 +++++++++++++++++++ packages/plugin-abstract/eslint.config.mjs | 3 -- packages/plugin-abstract/package.json | 6 ++- .../src/actions/deployTokenAction.ts | 16 ++++---- .../src/actions/getBalanceAction.ts | 19 +++++---- .../src/actions/transferAction.ts | 40 ++++++++++++++---- 6 files changed, 96 insertions(+), 29 deletions(-) create mode 100644 packages/plugin-abstract/biome.json delete mode 100644 packages/plugin-abstract/eslint.config.mjs diff --git a/packages/plugin-abstract/biome.json b/packages/plugin-abstract/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-abstract/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-abstract/eslint.config.mjs b/packages/plugin-abstract/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-abstract/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-abstract/package.json b/packages/plugin-abstract/package.json index 4795f922ca6..65a97d495e5 100644 --- a/packages/plugin-abstract/package.json +++ b/packages/plugin-abstract/package.json @@ -25,7 +25,10 @@ "viem": "2.22.2" }, "scripts": { - "lint": "eslint --fix --cache .", + "lint": "biome lint .", + "lint:fix": "biome check --apply .", + "format": "biome format .", + "format:fix": "biome format --write .", "build": "tsup --format esm --no-dts", "dev": "tsup --format esm --no-dts --watch", "test": "vitest run", @@ -33,6 +36,7 @@ "test:coverage": "vitest run --coverage" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "tsup": "8.3.5", "typescript": "4.9", "vitest": "^1.0.0" diff --git a/packages/plugin-abstract/src/actions/deployTokenAction.ts b/packages/plugin-abstract/src/actions/deployTokenAction.ts index e06a22fbf8b..83c30946a26 100644 --- a/packages/plugin-abstract/src/actions/deployTokenAction.ts +++ b/packages/plugin-abstract/src/actions/deployTokenAction.ts @@ -99,15 +99,17 @@ export const deployTokenAction: Action = { ): Promise => { elizaLogger.log("Starting Abstract DEPLOY_TOKEN handler..."); - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); - } + // Initialize or update state + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; + } else { + currentState = await runtime.updateRecentMessageState(currentState); + } - state.currentMessage = `${state.recentMessagesData[1].content.text}`; + currentState.currentMessage = `${currentState.recentMessagesData[1].content.text}`; const deployContext = composeContext({ - state, + state: currentState, template: deployTemplate, }); diff --git a/packages/plugin-abstract/src/actions/getBalanceAction.ts b/packages/plugin-abstract/src/actions/getBalanceAction.ts index 9b4c68ecd00..602fe375676 100644 --- a/packages/plugin-abstract/src/actions/getBalanceAction.ts +++ b/packages/plugin-abstract/src/actions/getBalanceAction.ts @@ -76,7 +76,7 @@ export const getBalanceAction: Action = { "BALANCE_CHECK", "TOKEN_BALANCE", ], - validate: async (runtime: IAgentRuntime, message: Memory) => { + validate: async (runtime: IAgentRuntime, _message: Memory) => { await validateAbstractConfig(runtime); return true; }, @@ -90,17 +90,18 @@ export const getBalanceAction: Action = { ): Promise => { elizaLogger.log("Starting Abstract GET_BALANCE handler..."); - // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); - } + // Initialize or update state + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; + } else { + currentState = await runtime.updateRecentMessageState(currentState); + } // Compose balance context - state.currentMessage = `${state.recentMessagesData[1].content.text}`; + currentState.currentMessage = `${currentState.recentMessagesData[1].content.text}`; const balanceContext = composeContext({ - state, + state: currentState, template: balanceTemplate, }); diff --git a/packages/plugin-abstract/src/actions/transferAction.ts b/packages/plugin-abstract/src/actions/transferAction.ts index a11eeef8102..4cc3f996cc3 100644 --- a/packages/plugin-abstract/src/actions/transferAction.ts +++ b/packages/plugin-abstract/src/actions/transferAction.ts @@ -26,6 +26,27 @@ import { getTokenByName, } from "../utils/viemHelpers"; +// Define types for Abstract client +interface AbstractTransactionRequest { + chain: typeof abstractTestnet; + to: string; + value: bigint; + kzg: undefined; +} + +interface AbstractContractRequest { + chain: typeof abstractTestnet; + address: string; + abi: typeof erc20Abi; + functionName: string; + args: [string, bigint]; +} + +interface AbstractClient { + sendTransaction: (request: AbstractTransactionRequest) => Promise; + writeContract: (request: AbstractContractRequest) => Promise; +} + const TransferSchema = z.object({ tokenAddress: z.string().optional().nullable(), recipient: z.string(), @@ -107,17 +128,18 @@ export const transferAction: Action = { ): Promise => { elizaLogger.log("Starting Abstract SEND_TOKEN handler..."); - // Initialize or update state - if (!state) { - state = (await runtime.composeState(message)) as State; - } else { - state = await runtime.updateRecentMessageState(state); - } + // Initialize or update state + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; + } else { + currentState = await runtime.updateRecentMessageState(currentState); + } // Compose transfer context - state.currentMessage = `${state.recentMessagesData[1].content.text}`; + currentState.currentMessage = `${currentState.recentMessagesData[1].content.text}`; const transferContext = composeContext({ - state, + state: currentState, template: transferTemplate, }); @@ -204,7 +226,7 @@ export const transferAction: Action = { const abstractClient = (await createAbstractClient({ chain: abstractTestnet, signer: account, - })) as any; // biome-ignore lint/suspicious/noExplicitAny: type being exported as never + })) as AbstractClient; if (isEthTransfer) { hash = await abstractClient.sendTransaction({ From 13a33e3dcc21b866279aaafa9ba1069a4a9bfe4b Mon Sep 17 00:00:00 2001 From: CardinalError Date: Sun, 2 Feb 2025 22:59:24 +0100 Subject: [PATCH 40/51] add new pools by network --- .../src/actions/getNetworkNewPools.ts | 266 ++++++ packages/plugin-coingecko/src/index.ts | 2 + .../src/templates/networkNewPools.ts | 37 + pnpm-lock.yaml | 857 ++++++++++++------ 4 files changed, 901 insertions(+), 261 deletions(-) create mode 100644 packages/plugin-coingecko/src/actions/getNetworkNewPools.ts create mode 100644 packages/plugin-coingecko/src/templates/networkNewPools.ts diff --git a/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts b/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts new file mode 100644 index 00000000000..2d738ea2fc6 --- /dev/null +++ b/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts @@ -0,0 +1,266 @@ +import { + type ActionExample, + composeContext, + type Content, + elizaLogger, + generateObject, + type HandlerCallback, + type IAgentRuntime, + type Memory, + ModelClass, + type State, + type Action, +} from "@elizaos/core"; +import axios from "axios"; +import { z } from "zod"; +import { getApiConfig, validateCoingeckoConfig } from "../environment"; +import { getNetworkNewPoolsTemplate } from "../templates/networkNewPools"; + +interface NewPool { + id: string; + type: string; + attributes: { + name: string; + market_cap_usd: string; + fdv_usd: string; + reserve_in_usd: string; + pool_created_at: string; + }; +} + +interface NewPoolsResponse { + data: NewPool[]; +} + +export const GetNetworkNewPoolsSchema = z.object({ + networkId: z.string(), + limit: z.number().min(1).max(100).default(10), +}); + +export type GetNetworkNewPoolsContent = z.infer< + typeof GetNetworkNewPoolsSchema +> & + Content; + +export const isGetNetworkNewPoolsContent = ( + obj: unknown +): obj is GetNetworkNewPoolsContent => { + return GetNetworkNewPoolsSchema.safeParse(obj).success; +}; + +export default { + name: "GET_NETWORK_NEW_POOLS", + similes: [ + "NETWORK_NEW_POOLS", + "CHAIN_NEW_POOLS", + "NEW_POOLS_BY_NETWORK", + "RECENT_POOLS", + "LATEST_POOLS", + ], + validate: async (runtime: IAgentRuntime, _message: Memory) => { + await validateCoingeckoConfig(runtime); + return true; + }, + description: + "Get list of newly created pools for a specific network from CoinGecko's onchain data", + handler: async ( + runtime: IAgentRuntime, + message: Memory, + state: State, + _options: { [key: string]: unknown }, + callback?: HandlerCallback + ): Promise => { + elizaLogger.log("Starting CoinGecko GET_NETWORK_NEW_POOLS handler..."); + + let currentState = state; + if (!currentState) { + currentState = (await runtime.composeState(message)) as State; + } else { + currentState = await runtime.updateRecentMessageState(currentState); + } + + try { + elizaLogger.log("Composing network new pools context..."); + const newPoolsContext = composeContext({ + state: currentState, + template: getNetworkNewPoolsTemplate, + }); + + const result = await generateObject({ + runtime, + context: newPoolsContext, + modelClass: ModelClass.LARGE, + schema: GetNetworkNewPoolsSchema, + }); + + if (!isGetNetworkNewPoolsContent(result.object)) { + elizaLogger.error("Invalid network new pools request format"); + return false; + } + + const config = await validateCoingeckoConfig(runtime); + const { baseUrl, apiKey, headerKey } = getApiConfig(config); + + elizaLogger.log( + `Fetching new pools data for network: ${result.object.networkId}` + ); + + const response = await axios.get( + `${baseUrl}/onchain/networks/${result.object.networkId}/new_pools?include=base_token,dex`, + { + headers: { + [headerKey]: apiKey, + }, + } + ); + + if (!response.data) { + throw new Error("No data received from CoinGecko API"); + } + + const formattedData = response.data.data + .slice(0, result.object.limit) + .map((pool) => ({ + name: pool.attributes.name, + marketCap: Number( + pool.attributes.market_cap_usd + ).toLocaleString("en-US", { + style: "currency", + currency: "USD", + }), + fdv: Number(pool.attributes.fdv_usd).toLocaleString( + "en-US", + { + style: "currency", + currency: "USD", + } + ), + reserveUSD: Number( + pool.attributes.reserve_in_usd + ).toLocaleString("en-US", { + style: "currency", + currency: "USD", + }), + createdAt: new Date( + pool.attributes.pool_created_at + ).toLocaleDateString(), + })); + + const responseText = [ + `New Pools Overview for ${result.object.networkId.toUpperCase()}:`, + "", + ...formattedData.map((pool, index) => + [ + `${index + 1}. ${pool.name}`, + ` Market Cap: ${pool.marketCap}`, + ` FDV: ${pool.fdv}`, + ` Reserve: ${pool.reserveUSD}`, + ` Created: ${pool.createdAt}`, + "", + ].join("\n") + ), + ].join("\n"); + + elizaLogger.success( + "Network new pools data retrieved successfully!" + ); + + if (callback) { + callback({ + text: responseText, + content: { + networkId: result.object.networkId, + newPools: formattedData, + timestamp: new Date().toISOString(), + }, + }); + } + + return true; + } catch (error) { + elizaLogger.error("Error in GET_NETWORK_NEW_POOLS handler:", error); + + const errorMessage = + error.response?.status === 429 + ? "Rate limit exceeded. Please try again later." + : `Error fetching new pools data: ${error.message}`; + + if (callback) { + callback({ + text: errorMessage, + content: { + error: error.message, + statusCode: error.response?.status, + }, + }); + } + return false; + } + }, + + examples: [ + [ + { + user: "{{user1}}", + content: { + text: "Show me new liquidity pools on Ethereum", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll check the new Ethereum liquidity pools for you.", + action: "GET_NETWORK_NEW_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are the new pools on ETHEREUM:\n1. PEPE / WETH\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025\n2. SUSHI / WETH\n Market Cap: $8,844,297,825\n FDV: $43,874,068,484\n Reserve: $718,413,745\n Created: 1/17/2025", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "What are the 5 latest pools on BSC?", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll fetch the 5 latest pools on BSC for you.", + action: "GET_NETWORK_NEW_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are the 5 newest pools on BSC:\n1. CAKE / WBNB\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025", + }, + }, + ], + [ + { + user: "{{user1}}", + content: { + text: "List all recent pools on Polygon", + }, + }, + { + user: "{{agent}}", + content: { + text: "I'll get all the recently added pools on Polygon for you.", + action: "GET_NETWORK_NEW_POOLS", + }, + }, + { + user: "{{agent}}", + content: { + text: "Here are all new pools on POLYGON:\n1. MATIC / USDC\n Market Cap: $954,636,707\n FDV: $6,402,478,508\n Reserve: $363,641,037\n Created: 1/19/2025", + }, + }, + ], + ] as ActionExample[][], +} as Action; diff --git a/packages/plugin-coingecko/src/index.ts b/packages/plugin-coingecko/src/index.ts index 99e057fc7c8..829f33bc17e 100644 --- a/packages/plugin-coingecko/src/index.ts +++ b/packages/plugin-coingecko/src/index.ts @@ -7,6 +7,7 @@ import getTrending from "./actions/getTrending"; import getTrendingPools from "./actions/getTrendingPools"; import getNewlyListed from "./actions/getNewlyListed"; import getNetworkTrendingPools from "./actions/getNetworkTrendingPools"; +import getNetworkNewPools from "./actions/getNetworkNewPools"; import { categoriesProvider } from "./providers/categoriesProvider"; import { coinsProvider } from "./providers/coinsProvider"; import { networksProvider } from "./providers/networkProvider"; @@ -23,6 +24,7 @@ export const coingeckoPlugin: Plugin = { getTopGainersLosers, getNewlyListed, getNetworkTrendingPools, + getNetworkNewPools, ], evaluators: [], providers: [categoriesProvider, coinsProvider, networksProvider], diff --git a/packages/plugin-coingecko/src/templates/networkNewPools.ts b/packages/plugin-coingecko/src/templates/networkNewPools.ts new file mode 100644 index 00000000000..19db65f813e --- /dev/null +++ b/packages/plugin-coingecko/src/templates/networkNewPools.ts @@ -0,0 +1,37 @@ +export const getNetworkTrendingPoolsTemplate = `Determine if this is a network-specific trending pools request. If it is one of the specified situations, extract the network ID and limit: + +Situation 1: "Get network trending pools" +- Message contains: network name (e.g., "solana", "ethereum", "bsc") AND phrases about pools +- Example: "Show trending pools on Solana" or "What are the hot pools on ETH?" +- Action: Extract network ID and use default limit + +Situation 2: "Get specific number of network pools" +- Message contains: number AND network name AND pools reference +- Example: "Show top 5 pools on BSC" or "Get 20 trending pools on Ethereum" +- Action: Extract network ID and specific limit + +Situation 3: "Get all network pools" +- Message contains: "all" AND network name AND pools reference +- Example: "Show all trending pools on Polygon" or "List all hot pools on Avalanche" +- Action: Extract network ID and set maximum limit + +Network ID mappings: +- "solana", "sol" => "solana" +- "ethereum", "eth" => "eth" +- "binance smart chain", "bsc", "bnb chain" => "bsc" +- "polygon", "matic" => "polygon_pos" +- "avalanche", "avax" => "avax" + +For all situations, respond with a JSON object in the format: +\`\`\`json +{ + "networkId": string, + "limit": number +} +\`\`\` + +Previous conversation for context: +{{conversation}} + +You are replying to: {{message}} +`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb01a898790..70e1bc4257a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1400,8 +1400,8 @@ importers: specifier: 1.0.9 version: 1.0.9(zod@3.23.8) '@ai-sdk/openai': - specifier: 1.0.5 - version: 1.0.5(zod@3.23.8) + specifier: 1.1.9 + version: 1.1.9(zod@3.23.8) '@fal-ai/client': specifier: 1.2.0 version: 1.2.0 @@ -1412,8 +1412,8 @@ importers: specifier: 10.0.0 version: 10.0.0 ai: - specifier: 3.4.33 - version: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + specifier: 4.1.16 + version: 4.1.16(react@19.0.0)(zod@3.23.8) anthropic-vertex-ai: specifier: 1.0.2 version: 1.0.2(encoding@0.1.13)(zod@3.23.8) @@ -1443,13 +1443,13 @@ importers: version: 1.0.15 langchain: specifier: 0.3.6 - version: 0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 0.3.6(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) ollama-ai-provider: specifier: 0.16.1 version: 0.16.1(zod@3.23.8) openai: - specifier: 4.73.0 - version: 4.73.0(encoding@0.1.13)(zod@3.23.8) + specifier: 4.82.0 + version: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) pino: specifier: ^9.6.0 version: 9.6.0 @@ -1662,13 +1662,13 @@ importers: version: 0.0.10(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) '@coinbase/cdp-langchain': specifier: ^0.0.11 - version: 0.0.11(@coinbase/coinbase-sdk@0.15.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8))(bufferutil@4.0.9)(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))(typescript@5.7.3)(utf-8-validate@6.0.5) + version: 0.0.11(@coinbase/coinbase-sdk@0.15.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8))(bufferutil@4.0.9)(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))(typescript@5.7.3)(utf-8-validate@6.0.5) '@elizaos/core': specifier: workspace:* version: link:../core '@langchain/core': specifier: ^0.3.27 - version: 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) + version: 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -1889,16 +1889,28 @@ importers: '@elizaos/core': specifier: workspace:* version: link:../core + '@ethersproject/contracts': + specifier: ^5.7.0 + version: 5.7.0 + '@ethersproject/providers': + specifier: ^5.7.0 + version: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) ai-agent-sdk-js: specifier: ^0.0.2 - version: 0.0.2(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) + version: 0.0.2(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) + ethers: + specifier: ^5.7.2 + version: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: 2.1.4 - version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + version: 2.1.4(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@5.0.10))(terser@5.37.0) packages/plugin-aptos: dependencies: @@ -1926,6 +1938,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-arbitrage: dependencies: @@ -2015,6 +2031,9 @@ importers: specifier: 2.21.58 version: 2.21.58(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.24.1) devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -2052,6 +2071,9 @@ importers: specifier: 3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/elliptic': specifier: 6.4.18 version: 6.4.18 @@ -2089,9 +2111,9 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: - vitest: - specifier: ^2.1.8 - version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-avail: dependencies: @@ -2105,6 +2127,9 @@ importers: specifier: ^0.3.0 version: 0.3.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@polkadot/types': specifier: ^10.11.3 version: 10.13.1 @@ -2116,7 +2141,7 @@ importers: version: 2.1.8(vitest@2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0)) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.8 version: 2.1.8(@types/node@20.17.9)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) @@ -2130,9 +2155,12 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) vitest: specifier: ^2.1.5 version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) @@ -2148,6 +2176,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.5.3 + version: 1.5.3 packages/plugin-binance: dependencies: @@ -2219,6 +2251,9 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@biomejs/biome': + specifier: 1.5.3 + version: 1.5.3 '@types/node': specifier: ^22.10.2 version: 22.12.0 @@ -2246,6 +2281,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.5.3 + version: 1.5.3 packages/plugin-bnb: dependencies: @@ -2285,6 +2324,10 @@ importers: ws: specifier: ^8.18.0 version: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-bootstrap: dependencies: @@ -2303,6 +2346,13 @@ importers: '@elizaos/core': specifier: workspace:* version: link:../core + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 + vitest: + specifier: ^2.1.5 + version: 2.1.8(@types/node@22.12.0)(jsdom@25.0.1(bufferutil@4.0.9)(canvas@2.11.2(encoding@0.1.13))(utf-8-validate@6.0.5))(terser@5.37.0) packages/plugin-coinbase: dependencies: @@ -2346,6 +2396,10 @@ importers: tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-coinmarketcap: dependencies: @@ -2359,6 +2413,9 @@ importers: specifier: ^3.22.4 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: ^8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -2371,6 +2428,10 @@ importers: cive: specifier: 0.7.1 version: 0.7.1(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-cosmos: dependencies: @@ -2411,6 +2472,9 @@ importers: specifier: 3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@chain-registry/types': specifier: ^0.50.44 version: 0.50.59 @@ -2424,6 +2488,9 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -2442,6 +2509,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-dcap: dependencies: @@ -2458,6 +2529,9 @@ importers: specifier: ^6.13.5 version: 6.13.5(bufferutil@4.0.9)(utf-8-validate@6.0.5) devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/node': specifier: ^20.0.0 version: 20.17.9 @@ -2479,6 +2553,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-devin: dependencies: @@ -2489,6 +2567,9 @@ importers: specifier: ^1.0.0 version: 1.7.9 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -2507,6 +2588,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-di: dependencies: @@ -2526,6 +2611,9 @@ importers: specifier: 3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/node': specifier: ^20.0.0 version: 20.17.9 @@ -2554,6 +2642,9 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 typescript: specifier: '4.9' version: 4.9.5 @@ -2566,6 +2657,10 @@ importers: '@elizaos/plugin-node': specifier: workspace:* version: link:../plugin-node + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-email: dependencies: @@ -2582,6 +2677,9 @@ importers: specifier: ^6.9.16 version: 6.10.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -2622,6 +2720,9 @@ importers: specifier: ^3.22.4 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/jest': specifier: ^29.0.0 version: 29.5.14 @@ -2659,6 +2760,9 @@ importers: specifier: ^0.4.0 version: 0.4.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/node': specifier: ^20.0.0 version: 20.17.9 @@ -2689,6 +2793,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-flow: dependencies: @@ -2729,6 +2837,9 @@ importers: specifier: 3.23.8 version: 3.23.8 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/elliptic': specifier: 6.4.18 version: 6.4.18 @@ -2753,6 +2864,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-form: dependencies: @@ -2766,6 +2881,9 @@ importers: specifier: 7.1.0 version: 7.1.0 devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) @@ -2790,6 +2908,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-gelato: dependencies: @@ -2811,6 +2933,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-genlayer: dependencies: @@ -2823,6 +2949,10 @@ importers: tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-giphy: dependencies: @@ -2838,6 +2968,10 @@ importers: zod: specifier: ^3.22.4 version: 3.23.8 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-gitbook: dependencies: @@ -2847,6 +2981,10 @@ importers: tsup: specifier: 8.3.5 version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-gitcoin-passport: dependencies: @@ -2859,6 +2997,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-goat: dependencies: @@ -2867,7 +3009,7 @@ importers: version: link:../core '@goat-sdk/adapter-vercel-ai': specifier: 0.2.0 - version: 0.2.0(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.11(react@19.0.0)(zod@3.23.8)) + version: 0.2.0(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.16(react@19.0.0)(zod@3.23.8)) '@goat-sdk/core': specifier: 0.4.6 version: 0.4.6(zod@3.23.8) @@ -2889,6 +3031,10 @@ importers: whatwg-url: specifier: 7.1.0 version: 7.1.0 + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 packages/plugin-goplus: dependencies: @@ -3291,7 +3437,7 @@ importers: version: 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/aw-tool': specifier: '*' - version: 0.1.0-16(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 0.1.0-17(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/constants': specifier: ^7.0.4 version: 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -3300,16 +3446,16 @@ importers: version: 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/lit-auth-client': specifier: ^7.0.2 - version: 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/lit-node-client': specifier: ^7.0.4 version: 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/pkp-client': specifier: 6.11.3 - version: 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + version: 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/pkp-ethers': specifier: ^7.0.2 - version: 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + version: 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/types': specifier: ^6.11.3 version: 6.11.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -3327,7 +3473,7 @@ importers: version: 2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) tsup: specifier: 8.3.5 - version: 8.3.5(@swc/core@1.10.11(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.5(@swc/core@1.10.12(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) whatwg-url: specifier: 7.1.0 version: 7.1.0 @@ -3976,7 +4122,7 @@ importers: dependencies: '@elizaos/core': specifier: ^0.1.7 - version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@pythnetwork/client': specifier: ^2.22.0 version: 2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -4460,6 +4606,9 @@ importers: packages/plugin-sui: dependencies: + '@cetusprotocol/aggregator-sdk': + specifier: ^0.3.21 + version: 0.3.21(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) '@elizaos/core': specifier: workspace:* version: link:../core @@ -4492,7 +4641,7 @@ importers: dependencies: '@elizaos/core': specifier: ^0.1.0 - version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) devDependencies: '@types/jest': specifier: ^27.0.0 @@ -4741,7 +4890,7 @@ importers: dependencies: '@elizaos/core': specifier: ^0.1.0 - version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + version: 0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) devDependencies: '@types/jest': specifier: ^27.0.0 @@ -4831,7 +4980,7 @@ importers: version: link:../core '@goat-sdk/adapter-vercel-ai': specifier: 0.2.7 - version: 0.2.7(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.11(react@19.0.0)(zod@3.23.8))(zod@3.23.8) + version: 0.2.7(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.16(react@19.0.0)(zod@3.23.8))(zod@3.23.8) '@goat-sdk/core': specifier: 0.4.6 version: 0.4.6(zod@3.23.8) @@ -4992,8 +5141,8 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai@1.1.5': - resolution: {integrity: sha512-pmZPeb99oWlV3PqMH5DVWtMGZgwWznInjdF0Bi4q1mKoEjomDXSYw+imvzMoSbpCrcGB9uFFTVx2VeR/jvcppg==} + '@ai-sdk/openai@1.1.9': + resolution: {integrity: sha512-t/CpC4TLipdbgBJTMX/otzzqzCMBSPQwUOkYPGbT/jyuC86F+YO9o+LS0Ty2pGUE1kyT+B3WmJ318B16ZCg4hw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -5023,8 +5172,8 @@ packages: zod: optional: true - '@ai-sdk/react@1.1.6': - resolution: {integrity: sha512-kP5pimLyNWldw8+0j3ym+AACFEXcQHdELNtk45wDJA3HoH486x/zffdn7yLc3c1DOu5apew+COl8CNL4A+2E4g==} + '@ai-sdk/react@1.1.8': + resolution: {integrity: sha512-buHm7hP21xEOksnRQtJX9fKbi7cAUwanEBa5niddTDibCDKd+kIXP2vaJGy8+heB3rff+XSW3BWlA8pscK+n1g==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -5062,8 +5211,8 @@ packages: zod: optional: true - '@ai-sdk/ui-utils@1.1.6': - resolution: {integrity: sha512-YAwZhFwpIcvWERIjkET2o2MAwMFfJG18WdtcIjtxxMW7hA0bt5cliOV78DVcwRrxqJ2IKBlxaFmwUjW6M4SdOQ==} + '@ai-sdk/ui-utils@1.1.8': + resolution: {integrity: sha512-nbok53K1EalO2sZjBLFB33cqs+8SxiL6pe7ekZ7+5f2MJTwdvpShl6d9U4O8fO3DnZ9pYLzaVC0XNMxnJt030Q==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -6126,53 +6275,106 @@ packages: resolution: {integrity: sha512-qWswMYRywaYOzH3ISVsvk2V0nkcpJT91sRohln2isPryMtHqxXPqiJ4GU8G9fKVL0Pcz8CfctKvqQx4gB3DGHA==} engines: {node: '>=12.22.3', npm: '>=6.14.13'} + '@biomejs/biome@1.5.3': + resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==} + engines: {node: '>=14.*'} + hasBin: true + '@biomejs/biome@1.9.4': resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} hasBin: true + '@biomejs/cli-darwin-arm64@1.5.3': + resolution: {integrity: sha512-ImU7mh1HghEDyqNmxEZBoMPr8SxekkZuYcs+gynKlNW+TALQs7swkERiBLkG9NR0K1B3/2uVzlvYowXrmlW8hw==} + engines: {node: '>=14.*'} + cpu: [arm64] + os: [darwin] + '@biomejs/cli-darwin-arm64@1.9.4': resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] + '@biomejs/cli-darwin-x64@1.5.3': + resolution: {integrity: sha512-vCdASqYnlpq/swErH7FD6nrFz0czFtK4k/iLgj0/+VmZVjineFPgevOb+Sr9vz0tk0GfdQO60bSpI74zU8M9Dw==} + engines: {node: '>=14.*'} + cpu: [x64] + os: [darwin] + '@biomejs/cli-darwin-x64@1.9.4': resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] + '@biomejs/cli-linux-arm64-musl@1.5.3': + resolution: {integrity: sha512-DYuMizUYUBYfS0IHGjDrOP1RGipqWfMGEvNEJ398zdtmCKLXaUvTimiox5dvx4X15mBK5M2m8wgWUgOP1giUpQ==} + engines: {node: '>=14.*'} + cpu: [arm64] + os: [linux] + '@biomejs/cli-linux-arm64-musl@1.9.4': resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + '@biomejs/cli-linux-arm64@1.5.3': + resolution: {integrity: sha512-cupBQv0sNF1OKqBfx7EDWMSsKwRrBUZfjXawT4s6hKV6ALq7p0QzWlxr/sDmbKMLOaLQtw2Qgu/77N9rm+f9Rg==} + engines: {node: '>=14.*'} + cpu: [arm64] + os: [linux] + '@biomejs/cli-linux-arm64@1.9.4': resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + '@biomejs/cli-linux-x64-musl@1.5.3': + resolution: {integrity: sha512-UUHiAnlDqr2Y/LpvshBFhUYMWkl2/Jn+bi3U6jKuav0qWbbBKU/ByHgR4+NBxpKBYoCtWxhnmatfH1bpPIuZMw==} + engines: {node: '>=14.*'} + cpu: [x64] + os: [linux] + '@biomejs/cli-linux-x64-musl@1.9.4': resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + '@biomejs/cli-linux-x64@1.5.3': + resolution: {integrity: sha512-YQrSArQvcv4FYsk7Q91Yv4uuu5F8hJyORVcv3zsjCLGkjIjx2RhjYLpTL733SNL7v33GmOlZY0eFR1ko38tuUw==} + engines: {node: '>=14.*'} + cpu: [x64] + os: [linux] + '@biomejs/cli-linux-x64@1.9.4': resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + '@biomejs/cli-win32-arm64@1.5.3': + resolution: {integrity: sha512-HxatYH7vf/kX9nrD+pDYuV2GI9GV8EFo6cfKkahAecTuZLPxryHx1WEfJthp5eNsE0+09STGkKIKjirP0ufaZA==} + engines: {node: '>=14.*'} + cpu: [arm64] + os: [win32] + '@biomejs/cli-win32-arm64@1.9.4': resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] + '@biomejs/cli-win32-x64@1.5.3': + resolution: {integrity: sha512-fMvbSouZEASU7mZH8SIJSANDm5OqsjgtVXlbUqxwed6BP7uuHRSs396Aqwh2+VoW8fwTpp6ybIUoC9FrzB0kyA==} + engines: {node: '>=14.*'} + cpu: [x64] + os: [win32] + '@biomejs/cli-win32-x64@1.9.4': resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} engines: {node: '>=14.21.3'} @@ -6201,6 +6403,11 @@ packages: '@brokerloop/ttlcache@3.2.3': resolution: {integrity: sha512-kZWoyJGBYTv1cL5oHBYEixlJysJBf2RVnub3gbclD+dwaW9aKubbHzbZ9q1q6bONosxaOqMsoBorOrZKzBDiqg==} + '@cetusprotocol/aggregator-sdk@0.3.21': + resolution: {integrity: sha512-ZvYphduw/VHik48Lc+f0SzwkzH3pK8c73mQAI85AIJ/xwxCTTC528ePuRnFd/Era0Vo6kHT4AN65XK4ipqTvwQ==} + peerDependencies: + typescript: ^5.0.0 + '@cfworker/json-schema@4.1.0': resolution: {integrity: sha512-/vYKi/qMxwNsuIJ9WGWwM2rflY40ZenK3Kh4uR5vB9/Nz12Y7IUN/Xf4wDA7vzPfw0VNh3b/jz4+MjcVgARKJg==} @@ -9048,8 +9255,8 @@ packages: peerDependencies: '@langchain/core': '>=0.2.21 <0.4.0' - '@langchain/langgraph-checkpoint@0.0.15': - resolution: {integrity: sha512-AiJkvsYHqNbCh1Tx823qs2lf2qRqeB4EAMejirOk8gkpPszAGYua5c3niKYkcKR2tU8Snhrmj7Gm9HKZSFOXyw==} + '@langchain/langgraph-checkpoint@0.0.14': + resolution: {integrity: sha512-UoJc1IZqtnn+AiRhygo1yjNZiXTwdOY6NSb7yrXrN96CAW3LPu8cFe7VihKg5OBv9qaGz1GCvnrNdNAB48HuKQ==} engines: {node: '>=18'} peerDependencies: '@langchain/core': '>=0.2.31 <0.4.0' @@ -9261,8 +9468,8 @@ packages: '@lit-protocol/auth-helpers@7.0.4': resolution: {integrity: sha512-oOHB+XkqMh9JKelnE67n3pGaszMCEr5v/ZATt9I9kpeoZ6MhShNf/4Wg6lGgBrRJhtHROM3zIJRZKl9Zmy7aSg==} - '@lit-protocol/aw-tool@0.1.0-16': - resolution: {integrity: sha512-xLz5xVbF/eGRMT7POk4+uCHau9pt/HJ+navHcQOn2KeRWwNjhu/9XQU64dDrQUH0oxp8C2oaFObh/GNaTKkVzg==} + '@lit-protocol/aw-tool@0.1.0-17': + resolution: {integrity: sha512-hltk2uTMMTof+ng++48CqW54Jx7oSH8CJJDIxmvwOoeN6ZENcsIFlB6pq/JvXIJe7RA7cy7mB+11G/Oocz2GZQ==} '@lit-protocol/bls-sdk@2.1.62': resolution: {integrity: sha512-UjNjycoNXOEoLH/foIJx1L9PLL5OxmHcCD/mFXr4KSeQV/v4srvGNpY/4ng7+k9sJEbvwRwv+FB07ng3/Ihacg==} @@ -11074,6 +11281,9 @@ packages: '@pythnetwork/pyth-solana-receiver@0.7.0': resolution: {integrity: sha512-OoEAHh92RPRdKkfjkcKGrjC+t0F3SEL754iKFmixN9zyS8pIfZSVfFntmkHa9pWmqEMxdx/i925a8B5ny8Tuvg==} + '@pythnetwork/pyth-sui-js@2.1.0': + resolution: {integrity: sha512-oSfpqtLATTEVaac/YbaRQBvOI7DM+Qds5O0GJjEcky7UQRtz/tlU9tjQ6VRn3vm8IXw8P1mKzJcaTIO134X9Sw==} + '@pythnetwork/solana-utils@0.4.3': resolution: {integrity: sha512-aMiVPtye3H2XFWXV8Hlgyp+oHXsAdt6d2FG0xhdTGDWssTnL4e9r7I8XBcucKHQkMDUhLN1bNeNOZcSBVyp9mg==} @@ -14677,8 +14887,8 @@ packages: zod: optional: true - ai@4.1.11: - resolution: {integrity: sha512-390dahvdwt/kKCq63dyi3M7pq6iWVk9MpfY9C5+RpyDWb50tohUwxntnUvB4Y/cOXGn4Miavdo1g8JbCxsd7wg==} + ai@4.1.16: + resolution: {integrity: sha512-4l8Dl2+reG210/l19E/D9NrpfumJuiyih7EehVm1wdMhz4/rSLjVewxkcmdcTczPee3/axB5Rp5h8q5hyIYB/g==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -20590,8 +20800,8 @@ packages: labeled-stream-splicer@2.0.2: resolution: {integrity: sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==} - langchain@0.3.15: - resolution: {integrity: sha512-+DQ4I2iy4b5sErkxo6jAkgmumvhgqLwLB2fmiGl3yDt8+VVZdB1MUULZMzf+6ubarNc7Mwn/sxHUqK4GhEndhg==} + langchain@0.3.14: + resolution: {integrity: sha512-U6NpGSQP/R/RfZFin6OOxFYgLNAwtfgKEWKxT3whw2LIDUnjXrgbulkS5R5iXIU8V10kAXhDvj+FyEUI8C4U6Q==} engines: {node: '>=18'} peerDependencies: '@langchain/anthropic': '*' @@ -22381,8 +22591,8 @@ packages: zod: optional: true - openai@4.81.0: - resolution: {integrity: sha512-lXkFkV+He3O6RGnldHncRGef4uWHssDsAVwN5I3bWcgIdDPy/w8vgtIAwvZxAj49m4WiwWVD0+eGTJ9xOv/ISA==} + openai@4.82.0: + resolution: {integrity: sha512-1bTxOVGZuVGsKKUWbh3BEwX1QxIXUftJv+9COhhGGVDTFwiaOd4gWsMynF2ewj1mg6by3/O+U8+EEHpWRdPaJg==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -28518,7 +28728,13 @@ snapshots: '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) zod: 3.23.8 - '@ai-sdk/openai@1.1.5(zod@3.24.1)': + '@ai-sdk/openai@1.1.9(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 1.0.6 + '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) + zod: 3.23.8 + + '@ai-sdk/openai@1.1.9(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) @@ -28556,20 +28772,20 @@ snapshots: react: 19.0.0 zod: 3.23.8 - '@ai-sdk/react@1.1.6(react@19.0.0)(zod@3.23.8)': + '@ai-sdk/react@1.1.8(react@19.0.0)(zod@3.23.8)': dependencies: '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) - '@ai-sdk/ui-utils': 1.1.6(zod@3.23.8) + '@ai-sdk/ui-utils': 1.1.8(zod@3.23.8) swr: 2.3.0(react@19.0.0) throttleit: 2.1.0 optionalDependencies: react: 19.0.0 zod: 3.23.8 - '@ai-sdk/react@1.1.6(react@19.0.0)(zod@3.24.1)': + '@ai-sdk/react@1.1.8(react@19.0.0)(zod@3.24.1)': dependencies: '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.6(zod@3.24.1) + '@ai-sdk/ui-utils': 1.1.8(zod@3.24.1) swr: 2.3.0(react@19.0.0) throttleit: 2.1.0 optionalDependencies: @@ -28603,7 +28819,7 @@ snapshots: optionalDependencies: zod: 3.23.8 - '@ai-sdk/ui-utils@1.1.6(zod@3.23.8)': + '@ai-sdk/ui-utils@1.1.8(zod@3.23.8)': dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) @@ -28611,7 +28827,7 @@ snapshots: optionalDependencies: zod: 3.23.8 - '@ai-sdk/ui-utils@1.1.6(zod@3.24.1)': + '@ai-sdk/ui-utils@1.1.8(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) @@ -28619,13 +28835,13 @@ snapshots: optionalDependencies: zod: 3.24.1 - '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.6.3))(zod@3.23.8)': + '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.7.3))(zod@3.23.8)': dependencies: '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - swrv: 1.1.0(vue@3.5.13(typescript@5.6.3)) + swrv: 1.1.0(vue@3.5.13(typescript@5.7.3)) optionalDependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.3) transitivePeerDependencies: - zod @@ -30466,6 +30682,17 @@ snapshots: - debug - utf-8-validate + '@biomejs/biome@1.5.3': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.5.3 + '@biomejs/cli-darwin-x64': 1.5.3 + '@biomejs/cli-linux-arm64': 1.5.3 + '@biomejs/cli-linux-arm64-musl': 1.5.3 + '@biomejs/cli-linux-x64': 1.5.3 + '@biomejs/cli-linux-x64-musl': 1.5.3 + '@biomejs/cli-win32-arm64': 1.5.3 + '@biomejs/cli-win32-x64': 1.5.3 + '@biomejs/biome@1.9.4': optionalDependencies: '@biomejs/cli-darwin-arm64': 1.9.4 @@ -30477,27 +30704,51 @@ snapshots: '@biomejs/cli-win32-arm64': 1.9.4 '@biomejs/cli-win32-x64': 1.9.4 + '@biomejs/cli-darwin-arm64@1.5.3': + optional: true + '@biomejs/cli-darwin-arm64@1.9.4': optional: true + '@biomejs/cli-darwin-x64@1.5.3': + optional: true + '@biomejs/cli-darwin-x64@1.9.4': optional: true + '@biomejs/cli-linux-arm64-musl@1.5.3': + optional: true + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true + '@biomejs/cli-linux-arm64@1.5.3': + optional: true + '@biomejs/cli-linux-arm64@1.9.4': optional: true + '@biomejs/cli-linux-x64-musl@1.5.3': + optional: true + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true + '@biomejs/cli-linux-x64@1.5.3': + optional: true + '@biomejs/cli-linux-x64@1.9.4': optional: true + '@biomejs/cli-win32-arm64@1.5.3': + optional: true + '@biomejs/cli-win32-arm64@1.9.4': optional: true + '@biomejs/cli-win32-x64@1.5.3': + optional: true + '@biomejs/cli-win32-x64@1.9.4': optional: true @@ -30576,6 +30827,37 @@ snapshots: dependencies: '@soncodi/signal': 2.0.7 + '@cetusprotocol/aggregator-sdk@0.3.21(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-plugin-macros@3.1.0)(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)': + dependencies: + '@babel/core': 7.26.7 + '@babel/preset-env': 7.26.7(@babel/core@7.26.7) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.7) + '@jest/globals': 29.7.0 + '@mysten/sui': 1.21.1(typescript@5.7.3) + '@pythnetwork/pyth-sui-js': 2.1.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) + '@types/jest': 29.5.14 + '@types/node': 20.17.9 + babel-jest: 29.7.0(@babel/core@7.26.7) + bip39: 3.1.0 + dotenv: 16.4.7 + jest: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0) + node-fetch: 3.3.2 + ts-jest: 29.2.5(@babel/core@7.26.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.7))(jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0))(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - '@jest/transform' + - '@jest/types' + - babel-plugin-macros + - bufferutil + - debug + - esbuild + - node-notifier + - supports-color + - ts-node + - utf-8-validate + '@cfworker/json-schema@4.1.0': {} '@chain-registry/types@0.50.59': {} @@ -30844,11 +31126,11 @@ snapshots: - typescript - utf-8-validate - '@coinbase/cdp-langchain@0.0.11(@coinbase/coinbase-sdk@0.15.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8))(bufferutil@4.0.9)(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))(typescript@5.7.3)(utf-8-validate@6.0.5)': + '@coinbase/cdp-langchain@0.0.11(@coinbase/coinbase-sdk@0.15.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8))(bufferutil@4.0.9)(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))(typescript@5.7.3)(utf-8-validate@6.0.5)': dependencies: '@coinbase/cdp-agentkit-core': 0.0.10(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5) '@coinbase/coinbase-sdk': 0.15.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)(zod@3.23.8) - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) zod: 3.23.8 transitivePeerDependencies: - bufferutil @@ -33136,7 +33418,7 @@ snapshots: '@pythnetwork/pyth-solana-receiver': 0.7.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/spl-token': 0.3.7(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/web3.js': 1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@triton-one/yellowstone-grpc': 1.3.0 anchor-bankrun: 0.3.0(@coral-xyz/anchor@0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(solana-bankrun@0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) nanoid: 3.3.4 @@ -33171,7 +33453,7 @@ snapshots: '@pythnetwork/pyth-solana-receiver': 0.7.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/spl-token': 0.3.7(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/web3.js': 1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@triton-one/yellowstone-grpc': 1.3.0 anchor-bankrun: 0.3.0(@coral-xyz/anchor@0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(solana-bankrun@0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) nanoid: 3.3.4 @@ -33206,7 +33488,7 @@ snapshots: '@pythnetwork/pyth-solana-receiver': 0.7.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/spl-token': 0.3.7(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@solana/web3.js': 1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@switchboard-xyz/on-demand': 1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@triton-one/yellowstone-grpc': 1.3.0 anchor-bankrun: 0.3.0(@coral-xyz/anchor@0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@solana/web3.js@1.92.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(solana-bankrun@0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) nanoid: 3.3.4 @@ -33389,7 +33671,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -33430,7 +33712,7 @@ snapshots: - vue - ws - '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@ai-sdk/anthropic': 0.0.56(zod@3.23.8) '@ai-sdk/google': 0.0.55(zod@3.23.8) @@ -33441,7 +33723,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -33482,7 +33764,7 @@ snapshots: - vue - ws - '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@elizaos/core@0.1.8(@google-cloud/vertexai@1.9.2(encoding@0.1.13))(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@ai-sdk/anthropic': 0.0.56(zod@3.23.8) '@ai-sdk/google': 0.0.55(zod@3.23.8) @@ -33493,7 +33775,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -33502,7 +33784,7 @@ snapshots: handlebars: 4.7.8 js-sha1: 0.7.0 js-tiktoken: 1.0.15 - langchain: 0.3.6(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + langchain: 0.3.6(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) ollama-ai-provider: 0.16.1(zod@3.23.8) openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) tinyld: 1.3.4 @@ -33545,7 +33827,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -33554,7 +33836,7 @@ snapshots: handlebars: 4.7.8 js-sha1: 0.7.0 js-tiktoken: 1.0.15 - langchain: 0.3.6(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + langchain: 0.3.6(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) ollama-ai-provider: 0.16.1(zod@3.23.8) openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) tinyld: 1.3.4 @@ -33597,7 +33879,7 @@ snapshots: '@anthropic-ai/sdk': 0.30.1(encoding@0.1.13) '@fal-ai/client': 1.2.0 '@types/uuid': 10.0.0 - ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + ai: 3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) anthropic-vertex-ai: 1.0.2(encoding@0.1.13)(zod@3.23.8) fastembed: 1.14.1 fastestsmallesttextencoderdecoder: 1.0.22 @@ -34812,16 +35094,16 @@ snapshots: '@shikijs/types': 1.29.1 '@shikijs/vscode-textmate': 10.0.1 - '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.11(react@19.0.0)(zod@3.23.8))': + '@goat-sdk/adapter-vercel-ai@0.2.0(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.16(react@19.0.0)(zod@3.23.8))': dependencies: '@goat-sdk/core': 0.4.6(zod@3.23.8) - ai: 4.1.11(react@19.0.0)(zod@3.23.8) + ai: 4.1.16(react@19.0.0)(zod@3.23.8) zod: 3.23.8 - '@goat-sdk/adapter-vercel-ai@0.2.7(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.11(react@19.0.0)(zod@3.23.8))(zod@3.23.8)': + '@goat-sdk/adapter-vercel-ai@0.2.7(@goat-sdk/core@0.4.6(zod@3.23.8))(ai@4.1.16(react@19.0.0)(zod@3.23.8))(zod@3.23.8)': dependencies: '@goat-sdk/core': 0.4.6(zod@3.23.8) - ai: 4.1.11(react@19.0.0)(zod@3.23.8) + ai: 4.1.16(react@19.0.0)(zod@3.23.8) zod: 3.23.8 '@goat-sdk/core@0.3.8(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)': @@ -36217,14 +36499,14 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))': + '@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8))': dependencies: '@cfworker/json-schema': 4.1.0 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.15 - langsmith: 0.3.3(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + langsmith: 0.3.3(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -36234,14 +36516,14 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))': + '@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))': dependencies: '@cfworker/json-schema': 4.1.0 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.15 - langsmith: 0.3.3(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) + langsmith: 0.3.3(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -36251,17 +36533,22 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8))': dependencies: - '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - groq-sdk: 0.5.0(encoding@0.1.13) + '@cfworker/json-schema': 4.1.0 + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.15 + langsmith: 0.3.3(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - - encoding - - ws - optional: true + - openai '@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: @@ -36287,20 +36574,32 @@ snapshots: - ws optional: true - '@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) groq-sdk: 0.5.0(encoding@0.1.13) zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - encoding - ws + optional: true - '@langchain/langgraph-checkpoint@0.0.14(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': + '@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + groq-sdk: 0.5.0(encoding@0.1.13) + zod: 3.23.8 + zod-to-json-schema: 3.24.1(zod@3.23.8) + transitivePeerDependencies: + - encoding + - ws + + '@langchain/langgraph-checkpoint@0.0.14(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) uuid: 10.0.0 '@langchain/langgraph-sdk@0.0.36': @@ -36310,52 +36609,52 @@ snapshots: p-retry: 4.6.2 uuid: 9.0.1 - '@langchain/langgraph@0.2.43(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': + '@langchain/langgraph@0.2.43(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/langgraph-checkpoint': 0.0.14(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/langgraph-checkpoint': 0.0.14(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) '@langchain/langgraph-sdk': 0.0.36 uuid: 10.0.0 zod: 3.23.8 - '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 - openai: 4.81.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - encoding - ws - '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': dependencies: '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 - openai: 4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8) zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - encoding - ws - '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))': + '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) js-tiktoken: 1.0.15 - openai: 4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8) + openai: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: - encoding - ws - '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@langchain/openai@0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) js-tiktoken: 1.0.15 - openai: 4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) transitivePeerDependencies: @@ -36367,9 +36666,14 @@ snapshots: '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))': + dependencies: + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) + js-tiktoken: 1.0.15 + + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))': dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) js-tiktoken: 1.0.15 '@ledgerhq/devices@6.27.1': @@ -36897,7 +37201,7 @@ snapshots: - uploadthing - utf-8-validate - '@lit-protocol/auth-browser@6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2)': + '@lit-protocol/auth-browser@6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2)': dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -36913,7 +37217,7 @@ snapshots: '@lit-protocol/misc-browser': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -37007,7 +37311,7 @@ snapshots: - typescript - utf-8-validate - '@lit-protocol/aw-tool@0.1.0-16(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@lit-protocol/aw-tool@0.1.0-17(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@lit-protocol/constants': 7.0.2(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) tslib: 2.8.1 @@ -37374,7 +37678,7 @@ snapshots: - typescript - utf-8-validate - '@lit-protocol/lit-auth-client@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@lit-protocol/lit-auth-client@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -37393,7 +37697,7 @@ snapshots: '@lit-protocol/contracts-sdk': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/core': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/crypto': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/lit-node-client-nodejs': 7.0.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -37403,7 +37707,7 @@ snapshots: '@lit-protocol/uint8arrays': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/wasm': 7.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@openagenda/verror': 3.1.4 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) ajv: 8.17.1 base64url: 3.0.1 bech32: 2.0.0 @@ -37538,7 +37842,7 @@ snapshots: - typescript - utf-8-validate - '@lit-protocol/lit-node-client@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': + '@lit-protocol/lit-node-client@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': dependencies: '@cosmjs/amino': 0.30.1 '@cosmjs/crypto': 0.30.1 @@ -37553,7 +37857,7 @@ snapshots: '@ethersproject/wallet': 5.7.0 '@lit-protocol/access-control-conditions': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/accs-schemas': 0.0.19 - '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) + '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) '@lit-protocol/auth-helpers': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/constants': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -37571,7 +37875,7 @@ snapshots: '@lit-protocol/sev-snp-utils-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 bitcoinjs-lib: 6.1.7 @@ -37616,7 +37920,7 @@ snapshots: - utf-8-validate - web-vitals - '@lit-protocol/lit-node-client@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@lit-protocol/lit-node-client@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -37644,7 +37948,7 @@ snapshots: '@lit-protocol/uint8arrays': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/wasm': 7.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@openagenda/verror': 3.1.4 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) ajv: 8.17.1 bech32: 2.0.0 cross-fetch: 3.1.8(encoding@0.1.13) @@ -37880,7 +38184,7 @@ snapshots: - uploadthing - utf-8-validate - '@lit-protocol/pkp-base@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': + '@lit-protocol/pkp-base@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': dependencies: '@cosmjs/amino': 0.30.1 '@cosmjs/crypto': 0.30.1 @@ -37895,7 +38199,7 @@ snapshots: '@ethersproject/wallet': 5.7.0 '@lit-protocol/access-control-conditions': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/accs-schemas': 0.0.19 - '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) + '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) '@lit-protocol/auth-helpers': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/constants': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -37905,7 +38209,7 @@ snapshots: '@lit-protocol/crypto': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/encryption': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/lit-node-client-nodejs': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -37914,7 +38218,7 @@ snapshots: '@lit-protocol/sev-snp-utils-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 bitcoinjs-lib: 6.1.7 @@ -37960,7 +38264,7 @@ snapshots: - utf-8-validate - web-vitals - '@lit-protocol/pkp-base@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@lit-protocol/pkp-base@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -37979,7 +38283,7 @@ snapshots: '@lit-protocol/contracts-sdk': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/core': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/crypto': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/lit-node-client-nodejs': 7.0.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -37989,7 +38293,7 @@ snapshots: '@lit-protocol/uint8arrays': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/wasm': 7.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@openagenda/verror': 3.1.4 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) ajv: 8.17.1 bech32: 2.0.0 cross-fetch: 3.1.8(encoding@0.1.13) @@ -38031,7 +38335,7 @@ snapshots: - uploadthing - utf-8-validate - '@lit-protocol/pkp-client@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': + '@lit-protocol/pkp-client@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': dependencies: '@cosmjs/amino': 0.30.1 '@cosmjs/crypto': 0.30.1 @@ -38058,7 +38362,7 @@ snapshots: '@ethersproject/wordlists': 5.7.0 '@lit-protocol/access-control-conditions': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/accs-schemas': 0.0.19 - '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) + '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) '@lit-protocol/auth-helpers': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/constants': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -38068,20 +38372,20 @@ snapshots: '@lit-protocol/crypto': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/encryption': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/lit-node-client-nodejs': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc-browser': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/nacl': 6.11.3 - '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) - '@lit-protocol/pkp-cosmos': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) - '@lit-protocol/pkp-ethers': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/pkp-cosmos': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/pkp-ethers': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/sev-snp-utils-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@metamask/eth-sig-util': 5.0.2 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 bitcoinjs-lib: 6.1.7 @@ -38129,7 +38433,7 @@ snapshots: - utf-8-validate - web-vitals - '@lit-protocol/pkp-cosmos@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': + '@lit-protocol/pkp-cosmos@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': dependencies: '@cosmjs/amino': 0.30.1 '@cosmjs/crypto': 0.30.1 @@ -38146,7 +38450,7 @@ snapshots: '@ethersproject/wallet': 5.7.0 '@lit-protocol/access-control-conditions': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/accs-schemas': 0.0.19 - '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) + '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) '@lit-protocol/auth-helpers': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/constants': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -38156,17 +38460,17 @@ snapshots: '@lit-protocol/crypto': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/encryption': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/lit-node-client-nodejs': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc-browser': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/nacl': 6.11.3 - '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/sev-snp-utils-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 bitcoinjs-lib: 6.1.7 @@ -38214,7 +38518,7 @@ snapshots: - utf-8-validate - web-vitals - '@lit-protocol/pkp-ethers@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': + '@lit-protocol/pkp-ethers@6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2)': dependencies: '@cosmjs/amino': 0.30.1 '@cosmjs/crypto': 0.30.1 @@ -38239,7 +38543,7 @@ snapshots: '@ethersproject/wordlists': 5.7.0 '@lit-protocol/access-control-conditions': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/accs-schemas': 0.0.19 - '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) + '@lit-protocol/auth-browser': 6.11.3(@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10))(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(siwe@2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(tweetnacl-util@0.15.1)(tweetnacl@1.0.3)(typescript@5.7.3)(utf-8-validate@5.0.10)(util@0.12.5)(web-vitals@3.5.2) '@lit-protocol/auth-helpers': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/bls-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/constants': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -38249,18 +38553,18 @@ snapshots: '@lit-protocol/crypto': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/ecdsa-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/encryption': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/lit-node-client': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(tslib@2.8.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/lit-node-client-nodejs': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc-browser': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/nacl': 6.11.3 - '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) + '@lit-protocol/pkp-base': 6.11.3(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(react@19.0.0)(typescript@5.7.3)(utf-8-validate@5.0.10)(web-vitals@3.5.2) '@lit-protocol/sev-snp-utils-sdk': 6.11.3(pako@1.0.11) '@lit-protocol/types': 6.11.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 6.11.3(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@metamask/eth-sig-util': 5.0.2 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) '@walletconnect/modal': 2.6.1(react@19.0.0) ajv: 8.17.1 bitcoinjs-lib: 6.1.7 @@ -38306,7 +38610,7 @@ snapshots: - utf-8-validate - web-vitals - '@lit-protocol/pkp-ethers@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10)': + '@lit-protocol/pkp-ethers@7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -38335,19 +38639,19 @@ snapshots: '@lit-protocol/contracts-sdk': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/core': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/crypto': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@lit-protocol/lit-node-client': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/lit-node-client-nodejs': 7.0.4(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/logger': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/misc-browser': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/nacl': 7.0.4 - '@lit-protocol/pkp-base': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(typescript@5.7.3)(utf-8-validate@5.0.10) + '@lit-protocol/pkp-base': 7.0.4(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/types': 7.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@lit-protocol/uint8arrays': 7.0.4(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lit-protocol/wasm': 7.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@metamask/eth-sig-util': 5.0.2 '@openagenda/verror': 3.1.4 - '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/ethereum-provider': 2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) ajv: 8.17.1 bech32: 2.0.0 cross-fetch: 3.1.8(encoding@0.1.13) @@ -39001,7 +39305,7 @@ snapshots: '@metaplex-foundation/mpl-candy-machine@5.1.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: - '@metaplex-foundation/beet': 0.7.1 + '@metaplex-foundation/beet': 0.7.2 '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@metaplex-foundation/cusper': 0.0.2 '@solana/spl-token': 0.3.11(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -40113,7 +40417,7 @@ snapshots: enquirer: 2.3.6 ignore: 5.3.2 minimatch: 9.0.3 - nx: 19.8.14(@swc/core@1.10.11(@swc/helpers@0.5.15)) + nx: 19.8.14(@swc/core@1.10.12(@swc/helpers@0.5.15)) semver: 7.7.0 tmp: 0.2.3 tslib: 2.8.1 @@ -41707,6 +42011,20 @@ snapshots: - debug - utf-8-validate + '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': + dependencies: + '@pythnetwork/price-service-sdk': 1.8.0 + '@types/ws': 8.5.14 + axios: 1.7.9 + axios-retry: 3.9.1 + isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + ts-log: 2.2.7 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + '@pythnetwork/price-service-sdk@1.7.1': dependencies: bn.js: 5.2.1 @@ -41727,6 +42045,19 @@ snapshots: - encoding - utf-8-validate + '@pythnetwork/pyth-sui-js@2.1.0(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5)': + dependencies: + '@mysten/sui': 1.21.1(typescript@5.7.3) + '@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + buffer: 6.0.3 + transitivePeerDependencies: + - '@gql.tada/svelte-support' + - '@gql.tada/vue-support' + - bufferutil + - debug + - typescript + - utf-8-validate + '@pythnetwork/solana-utils@0.4.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -44175,17 +44506,6 @@ snapshots: - encoding - utf-8-validate - '@solana/spl-token@0.3.7(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@solana/spl-token@0.4.6(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -44708,10 +45028,10 @@ snapshots: - fastestsmallesttextencoderdecoder - ws - '@solworks/soltoolkit-sdk@0.0.23(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@solworks/soltoolkit-sdk@0.0.23(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/spl-token': 0.3.7(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.3.11(@solana/web3.js@1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10) '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@types/bn.js': 5.1.6 '@types/node': 18.19.74 @@ -44722,6 +45042,7 @@ snapshots: transitivePeerDependencies: - bufferutil - encoding + - fastestsmallesttextencoderdecoder - utf-8-validate '@soncodi/signal@2.0.7': {} @@ -45152,12 +45473,12 @@ snapshots: - encoding - utf-8-validate - '@switchboard-xyz/on-demand@1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@switchboard-xyz/on-demand@1.2.42(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@brokerloop/ttlcache': 3.2.3 '@coral-xyz/anchor-30': '@coral-xyz/anchor@0.30.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)' '@solana/web3.js': 1.95.5(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@solworks/soltoolkit-sdk': 0.0.23(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@solworks/soltoolkit-sdk': 0.0.23(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) '@switchboard-xyz/common': 2.5.17(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) axios: 1.7.9 big.js: 6.2.2 @@ -45168,6 +45489,7 @@ snapshots: - bufferutil - debug - encoding + - fastestsmallesttextencoderdecoder - utf-8-validate '@szmarczak/http-timer@4.0.6': @@ -47087,11 +47409,11 @@ snapshots: '@vue/shared': 3.5.13 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.3))': + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': dependencies: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.3) '@vue/shared@3.5.13': {} @@ -47196,8 +47518,8 @@ snapshots: '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.9.2 - '@walletconnect/utils': 2.9.2 + '@walletconnect/types': 2.9.2(ioredis@5.4.2) + '@walletconnect/utils': 2.9.2(ioredis@5.4.2) events: 3.3.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 @@ -47303,16 +47625,16 @@ snapshots: - uploadthing - utf-8-validate - '@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@walletconnect/ethereum-provider@2.9.2(@walletconnect/modal@2.6.1(react@19.0.0))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/sign-client': 2.9.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.9.2 - '@walletconnect/universal-provider': 2.9.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.9.2 + '@walletconnect/sign-client': 2.9.2(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.9.2(ioredis@5.4.2) + '@walletconnect/universal-provider': 2.9.2(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/utils': 2.9.2(ioredis@5.4.2) events: 3.3.0 optionalDependencies: '@walletconnect/modal': 2.6.1(react@19.0.0) @@ -47511,7 +47833,7 @@ snapshots: '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 tslib: 1.14.1 - uint8arrays: 3.1.0 + uint8arrays: 3.1.1 '@walletconnect/relay-auth@1.1.0': dependencies: @@ -47599,8 +47921,8 @@ snapshots: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.9.2 - '@walletconnect/utils': 2.9.2 + '@walletconnect/types': 2.9.2(ioredis@5.4.2) + '@walletconnect/utils': 2.9.2(ioredis@5.4.2) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -47786,16 +48108,16 @@ snapshots: - uploadthing - utf-8-validate - '@walletconnect/universal-provider@2.9.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@walletconnect/universal-provider@2.9.2(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.4.2)(utf-8-validate@5.0.10)': dependencies: '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.9.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.9.2 - '@walletconnect/utils': 2.9.2 + '@walletconnect/sign-client': 2.9.2(bufferutil@4.0.9)(ioredis@5.4.2)(utf-8-validate@5.0.10) + '@walletconnect/types': 2.9.2(ioredis@5.4.2) + '@walletconnect/utils': 2.9.2(ioredis@5.4.2) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -47900,7 +48222,6 @@ snapshots: - ioredis - uploadthing - '@walletconnect/utils@2.9.2(ioredis@5.4.2)': dependencies: '@stablelib/chacha20poly1305': 1.0.1 @@ -47911,7 +48232,7 @@ snapshots: '@walletconnect/relay-api': 1.0.11 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.9.2 + '@walletconnect/types': 2.9.2(ioredis@5.4.2) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -48400,16 +48721,16 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai-agent-sdk-js@0.0.2(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@6.0.5): + ai-agent-sdk-js@0.0.2(bufferutil@4.0.9)(typescript@5.7.3)(utf-8-validate@5.0.10): dependencies: - ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@6.0.5) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) valibot: 1.0.0-beta.14(typescript@5.7.3) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.6.3))(zod@3.23.8): + ai@3.4.33(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(react@19.0.0)(sswr@2.1.0(svelte@5.19.5))(svelte@5.19.5)(vue@3.5.13(typescript@5.7.3))(zod@3.23.8): dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) @@ -48417,7 +48738,7 @@ snapshots: '@ai-sdk/solid': 0.0.54(zod@3.23.8) '@ai-sdk/svelte': 0.0.57(svelte@5.19.5)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.50(zod@3.23.8) - '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.6.3))(zod@3.23.8) + '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.7.3))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -48434,24 +48755,24 @@ snapshots: - solid-js - vue - ai@4.1.11(react@19.0.0)(zod@3.23.8): + ai@4.1.16(react@19.0.0)(zod@3.23.8): dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.23.8) - '@ai-sdk/react': 1.1.6(react@19.0.0)(zod@3.23.8) - '@ai-sdk/ui-utils': 1.1.6(zod@3.23.8) + '@ai-sdk/react': 1.1.8(react@19.0.0)(zod@3.23.8) + '@ai-sdk/ui-utils': 1.1.8(zod@3.23.8) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 optionalDependencies: react: 19.0.0 zod: 3.23.8 - ai@4.1.11(react@19.0.0)(zod@3.24.1): + ai@4.1.16(react@19.0.0)(zod@3.24.1): dependencies: '@ai-sdk/provider': 1.0.6 '@ai-sdk/provider-utils': 2.1.2(zod@3.24.1) - '@ai-sdk/react': 1.1.6(react@19.0.0)(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.6(zod@3.24.1) + '@ai-sdk/react': 1.1.8(react@19.0.0)(zod@3.24.1) + '@ai-sdk/ui-utils': 1.1.8(zod@3.24.1) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 optionalDependencies: @@ -49768,7 +50089,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001696 - electron-to-chromium: 1.5.88 + electron-to-chromium: 1.5.90 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -51961,7 +52282,7 @@ snapshots: microsoft-cognitiveservices-speech-sdk: 1.42.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) msgpack-lite: 0.1.26 onnxruntime-node: 1.20.1 - openai: 4.73.0(encoding@0.1.13)(zod@3.24.1) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) sam-js: 0.3.1 strip-ansi: 7.1.0 tar: 7.4.3 @@ -53452,7 +53773,7 @@ snapshots: dependencies: traverse-chain: 0.1.0 - flash-sdk@2.27.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10): + flash-sdk@2.27.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@pythnetwork/client': 2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -53480,7 +53801,7 @@ snapshots: - typescript - utf-8-validate - flash-sdk@2.27.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10): + flash-sdk@2.27.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10): dependencies: '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@pythnetwork/client': 2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -55520,6 +55841,10 @@ snapshots: dependencies: ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)): + dependencies: + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) + isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)): dependencies: ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -56436,19 +56761,6 @@ snapshots: - utf-8-validate jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0): - - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest@29.7.0(@types/node@20.17.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@20.17.9)(typescript@5.7.3)) '@jest/types': 29.6.3 @@ -56923,15 +57235,15 @@ snapshots: inherits: 2.0.4 stream-splicer: 2.0.1 - langchain@0.3.14(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + langchain@0.3.14(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.3.3(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + langsmith: 0.3.3(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 @@ -56939,7 +57251,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) axios: 1.7.9 handlebars: 4.7.8 transitivePeerDependencies: @@ -56947,10 +57259,10 @@ snapshots: - openai - ws - langchain@0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + langchain@0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 @@ -56963,7 +57275,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) axios: 1.7.9 handlebars: 4.7.8 transitivePeerDependencies: @@ -56971,10 +57283,10 @@ snapshots: - openai - ws - langchain@0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + langchain@0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)): dependencies: '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 @@ -56987,7 +57299,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) axios: 1.7.9 handlebars: 4.7.8 transitivePeerDependencies: @@ -56995,15 +57307,15 @@ snapshots: - openai - ws - langchain@0.3.6(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)): + langchain@0.3.6(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8))(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@langchain/core': 0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.2.15(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)) + langsmith: 0.2.15(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 @@ -57011,7 +57323,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)))(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) axios: 1.7.9 handlebars: 4.7.8 transitivePeerDependencies: @@ -57019,11 +57331,11 @@ snapshots: - openai - ws - langchain@0.3.6(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + langchain@0.3.6(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 jsonpointer: 5.0.1 @@ -57035,7 +57347,7 @@ snapshots: zod: 3.23.8 zod-to-json-schema: 3.24.1(zod@3.23.8) optionalDependencies: - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) axios: 1.7.9 handlebars: 4.7.8 transitivePeerDependencies: @@ -57046,7 +57358,7 @@ snapshots: langchain@0.3.6(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.73.0(encoding@0.1.13)(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)): dependencies: '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) js-tiktoken: 1.0.15 js-yaml: 4.1.0 jsonpointer: 5.0.1 @@ -57088,6 +57400,17 @@ snapshots: optionalDependencies: openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) + langsmith@0.2.15(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)): + dependencies: + '@types/uuid': 10.0.0 + commander: 10.0.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.7.0 + uuid: 10.0.0 + optionalDependencies: + openai: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) + langsmith@0.3.3(openai@4.73.0(encoding@0.1.13)(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 @@ -57100,7 +57423,19 @@ snapshots: optionalDependencies: openai: 4.73.0(encoding@0.1.13)(zod@3.23.8) - langsmith@0.3.3(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)): + langsmith@0.3.3(openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8)): + dependencies: + '@types/uuid': 10.0.0 + chalk: 4.1.2 + console-table-printer: 2.12.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.7.0 + uuid: 10.0.0 + optionalDependencies: + openai: 4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8) + + langsmith@0.3.3(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 @@ -57110,9 +57445,9 @@ snapshots: semver: 7.7.0 uuid: 10.0.0 optionalDependencies: - openai: 4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) - langsmith@0.3.3(openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)): + langsmith@0.3.3(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 @@ -57122,7 +57457,7 @@ snapshots: semver: 7.7.0 uuid: 10.0.0 optionalDependencies: - openai: 4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8) language-subtag-registry@0.3.23: {} @@ -59453,7 +59788,7 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.81.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8): + openai@4.82.0(encoding@0.1.13)(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8): dependencies: '@types/node': 18.19.74 '@types/node-fetch': 2.6.12 @@ -59468,7 +59803,7 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8): + openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.23.8): dependencies: '@types/node': 18.19.74 '@types/node-fetch': 2.6.12 @@ -59483,7 +59818,7 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1): + openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1): dependencies: '@types/node': 18.19.74 '@types/node-fetch': 2.6.12 @@ -59498,7 +59833,7 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.81.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8): + openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(zod@3.23.8): dependencies: '@types/node': 18.19.74 '@types/node-fetch': 2.6.12 @@ -59564,7 +59899,7 @@ snapshots: ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 is-interactive: 1.0.0 @@ -60574,7 +60909,7 @@ snapshots: jiti: 1.21.7 postcss: 8.5.1 semver: 7.7.0 - webpack: 5.97.1(@swc/core@1.10.11(@swc/helpers@0.5.15)) + webpack: 5.97.1(@swc/core@1.10.12(@swc/helpers@0.5.15)) transitivePeerDependencies: - typescript @@ -62929,16 +63264,16 @@ snapshots: solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.6.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: '@3land/listings-sdk': 0.0.7(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@ai-sdk/openai': 1.1.5(zod@3.24.1) + '@ai-sdk/openai': 1.1.9(zod@3.24.1) '@bonfida/spl-name-service': 3.0.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.107.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@langchain/langgraph': 0.2.43(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@20.17.9)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/langgraph': 0.2.43(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@mercurial-finance/dynamic-amm-sdk': 1.1.23(@solana/buffer-layout@4.0.1)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) @@ -62962,16 +63297,16 @@ snapshots: '@tensor-oss/tensorswap-sdk': 4.5.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) '@tiplink/api': 0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10) '@voltr/vault-sdk': 0.1.4(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) - ai: 4.1.11(react@19.0.0)(zod@3.24.1) + ai: 4.1.16(react@19.0.0)(zod@3.24.1) bn.js: 5.2.1 bs58: 5.0.0 chai: 5.1.2 decimal.js: 10.5.0 dotenv: 16.4.7 - flash-sdk: 2.27.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + flash-sdk: 2.27.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) form-data: 4.0.1 - langchain: 0.3.14(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - openai: 4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) + langchain: 0.3.14(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) typedoc: 0.27.6(typescript@5.6.3) zod: 3.24.1 transitivePeerDependencies: @@ -63012,16 +63347,16 @@ snapshots: solana-agent-kit@1.4.4(@noble/hashes@1.7.1)(@solana/buffer-layout@4.0.1)(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(handlebars@4.7.8)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.7.3)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: '@3land/listings-sdk': 0.0.7(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@ai-sdk/openai': 1.1.5(zod@3.24.1) + '@ai-sdk/openai': 1.1.9(zod@3.24.1) '@bonfida/spl-name-service': 3.0.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@coral-xyz/anchor': 0.28.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@drift-labs/sdk': 2.107.0-beta.3(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.11(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) - '@langchain/core': 0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) - '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@langchain/langgraph': 0.2.43(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) - '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@drift-labs/vaults-sdk': 0.2.68(@swc/core@1.10.12(@swc/helpers@0.5.15))(@types/node@22.12.0)(arweave@1.15.5)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10) + '@langchain/core': 0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)) + '@langchain/groq': 0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@langchain/langgraph': 0.2.43(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))) + '@langchain/openai': 0.3.17(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@mercurial-finance/dynamic-amm-sdk': 1.1.23(@solana/buffer-layout@4.0.1)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) @@ -63045,16 +63380,16 @@ snapshots: '@tensor-oss/tensorswap-sdk': 4.5.0(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) '@tiplink/api': 0.3.1(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10) '@voltr/vault-sdk': 0.1.4(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) - ai: 4.1.11(react@19.0.0)(zod@3.24.1) + ai: 4.1.16(react@19.0.0)(zod@3.24.1) bn.js: 5.2.1 bs58: 5.0.0 chai: 5.1.2 decimal.js: 10.5.0 dotenv: 16.4.7 - flash-sdk: 2.27.1(@swc/core@1.10.11(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) + flash-sdk: 2.27.1(@swc/core@1.10.12(@swc/helpers@0.5.15))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.3)(utf-8-validate@5.0.10) form-data: 4.0.1 - langchain: 0.3.14(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - openai: 4.80.1(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) + langchain: 0.3.14(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(@langchain/groq@0.1.3(@langchain/core@0.3.37(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1)))(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(axios@1.7.9)(encoding@0.1.13)(handlebars@4.7.8)(openai@4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1))(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + openai: 4.82.0(encoding@0.1.13)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.1) typedoc: 0.27.6(typescript@5.7.3) zod: 3.24.1 transitivePeerDependencies: @@ -63732,9 +64067,9 @@ snapshots: swrev@4.0.0: {} - swrv@1.1.0(vue@3.5.13(typescript@5.6.3)): + swrv@1.1.0(vue@3.5.13(typescript@5.7.3)): dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.3) symbol-observable@2.0.3: {} @@ -66630,15 +66965,15 @@ snapshots: vscode-uri@3.0.8: {} - vue@3.5.13(typescript@5.6.3): + vue@3.5.13(typescript@5.7.3): dependencies: '@vue/compiler-dom': 3.5.13 '@vue/compiler-sfc': 3.5.13 '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.6.3)) + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) '@vue/shared': 3.5.13 optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.3 w3c-hr-time@1.0.2: dependencies: From 9822f49d62026658b77f1ac85b0669a2a3d8e9c8 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 05:02:21 +0700 Subject: [PATCH 41/51] Fixed all the issues and added biome --- packages/plugin-3d-generation/biome.json | 41 ++++++++++++++++++++++ packages/plugin-3d-generation/package.json | 7 +++- packages/plugin-3d-generation/src/index.ts | 10 +++--- 3 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 packages/plugin-3d-generation/biome.json diff --git a/packages/plugin-3d-generation/biome.json b/packages/plugin-3d-generation/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-3d-generation/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-3d-generation/package.json b/packages/plugin-3d-generation/package.json index cd3e821b0ad..85e57b61212 100644 --- a/packages/plugin-3d-generation/package.json +++ b/packages/plugin-3d-generation/package.json @@ -24,12 +24,17 @@ "whatwg-url": "7.1.0" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "vitest": "^2.1.5" }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", - "test": "vitest run" + "test": "vitest run", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "peerDependencies": { "whatwg-url": "7.1.0" diff --git a/packages/plugin-3d-generation/src/index.ts b/packages/plugin-3d-generation/src/index.ts index f0d2bb2e5db..b6b516bee19 100644 --- a/packages/plugin-3d-generation/src/index.ts +++ b/packages/plugin-3d-generation/src/index.ts @@ -10,10 +10,10 @@ import type { import { fal } from "@fal-ai/client"; import { FAL_CONSTANTS } from "./constants"; -import * as fs from "fs"; -import { Buffer } from "buffer"; -import * as path from "path"; -import * as process from "process"; +import * as fs from "node:fs"; +import { Buffer } from "node:buffer"; +import * as path from "node:path"; +import * as process from "node:process"; const generate3D = async (prompt: string, runtime: IAgentRuntime) => { process.env["FAL_KEY"] = @@ -84,7 +84,7 @@ const ThreeDGeneration: Action = { runtime: IAgentRuntime, message: Memory, _state: State, - _options: any, + _options: Record, callback: HandlerCallback ) => { elizaLogger.log("3D generation request:", message); From 329cc14ea3a8465ebf0fe26df9711dc0a6919c9f Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 05:29:51 +0700 Subject: [PATCH 42/51] Fixed all the issues and added Biome --- packages/plugin-0x/biome.json | 41 ++++++++++++++ packages/plugin-0x/package.json | 13 ++++- packages/plugin-0x/src/EVMtokenRegistry.ts | 6 +-- .../src/actions/getIndicativePrice.ts | 30 +++++------ packages/plugin-0x/src/actions/getQuote.ts | 54 +++++++++---------- packages/plugin-0x/src/actions/swap.ts | 29 +++++----- packages/plugin-0x/src/constants.ts | 2 +- .../src/hooks.ts/useGetWalletClient.ts | 4 +- packages/plugin-0x/src/index.ts | 2 +- 9 files changed, 115 insertions(+), 66 deletions(-) create mode 100644 packages/plugin-0x/biome.json diff --git a/packages/plugin-0x/biome.json b/packages/plugin-0x/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-0x/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-0x/package.json b/packages/plugin-0x/package.json index 517c3f96fee..2949450152e 100644 --- a/packages/plugin-0x/package.json +++ b/packages/plugin-0x/package.json @@ -21,13 +21,22 @@ "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", - "test": "vitest run" + "test": "vitest run", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "dependencies": { + "@elizaos/core": "workspace:*", + "tsup": "^8.0.1", + "whatwg-url": "7.1.0", "@0x/swap-ts-sdk": "2.1.1" }, "devDependencies": { - "tsup": "^8.0.1" + "tsup": "^8.0.1", + "@biomejs/biome": "1.5.3", + "vitest": "^2.1.5" }, "peerDependencies": { "@elizaos/core": "workspace:*", diff --git a/packages/plugin-0x/src/EVMtokenRegistry.ts b/packages/plugin-0x/src/EVMtokenRegistry.ts index 51a674b941d..39075f71a5a 100644 --- a/packages/plugin-0x/src/EVMtokenRegistry.ts +++ b/packages/plugin-0x/src/EVMtokenRegistry.ts @@ -1,9 +1,9 @@ import { elizaLogger } from "@elizaos/core"; import { Chains, - TokenMetadata, - TrustWalletGithubJson, - TrustWalletTokenMetadata, + type TokenMetadata, + type TrustWalletGithubJson, + type TrustWalletTokenMetadata, } from "./types"; import { NATIVE_TOKENS } from "./constants"; diff --git a/packages/plugin-0x/src/actions/getIndicativePrice.ts b/packages/plugin-0x/src/actions/getIndicativePrice.ts index b73ceee4ca8..7a9a469d46c 100644 --- a/packages/plugin-0x/src/actions/getIndicativePrice.ts +++ b/packages/plugin-0x/src/actions/getIndicativePrice.ts @@ -1,9 +1,9 @@ import { - Action, - IAgentRuntime, - Memory, - State, - HandlerCallback, + type Action, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, elizaLogger, composeContext, ModelClass, @@ -13,7 +13,7 @@ import { import { createClientV2 } from "@0x/swap-ts-sdk"; import { getIndicativePriceTemplate } from "../templates"; import { z } from "zod"; -import { Chains, GetIndicativePriceResponse, PriceInquiry } from "../types"; +import { Chains, type GetIndicativePriceResponse, type PriceInquiry } from "../types"; import { parseUnits } from "viem"; import { CHAIN_NAMES, ZX_MEMORY } from "../constants"; import { EVMTokenRegistry } from "../EVMtokenRegistry"; @@ -45,17 +45,17 @@ export const getIndicativePrice: Action = { runtime: IAgentRuntime, message: Memory, state: State, - options: Record, + _options: Record, callback: HandlerCallback ) => { const supportedChains = Object.keys(Chains).join(" | "); - state = !state + const localState = !state ? await runtime.composeState(message, { supportedChains }) : await runtime.updateRecentMessageState(state); const context = composeContext({ - state, + state: localState, template: getIndicativePriceTemplate, }); @@ -86,7 +86,7 @@ export const getIndicativePrice: Action = { text: `Unsupported chain: ${chain}. Supported chains are: ${Object.keys( Chains ) - .filter((k) => isNaN(Number(k))) + .filter((k) => !Number.isNaN(Number(k))) .join(", ")}`, }); return; @@ -148,10 +148,10 @@ export const getIndicativePrice: Action = { // Format amounts to human-readable numbers const buyAmount = Number(price.buyAmount) / - Math.pow(10, buyTokenMetadata.decimals); + (10 ** buyTokenMetadata.decimals); const sellAmount = Number(price.sellAmount) / - Math.pow(10, sellTokenMetadata.decimals); + (10 ** sellTokenMetadata.decimals); await storePriceInquiryToMemory(runtime, message, { sellTokenObject: sellTokenMetadata, @@ -163,13 +163,13 @@ export const getIndicativePrice: Action = { // Updated formatted response to include chain const formattedResponse = [ - `💱 Swap Details:`, - `────────────────`, + "💱 Swap Details:", + "────────────────", `📤 Sell: ${sellAmount.toFixed(4)} ${sellTokenMetadata.symbol}`, `📥 Buy: ${buyAmount.toFixed(4)} ${buyTokenMetadata.symbol}`, `📊 Rate: 1 ${sellTokenMetadata.symbol} = ${(buyAmount / sellAmount).toFixed(4)} ${buyTokenMetadata.symbol}`, `🔗 Chain: ${CHAIN_NAMES[chainId]}`, - `────────────────`, + "────────────────", `💫 Happy with the price? Type 'quote' to continue`, ].join("\n"); diff --git a/packages/plugin-0x/src/actions/getQuote.ts b/packages/plugin-0x/src/actions/getQuote.ts index 9d50beb94d1..d4df553fe71 100644 --- a/packages/plugin-0x/src/actions/getQuote.ts +++ b/packages/plugin-0x/src/actions/getQuote.ts @@ -1,13 +1,13 @@ import { - Action, - IAgentRuntime, - Memory, - State, - HandlerCallback, + type Action, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, elizaLogger, MemoryManager, } from "@elizaos/core"; -import { GetQuoteResponse, PriceInquiry, Quote } from "../types"; +import type { GetQuoteResponse, PriceInquiry, Quote } from "../types"; import { formatTokenAmount } from "../utils"; import { CHAIN_NAMES, NATIVE_TOKENS, ZX_MEMORY } from "../constants"; import { createClientV2 } from "@0x/swap-ts-sdk"; @@ -25,8 +25,8 @@ export const getQuote: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State, - options: Record, + _state: State, + _options: Record, callback: HandlerCallback ) => { const latestPriceInquiry = await retrieveLatestPriceInquiry( @@ -89,7 +89,7 @@ export const getQuote: Action = { const warnings = []; if (quote.issues?.balance) { warnings.push( - `⚠️ Warnings:`, + "⚠️ Warnings:", ` • Insufficient balance (Have ${formatTokenAmount( quote.issues.balance.actual, quote.issues.balance.token, @@ -99,8 +99,8 @@ export const getQuote: Action = { } const formattedResponse = [ - `🎯 Firm Quote Details:`, - `────────────────`, + "🎯 Firm Quote Details:", + "────────────────", // Basic swap details (same as price) `📤 Sell: ${formatTokenAmount( quote.sellAmount, @@ -125,7 +125,7 @@ export const getQuote: Action = { )}`, // Fee breakdown - `💰 Fees Breakdown:`, + "💰 Fees Breakdown:", ` • 0x Protocol Fee: ${formatTokenAmount( quote.fees.zeroExFee?.amount, quote.fees.zeroExFee?.token, @@ -153,8 +153,8 @@ export const getQuote: Action = { ...(warnings.length > 0 ? warnings : []), - `────────────────`, - `💫 Ready to execute? Type 'execute' to continue`, + "────────────────", + "💫 Ready to execute? Type 'execute' to continue", ] .filter(Boolean) .join("\n"); @@ -223,20 +223,20 @@ export const getQuote: Action = { ], }; -const formatTime = (time: string) => { - const expirationDate = new Date(parseInt(time) * 1000); +// const formatTime = (time: string) => { +// const expirationDate = new Date(parseInt(time) * 1000); - // Format: "Mar 15, 2:30 PM" - const formattedTime = expirationDate.toLocaleString(undefined, { - month: "short", - day: "numeric", - hour: "numeric", - minute: "2-digit", - hour12: true, - }); +// // Format: "Mar 15, 2:30 PM" +// const formattedTime = expirationDate.toLocaleString(undefined, { +// month: "short", +// day: "numeric", +// hour: "numeric", +// minute: "2-digit", +// hour12: true, +// }); - return `${formattedTime}`; -}; +// return `${formattedTime}`; +// }; export const retrieveLatestPriceInquiry = async ( runtime: IAgentRuntime, @@ -260,7 +260,7 @@ export const retrieveLatestPriceInquiry = async ( } return null; } catch (error) { - elizaLogger.error(`Failed to retrieve price inquiry: ${error.message}`); + elizaLogger.error("Failed to retrieve price inquiry:", error.message); return null; } }; diff --git a/packages/plugin-0x/src/actions/swap.ts b/packages/plugin-0x/src/actions/swap.ts index 17da2721440..2183d8be3d9 100644 --- a/packages/plugin-0x/src/actions/swap.ts +++ b/packages/plugin-0x/src/actions/swap.ts @@ -1,16 +1,16 @@ import { - Action, - IAgentRuntime, - Memory, - State, - HandlerCallback, + type Action, + type IAgentRuntime, + type Memory, + type State, + type HandlerCallback, elizaLogger, MemoryManager, } from "@elizaos/core"; -import { Hex, numberToHex, concat } from "viem"; +import { type Hex, numberToHex, concat } from "viem"; import { CHAIN_EXPLORERS, ZX_MEMORY } from "../constants"; import { getWalletClient } from "../hooks.ts/useGetWalletClient"; -import { Quote } from "../types"; +import type { Quote } from "../types"; export const swap: Action = { name: "EXECUTE_SWAP_0X", @@ -31,8 +31,8 @@ export const swap: Action = { handler: async ( runtime: IAgentRuntime, message: Memory, - state: State, - options: Record, + _state: State, + _options: Record, callback: HandlerCallback ) => { const latestQuote = await retrieveLatestQuote(runtime, message); @@ -99,13 +99,12 @@ export const swap: Action = { content: { hash: txHash, status: "success" }, }); return true; - } else { - callback({ - text: `❌ Swap failed! Check transaction: ${CHAIN_EXPLORERS[chainId]}/tx/${txHash}`, - content: { hash: txHash, status: "failed" }, - }); - return false; } + callback({ + text: `❌ Swap failed! Check transaction: ${CHAIN_EXPLORERS[chainId]}/tx/${txHash}`, + content: { hash: txHash, status: "failed" }, + }); + return false; } catch (error) { elizaLogger.error("Swap execution failed:", error); callback({ diff --git a/packages/plugin-0x/src/constants.ts b/packages/plugin-0x/src/constants.ts index f51220a229a..f161bbb0729 100644 --- a/packages/plugin-0x/src/constants.ts +++ b/packages/plugin-0x/src/constants.ts @@ -1,4 +1,4 @@ -import { Chains, TokenMetadata } from "./types"; +import { Chains, type TokenMetadata } from "./types"; export const ZX_MEMORY = { price: { diff --git a/packages/plugin-0x/src/hooks.ts/useGetWalletClient.ts b/packages/plugin-0x/src/hooks.ts/useGetWalletClient.ts index 5bc7238bb3b..25516a3808d 100644 --- a/packages/plugin-0x/src/hooks.ts/useGetWalletClient.ts +++ b/packages/plugin-0x/src/hooks.ts/useGetWalletClient.ts @@ -3,8 +3,8 @@ import { http, publicActions, createTestClient, - WalletClient, - PublicClient, + type WalletClient, + type PublicClient, walletActions, } from "viem"; diff --git a/packages/plugin-0x/src/index.ts b/packages/plugin-0x/src/index.ts index f7f493eae20..a8fd1471137 100644 --- a/packages/plugin-0x/src/index.ts +++ b/packages/plugin-0x/src/index.ts @@ -1,4 +1,4 @@ -import { Plugin } from "@elizaos/core"; +import type { Plugin } from "@elizaos/core"; import { getIndicativePrice } from "./actions/getIndicativePrice"; import { getQuote } from "./actions/getQuote"; import { swap } from "./actions/swap"; From 2038b890ae1e4bf9b2015d90081f3d7db6682e63 Mon Sep 17 00:00:00 2001 From: CardinalError Date: Sun, 2 Feb 2025 23:37:04 +0100 Subject: [PATCH 43/51] add mappings from provider --- .../src/actions/getNetworkNewPools.ts | 35 ++++++++++++++++--- .../src/actions/getNetworkTrendingPools.ts | 32 ++++++++++++++--- .../src/templates/networkNewPools.ts | 20 +++++------ 3 files changed, 69 insertions(+), 18 deletions(-) diff --git a/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts b/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts index 2d738ea2fc6..44ef630a616 100644 --- a/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts +++ b/packages/plugin-coingecko/src/actions/getNetworkNewPools.ts @@ -15,6 +15,7 @@ import axios from "axios"; import { z } from "zod"; import { getApiConfig, validateCoingeckoConfig } from "../environment"; import { getNetworkNewPoolsTemplate } from "../templates/networkNewPools"; +import { getNetworksData } from "../providers/networkProvider"; interface NewPool { id: string; @@ -98,15 +99,40 @@ export default { return false; } + // Fetch networks data first + const networks = await getNetworksData(runtime); + + // Fetch networks data first + const networksResponse = await getNetworksData(runtime); + + // Find the matching network from the data array + const network = networksResponse.find((n) => { + const searchTerm = ( + result.object as { networkId: string } + ).networkId.toLowerCase(); + return ( + n.id.toLowerCase() === searchTerm || + n.attributes.name.toLowerCase().includes(searchTerm) || + n.attributes.coingecko_asset_platform_id.toLowerCase() === + searchTerm + ); + }); + + if (!network) { + throw new Error( + `Network ${result.object.networkId} not found in available networks` + ); + } + const config = await validateCoingeckoConfig(runtime); const { baseUrl, apiKey, headerKey } = getApiConfig(config); elizaLogger.log( - `Fetching new pools data for network: ${result.object.networkId}` + `Fetching new pools data for network: ${network.id}` ); const response = await axios.get( - `${baseUrl}/onchain/networks/${result.object.networkId}/new_pools?include=base_token,dex`, + `${baseUrl}/onchain/networks/${network.id}/new_pools?include=base_token,dex`, { headers: { [headerKey]: apiKey, @@ -147,7 +173,7 @@ export default { })); const responseText = [ - `New Pools Overview for ${result.object.networkId.toUpperCase()}:`, + `New Pools Overview for ${network.attributes.name}:`, "", ...formattedData.map((pool, index) => [ @@ -169,7 +195,8 @@ export default { callback({ text: responseText, content: { - networkId: result.object.networkId, + networkId: network.id, + networkName: network.attributes.name, newPools: formattedData, timestamp: new Date().toISOString(), }, diff --git a/packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts b/packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts index dcb270cbf4c..42c2257fbf2 100644 --- a/packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts +++ b/packages/plugin-coingecko/src/actions/getNetworkTrendingPools.ts @@ -15,6 +15,7 @@ import axios from "axios"; import { z } from "zod"; import { getApiConfig, validateCoingeckoConfig } from "../environment"; import { getNetworkTrendingPoolsTemplate } from "../templates/networkTrendingPools"; +import { getNetworksData } from "../providers/networkProvider"; interface TrendingPool { id: string; @@ -100,15 +101,37 @@ export default { return false; } + // Fetch networks data first + const networks = await getNetworksData(runtime); + + // Find the matching network + const network = networks.find((n) => { + const searchTerm = ( + result.object as { networkId: string } + ).networkId.toLowerCase(); + return ( + n.id.toLowerCase() === searchTerm || + n.attributes.name.toLowerCase().includes(searchTerm) || + n.attributes.coingecko_asset_platform_id.toLowerCase() === + searchTerm + ); + }); + + if (!network) { + throw new Error( + `Network ${result.object.networkId} not found in available networks` + ); + } + const config = await validateCoingeckoConfig(runtime); const { baseUrl, apiKey, headerKey } = getApiConfig(config); elizaLogger.log( - `Fetching trending pools data for network: ${result.object.networkId}` + `Fetching trending pools data for network: ${network.id}` ); const response = await axios.get( - `${baseUrl}/onchain/networks/${result.object.networkId}/trending_pools?include=base_token,dex`, + `${baseUrl}/onchain/networks/${network.id}/trending_pools?include=base_token,dex`, { headers: { [headerKey]: apiKey, @@ -149,7 +172,7 @@ export default { })); const responseText = [ - `Trending Pools Overview for ${result.object.networkId.toUpperCase()}:`, + `Trending Pools Overview for ${network.attributes.name}:`, "", ...formattedData.map((pool, index) => [ @@ -171,7 +194,8 @@ export default { callback({ text: responseText, content: { - networkId: result.object.networkId, + networkId: network.id, + networkName: network.attributes.name, trendingPools: formattedData, timestamp: new Date().toISOString(), }, diff --git a/packages/plugin-coingecko/src/templates/networkNewPools.ts b/packages/plugin-coingecko/src/templates/networkNewPools.ts index 19db65f813e..d21b77bc037 100644 --- a/packages/plugin-coingecko/src/templates/networkNewPools.ts +++ b/packages/plugin-coingecko/src/templates/networkNewPools.ts @@ -1,18 +1,18 @@ -export const getNetworkTrendingPoolsTemplate = `Determine if this is a network-specific trending pools request. If it is one of the specified situations, extract the network ID and limit: +export const getNetworkNewPoolsTemplate = `Determine if this is a network-specific new pools request. If it is one of the specified situations, extract the network ID and limit: -Situation 1: "Get network trending pools" -- Message contains: network name (e.g., "solana", "ethereum", "bsc") AND phrases about pools -- Example: "Show trending pools on Solana" or "What are the hot pools on ETH?" +Situation 1: "Get network new pools" +- Message contains: network name AND phrases about new/recent/latest pools +- Example: "Show new pools on Ethereum" or "What are the latest pools on BSC?" - Action: Extract network ID and use default limit -Situation 2: "Get specific number of network pools" -- Message contains: number AND network name AND pools reference -- Example: "Show top 5 pools on BSC" or "Get 20 trending pools on Ethereum" +Situation 2: "Get specific number of new pools" +- Message contains: number AND network name AND new/recent/latest pools reference +- Example: "Show 5 newest pools on Polygon" or "Get 20 latest pools on Avalanche" - Action: Extract network ID and specific limit -Situation 3: "Get all network pools" -- Message contains: "all" AND network name AND pools reference -- Example: "Show all trending pools on Polygon" or "List all hot pools on Avalanche" +Situation 3: "Get all new pools" +- Message contains: "all" AND network name AND new/recent/latest pools reference +- Example: "Show all new pools on BSC" or "List all recent pools on Ethereum" - Action: Extract network ID and set maximum limit Network ID mappings: From 625338be384dff50fae567da1acad791b1733ab0 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 05:48:34 +0700 Subject: [PATCH 44/51] Fixed all the issues and added biome. Only issues still in place in upload.ts i had to add an any to overcome the issue on the line 370 const flowContract = getFlowContract(runtime.getSetting(ZEROG_FLOW_ADDRESS), signer as any); --- packages/plugin-0g/biome.json | 41 ++++++++++++++++++++++++ packages/plugin-0g/eslint.config.mjs | 3 -- packages/plugin-0g/package.json | 6 +++- packages/plugin-0g/src/actions/upload.ts | 26 ++++++++------- packages/plugin-0g/src/utils/security.ts | 4 +-- 5 files changed, 62 insertions(+), 18 deletions(-) create mode 100644 packages/plugin-0g/biome.json delete mode 100644 packages/plugin-0g/eslint.config.mjs diff --git a/packages/plugin-0g/biome.json b/packages/plugin-0g/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-0g/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-0g/eslint.config.mjs b/packages/plugin-0g/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-0g/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-0g/package.json b/packages/plugin-0g/package.json index 8fddc8a82bc..89b4ca1f2d1 100644 --- a/packages/plugin-0g/package.json +++ b/packages/plugin-0g/package.json @@ -25,12 +25,16 @@ "tsup": "8.3.5" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "vitest": "^1.2.1" }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", "test": "vitest run", - "lint": "eslint --fix --cache ." + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" } } diff --git a/packages/plugin-0g/src/actions/upload.ts b/packages/plugin-0g/src/actions/upload.ts index 23615831800..639da61a140 100644 --- a/packages/plugin-0g/src/actions/upload.ts +++ b/packages/plugin-0g/src/actions/upload.ts @@ -11,9 +11,9 @@ import { elizaLogger, } from "@elizaos/core"; import { Indexer, ZgFile, getFlowContract } from "@0glabs/0g-ts-sdk"; -import { ethers } from "ethers"; +import { ethers, Wallet } from "ethers"; import { composeContext } from "@elizaos/core"; -import { promises as fs } from "fs"; +import { promises as fs, type Stats } from "node:fs"; import { FileSecurityValidator } from "../utils/security"; import { logSecurityEvent, monitorUpload, monitorFileValidation, monitorCleanup } from '../utils/monitoring'; import { uploadTemplate } from "../templates/upload"; @@ -24,10 +24,10 @@ export interface UploadContent extends Content { function isUploadContent( _runtime: IAgentRuntime, - content: any + content: unknown ): content is UploadContent { elizaLogger.debug("Validating upload content", { content }); - return typeof content.filePath === "string"; + return typeof content === "object" && content !== null && "filePath" in content && typeof (content as UploadContent).filePath === "string"; } export const zgUpload: Action = { @@ -82,7 +82,7 @@ export const zgUpload: Action = { }; // Validate config values - if (isNaN(config.maxFileSize) || config.maxFileSize <= 0) { + if (Number.isNaN(config.maxFileSize) || config.maxFileSize <= 0) { elizaLogger.error("Invalid ZEROG_MAX_FILE_SIZE setting", { value: runtime.getSetting("ZEROG_MAX_FILE_SIZE"), messageId: message.id @@ -117,7 +117,7 @@ export const zgUpload: Action = { runtime: IAgentRuntime, message: Memory, state: State, - _options: any, + _options: Record, callback: HandlerCallback ) => { elizaLogger.info("ZG_UPLOAD action started", { @@ -131,18 +131,20 @@ export const zgUpload: Action = { try { // Update state if needed - if (!state) { + // Initialize or update state + let currentState = state; + if (!currentState) { elizaLogger.debug("No state provided, composing new state"); - state = (await runtime.composeState(message)) as State; + currentState = (await runtime.composeState(message)) as State; } else { elizaLogger.debug("Updating existing state"); - state = await runtime.updateRecentMessageState(state); + currentState = await runtime.updateRecentMessageState(currentState); } // Compose upload context elizaLogger.debug("Composing upload context"); const uploadContext = composeContext({ - state, + state: currentState, template: uploadTemplate, }); @@ -307,7 +309,7 @@ export const zgUpload: Action = { // Start upload monitoring const startTime = Date.now(); - let fileStats; + let fileStats: Stats; try { fileStats = await fs.stat(sanitizedPath); elizaLogger.debug("File stats retrieved", { @@ -365,7 +367,7 @@ export const zgUpload: Action = { const provider = new ethers.JsonRpcProvider(runtime.getSetting("ZEROG_EVM_RPC")); const signer = new ethers.Wallet(runtime.getSetting("ZEROG_PRIVATE_KEY"), provider); const indexer = new Indexer(runtime.getSetting("ZEROG_INDEXER_RPC")); - const flowContract = getFlowContract(runtime.getSetting("ZEROG_FLOW_ADDRESS"), signer); + const flowContract = getFlowContract(runtime.getSetting("ZEROG_FLOW_ADDRESS"), signer as any); // Upload file to ZeroG elizaLogger.info("Starting file upload to ZeroG", { diff --git a/packages/plugin-0g/src/utils/security.ts b/packages/plugin-0g/src/utils/security.ts index 2f84af5dc25..6b2e3df898f 100644 --- a/packages/plugin-0g/src/utils/security.ts +++ b/packages/plugin-0g/src/utils/security.ts @@ -1,5 +1,5 @@ -import { promises as fs } from 'fs'; -import path from 'path'; +import { promises as fs } from 'node:fs'; +import path from 'node:path'; export interface SecurityConfig { maxFileSize: number; From 40931b48bdc4037ee9356f50da9676854c93772d Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 05:59:47 +0700 Subject: [PATCH 45/51] Added biome to - plugin-zksync-era - plugin-zilliqa - plugin-zerion - plugin-whatsapp --- packages/plugin-whatsapp/biome.json | 41 ++++++++++++++++++++ packages/plugin-whatsapp/package.json | 7 +++- packages/plugin-zerion/biome.json | 41 ++++++++++++++++++++ packages/plugin-zerion/eslint.config.mjs | 3 -- packages/plugin-zerion/package.json | 6 ++- packages/plugin-zilliqa/biome.json | 41 ++++++++++++++++++++ packages/plugin-zilliqa/package.json | 9 ++++- packages/plugin-zksync-era/biome.json | 41 ++++++++++++++++++++ packages/plugin-zksync-era/eslint.config.mjs | 3 -- packages/plugin-zksync-era/package.json | 8 +++- 10 files changed, 190 insertions(+), 10 deletions(-) create mode 100644 packages/plugin-whatsapp/biome.json create mode 100644 packages/plugin-zerion/biome.json delete mode 100644 packages/plugin-zerion/eslint.config.mjs create mode 100644 packages/plugin-zilliqa/biome.json create mode 100644 packages/plugin-zksync-era/biome.json delete mode 100644 packages/plugin-zksync-era/eslint.config.mjs diff --git a/packages/plugin-whatsapp/biome.json b/packages/plugin-whatsapp/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-whatsapp/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-whatsapp/package.json b/packages/plugin-whatsapp/package.json index 13853dc3c14..0520cb7a9bc 100644 --- a/packages/plugin-whatsapp/package.json +++ b/packages/plugin-whatsapp/package.json @@ -23,13 +23,18 @@ "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", "test": "vitest run", - "coverage": "vitest run --coverage" + "coverage": "vitest run --coverage", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "dependencies": { "@elizaos/core": "workspace:*", "axios": "1.7.8" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "@types/node": "20.17.9", "@typescript-eslint/eslint-plugin": "8.16.0", "@typescript-eslint/parser": "8.16.0", diff --git a/packages/plugin-zerion/biome.json b/packages/plugin-zerion/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-zerion/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-zerion/eslint.config.mjs b/packages/plugin-zerion/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-zerion/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-zerion/package.json b/packages/plugin-zerion/package.json index e4dc7d34803..6d668a0a138 100644 --- a/packages/plugin-zerion/package.json +++ b/packages/plugin-zerion/package.json @@ -8,11 +8,15 @@ "@elizaos/core": "workspace:*" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "tsup": "^8.3.5" }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", - "lint": "eslint --fix --cache ." + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" } } diff --git a/packages/plugin-zilliqa/biome.json b/packages/plugin-zilliqa/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-zilliqa/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-zilliqa/package.json b/packages/plugin-zilliqa/package.json index b83ac6845b8..ed4c74e6279 100644 --- a/packages/plugin-zilliqa/package.json +++ b/packages/plugin-zilliqa/package.json @@ -16,9 +16,16 @@ "@zilliqa-js/zilliqa": "^3.5.0", "tsup": "8.3.5" }, + "devDependencies": { + "@biomejs/biome": "1.5.3" + }, "scripts": { "build": "tsup --format esm --dts", - "dev": "tsup --format esm --dts --watch" + "dev": "tsup --format esm --dts --watch", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "peerDependencies": { "whatwg-url": "7.1.0" diff --git a/packages/plugin-zksync-era/biome.json b/packages/plugin-zksync-era/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-zksync-era/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-zksync-era/eslint.config.mjs b/packages/plugin-zksync-era/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-zksync-era/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-zksync-era/package.json b/packages/plugin-zksync-era/package.json index 3ef16373690..da568e5fdbe 100644 --- a/packages/plugin-zksync-era/package.json +++ b/packages/plugin-zksync-era/package.json @@ -23,9 +23,15 @@ "tsup": "^8.3.5", "viem": "2.22.2" }, + "devDependencies": { + "@biomejs/biome": "1.5.3" + }, "scripts": { "build": "tsup --format esm --dts", - "lint": "eslint --fix --cache ." + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "peerDependencies": { "whatwg-url": "7.1.0" From 247ccdae8e2b6c14f789606153c94d8717b61ca2 Mon Sep 17 00:00:00 2001 From: AIFlow_ML Date: Mon, 3 Feb 2025 06:10:41 +0700 Subject: [PATCH 46/51] Add Biome linting and formatting configuration to the following plugins: - plugin-web-search - plugin-video-generation - plugin-udio - plugin-twitter --- packages/plugin-twitter/biome.json | 41 +++++++++++++++++++ packages/plugin-twitter/eslint.config.mjs | 3 -- packages/plugin-twitter/package.json | 6 ++- packages/plugin-udio/biome.json | 41 +++++++++++++++++++ packages/plugin-udio/eslint.config.mjs | 3 -- packages/plugin-udio/package.json | 13 ++++-- packages/plugin-video-generation/biome.json | 41 +++++++++++++++++++ packages/plugin-video-generation/package.json | 10 ++++- packages/plugin-web-search/biome.json | 41 +++++++++++++++++++ packages/plugin-web-search/eslint.config.mjs | 3 -- packages/plugin-web-search/package.json | 8 +++- 11 files changed, 195 insertions(+), 15 deletions(-) create mode 100644 packages/plugin-twitter/biome.json delete mode 100644 packages/plugin-twitter/eslint.config.mjs create mode 100644 packages/plugin-udio/biome.json delete mode 100644 packages/plugin-udio/eslint.config.mjs create mode 100644 packages/plugin-video-generation/biome.json create mode 100644 packages/plugin-web-search/biome.json delete mode 100644 packages/plugin-web-search/eslint.config.mjs diff --git a/packages/plugin-twitter/biome.json b/packages/plugin-twitter/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-twitter/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-twitter/eslint.config.mjs b/packages/plugin-twitter/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-twitter/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-twitter/package.json b/packages/plugin-twitter/package.json index 09cbeb222a7..a6b181a3d95 100644 --- a/packages/plugin-twitter/package.json +++ b/packages/plugin-twitter/package.json @@ -24,6 +24,7 @@ "tsup": "8.3.5" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "vitest": "^1.0.0" }, "scripts": { @@ -31,6 +32,9 @@ "dev": "tsup --format esm --dts --watch", "test": "vitest run", "test:watch": "vitest", - "lint": "eslint --fix --cache ." + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" } } diff --git a/packages/plugin-udio/biome.json b/packages/plugin-udio/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-udio/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-udio/eslint.config.mjs b/packages/plugin-udio/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-udio/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-udio/package.json b/packages/plugin-udio/package.json index 12ba10cb4fe..994fda5b366 100644 --- a/packages/plugin-udio/package.json +++ b/packages/plugin-udio/package.json @@ -3,19 +3,26 @@ "version": "0.1.9", "description": "Suno AI Music Generation Plugin for Eliza", "main": "dist/index.js", + "type": "module", "types": "dist/index.d.ts", "scripts": { - "build": "tsup", + "build": "tsup --format esm --dts", + "dev": "tsup --format esm --dts --watch", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/", "test": "jest" }, "dependencies": { - "@elizaos/core": "^0.1.0" + "@elizaos/core": "workspace:*" }, "devDependencies": { + "@biomejs/biome": "1.5.3", "typescript": "^5.0.0", "@types/node": "^16.0.0", "jest": "^27.0.0", "@types/jest": "^27.0.0", - "tsup": "^7.2.0" + "tsup": "^8.3.5" } } diff --git a/packages/plugin-video-generation/biome.json b/packages/plugin-video-generation/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-video-generation/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-video-generation/package.json b/packages/plugin-video-generation/package.json index 8656816e84d..78626b94f12 100644 --- a/packages/plugin-video-generation/package.json +++ b/packages/plugin-video-generation/package.json @@ -22,9 +22,17 @@ "@elizaos/core": "workspace:*", "tsup": "8.3.5" }, + "devDependencies": { + "@biomejs/biome": "1.5.3", + "tsup": "^8.3.5" + }, "scripts": { "build": "tsup --format esm --dts", - "dev": "tsup --format esm --dts --watch" + "dev": "tsup --format esm --dts --watch", + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "peerDependencies": { "whatwg-url": "7.1.0" diff --git a/packages/plugin-web-search/biome.json b/packages/plugin-web-search/biome.json new file mode 100644 index 00000000000..818716a6219 --- /dev/null +++ b/packages/plugin-web-search/biome.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.5.3/schema.json", + "organizeImports": { + "enabled": false + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { + "noUnusedVariables": "error" + }, + "suspicious": { + "noExplicitAny": "error" + }, + "style": { + "useConst": "error", + "useImportType": "off" + } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "files": { + "ignore": [ + "dist/**/*", + "extra/**/*", + "node_modules/**/*" + ] + } +} \ No newline at end of file diff --git a/packages/plugin-web-search/eslint.config.mjs b/packages/plugin-web-search/eslint.config.mjs deleted file mode 100644 index 92fe5bbebef..00000000000 --- a/packages/plugin-web-search/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import eslintGlobalConfig from "../../eslint.config.mjs"; - -export default [...eslintGlobalConfig]; diff --git a/packages/plugin-web-search/package.json b/packages/plugin-web-search/package.json index d72a50372b7..5e73a372310 100644 --- a/packages/plugin-web-search/package.json +++ b/packages/plugin-web-search/package.json @@ -24,10 +24,16 @@ "tsup": "8.3.5", "js-tiktoken": "1.0.15" }, + "devDependencies": { + "@biomejs/biome": "1.5.3" + }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", - "lint": "eslint --fix --cache ." + "lint": "biome check src/", + "lint:fix": "biome check --apply src/", + "format": "biome format src/", + "format:fix": "biome format --write src/" }, "peerDependencies": { "whatwg-url": "7.1.0" From 45e58e9faf6e41ff17a5f4c92fbf44d969c3cdca Mon Sep 17 00:00:00 2001 From: Shakker Nerd <165377636+shakkernerd@users.noreply.github.com> Date: Sun, 2 Feb 2025 23:15:19 +0000 Subject: [PATCH 47/51] chore: remove multiple tsup package --- packages/plugin-0x/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/plugin-0x/package.json b/packages/plugin-0x/package.json index 2949450152e..975b84a391b 100644 --- a/packages/plugin-0x/package.json +++ b/packages/plugin-0x/package.json @@ -29,7 +29,6 @@ }, "dependencies": { "@elizaos/core": "workspace:*", - "tsup": "^8.0.1", "whatwg-url": "7.1.0", "@0x/swap-ts-sdk": "2.1.1" }, From d0bc2f97c5ec46d799fdbc9cde2f633e21e905ed Mon Sep 17 00:00:00 2001 From: Demirix Date: Mon, 3 Feb 2025 00:44:14 +0100 Subject: [PATCH 48/51] feat (chore): plugin-coinmarketcap (#3134) * plugin-coinmarketcap: vitest config * plugin-coinmarketcap: package json * plugin-coinmarketcap: test setup * plugin-coinmarketcap: get price tests * plugin-coinmarketcap: get price service tests --------- Co-authored-by: Shakker Nerd <165377636+shakkernerd@users.noreply.github.com> --- .../actions/getPrice.service.test.ts | 151 +++++++++++ .../__tests__/actions/getPrice.test.ts | 234 ++++++++++++++++++ .../plugin-coinmarketcap/__tests__/setup.ts | 10 + packages/plugin-coinmarketcap/package.json | 5 +- .../plugin-coinmarketcap/vitest.config.ts | 16 ++ 5 files changed, 415 insertions(+), 1 deletion(-) create mode 100644 packages/plugin-coinmarketcap/__tests__/actions/getPrice.service.test.ts create mode 100644 packages/plugin-coinmarketcap/__tests__/actions/getPrice.test.ts create mode 100644 packages/plugin-coinmarketcap/__tests__/setup.ts create mode 100644 packages/plugin-coinmarketcap/vitest.config.ts diff --git a/packages/plugin-coinmarketcap/__tests__/actions/getPrice.service.test.ts b/packages/plugin-coinmarketcap/__tests__/actions/getPrice.service.test.ts new file mode 100644 index 00000000000..e695eea392d --- /dev/null +++ b/packages/plugin-coinmarketcap/__tests__/actions/getPrice.service.test.ts @@ -0,0 +1,151 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import axios from 'axios'; +import { createPriceService } from '../../src/actions/getPrice/service'; + +vi.mock('axios'); + +describe('PriceService', () => { + const API_KEY = 'test-api-key'; + let priceService: ReturnType; + + beforeEach(() => { + vi.clearAllMocks(); + vi.mocked(axios.create).mockReturnValue(axios); + priceService = createPriceService(API_KEY); + }); + + it('should create axios instance with correct config', () => { + expect(axios.create).toHaveBeenCalledWith({ + baseURL: 'https://pro-api.coinmarketcap.com/v1', + headers: { + 'X-CMC_PRO_API_KEY': API_KEY, + 'Accept': 'application/json' + } + }); + }); + + it('should normalize symbol and currency', async () => { + const mockResponse = { + data: { + data: { + BTC: { + quote: { + USD: { + price: 50000, + market_cap: 1000000000000, + volume_24h: 30000000000, + percent_change_24h: 2.5 + } + } + } + } + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + await priceService.getPrice(' btc ', ' usd '); + + expect(axios.get).toHaveBeenCalledWith( + '/cryptocurrency/quotes/latest', + expect.objectContaining({ + params: { + symbol: 'BTC', + convert: 'USD' + } + }) + ); + }); + + it('should return formatted price data', async () => { + const mockResponse = { + data: { + data: { + BTC: { + quote: { + USD: { + price: 50000, + market_cap: 1000000000000, + volume_24h: 30000000000, + percent_change_24h: 2.5 + } + } + } + } + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + const result = await priceService.getPrice('BTC', 'USD'); + + expect(result).toEqual({ + price: 50000, + marketCap: 1000000000000, + volume24h: 30000000000, + percentChange24h: 2.5 + }); + }); + + it('should handle missing symbol data', async () => { + const mockResponse = { + data: { + data: {} + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + await expect(priceService.getPrice('INVALID', 'USD')) + .rejects + .toThrow('No data found for symbol: INVALID'); + }); + + it('should handle missing quote data', async () => { + const mockResponse = { + data: { + data: { + BTC: { + quote: {} + } + } + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + await expect(priceService.getPrice('BTC', 'INVALID')) + .rejects + .toThrow('No quote data found for currency: INVALID'); + }); + + it('should handle API errors', async () => { + const errorMessage = 'API rate limit exceeded'; + const apiError = new Error(errorMessage); + Object.assign(apiError, { + isAxiosError: true, + response: { + data: { + status: { + error_message: errorMessage + } + } + } + }); + + vi.mocked(axios.get).mockRejectedValueOnce(apiError); + + await expect(priceService.getPrice('BTC', 'USD')) + .rejects + .toThrow(`${errorMessage}`); + }); + + it('should handle non-axios errors', async () => { + const error = new Error('Network error'); + vi.mocked(axios.get).mockRejectedValueOnce(error); + + await expect(priceService.getPrice('BTC', 'USD')) + .rejects + .toThrow('Network error'); + }); +}); diff --git a/packages/plugin-coinmarketcap/__tests__/actions/getPrice.test.ts b/packages/plugin-coinmarketcap/__tests__/actions/getPrice.test.ts new file mode 100644 index 00000000000..f737c282c41 --- /dev/null +++ b/packages/plugin-coinmarketcap/__tests__/actions/getPrice.test.ts @@ -0,0 +1,234 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { elizaLogger, ModelClass, generateObjectDeprecated, composeContext } from '@elizaos/core'; +import getPriceAction from '../../src/actions/getPrice'; +import axios from 'axios'; +import * as environment from '../../src/environment'; + +vi.mock('axios'); +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + success: vi.fn(), + }, + generateObjectDeprecated: vi.fn(), + composeContext: vi.fn(), + ModelClass: { SMALL: 'SMALL' } +})); +vi.mock('../../src/environment', () => ({ + validateCoinMarketCapConfig: vi.fn() +})); + +describe('getPrice action', () => { + const mockRuntime = { + composeState: vi.fn(), + updateRecentMessageState: vi.fn(), + getPluginConfig: vi.fn(), + }; + + const mockMessage = {}; + const mockState = {}; + const mockCallback = vi.fn(); + const mockConfig = { + COINMARKETCAP_API_KEY: 'test-api-key' + }; + + beforeEach(() => { + vi.clearAllMocks(); + + // Mock environment validation + vi.mocked(environment.validateCoinMarketCapConfig).mockResolvedValue(mockConfig); + + // Mock runtime functions + mockRuntime.composeState.mockResolvedValue(mockState); + mockRuntime.updateRecentMessageState.mockResolvedValue(mockState); + mockRuntime.getPluginConfig.mockResolvedValue({ + apiKey: 'test-api-key' + }); + + // Mock axios create + vi.mocked(axios.create).mockReturnValue(axios); + + // Mock the core functions + vi.mocked(elizaLogger.log).mockImplementation(() => {}); + vi.mocked(elizaLogger.error).mockImplementation(() => {}); + vi.mocked(elizaLogger.success).mockImplementation(() => {}); + vi.mocked(composeContext).mockReturnValue({}); + }); + + it('should validate coinmarketcap config', async () => { + await getPriceAction.validate(mockRuntime, mockMessage); + expect(environment.validateCoinMarketCapConfig).toHaveBeenCalledWith(mockRuntime); + }); + + it('should fetch and format price data', async () => { + const mockResponse = { + data: { + data: { + BTC: { + quote: { + USD: { + price: 50000, + market_cap: 1000000000000, + volume_24h: 30000000000, + percent_change_24h: 2.5 + } + } + } + } + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + // Mock the content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + symbol: 'BTC', + currency: 'USD' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(axios.get).toHaveBeenCalledWith( + '/cryptocurrency/quotes/latest', + expect.objectContaining({ + params: { + symbol: 'BTC', + convert: 'USD' + } + }) + ); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('50000 USD'), + content: expect.objectContaining({ + symbol: 'BTC', + currency: 'USD', + price: 50000, + marketCap: 1000000000000, + volume24h: 30000000000, + percentChange24h: 2.5 + }) + })); + }); + + it('should handle invalid symbol', async () => { + const mockResponse = { + data: { + data: {} + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + // Mock the content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + symbol: 'INVALID', + currency: 'USD' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('No data found for symbol'), + content: expect.objectContaining({ + error: expect.stringContaining('No data found for symbol') + }) + })); + }); + + it('should handle invalid currency', async () => { + const mockResponse = { + data: { + data: { + BTC: { + quote: {} + } + } + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + // Mock the content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + symbol: 'BTC', + currency: 'INVALID' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('No quote data found for currency'), + content: expect.objectContaining({ + error: expect.stringContaining('No quote data found for currency') + }) + })); + }); + + it('should handle API errors gracefully', async () => { + vi.mocked(axios.get).mockRejectedValueOnce(new Error('API Error')); + + // Mock the content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + symbol: 'BTC', + currency: 'USD' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('API Error'), + content: expect.objectContaining({ + error: expect.stringContaining('API Error') + }) + })); + }); + + it('should handle rate limit errors', async () => { + const errorMessage = 'Rate limit exceeded'; + const rateLimitError = new Error(`API Error: ${errorMessage}`); + Object.assign(rateLimitError, { + isAxiosError: true, + response: { + data: { + status: { + error_message: errorMessage + } + } + } + }); + vi.mocked(axios.get).mockRejectedValueOnce(rateLimitError); + + // Mock the content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + symbol: 'BTC', + currency: 'USD' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith({ + text: `Error fetching price: API Error: ${errorMessage}`, + content: { error: `API Error: ${errorMessage}` } + }); + }); + + it('should handle invalid content generation', async () => { + // Mock invalid content generation + vi.mocked(generateObjectDeprecated).mockResolvedValueOnce({ + invalidField: 'invalid' + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Invalid price check content'), + content: expect.objectContaining({ + error: expect.stringContaining('Invalid price check content') + }) + })); + }); +}); diff --git a/packages/plugin-coinmarketcap/__tests__/setup.ts b/packages/plugin-coinmarketcap/__tests__/setup.ts new file mode 100644 index 00000000000..bbc49909c16 --- /dev/null +++ b/packages/plugin-coinmarketcap/__tests__/setup.ts @@ -0,0 +1,10 @@ +import { vi } from 'vitest'; + +// Mock console methods +global.console = { + ...console, + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn() +}; diff --git a/packages/plugin-coinmarketcap/package.json b/packages/plugin-coinmarketcap/package.json index 47f46660068..cf504b6840f 100644 --- a/packages/plugin-coinmarketcap/package.json +++ b/packages/plugin-coinmarketcap/package.json @@ -20,6 +20,9 @@ "lint": "biome lint .", "lint:fix": "biome check --apply .", "format": "biome format .", - "format:fix": "biome format --write ." + "format:fix": "biome format --write .", + "test": "vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage" } } diff --git a/packages/plugin-coinmarketcap/vitest.config.ts b/packages/plugin-coinmarketcap/vitest.config.ts new file mode 100644 index 00000000000..5c5066f7c54 --- /dev/null +++ b/packages/plugin-coinmarketcap/vitest.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + setupFiles: ['__tests__/setup.ts'], + include: ['__tests__/**/*.test.ts'], + coverage: { + provider: 'v8', + reporter: ['text', 'json', 'html'], + include: ['src/**/*.ts'], + exclude: ['**/*.d.ts', '**/*.test.ts', '**/examples.ts', '**/template.ts'] + } + } +}); From 773eeaddc89e2400ed334a5ad792f382906c083d Mon Sep 17 00:00:00 2001 From: Demirix Date: Mon, 3 Feb 2025 00:46:58 +0100 Subject: [PATCH 49/51] feat (chore): plugin-coingecko test config and coverage (#3124) * plugin-coingecko: package json * plugin-coingecko: vitest config * plugin-coingecko: get price tests * plugin-coingecko: test setup * plugin-coingecko: get trending tests * plugin-coingecko: top gainers losers tests * plugin-coingecko: get market tests --------- Co-authored-by: Shakker Nerd <165377636+shakkernerd@users.noreply.github.com> --- .../__tests__/actions/getMarkets.test.ts | 281 ++++++++++++++++++ .../__tests__/actions/getPrice.test.ts | 208 +++++++++++++ .../actions/getTopGainersLosers.test.ts | 251 ++++++++++++++++ .../__tests__/actions/getTrending.test.ts | 220 ++++++++++++++ packages/plugin-coingecko/__tests__/setup.ts | 20 ++ packages/plugin-coingecko/package.json | 6 +- packages/plugin-coingecko/vitest.config.ts | 10 + 7 files changed, 995 insertions(+), 1 deletion(-) create mode 100644 packages/plugin-coingecko/__tests__/actions/getMarkets.test.ts create mode 100644 packages/plugin-coingecko/__tests__/actions/getPrice.test.ts create mode 100644 packages/plugin-coingecko/__tests__/actions/getTopGainersLosers.test.ts create mode 100644 packages/plugin-coingecko/__tests__/actions/getTrending.test.ts create mode 100644 packages/plugin-coingecko/__tests__/setup.ts create mode 100644 packages/plugin-coingecko/vitest.config.ts diff --git a/packages/plugin-coingecko/__tests__/actions/getMarkets.test.ts b/packages/plugin-coingecko/__tests__/actions/getMarkets.test.ts new file mode 100644 index 00000000000..d6c937e2b20 --- /dev/null +++ b/packages/plugin-coingecko/__tests__/actions/getMarkets.test.ts @@ -0,0 +1,281 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { elizaLogger, ModelClass, generateObject, composeContext } from '@elizaos/core'; +import getMarketsAction, { formatCategory } from '../../src/actions/getMarkets'; +import axios from 'axios'; +import * as environment from '../../src/environment'; +import * as categoriesProvider from '../../src/providers/categoriesProvider'; + +vi.mock('axios'); +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + success: vi.fn(), + }, + generateObject: vi.fn(), + composeContext: vi.fn(), + ModelClass: { LARGE: 'LARGE', SMALL: 'SMALL' } +})); +vi.mock('../../src/environment', () => ({ + validateCoingeckoConfig: vi.fn(), + getApiConfig: vi.fn() +})); +vi.mock('../../src/providers/categoriesProvider'); + +describe('getMarkets action', () => { + const mockRuntime = { + composeState: vi.fn(), + updateRecentMessageState: vi.fn(), + getPluginConfig: vi.fn(), + }; + + const mockMessage = {}; + const mockState = {}; + const mockCallback = vi.fn(); + const mockConfig = { + COINGECKO_API_KEY: 'test-api-key', + COINGECKO_PRO_API_KEY: null + }; + + const mockCategories = [ + { category_id: 'defi', name: 'DeFi' }, + { category_id: 'nft', name: 'NFT' } + ]; + + beforeEach(() => { + vi.clearAllMocks(); + + // Mock environment validation + vi.mocked(environment.validateCoingeckoConfig).mockResolvedValue(mockConfig); + vi.mocked(environment.getApiConfig).mockReturnValue({ + baseUrl: 'https://api.coingecko.com/api/v3', + apiKey: 'test-api-key', + headerKey: 'x-cg-demo-api-key' + }); + + // Mock categories provider + vi.mocked(categoriesProvider.getCategoriesData).mockResolvedValue(mockCategories); + + // Mock runtime functions + mockRuntime.composeState.mockResolvedValue(mockState); + mockRuntime.updateRecentMessageState.mockResolvedValue(mockState); + mockRuntime.getPluginConfig.mockResolvedValue({ + apiKey: 'test-api-key', + baseUrl: 'https://api.coingecko.com/api/v3' + }); + + // Mock the core functions + vi.mocked(elizaLogger.log).mockImplementation(() => {}); + vi.mocked(elizaLogger.error).mockImplementation(() => {}); + vi.mocked(elizaLogger.success).mockImplementation(() => {}); + vi.mocked(composeContext).mockReturnValue({}); + }); + + describe('formatCategory', () => { + it('should return undefined for undefined input', () => { + expect(formatCategory(undefined, mockCategories)).toBeUndefined(); + }); + + it('should find exact match by category_id', () => { + expect(formatCategory('defi', mockCategories)).toBe('defi'); + }); + + it('should find match by name', () => { + expect(formatCategory('DeFi', mockCategories)).toBe('defi'); + }); + + it('should find partial match', () => { + expect(formatCategory('nf', mockCategories)).toBe('nft'); + }); + + it('should return undefined for no match', () => { + expect(formatCategory('invalid-category', mockCategories)).toBeUndefined(); + }); + }); + + it('should validate coingecko config', async () => { + await getMarketsAction.validate(mockRuntime, mockMessage); + expect(environment.validateCoingeckoConfig).toHaveBeenCalledWith(mockRuntime); + }); + + it('should fetch and format market data', async () => { + const mockResponse = { + data: [ + { + id: 'bitcoin', + symbol: 'btc', + name: 'Bitcoin', + image: 'image_url', + current_price: 50000, + market_cap: 1000000000000, + market_cap_rank: 1, + fully_diluted_valuation: 1100000000000, + total_volume: 30000000000, + high_24h: 51000, + low_24h: 49000, + price_change_24h: 1000, + price_change_percentage_24h: 2, + market_cap_change_24h: 20000000000, + market_cap_change_percentage_24h: 2, + circulating_supply: 19000000, + total_supply: 21000000, + max_supply: 21000000, + ath: 69000, + ath_change_percentage: -27.5, + ath_date: '2021-11-10T14:24:11.849Z', + atl: 67.81, + atl_change_percentage: 73623.12, + atl_date: '2013-07-06T00:00:00.000Z', + last_updated: '2024-01-31T23:00:00.000Z' + } + ] + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + category: 'defi', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + }, + modelClass: ModelClass.SMALL + }); + + await getMarketsAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(axios.get).toHaveBeenCalledWith( + 'https://api.coingecko.com/api/v3/coins/markets', + expect.objectContaining({ + params: { + vs_currency: 'usd', + category: 'defi', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + } + }) + ); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Bitcoin (BTC)'), + content: expect.objectContaining({ + markets: expect.arrayContaining([ + expect.objectContaining({ + name: 'Bitcoin', + symbol: 'BTC', + marketCapRank: 1, + currentPrice: 50000 + }) + ]) + }) + })); + }); + + it('should handle invalid category', async () => { + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + category: 'invalid-category', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + }, + modelClass: ModelClass.SMALL + }); + + await getMarketsAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Invalid category'), + error: expect.objectContaining({ + message: expect.stringContaining('Invalid category') + }) + })); + }); + + it('should handle API errors gracefully', async () => { + vi.mocked(axios.get).mockRejectedValueOnce(new Error('API Error')); + + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + }, + modelClass: ModelClass.SMALL + }); + + await getMarketsAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Error fetching market data'), + error: expect.objectContaining({ + message: expect.stringContaining('API Error') + }) + })); + }); + + it('should handle rate limit errors', async () => { + const rateLimitError = new Error('Rate limit exceeded'); + Object.assign(rateLimitError, { + response: { status: 429 } + }); + vi.mocked(axios.get).mockRejectedValueOnce(rateLimitError); + + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + }, + modelClass: ModelClass.SMALL + }); + + await getMarketsAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Rate limit exceeded'), + error: expect.objectContaining({ + message: expect.stringContaining('Rate limit exceeded'), + statusCode: 429 + }) + })); + }); + + it('should handle empty response data', async () => { + vi.mocked(axios.get).mockResolvedValueOnce({ data: [] }); + + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + order: 'market_cap_desc', + per_page: 20, + page: 1, + sparkline: false + }, + modelClass: ModelClass.SMALL + }); + + await getMarketsAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('No market data received'), + error: expect.objectContaining({ + message: expect.stringContaining('No market data received') + }) + })); + }); +}); diff --git a/packages/plugin-coingecko/__tests__/actions/getPrice.test.ts b/packages/plugin-coingecko/__tests__/actions/getPrice.test.ts new file mode 100644 index 00000000000..3c371be397f --- /dev/null +++ b/packages/plugin-coingecko/__tests__/actions/getPrice.test.ts @@ -0,0 +1,208 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { elizaLogger, ModelClass, generateObject, composeContext } from '@elizaos/core'; +import getPriceAction from '../../src/actions/getPrice'; +import axios from 'axios'; +import * as environment from '../../src/environment'; +import * as coinsProvider from '../../src/providers/coinsProvider'; + +vi.mock('axios'); +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + success: vi.fn(), + }, + generateObject: vi.fn(), + composeContext: vi.fn(), + ModelClass: { LARGE: 'LARGE' } +})); +vi.mock('../../src/environment', () => ({ + validateCoingeckoConfig: vi.fn(), + getApiConfig: vi.fn() +})); +vi.mock('../../src/providers/coinsProvider'); + +describe('getPrice action', () => { + const mockRuntime = { + composeState: vi.fn(), + updateRecentMessageState: vi.fn(), + getPluginConfig: vi.fn(), + }; + + const mockMessage = {}; + const mockState = {}; + const mockCallback = vi.fn(); + const mockConfig = { + COINGECKO_API_KEY: 'test-api-key', + COINGECKO_PRO_API_KEY: null + }; + + beforeEach(() => { + vi.clearAllMocks(); + + // Mock environment validation + vi.mocked(environment.validateCoingeckoConfig).mockResolvedValue(mockConfig); + vi.mocked(environment.getApiConfig).mockReturnValue({ + baseUrl: 'https://api.coingecko.com/api/v3', + apiKey: 'test-api-key', + headerKey: 'x-cg-demo-api-key' + }); + + // Mock runtime functions + mockRuntime.composeState.mockResolvedValue(mockState); + mockRuntime.updateRecentMessageState.mockResolvedValue(mockState); + mockRuntime.getPluginConfig.mockResolvedValue({ + apiKey: 'test-api-key', + baseUrl: 'https://api.coingecko.com/api/v3' + }); + + // Mock the core functions + vi.mocked(elizaLogger.log).mockImplementation(() => {}); + vi.mocked(elizaLogger.error).mockImplementation(() => {}); + vi.mocked(elizaLogger.success).mockImplementation(() => {}); + vi.mocked(composeContext).mockReturnValue({}); + }); + + it('should validate coingecko config', async () => { + await getPriceAction.validate(mockRuntime, mockMessage); + expect(environment.validateCoingeckoConfig).toHaveBeenCalledWith(mockRuntime); + }); + + it('should fetch and format price data for a single coin', async () => { + const mockPriceResponse = { + data: { + bitcoin: { + usd: 50000, + eur: 42000 + } + } + }; + + const mockCoinsData = [{ + id: 'bitcoin', + name: 'Bitcoin', + symbol: 'btc' + }]; + + vi.mocked(axios.get).mockResolvedValueOnce(mockPriceResponse); + vi.mocked(coinsProvider.getCoinsData).mockResolvedValueOnce(mockCoinsData); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + coinIds: 'bitcoin', + currency: ['usd', 'eur'], + include_market_cap: false, + include_24hr_vol: false, + include_24hr_change: false, + include_last_updated_at: false + }, + modelClass: ModelClass.LARGE + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(axios.get).toHaveBeenCalledWith( + 'https://api.coingecko.com/api/v3/simple/price', + expect.any(Object) + ); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Bitcoin (BTC)') + })); + }); + + it('should handle API errors gracefully', async () => { + vi.mocked(axios.get).mockRejectedValueOnce(new Error('API Error')); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + coinIds: 'invalid-coin', + currency: ['usd'], + include_market_cap: false, + include_24hr_vol: false, + include_24hr_change: false, + include_last_updated_at: false + }, + modelClass: ModelClass.LARGE + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + content: expect.objectContaining({ + error: expect.stringContaining('API Error') + }) + })); + }); + + it('should handle empty response data', async () => { + vi.mocked(axios.get).mockResolvedValueOnce({ data: {} }); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + coinIds: 'non-existent-coin', + currency: ['usd'], + include_market_cap: false, + include_24hr_vol: false, + include_24hr_change: false, + include_last_updated_at: false + }, + modelClass: ModelClass.LARGE + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + content: expect.objectContaining({ + error: expect.stringContaining('No price data available') + }) + })); + }); + + it('should include additional market data when requested', async () => { + const mockPriceResponse = { + data: { + ethereum: { + usd: 3000, + usd_market_cap: 350000000000, + usd_24h_vol: 20000000000, + usd_24h_change: 5.5, + last_updated_at: 1643673600 + } + } + }; + + const mockCoinsData = [{ + id: 'ethereum', + name: 'Ethereum', + symbol: 'eth' + }]; + + vi.mocked(axios.get).mockResolvedValueOnce(mockPriceResponse); + vi.mocked(coinsProvider.getCoinsData).mockResolvedValueOnce(mockCoinsData); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + coinIds: 'ethereum', + currency: ['usd'], + include_market_cap: true, + include_24hr_vol: true, + include_24hr_change: true, + include_last_updated_at: true + }, + modelClass: ModelClass.LARGE + }); + + await getPriceAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Market Cap') + })); + }); +}); diff --git a/packages/plugin-coingecko/__tests__/actions/getTopGainersLosers.test.ts b/packages/plugin-coingecko/__tests__/actions/getTopGainersLosers.test.ts new file mode 100644 index 00000000000..3854e593353 --- /dev/null +++ b/packages/plugin-coingecko/__tests__/actions/getTopGainersLosers.test.ts @@ -0,0 +1,251 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { elizaLogger, ModelClass, generateObject, composeContext } from '@elizaos/core'; +import getTopGainersLosersAction from '../../src/actions/getTopGainersLosers'; +import axios from 'axios'; +import * as environment from '../../src/environment'; + +vi.mock('axios'); +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + success: vi.fn(), + }, + generateObject: vi.fn(), + composeContext: vi.fn(), + ModelClass: { LARGE: 'LARGE' } +})); +vi.mock('../../src/environment', () => ({ + validateCoingeckoConfig: vi.fn(), + getApiConfig: vi.fn() +})); + +describe('getTopGainersLosers action', () => { + const mockRuntime = { + composeState: vi.fn(), + updateRecentMessageState: vi.fn(), + getPluginConfig: vi.fn(), + }; + + const mockMessage = {}; + const mockState = {}; + const mockCallback = vi.fn(); + const mockConfig = { + COINGECKO_API_KEY: 'test-api-key', + COINGECKO_PRO_API_KEY: null + }; + + beforeEach(() => { + vi.clearAllMocks(); + + // Mock environment validation + vi.mocked(environment.validateCoingeckoConfig).mockResolvedValue(mockConfig); + vi.mocked(environment.getApiConfig).mockReturnValue({ + baseUrl: 'https://api.coingecko.com/api/v3', + apiKey: 'test-api-key', + headerKey: 'x-cg-demo-api-key' + }); + + // Mock runtime functions + mockRuntime.composeState.mockResolvedValue(mockState); + mockRuntime.updateRecentMessageState.mockResolvedValue(mockState); + mockRuntime.getPluginConfig.mockResolvedValue({ + apiKey: 'test-api-key', + baseUrl: 'https://api.coingecko.com/api/v3' + }); + + // Mock the core functions + vi.mocked(elizaLogger.log).mockImplementation(() => {}); + vi.mocked(elizaLogger.error).mockImplementation(() => {}); + vi.mocked(elizaLogger.success).mockImplementation(() => {}); + vi.mocked(composeContext).mockReturnValue({}); + }); + + it('should validate coingecko config', async () => { + await getTopGainersLosersAction.validate(mockRuntime, mockMessage); + expect(environment.validateCoingeckoConfig).toHaveBeenCalledWith(mockRuntime); + }); + + it('should fetch and format top gainers and losers data', async () => { + const mockResponse = { + data: { + top_gainers: [ + { + id: 'bitcoin', + symbol: 'btc', + name: 'Bitcoin', + image: 'image_url', + market_cap_rank: 1, + usd: 50000, + usd_24h_vol: 30000000000, + usd_24h_change: 5.5 + } + ], + top_losers: [ + { + id: 'ethereum', + symbol: 'eth', + name: 'Ethereum', + image: 'image_url', + market_cap_rank: 2, + usd: 2500, + usd_24h_vol: 20000000000, + usd_24h_change: -3.2 + } + ] + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockResponse); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + }, + modelClass: ModelClass.LARGE + }); + + await getTopGainersLosersAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(axios.get).toHaveBeenCalledWith( + 'https://api.coingecko.com/api/v3/coins/top_gainers_losers', + expect.objectContaining({ + params: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + } + }) + ); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Bitcoin (BTC)'), + content: expect.objectContaining({ + data: expect.objectContaining({ + top_gainers: expect.arrayContaining([ + expect.objectContaining({ + name: 'Bitcoin', + symbol: 'btc', + usd_24h_change: 5.5 + }) + ]), + top_losers: expect.arrayContaining([ + expect.objectContaining({ + name: 'Ethereum', + symbol: 'eth', + usd_24h_change: -3.2 + }) + ]) + }) + }) + })); + }); + + it('should handle API errors gracefully', async () => { + vi.mocked(axios.get).mockRejectedValueOnce(new Error('API Error')); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + }, + modelClass: ModelClass.LARGE + }); + + await getTopGainersLosersAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Error fetching top gainers/losers data'), + content: expect.objectContaining({ + error: expect.stringContaining('API Error') + }) + })); + }); + + it('should handle rate limit errors', async () => { + const rateLimitError = new Error('Rate limit exceeded'); + Object.assign(rateLimitError, { + response: { status: 429 } + }); + vi.mocked(axios.get).mockRejectedValueOnce(rateLimitError); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + }, + modelClass: ModelClass.LARGE + }); + + await getTopGainersLosersAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Rate limit exceeded'), + content: expect.objectContaining({ + error: expect.stringContaining('Rate limit exceeded'), + statusCode: 429 + }) + })); + }); + + it('should handle pro plan requirement errors', async () => { + const proPlanError = new Error('Pro plan required'); + Object.assign(proPlanError, { + response: { status: 403 } + }); + vi.mocked(axios.get).mockRejectedValueOnce(proPlanError); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + }, + modelClass: ModelClass.LARGE + }); + + await getTopGainersLosersAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('requires a CoinGecko Pro API key'), + content: expect.objectContaining({ + error: expect.stringContaining('Pro plan required'), + statusCode: 403, + requiresProPlan: true + }) + })); + }); + + it('should handle empty response data', async () => { + vi.mocked(axios.get).mockResolvedValueOnce({ data: null }); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + vs_currency: 'usd', + duration: '24h', + top_coins: '1000' + }, + modelClass: ModelClass.LARGE + }); + + await getTopGainersLosersAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('No data received'), + content: expect.objectContaining({ + error: expect.stringContaining('No data received') + }) + })); + }); +}); diff --git a/packages/plugin-coingecko/__tests__/actions/getTrending.test.ts b/packages/plugin-coingecko/__tests__/actions/getTrending.test.ts new file mode 100644 index 00000000000..32b51f36aaa --- /dev/null +++ b/packages/plugin-coingecko/__tests__/actions/getTrending.test.ts @@ -0,0 +1,220 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { elizaLogger, ModelClass, generateObject, composeContext } from '@elizaos/core'; +import getTrendingAction from '../../src/actions/getTrending'; +import axios from 'axios'; +import * as environment from '../../src/environment'; + +vi.mock('axios'); +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + success: vi.fn(), + }, + generateObject: vi.fn(), + composeContext: vi.fn(), + ModelClass: { LARGE: 'LARGE' } +})); +vi.mock('../../src/environment', () => ({ + validateCoingeckoConfig: vi.fn(), + getApiConfig: vi.fn() +})); + +describe('getTrending action', () => { + const mockRuntime = { + composeState: vi.fn(), + updateRecentMessageState: vi.fn(), + getPluginConfig: vi.fn(), + }; + + const mockMessage = {}; + const mockState = {}; + const mockCallback = vi.fn(); + const mockConfig = { + COINGECKO_API_KEY: 'test-api-key', + COINGECKO_PRO_API_KEY: null + }; + + beforeEach(() => { + vi.clearAllMocks(); + + // Mock environment validation + vi.mocked(environment.validateCoingeckoConfig).mockResolvedValue(mockConfig); + vi.mocked(environment.getApiConfig).mockReturnValue({ + baseUrl: 'https://api.coingecko.com/api/v3', + apiKey: 'test-api-key', + headerKey: 'x-cg-demo-api-key' + }); + + // Mock runtime functions + mockRuntime.composeState.mockResolvedValue(mockState); + mockRuntime.updateRecentMessageState.mockResolvedValue(mockState); + mockRuntime.getPluginConfig.mockResolvedValue({ + apiKey: 'test-api-key', + baseUrl: 'https://api.coingecko.com/api/v3' + }); + + // Mock the core functions + vi.mocked(elizaLogger.log).mockImplementation(() => {}); + vi.mocked(elizaLogger.error).mockImplementation(() => {}); + vi.mocked(elizaLogger.success).mockImplementation(() => {}); + vi.mocked(composeContext).mockReturnValue({}); + }); + + it('should validate coingecko config', async () => { + await getTrendingAction.validate(mockRuntime, mockMessage); + expect(environment.validateCoingeckoConfig).toHaveBeenCalledWith(mockRuntime); + }); + + it('should fetch and format trending data', async () => { + const mockTrendingResponse = { + data: { + coins: [ + { + item: { + id: 'bitcoin', + name: 'Bitcoin', + symbol: 'btc', + market_cap_rank: 1, + thumb: 'thumb_url', + large: 'large_url' + } + } + ], + nfts: [ + { + id: 'bored-ape', + name: 'Bored Ape Yacht Club', + symbol: 'BAYC', + thumb: 'thumb_url' + } + ], + categories: [ + { + id: 'defi', + name: 'DeFi' + } + ], + exchanges: [], + icos: [] + } + }; + + vi.mocked(axios.get).mockResolvedValueOnce(mockTrendingResponse); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + include_nfts: true, + include_categories: true + }, + modelClass: ModelClass.LARGE + }); + + await getTrendingAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(axios.get).toHaveBeenCalledWith( + 'https://api.coingecko.com/api/v3/search/trending', + expect.any(Object) + ); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Bitcoin (BTC)'), + content: expect.objectContaining({ + trending: expect.objectContaining({ + coins: expect.arrayContaining([ + expect.objectContaining({ + name: 'Bitcoin', + symbol: 'BTC', + marketCapRank: 1 + }) + ]), + nfts: expect.arrayContaining([ + expect.objectContaining({ + name: 'Bored Ape Yacht Club', + symbol: 'BAYC' + }) + ]), + categories: expect.arrayContaining([ + expect.objectContaining({ + name: 'DeFi' + }) + ]) + }) + }) + })); + }); + + it('should handle API errors gracefully', async () => { + vi.mocked(axios.get).mockRejectedValueOnce(new Error('API Error')); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + include_nfts: true, + include_categories: true + }, + modelClass: ModelClass.LARGE + }); + + await getTrendingAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Error fetching trending data'), + content: expect.objectContaining({ + error: expect.stringContaining('API Error') + }) + })); + }); + + it('should handle rate limit errors', async () => { + const rateLimitError = new Error('Rate limit exceeded'); + Object.assign(rateLimitError, { + response: { status: 429 } + }); + vi.mocked(axios.get).mockRejectedValueOnce(rateLimitError); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + include_nfts: true, + include_categories: true + }, + modelClass: ModelClass.LARGE + }); + + await getTrendingAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Rate limit exceeded'), + content: expect.objectContaining({ + error: expect.stringContaining('Rate limit exceeded'), + statusCode: 429 + }) + })); + }); + + it('should handle empty response data', async () => { + vi.mocked(axios.get).mockResolvedValueOnce({ data: null }); + + // Mock the content generation + vi.mocked(generateObject).mockResolvedValueOnce({ + object: { + include_nfts: true, + include_categories: true + }, + modelClass: ModelClass.LARGE + }); + + await getTrendingAction.handler(mockRuntime, mockMessage, mockState, {}, mockCallback); + + expect(mockCallback).toHaveBeenCalledWith(expect.objectContaining({ + text: expect.stringContaining('Error fetching trending data'), + content: expect.objectContaining({ + error: expect.stringContaining('No data received') + }) + })); + }); +}); diff --git a/packages/plugin-coingecko/__tests__/setup.ts b/packages/plugin-coingecko/__tests__/setup.ts new file mode 100644 index 00000000000..ba8257dbe39 --- /dev/null +++ b/packages/plugin-coingecko/__tests__/setup.ts @@ -0,0 +1,20 @@ +import { vi } from 'vitest'; +import { elizaLogger } from '@elizaos/core'; + +// Mock elizaLogger +vi.mock('@elizaos/core', () => ({ + elizaLogger: { + log: vi.fn(), + error: vi.fn(), + warn: vi.fn(), + info: vi.fn(), + generateObject: vi.fn(), + } +})); + +// Mock fetch +global.fetch = vi.fn(); + +beforeEach(() => { + vi.clearAllMocks(); +}); diff --git a/packages/plugin-coingecko/package.json b/packages/plugin-coingecko/package.json index 1283821cb26..b5086ec15af 100644 --- a/packages/plugin-coingecko/package.json +++ b/packages/plugin-coingecko/package.json @@ -10,12 +10,16 @@ "tsup": "^8.3.5" }, "devDependencies": { - "@biomejs/biome": "1.9.4" + "@biomejs/biome": "1.9.4", + "@vitest/coverage-v8": "^1.2.2", + "vitest": "^1.2.2" }, "scripts": { "build": "tsup --format esm --dts", "dev": "tsup --format esm --dts --watch", "test": "vitest run", + "test:watch": "vitest watch", + "test:coverage": "vitest run --coverage", "clean": "rm -rf dist", "lint": "biome lint .", "lint:fix": "biome check --apply .", diff --git a/packages/plugin-coingecko/vitest.config.ts b/packages/plugin-coingecko/vitest.config.ts new file mode 100644 index 00000000000..419efc958f9 --- /dev/null +++ b/packages/plugin-coingecko/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + environment: 'node', + setupFiles: ['./__tests__/setup.ts'], + include: ['**/__tests__/**/*.test.ts'], + } +}); From 9fe3bc552c254ccde33fa4b07bcac57f7a6048ff Mon Sep 17 00:00:00 2001 From: Ting Chien Meng Date: Mon, 3 Feb 2025 13:04:40 +0800 Subject: [PATCH 50/51] update provider-utils --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 00d43be54d4..05a1c67f865 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@polkadot/types-codec": "10.13.1", "@polkadot/keyring": "12.6.2", "@ai-sdk/provider": "1.0.6", - "@ai-sdk/provider-utils": "2.1.2", + "@ai-sdk/provider-utils": "2.1.6", "cookie": "0.7.0", "bs58": "5.0.0", "@coral-xyz/anchor": "0.28.0" From adc87b87633b0d599a095b2d871a522bd7fd4e31 Mon Sep 17 00:00:00 2001 From: Ting Chien Meng Date: Mon, 3 Feb 2025 13:40:58 +0800 Subject: [PATCH 51/51] extract attribute from raw text instead of normalized json --- packages/core/src/parsing.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/parsing.ts b/packages/core/src/parsing.ts index ebe4f614403..ffdc7f096ce 100644 --- a/packages/core/src/parsing.ts +++ b/packages/core/src/parsing.ts @@ -152,7 +152,7 @@ export function parseJSONObjectFromText( } catch (e) { console.error("Error parsing JSON:", e); console.error("Text is not JSON", text); - return extractAttributes(parsingText); + return extractAttributes(text); } } else { const objectPattern = /{[\s\S]*?}/; @@ -165,7 +165,7 @@ export function parseJSONObjectFromText( } catch (e) { console.error("Error parsing JSON:", e); console.error("Text is not JSON", text); - return extractAttributes(parsingText); + return extractAttributes(text); } } }