diff --git a/.changeset/two-taxis-feel.md b/.changeset/two-taxis-feel.md deleted file mode 100644 index 9d8c126..0000000 --- a/.changeset/two-taxis-feel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'base-mcp': patch ---- - -Updated @hashkey/agentkit to v0.6.0 and removed override diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml index 0f2ffec..81c060f 100644 --- a/.github/workflows/version.yml +++ b/.github/workflows/version.yml @@ -35,6 +35,9 @@ jobs: - name: Build run: yarn build + - name: Set deployment token + run: npm config set '//registry.npmjs.org/:_authToken' "${{ secrets.NPM_TOKEN }}" + - name: Create Release Pull Request or Publish id: changesets uses: changesets/action@v1 diff --git a/1.md b/1.md index 627e69f..934d76e 100644 --- a/1.md +++ b/1.md @@ -181,13 +181,13 @@ MCP 使用标准化的请求/响应格式: - 用于收集用户输入、显示进度和反馈。 - 显示确认提示 (confirm) - 记录成功和信息消息 (log.success, log.message) -- 区块链交互由 `@hashkey/agentkit` 和 `viem` 处理 +- 区块链交互由 `@hashkeychain/agentkit` 和 `viem` 处理 - MCP协议实现由 `@modelcontextprotocol/sdk` 提供 - 上链功能由 `@coinbase/onchainkit` 实现 - Coinbase API访问由 `@coinbase/coinbase-sdk` 提供 -# @hashkey/agentkit 库 +# @hashkeychain/agentkit 库 https://github.com/hashkey/agentkit # @@ -213,8 +213,8 @@ pnpm link --global 2. 在 base-mcp 项目目录下执行 ```shell cd ~/work/ai/base-mcp -pnpm link --global @hashkey/agentkit -pnpm link --global @hashkey/agentkit-model-context-protocol +pnpm link --global @hashkeychain/agentkit +pnpm link --global @hashkeychain/agentkit-model-context-protocol ``` 3. 安装 ```shell diff --git a/2.md b/2.md deleted file mode 100644 index 9ca9b27..0000000 --- a/2.md +++ /dev/null @@ -1,5 +0,0 @@ -不能碰用户的私钥!!! -先把测试用例 跑通,再接入 前端页面和链接钱包 -可以让用户自己跑 - --------------------- diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..39ff3de --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# base-mcp + +## 1.0.11 + +### Patch Changes + +- Updated @coinbase/agentkit to v0.6.0 and removed override +- Added ability to perform read-only operations without a SEED_PHRASE +- Added anonymous telemetry to server diff --git a/README.md b/README.md index 2dd8cd7..b244578 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,20 @@ -# Base MCP Server 🔵 +# Hashkey MCP Server 🔵 ![OpenRouter Integration](public/OpenRouter.gif) [![npm version](https://img.shields.io/npm/v/hashkey-mcp.svg)](https://www.npmjs.com/package/hashkey-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -A Model Context Protocol (MCP) server that provides onchain tools for AI applications like Claude Desktop and Cursor, allowing them to interact with the Base Network and Coinbase API. +A Model Context Protocol (MCP) server that provides onchain tools for AI applications like Claude Desktop and Cursor, allowing them to interact with the Hashkey Network. -## Overview -This MCP server extends any MCP client's capabilities by providing tools to do anything on Base: +## Extending Hashkey MCP with 3P Protocols, Tools, and Data Sources -- Retrieve wallet addresses -- List wallet balances -- Transfer funds between wallets -- Deploy smart contracts -- Interact with Morpho vaults for onchain lending -- Call contract functions -- Onramp funds via [Coinbase](https://www.coinbase.com/developer-platform/products/onramp) -- Manage ERC20 tokens -- List and transfer NFTs (ERC721 and ERC1155) -- Buy [OpenRouter](http://openrouter.ai/) credits with USDC - -The server interacts with Base, powered by Base Developer Tools and [AgentKit](https://github.com/coinbase/agentkit). - -## Extending Base MCP with 3P Protocols, Tools, and Data Sources - -Base MCP is designed to be extensible, allowing you to add your own third-party protocols, tools, and data sources. This section provides an overview of how to extend the Base MCP server with new capabilities. +Hashkey MCP is designed to be extensible, allowing you to add your own third-party protocols, tools, and data sources. This section provides an overview of how to extend the Hashkey MCP server with new capabilities. ### Adding New Tools -If you want to add a new tool to the Base MCP server, follow these steps: +If you want to add a new tool to the Hashkey MCP server, follow these steps: 1. Create a new directory in the `src/tools` directory for your tool 2. Implement the tool following the existing patterns: @@ -44,7 +28,7 @@ If you want to add a new tool to the Base MCP server, follow these steps: ### Project Structure -The Base MCP server follows this structure for tools: +The Hashkey MCP server follows this structure for tools: ``` src/ @@ -59,7 +43,7 @@ src/ ### Best Practices for Tool Development -When developing new tools for Base MCP: +When developing new tools for Hashkey MCP: - Follow the existing code style and patterns - Ensure your tool has a clear, focused purpose @@ -69,7 +53,7 @@ When developing new tools for Base MCP: - Add examples demonstrating how to use your tool - Include tests for your tool -For more detailed information on contributing to Base MCP, including adding new tools and protocols, see the [CONTRIBUTING.md](CONTRIBUTING.md) file. +For more detailed information on contributing to Hashkey MCP, including adding new tools and protocols, see the [CONTRIBUTING.md](CONTRIBUTING.md) file. ## Prerequisites @@ -104,7 +88,7 @@ hashkey-mcp --init 1. Clone this repository: ```bash - git clone https://github.com/base/hashkey-mcp.git + git clone https://github.com/HashkeyHSK/hashkey-mcp.git cd hashkey-mcp ``` @@ -151,9 +135,6 @@ ALCHEMY_API_KEY=your_alchemy_api_key # You can obtain this from https://openrouter.ai/keys OPENROUTER_API_KEY=your_openrouter_api_key -# Chain ID (optional for Base Sepolia testnet) -# Use 84532 for Base Sepolia testnet -# You do not have to include this if you want to use Base Mainnet CHAIN_ID=your_chain_id ``` @@ -169,7 +150,7 @@ This script will verify that your MCP server is working correctly by testing the ## Examples -See the [examples.md](examples.md) file for detailed examples of how to interact with the Base MCP tools through Claude. +See the [examples.md](examples.md) file for detailed examples of how to interact with the Hashkey MCP tools through Claude. ## Integration with Claude Desktop @@ -199,7 +180,7 @@ You can easily access this file via the Claude Desktop app by navigating to Clau "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", - "CHAIN_ID": "optional_for_base_sepolia_testnet" + "CHAIN_ID": "177" }, "disabled": false, "autoApprove": [] @@ -403,7 +384,7 @@ If you encounter issues: 1. Check that your Coinbase API credentials are correct 2. Verify that your seed phrase is valid -3. Ensure you're on the correct network (Base Mainnet) +3. Ensure you're on the correct network (Hashkey Mainnet) 4. Check the Claude Desktop logs for any error messages ## License @@ -414,13 +395,13 @@ If you encounter issues: Contributions are welcome! Please feel free to submit a Pull Request. -For detailed guidelines on contributing to Base MCP, including: +For detailed guidelines on contributing to Hashkey MCP, including: - Reporting bugs - Suggesting enhancements - Development setup - Coding standards -- **Adding new tools, protocols, and data sources** (see also the [Extending Base MCP](#extending-hashkey-mcp-with-3p-protocols-tools-and-data-sources) section above) +- **Adding new tools, protocols, and data sources** (see also the [Extending Hashkey MCP](#extending-hashkey-mcp-with-3p-protocols-tools-and-data-sources) section above) - Testing requirements - Documentation standards diff --git a/claude_desktop_config.json b/claude_desktop_config.json deleted file mode 100644 index 72a6af6..0000000 --- a/claude_desktop_config.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "mcpServers": { - "hashkey-mcp": { - "command": "wsl", - "args": [ - "-d", - "Ubuntu", - "node", - "/home/leo/work/ai/hashkey-mcp/build/index.js" - ], - "env": { - "COINBASE_API_KEY_NAME": "98496c57-7932-468e-bf0e-fc46ca882395", - "COINBASE_API_PRIVATE_KEY": "VBOLBZSDuWW6PN91TRfir3BIB9cYpo7Zr2oCGd9rW8S+eAylHqXXYcjKFAzylN3fsrK+EhKXLRICZeh+EBcGpQ==", - "SEED_PHRASE": "someone vote uncover blanket wild hundred vault coil setup rack lamp violin", - "COINBASE_PROJECT_ID": "5486300e-2a82-4652-abe5-62ddf9f05c73", - "OPENROUTER_API_KEY": "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", - "CHAIN_ID": "133" - }, - "disabled": false, - "autoApprove": [] - } - } -} \ No newline at end of file diff --git a/mcp_config.json b/mcp_config.json index 4c337e5..a27fcb1 100644 --- a/mcp_config.json +++ b/mcp_config.json @@ -1,22 +1,14 @@ { "mcpServers": { "base-mcp": { - "command": "wsl", - "args": [ - "-d", - "Ubuntu-20.04", - "-e", - "bash", - "-c", - "source /home/leo/.nvm/nvm.sh && node /home/leo/work/ai/base-mcp/build/index.js" - ], + "command": "node", + "args": ["/Users/tinahe/base-mcp/build/index.js"], "env": { - "COINBASE_API_KEY_NAME": "98496c57-7932-468e-bf0e-fc46ca882395", - "COINBASE_API_PRIVATE_KEY": "VBOLBZSDuWW6PN91TRfir3BIB9cYpo7Zr2oCGd9rW8S+eAylHqXXYcjKFAzylN3fsrK+EhKXLRICZeh+EBcGpQ==", - "SEED_PHRASE": "someone vote uncover blanket wild hundred vault coil setup rack lamp violin", - "COINBASE_PROJECT_ID": "5486300e-2a82-4652-abe5-62ddf9f05c73", - "OPENROUTER_API_KEY": "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", - "CHAIN_ID": "133" + "COINBASE_API_KEY_NAME": "YOUR_COINBASE_API_KEY_NAME", + "COINBASE_API_PRIVATE_KEY": "YOUR_COINBASE_API_PRIVATE_KEY", + "SEED_PHRASE": "YOUR_WALLET_SEED_PHRASE", + "COINBASE_PROJECT_ID": "YOUR_COINBASE_PROJECT_ID", + "OPENROUTER_API_KEY": "YOUR_OPENROUTER_API_KEY" // Optional, only needed for OpenRouter credits }, "disabled": false, "autoApprove": [] diff --git a/mcp_config.json.example b/mcp_config.json.example index 3e37e81..a2d815e 100644 --- a/mcp_config.json.example +++ b/mcp_config.json.example @@ -1,13 +1,8 @@ { "mcpServers": { "hashkey-mcp": { - "command": "wsl", - "args": [ - "-d", - "Ubuntu", - "node", - "/home/leo/work/ai/hashkey-mcp/build/index.js" - ], + "command": "npx", + "args": ["-y", "hashkey-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", @@ -16,10 +11,9 @@ "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", - "CHAIN_ID": "84532" + "CHAIN_ID": "177" }, "disabled": false, - "autoApprove": [] } } } \ No newline at end of file diff --git a/package.json b/package.json index 1e9cc42..bc90eab 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,10 @@ { "name": "hashkey-mcp", - "version": "1.0.10", + "version": "1.0.13", "description": "A Model Context Protocol (MCP) server that provides onchain tools for Claude AI, allowing it to interact with the Base blockchain and Coinbase API", - "bin": "./build/index.js", + "bin": { + "base-mcp": "build/index.js" + }, "type": "module", "scripts": { "run": "tsx src/index.ts", @@ -21,7 +23,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/base/hashkey-mcp" + "url": "git+https://github.com/HashkeyHSK/hashkey-mcp.git" }, "keywords": [ "mcp", @@ -38,7 +40,7 @@ "packageManager": "pnpm@10.5.2", "dependencies": { "@clack/prompts": "^0.10.0", - "@hashkey/agentkit": "^0.6.0", + "@hashkeychain/agentkit": "^0.6.3", "@coinbase/agentkit-model-context-protocol": "^0.2.0", "@coinbase/coinbase-sdk": "^0.21.0", "@coinbase/onchainkit": "^0.37.6", @@ -50,7 +52,7 @@ "graphql": "^16.10.0", "graphql-request": "^7.1.2", "reflect-metadata": "^0.2.2", - "viem": "^2.23.9", + "viem": "^2.27.2", "zod": "^3.24.2" }, "devDependencies": { @@ -74,11 +76,5 @@ "typescript": "^5.8.2", "typescript-eslint": "^8.26.1", "zod-to-json-schema": "^3.24.4" - }, - "pnpm": { - "overrides": { - "@hashkey/agentkit": "link:../../../.local/share/pnpm/global/5/node_modules/@hashkey/agentkit", - "@hashkey/agentkit-model-context-protocol": "link:../../../.local/share/pnpm/global/5/node_modules/@hashkey/agentkit-model-context-protocol" - } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b65fc62..aa64d9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - '@coinbase/agentkit': link:../../../.local/share/pnpm/global/5/node_modules/@coinbase/agentkit - importers: .: @@ -14,18 +11,18 @@ importers: '@clack/prompts': specifier: ^0.10.0 version: 0.10.0 - '@coinbase/agentkit': - specifier: link:../../../.local/share/pnpm/global/5/node_modules/@coinbase/agentkit - version: link:../../../.local/share/pnpm/global/5/node_modules/@coinbase/agentkit '@coinbase/agentkit-model-context-protocol': specifier: ^0.2.0 - version: 0.2.0(@coinbase/agentkit@..+..+.local+share+pnpm+global+5+node_modules+@coinbase+agentkit) + version: 0.2.0(@coinbase/agentkit@0.6.2(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)) '@coinbase/coinbase-sdk': specifier: ^0.21.0 version: 0.21.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) '@coinbase/onchainkit': specifier: ^0.37.6 - version: 0.37.8(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + version: 0.37.8(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + '@hashkeychain/agentkit': + specifier: ^0.6.3 + version: 0.6.3(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) '@inquirer/prompts': specifier: ^7.4.0 version: 7.4.1(@types/node@22.14.0) @@ -51,8 +48,8 @@ importers: specifier: ^0.2.2 version: 0.2.2 viem: - specifier: ^2.23.9 - version: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + specifier: ^2.27.2 + version: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) zod: specifier: ^3.24.2 version: 3.24.2 @@ -120,12 +117,22 @@ importers: packages: + '@across-protocol/app-sdk@0.2.0': + resolution: {integrity: sha512-2evSZQHC+xBvH4gBMDwxwwAgCimjBRId0n/bOAW/EHZv179xdP1wQJu6/bfCbEeCrBwhQaGrZEsUtxrrJ+SJNg==} + engines: {node: '>=18.0.0'} + peerDependencies: + viem: ^2.20.1 + '@adraffy/ens-normalize@1.10.1': resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} '@adraffy/ens-normalize@1.11.0': resolution: {integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==} + '@alloralabs/allora-sdk@0.1.1': + resolution: {integrity: sha512-43+Psr16UY+xh7MWn/lZyHTQiOkn0GlKtsfj9IynfCFW3jac8R3WoP6GaIqyErmeTIBq48rURZ7KFfSiRrmNTA==} + engines: {node: '>=18'} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -229,6 +236,12 @@ packages: peerDependencies: '@coinbase/agentkit': '>=0.1.0' + '@coinbase/agentkit@0.6.2': + resolution: {integrity: sha512-24ejDIGkaOZS9aku9OnXw2C/nqCqIhJs1mMk9mthLZB6DkltUV6PRNICsC/2aa+E0KmSzDx4rNNjjLFZyQ079g==} + + '@coinbase/coinbase-sdk@0.20.0': + resolution: {integrity: sha512-OoMMktKbjmeEwtwQCK3kIIoX5M+hNelxAGX5Llymvw6bmyrMDaEBZ/Myga9kaLJ+7Hi5Y4jPDy4Cy2MGxxXg6w==} + '@coinbase/coinbase-sdk@0.21.0': resolution: {integrity: sha512-ATyepIy2L9GAY5KNt5O71fB+pdekdfmVR4BHnnID6iOaVD5dE4mV9Mj9H4Wkg0uFy2Fj+F9IVEDqBklaD7lkKw==} @@ -477,6 +490,9 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@hashkeychain/agentkit@0.6.3': + resolution: {integrity: sha512-TNw7tHCm9s1Hn6+bRDLiM0doUfk48xIjzwx0j7znAOwtd0IiSvh3olhcCy4xZAPpBtSTUL3t0Mk8FFyvkiI3gw==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -645,6 +661,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jup-ag/api@6.0.40': + resolution: {integrity: sha512-iHDOY5YiCnt+XvqCoiPTKcYWIpAY7nmeo3Rsr1Cx2sdjgqTRjqNsYtLLvjTOO33pemVz5h+U0GaU2vc9zeyjew==} + '@lit-labs/ssr-dom-shim@1.3.0': resolution: {integrity: sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==} @@ -801,6 +820,10 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@opensea/seaport-js@4.0.4': + resolution: {integrity: sha512-pOBgU+y1H9Bh463ZdgFshFBxnBQvEaGfoOJFDHbkvZTNLSqIOyuDmICFTQJEiPjYsS6tMQTbw2oJBtcVLFUT2g==} + engines: {node: '>=20.0.0'} + '@paulmillr/qr@0.2.1': resolution: {integrity: sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==} deprecated: 'The package is now available as "qr": npm install qr' @@ -813,6 +836,18 @@ packages: resolution: {integrity: sha512-gyW6YPholimAEMuXZjJrCMVuQm0ox++Zxk5o2v0090X2DSewVnCTIXNHCyQe/nfV1M4v8wdB7bpRXqqi76iJjA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} + '@privy-io/public-api@2.21.2': + resolution: {integrity: sha512-UMiCXkxyfo0PTaMVtWRBtLRVkWDhkWoEEmWoCFlGKE55zxYRUnDmVKKhqUNU8gIfDV6L2prIm5pJRqShVLHbXg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + + '@privy-io/server-auth@1.20.2': + resolution: {integrity: sha512-RFqYZ0SUr21B2cqV4GMFVrUnqL4bVvAT40Js/y2u6Z4Anx5yijnRcyy3dt6XPX91kz+A1n8QzAcYB/5qpI7BMQ==} + peerDependencies: + viem: ^2 + peerDependenciesMeta: + viem: + optional: true + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -847,6 +882,78 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@solana/buffer-layout-utils@0.2.0': + resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} + engines: {node: '>= 10'} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.0.0-rc.1': + resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-rc.1': + resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-rc.1': + resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-rc.1': + resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs@2.0.0-rc.1': + resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-rc.1': + resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-rc.1': + resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} + peerDependencies: + typescript: '>=5' + + '@solana/spl-token-group@0.0.7': + resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token-metadata@0.1.6': + resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token@0.4.13': + resolution: {integrity: sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.5 + + '@solana/web3.js@1.98.0': + resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==} + + '@stablelib/base64@1.0.1': + resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@tanstack/query-core@5.72.0': resolution: {integrity: sha512-aa3p6Mou++JLLxxxVX9AB9uGeRIGc0JWkw96GASXuMG8K3D+JpYbSFcqXbkGFJ1eX2jKHPurmCBoO43RjjXJCA==} @@ -920,6 +1027,15 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@typescript-eslint/eslint-plugin@8.29.1': resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1070,6 +1186,10 @@ packages: '@walletconnect/window-metadata@1.0.1': resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + abitype@1.0.8: resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: @@ -1098,6 +1218,10 @@ packages: aes-js@4.0.0-beta.5: resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1205,6 +1329,16 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} + bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + + bignumber.js@9.2.1: + resolution: {integrity: sha512-+NzaKgOUvInq9TIUZ1+DRspzf/HApkCwD4btfuasFTdrfnOxqx853TgDpMolp+uv4RpRp7bPcEU2zKr9+fRmyw==} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bip32@4.0.0: resolution: {integrity: sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ==} engines: {node: '>=6.0.0'} @@ -1222,6 +1356,9 @@ packages: resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} engines: {node: '>=18'} + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} @@ -1250,6 +1387,9 @@ packages: bs58check@2.1.2: resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} + buffer-reverse@1.0.1: + resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -1281,6 +1421,10 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + canonicalize@2.1.0: + resolution: {integrity: sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==} + hasBin: true + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1292,6 +1436,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1333,6 +1480,13 @@ packages: comlink@4.4.2: resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1383,6 +1537,12 @@ packages: crossws@0.3.4: resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -1453,6 +1613,10 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1561,6 +1725,12 @@ packages: es-toolkit@1.33.0: resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} @@ -1724,6 +1894,10 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1744,6 +1918,15 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-sha256@1.3.0: + resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -1751,6 +1934,9 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1948,6 +2134,9 @@ packages: resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} hasBin: true + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -2008,6 +2197,9 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} @@ -2124,11 +2316,24 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + isows@1.0.6: resolution: {integrity: sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==} peerDependencies: ws: '*' + jayson@4.1.3: + resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==} + engines: {node: '>=8'} + hasBin: true + + jose@4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} @@ -2164,6 +2369,9 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -2171,6 +2379,10 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + keccak@3.0.4: resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} @@ -2221,6 +2433,9 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} @@ -2233,6 +2448,10 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + merkletreejs@0.4.1: + resolution: {integrity: sha512-W2VSHeGTdAnWtedee+pgGn7SHvncMdINnMeHAaXrfarSaMNLff/pm7RCr/QXYxN6XzJFgJZY+28ejO0lAosW4A==} + engines: {node: '>= 7.6.0'} + micro-ftch@0.3.1: resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} @@ -2377,6 +2596,10 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + opensea-js@7.1.18: + resolution: {integrity: sha512-cFSwroGwRkb8/FHsNjIwL2qvdve39CKMU6IUKmx+zDfsgVwKQ+7SHEj5YfKEspji5kUPpnfBlNLCAIbRS+pssA==} + engines: {node: '>=20.0.0'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -2580,6 +2803,9 @@ packages: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2625,6 +2851,9 @@ packages: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} + redaxios@0.5.1: + resolution: {integrity: sha512-FSD2AmfdbkYwl7KDExYQlVvIrFz6Yd83pGfaGjBzM9F6rpq8g652Q4Yq5QD4c+nf4g2AgeElv1y+8ajUPiOYMg==} + reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -2646,6 +2875,9 @@ packages: require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2673,6 +2905,9 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} + rpc-websockets@9.1.1: + resolution: {integrity: sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2856,6 +3091,10 @@ packages: resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} engines: {node: '>=14.0.0'} + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2864,6 +3103,12 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svix-fetch@3.0.0: + resolution: {integrity: sha512-rcADxEFhSqHbraZIsjyZNh4TF6V+koloX1OzZ+AQuObX9mZ2LIMhm1buZeuc5BIZPftZpJCMBsSiBaeszo9tRw==} + + svix@1.64.1: + resolution: {integrity: sha512-9qq8h7Ex6IjtaDiuq93tL4/YfnV431/e1ieVfkwVaiyVbLUuOfScgary1a+uGygdbqARj9ye/yO+kBun7oCnbA==} + tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} @@ -2876,9 +3121,15 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -2894,12 +3145,19 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + treeify@1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' + ts-case-convert@2.1.0: + resolution: {integrity: sha512-Ye79el/pHYXfoew6kqhMwCoxp4NWjKNcm2kBzpmEMIU9dd9aBmHNNFtZ+WTm0rz1ngyDmfqDXDlyUnBXayiD0w==} + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -2920,6 +3178,9 @@ packages: tweetnacl@1.0.3: resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + twitter-api-v2@1.22.0: + resolution: {integrity: sha512-KlcRL9vcBzjeS/PwxX33NziP+SHp9n35DOclKtpOmnNes7nNVnK7WG4pKlHfBqGrY5kAz/8J5ERS8DWkYOaiWw==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -2928,6 +3189,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + type-is@2.0.1: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} @@ -3052,6 +3317,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: @@ -3104,8 +3372,8 @@ packages: typescript: optional: true - viem@2.26.2: - resolution: {integrity: sha512-+yXSl1n+jV/Kn/zpETiNq0WOcINXti29nxdPIONvvNh+Es0VfeusW8bb2okVfa55pmuc8kOCOpB5wq3ZIUCTSA==} + viem@2.27.2: + resolution: {integrity: sha512-VwsB+RswcflbwBNPMvzTHuafDA51iT8v4SuIFcudTP2skmxcdodbgoOLP4dYELVnCzcedxoSJDOeext4V3zdnA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -3129,6 +3397,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -3273,10 +3544,19 @@ packages: snapshots: + '@across-protocol/app-sdk@0.2.0(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': + dependencies: + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + '@adraffy/ens-normalize@1.10.1': {} '@adraffy/ens-normalize@1.11.0': {} + '@alloralabs/allora-sdk@0.1.1': + dependencies: + '@types/node': 22.14.0 + typescript: 5.8.3 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -3479,15 +3759,66 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@coinbase/agentkit-model-context-protocol@0.2.0(@coinbase/agentkit@..+..+.local+share+pnpm+global+5+node_modules+@coinbase+agentkit)': + '@coinbase/agentkit-model-context-protocol@0.2.0(@coinbase/agentkit@0.6.2(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10))': dependencies: - '@coinbase/agentkit': link:../../../.local/share/pnpm/global/5/node_modules/@coinbase/agentkit + '@coinbase/agentkit': 0.6.2(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) '@modelcontextprotocol/sdk': 1.9.0 zod: 3.24.2 zod-to-json-schema: 3.24.5(zod@3.24.2) transitivePeerDependencies: - supports-color + '@coinbase/agentkit@0.6.2(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@across-protocol/app-sdk': 0.2.0(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@alloralabs/allora-sdk': 0.1.1 + '@coinbase/coinbase-sdk': 0.20.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + '@jup-ag/api': 6.0.40 + '@privy-io/public-api': 2.21.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@privy-io/server-auth': 1.20.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@solana/spl-token': 0.4.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bs58: 4.0.1 + canonicalize: 2.1.0 + decimal.js: 10.5.0 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + md5: 2.3.0 + opensea-js: 7.1.18(bufferutil@4.0.9)(utf-8-validate@5.0.10) + reflect-metadata: 0.2.2 + twitter-api-v2: 1.22.0 + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + zod: 3.24.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@coinbase/coinbase-sdk@0.20.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': + dependencies: + '@scure/bip32': 1.6.2 + abitype: 1.0.8(typescript@5.8.3)(zod@3.24.2) + axios: 1.8.4 + axios-mock-adapter: 1.22.0(axios@1.8.4) + axios-retry: 4.5.0(axios@1.8.4) + bip32: 4.0.0 + bip39: 3.1.0 + decimal.js: 10.5.0 + dotenv: 16.4.7 + ed2curve: 0.3.0 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + jose: 5.10.0 + secp256k1: 5.0.1 + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + transitivePeerDependencies: + - bufferutil + - debug + - typescript + - utf-8-validate + - zod + '@coinbase/coinbase-sdk@0.21.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@scure/bip32': 1.6.2 @@ -3503,7 +3834,7 @@ snapshots: ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) jose: 5.10.0 secp256k1: 5.0.1 - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) transitivePeerDependencies: - bufferutil - debug @@ -3511,10 +3842,10 @@ snapshots: - utf-8-validate - zod - '@coinbase/onchainkit@0.37.8(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@coinbase/onchainkit@0.37.8(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@farcaster/frame-sdk': 0.0.28(typescript@5.8.3)(zod@3.24.2) - '@farcaster/frame-wagmi-connector': 0.0.16(@farcaster/frame-sdk@0.0.28(typescript@5.8.3)(zod@3.24.2))(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@farcaster/frame-wagmi-connector': 0.0.16(@farcaster/frame-sdk@0.0.28(typescript@5.8.3)(zod@3.24.2))(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) '@tanstack/react-query': 5.72.0(react@19.1.0) '@types/react': 19.1.0 clsx: 2.1.1 @@ -3525,8 +3856,8 @@ snapshots: react-dom: 19.1.0(react@19.1.0) tailwind-merge: 2.6.0 tailwindcss-animate: 1.0.7 - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) - wagmi: 2.14.16(@tanstack/query-core@5.72.0)(@tanstack/react-query@5.72.0(react@19.1.0))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + wagmi: 2.14.16(@tanstack/query-core@5.72.0)(@tanstack/react-query@5.72.0(react@19.1.0))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -3742,16 +4073,44 @@ snapshots: - typescript - zod - '@farcaster/frame-wagmi-connector@0.0.16(@farcaster/frame-sdk@0.0.28(typescript@5.8.3)(zod@3.24.2))(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': + '@farcaster/frame-wagmi-connector@0.0.16(@farcaster/frame-sdk@0.0.28(typescript@5.8.3)(zod@3.24.2))(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': dependencies: '@farcaster/frame-sdk': 0.0.28(typescript@5.8.3)(zod@3.24.2) - '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: graphql: 16.10.0 + '@hashkeychain/agentkit@0.6.3(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@across-protocol/app-sdk': 0.2.0(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@alloralabs/allora-sdk': 0.1.1 + '@coinbase/coinbase-sdk': 0.20.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + '@jup-ag/api': 6.0.40 + '@privy-io/public-api': 2.21.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@privy-io/server-auth': 1.20.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@solana/spl-token': 0.4.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bs58: 4.0.1 + canonicalize: 2.1.0 + decimal.js: 10.5.0 + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + md5: 2.3.0 + opensea-js: 7.1.18(bufferutil@4.0.9)(utf-8-validate@5.0.10) + reflect-metadata: 0.2.2 + twitter-api-v2: 1.22.0 + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + zod: 3.24.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -3909,6 +4268,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jup-ag/api@6.0.40': {} + '@lit-labs/ssr-dom-shim@1.3.0': {} '@lit/reactive-element@1.6.3': @@ -4185,6 +4546,14 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@opensea/seaport-js@4.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + merkletreejs: 0.4.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@paulmillr/qr@0.2.1': {} '@privy-io/api-base@1.4.5': @@ -4196,13 +4565,47 @@ snapshots: '@privy-io/api-base': 1.4.5 bs58: 5.0.0 libphonenumber-js: 1.12.6 - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + zod: 3.24.2 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + + '@privy-io/public-api@2.21.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@privy-io/api-base': 1.4.5 + bs58: 5.0.0 + libphonenumber-js: 1.12.6 + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) zod: 3.24.2 transitivePeerDependencies: - bufferutil - typescript - utf-8-validate + '@privy-io/server-auth@1.20.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': + dependencies: + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@privy-io/public-api': 2.21.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + canonicalize: 2.1.0 + dotenv: 16.4.7 + jose: 4.15.9 + node-fetch-native: 1.6.6 + redaxios: 0.5.1 + svix: 1.64.1 + ts-case-convert: 2.1.0 + type-fest: 3.13.1 + optionalDependencies: + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + '@rtsao/scc@1.1.0': {} '@safe-global/safe-apps-provider@0.18.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': @@ -4218,7 +4621,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.22.9 - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) transitivePeerDependencies: - bufferutil - typescript @@ -4255,6 +4658,134 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bigint-buffer: 1.1.5 + bignumber.js: 9.2.1 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.0.0-rc.1(typescript@5.8.3)': + dependencies: + '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) + typescript: 5.8.3 + + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.8.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) + typescript: 5.8.3 + + '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.8.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) + typescript: 5.8.3 + + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.8.3 + + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/errors@2.0.0-rc.1(typescript@5.8.3)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.8.3 + + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.8.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token@0.4.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.27.0 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.6.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.1.1 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@stablelib/base64@1.0.1': {} + + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + '@tanstack/query-core@5.72.0': {} '@tanstack/react-query@5.72.0(react@19.1.0)': @@ -4336,6 +4867,16 @@ snapshots: '@types/trusted-types@2.0.7': {} + '@types/uuid@8.3.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 22.14.0 + + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.14.0 + '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -4413,16 +4954,16 @@ snapshots: '@typescript-eslint/types': 8.29.1 eslint-visitor-keys: 4.2.0 - '@wagmi/connectors@5.7.12(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)': + '@wagmi/connectors@5.7.12(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)': dependencies: '@coinbase/wallet-sdk': 4.3.0 '@metamask/sdk': 0.32.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) - '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) '@walletconnect/ethereum-provider': 2.19.2(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -4452,11 +4993,11 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': + '@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.8.3) - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) zustand: 5.0.0(@types/react@19.1.0)(react@19.1.0)(use-sync-external-store@1.4.0(react@19.1.0)) optionalDependencies: '@tanstack/query-core': 5.72.0 @@ -4829,6 +5370,11 @@ snapshots: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + abitype@1.0.8(typescript@5.8.3)(zod@3.24.2): optionalDependencies: typescript: 5.8.3 @@ -4847,6 +5393,10 @@ snapshots: aes-js@4.0.0-beta.5: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -4976,6 +5526,16 @@ snapshots: dependencies: is-windows: 1.0.2 + bigint-buffer@1.1.5: + dependencies: + bindings: 1.5.0 + + bignumber.js@9.2.1: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + bip32@4.0.0: dependencies: '@noble/hashes': 1.7.1 @@ -5005,6 +5565,12 @@ snapshots: transitivePeerDependencies: - supports-color + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + bowser@2.11.0: {} brace-expansion@1.1.11: @@ -5040,6 +5606,8 @@ snapshots: create-hash: 1.2.0 safe-buffer: 5.2.1 + buffer-reverse@1.0.1: {} + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -5072,6 +5640,8 @@ snapshots: camelcase@5.3.1: {} + canonicalize@2.1.0: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -5081,6 +5651,8 @@ snapshots: chardet@0.7.0: {} + charenc@0.0.2: {} + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -5116,6 +5688,10 @@ snapshots: comlink@4.4.2: {} + commander@12.1.0: {} + + commander@2.20.3: {} + concat-map@0.0.1: {} content-disposition@1.0.0: @@ -5169,6 +5745,10 @@ snapshots: dependencies: uncrypto: 0.1.3 + crypt@0.0.2: {} + + crypto-js@4.2.0: {} + csstype@3.1.3: {} data-view-buffer@1.0.2: @@ -5227,6 +5807,8 @@ snapshots: defu@6.1.4: {} + delay@5.0.0: {} + delayed-stream@1.0.0: {} depd@2.0.0: {} @@ -5395,6 +5977,12 @@ snapshots: es-toolkit@1.33.0: {} + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -5657,6 +6245,8 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + eyes@0.1.8: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -5675,6 +6265,12 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-sha256@1.3.0: {} + + fast-stable-stringify@1.0.0: {} + + fastestsmallesttextencoderdecoder@1.0.22: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -5683,6 +6279,8 @@ snapshots: dependencies: flat-cache: 4.0.1 + file-uri-to-path@1.0.0: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -5904,6 +6502,10 @@ snapshots: human-id@4.1.1: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -5965,6 +6567,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-buffer@2.0.5: {} is-callable@1.2.7: {} @@ -6069,6 +6673,10 @@ snapshots: isexe@2.0.0: {} + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + isows@1.0.6(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -6077,6 +6685,26 @@ snapshots: dependencies: ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + jayson@4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jose@4.15.9: {} + jose@5.10.0: {} js-tokens@4.0.0: {} @@ -6105,6 +6733,8 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-safe@5.0.1: {} + json5@1.0.2: dependencies: minimist: 1.2.8 @@ -6113,6 +6743,8 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonparse@1.3.1: {} + keccak@3.0.4: dependencies: node-addon-api: 2.0.2 @@ -6170,12 +6802,24 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + media-typer@1.1.0: {} merge-descriptors@2.0.0: {} merge2@1.4.1: {} + merkletreejs@0.4.1: + dependencies: + buffer-reverse: 1.0.1 + crypto-js: 4.2.0 + treeify: 1.1.0 + micro-ftch@0.3.1: {} micromatch@4.0.8: @@ -6307,6 +6951,14 @@ snapshots: dependencies: wrappy: 1.0.2 + opensea-js@7.1.18(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@opensea/seaport-js': 4.0.4(bufferutil@4.0.9)(utf-8-validate@5.0.10) + ethers: 6.13.5(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -6505,6 +7157,8 @@ snapshots: split-on-first: 1.1.0 strict-uri-encode: 2.0.0 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} quick-format-unescaped@4.0.4: {} @@ -6554,6 +7208,8 @@ snapshots: real-require@0.1.0: {} + redaxios@0.5.1: {} + reflect-metadata@0.2.2: {} reflect.getprototypeof@1.0.10: @@ -6582,6 +7238,8 @@ snapshots: require-main-filename@2.0.0: {} + requires-port@1.0.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -6611,6 +7269,19 @@ snapshots: transitivePeerDependencies: - supports-color + rpc-websockets@9.1.1: + dependencies: + '@swc/helpers': 0.5.17 + '@types/uuid': 8.3.4 + '@types/ws': 8.18.1 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -6836,22 +7507,46 @@ snapshots: superstruct@1.0.4: {} + superstruct@2.0.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 supports-preserve-symlinks-flag@1.0.0: {} + svix-fetch@3.0.0: + dependencies: + node-fetch: 2.7.0 + whatwg-fetch: 3.6.20 + transitivePeerDependencies: + - encoding + + svix@1.64.1: + dependencies: + '@stablelib/base64': 1.0.1 + '@types/node': 22.14.0 + es6-promise: 4.2.8 + fast-sha256: 1.3.0 + svix-fetch: 3.0.0 + url-parse: 1.5.10 + transitivePeerDependencies: + - encoding + tailwind-merge@2.6.0: {} tailwindcss-animate@1.0.7: {} term-size@2.2.1: {} + text-encoding-utf-8@1.0.2: {} + thread-stream@0.15.2: dependencies: real-require: 0.1.0 + through@2.3.8: {} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -6864,10 +7559,14 @@ snapshots: tr46@0.0.3: {} + treeify@1.1.0: {} + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 + ts-case-convert@2.1.0: {} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -6890,12 +7589,16 @@ snapshots: tweetnacl@1.0.3: {} + twitter-api-v2@1.22.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 type-fest@0.21.3: {} + type-fest@3.13.1: {} + type-is@2.0.1: dependencies: content-type: 1.0.5 @@ -6989,6 +7692,11 @@ snapshots: dependencies: punycode: 2.3.1 + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + use-sync-external-store@1.2.0(react@19.1.0): dependencies: react: 19.1.0 @@ -7042,7 +7750,7 @@ snapshots: - utf-8-validate - zod - viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2): + viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2): dependencies: '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 @@ -7059,14 +7767,14 @@ snapshots: - utf-8-validate - zod - wagmi@2.14.16(@tanstack/query-core@5.72.0)(@tanstack/react-query@5.72.0(react@19.1.0))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2): + wagmi@2.14.16(@tanstack/query-core@5.72.0)(@tanstack/react-query@5.72.0(react@19.1.0))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2): dependencies: '@tanstack/react-query': 5.72.0(react@19.1.0) - '@wagmi/connectors': 5.7.12(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2) - '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) + '@wagmi/connectors': 5.7.12(@types/react@19.1.0)(@wagmi/core@2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(react@19.1.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2) + '@wagmi/core': 2.16.7(@tanstack/query-core@5.72.0)(@types/react@19.1.0)(react@19.1.0)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.0))(viem@2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)) react: 19.1.0 use-sync-external-store: 1.4.0(react@19.1.0) - viem: 2.26.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) + viem: 2.27.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -7101,6 +7809,8 @@ snapshots: webidl-conversions@3.0.1: {} + whatwg-fetch@3.6.20: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 diff --git a/public/OpenRouter.gif b/public/OpenRouter.gif deleted file mode 100644 index 81776dc..0000000 Binary files a/public/OpenRouter.gif and /dev/null differ diff --git a/public/hashkey-mcp.png b/public/hashkey-mcp.png new file mode 100644 index 0000000..597cec0 Binary files /dev/null and b/public/hashkey-mcp.png differ diff --git a/public/mcp-chat.png b/public/mcp-chat.png new file mode 100644 index 0000000..3c5ed68 Binary files /dev/null and b/public/mcp-chat.png differ diff --git a/src/analytics.ts b/src/analytics.ts new file mode 100644 index 0000000..5d13569 --- /dev/null +++ b/src/analytics.ts @@ -0,0 +1,40 @@ +/** + * Base MCP collects anonymouse usage data to help us understand how the server is used + * and to improve the product. + */ + +import { version } from './version.js'; + +const ANALYTICS_URL = 'https://api.developer.coinbase.com/analytics'; + +export enum Event { + CliInit = 'baseMcpCliInit', + Initialized = 'baseMcpInitialized', + ToolUsed = 'baseMcpToolSelected', +} +type EventData = { + [Event.CliInit]: Record; + [Event.Initialized]: Record; + [Event.ToolUsed]: { + toolName: string; + }; +}; + +export function postMetric( + event: E, + data: EventData[E], + sessionId?: string, +) { + fetch(ANALYTICS_URL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'BaseMcp-Version': version, + }, + body: JSON.stringify({ + eventType: event, + ...(sessionId ? { sessionId } : {}), + data, + }), + }).catch(() => {}); +} diff --git a/src/cli/init.ts b/src/cli/init.ts index 49da9ff..9ed0263 100644 --- a/src/cli/init.ts +++ b/src/cli/init.ts @@ -10,6 +10,7 @@ import { } from '@clack/prompts'; import chalk from 'chalk'; import { english, generateMnemonic } from 'viem/accounts'; +import { Event, postMetric } from '../analytics.js'; import { configureClaude } from './claude.js'; import { configureCursor } from './cursor.js'; import { isUuid, validateMnemonic, writeRootConfig } from './utils.js'; @@ -54,6 +55,8 @@ const TOOLS_WITH_REQUIRED_KEYS: ToolWithKeys[] = [ const hashkeyBlue = chalk.hex('#0052FF'); +postMetric(Event.CliInit, {}); + export async function init() { console.log( hashkeyBlue(` @@ -68,7 +71,7 @@ export async function init() { console.log(`\n`); console.log( chalk.blueBright( - `🔵 Welcome to the Hashkey MCP CLI! \nThis tool will help you initialize a new MCP server in various apps (Claude, etc.)\nTo learn more, visit https://github.com/base/hashkey-mcp.`, + `🔵 Welcome to the Hashkey MCP CLI! \nThis tool will help you initialize a new MCP server in various apps (Claude, etc.)\nTo learn more, visit https://github.com/HashkeyHSK/hashkey-mcp.`, ), ); diff --git a/src/main.ts b/src/main.ts index ed30c26..10a078e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,12 +2,13 @@ import { AgentKit, cdpApiActionProvider, cdpWalletActionProvider, + ViemWalletProvider, CdpWalletProvider, walletActionProvider, erc20ActionProvider, erc721ActionProvider, wowActionProvider, -} from '@hashkey/agentkit'; +} from '@hashkeychain/agentkit'; // import { getMcpTools } from '@coinbase/agentkit-model-context-protocol'; import { getMcpTools } from '@coinbase/agentkit-model-context-protocol'; import { Coinbase } from '@coinbase/coinbase-sdk'; @@ -25,11 +26,15 @@ import { type PublicActions, type WalletClient, } from 'viem'; -import { mnemonicToAccount } from 'viem/accounts'; +import { english, generateMnemonic, mnemonicToAccount } from 'viem/accounts'; +import { Event, postMetric } from './analytics.js'; import { hashkeyTestnet } from 'viem/chains'; import { chainIdToCdpNetworkId, chainIdToChain } from './chains.js'; import { baseMcpTools, toolToHandler } from './tools/index.js'; -import { getActionProvidersWithRequiredEnvVars } from './utils.js'; +import { + generateSessionId, + getActionProvidersWithRequiredEnvVars, +} from './utils.js'; import { version } from './version.js'; export async function main() { @@ -39,16 +44,20 @@ export async function main() { const privateKey = process.env.COINBASE_API_SECRET || process.env.COINBASE_API_PRIVATE_KEY; // Previously, was called COINBASE_API_PRIVATE_KEY const seedPhrase = process.env.SEED_PHRASE; + const fallbackPhrase = generateMnemonic(english, 256); // Fallback in case user wants read-only operations const chainId = process.env.CHAIN_ID ? Number(process.env.CHAIN_ID) : hashkeyTestnet.id; - // TODO: stricter checks for required env vars with better error messaging - if (!apiKeyName || !privateKey || !seedPhrase) { + if (!apiKeyName || !privateKey) { console.error( - 'Please set COINBASE_API_KEY_NAME, COINBASE_API_PRIVATE_KEY, and SEED_PHRASE environment variables', + 'Please set COINBASE_API_KEY_NAME and COINBASE_API_PRIVATE_KEY environment variables', ); process.exit(1); } + const sessionId = generateSessionId(); + + postMetric(Event.Initialized, {}, sessionId); + const chain = chainIdToChain(chainId); if (!chain) { throw new Error( @@ -57,32 +66,33 @@ export async function main() { } const viemClient = createWalletClient({ - account: mnemonicToAccount(seedPhrase), + account: mnemonicToAccount(seedPhrase ?? fallbackPhrase), chain, transport: http(), }).extend(publicActions) as WalletClient & PublicActions; - - const cdpWalletProvider = await CdpWalletProvider.configureWithWallet({ - mnemonicPhrase: seedPhrase, - apiKeyName, - apiKeyPrivateKey: privateKey, - networkId: chainIdToCdpNetworkId[chainId], - }); + + // const cdpWalletProvider = await CdpWalletProvider.configureWithWallet({ + // mnemonicPhrase: seedPhrase ?? fallbackPhrase, + // apiKeyName, + // apiKeyPrivateKey: privateKey, + // networkId: chainIdToCdpNetworkId[chainId], + // }); + const viemWalletProvider = new ViemWalletProvider(viemClient); const agentKit = await AgentKit.from({ cdpApiKeyName: apiKeyName, cdpApiKeyPrivateKey: privateKey, - walletProvider: cdpWalletProvider, + walletProvider: viemWalletProvider, actionProviders: [ // TODO: add more action providers // 后续接入自己的 ens 和 kyc 服务 // basenameActionProvider(), // morphoActionProvider(), walletActionProvider(), - cdpWalletActionProvider({ - apiKeyName, - apiKeyPrivateKey: privateKey, - }), + // cdpWalletActionProvider({ + // apiKeyName, + // apiKeyPrivateKey: privateKey, + // }), cdpApiActionProvider({ apiKeyName, apiKeyPrivateKey: privateKey, @@ -97,10 +107,11 @@ export async function main() { ...getActionProvidersWithRequiredEnvVars(), ], }); + if (!agentKit) { throw new Error('Failed to create agent kit'); } - console.log(agentKit, 'agentKit'); + // const { tools, toolHandler } = await getMcpTools(agentKit); const { tools, toolHandler } = await getMcpTools(agentKit as any); const server = new Server( @@ -131,6 +142,9 @@ export async function main() { server.setRequestHandler(CallToolRequestSchema, async (request) => { try { + postMetric(Event.ToolUsed, { toolName: request.params.name }, sessionId); + + // Check if the tool is Base MCP tool // Check if the tool is Hashkey MCP tool const isBaseMcpTool = baseMcpTools.some( (tool) => tool.definition.name === request.params.name, @@ -154,6 +168,18 @@ export async function main() { }; } + // In order for users to use AgentKit tools, they are required to have a SEED_PHRASE and not a ONE_TIME_KEY + if (!seedPhrase) { + return { + content: [ + { + type: 'text', + text: 'ERROR: Please set SEED_PHRASE environment variable to use wallet-related operations', + }, + ], + }; + } + return toolHandler(request.params.name, request.params.arguments); } catch (error) { throw new Error(`Tool ${request.params.name} failed: ${error}`); diff --git a/src/utils.ts b/src/utils.ts index 3656175..aafba3a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,5 @@ -// import { flaunchActionProvider } from '@hashkey/agentkit'; +import crypto from 'crypto'; +// import { flaunchActionProvider } from '@hashkeychain/agentkit'; import type { Tool } from '@modelcontextprotocol/sdk/types.js'; import { z } from 'zod'; import { zodToJsonSchema, type JsonSchema7Type } from 'zod-to-json-schema'; @@ -65,3 +66,7 @@ export function getActionProvidersWithRequiredEnvVars() { return []; } + +export function generateSessionId(): string { + return crypto.randomUUID(); +} diff --git a/src/version.ts b/src/version.ts index 5e59c3f..c0e3999 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const version = '1.0.10'; +export const version = '1.0.11';