web3-tools-mcp 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +46 -230
  2. package/dist/package.json +63 -0
  3. package/dist/src/client.d.ts +1653 -0
  4. package/dist/src/client.d.ts.map +1 -0
  5. package/dist/src/client.js +142 -0
  6. package/dist/src/client.js.map +1 -0
  7. package/dist/src/index.d.ts +3 -0
  8. package/dist/src/index.d.ts.map +1 -0
  9. package/dist/src/index.js +88 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/tools/advanced.d.ts +75 -0
  12. package/dist/src/tools/advanced.d.ts.map +1 -0
  13. package/dist/src/tools/advanced.js +234 -0
  14. package/dist/src/tools/advanced.js.map +1 -0
  15. package/dist/src/tools/balance.d.ts +55 -0
  16. package/dist/src/tools/balance.d.ts.map +1 -0
  17. package/dist/src/tools/balance.js +146 -0
  18. package/dist/src/tools/balance.js.map +1 -0
  19. package/dist/src/tools/contract-info.d.ts +79 -0
  20. package/dist/src/tools/contract-info.d.ts.map +1 -0
  21. package/dist/src/tools/contract-info.js +450 -0
  22. package/dist/src/tools/contract-info.js.map +1 -0
  23. package/dist/src/tools/contract.d.ts +79 -0
  24. package/dist/src/tools/contract.d.ts.map +1 -0
  25. package/dist/src/tools/contract.js +140 -0
  26. package/dist/src/tools/contract.js.map +1 -0
  27. package/dist/src/tools/ens.d.ts +119 -0
  28. package/dist/src/tools/ens.d.ts.map +1 -0
  29. package/dist/src/tools/ens.js +425 -0
  30. package/dist/src/tools/ens.js.map +1 -0
  31. package/dist/src/tools/index.d.ts +3 -0
  32. package/dist/src/tools/index.d.ts.map +1 -0
  33. package/dist/src/tools/index.js +29 -0
  34. package/dist/src/tools/index.js.map +1 -0
  35. package/dist/src/tools/logs.d.ts +39 -0
  36. package/dist/src/tools/logs.d.ts.map +1 -0
  37. package/dist/src/tools/logs.js +231 -0
  38. package/dist/src/tools/logs.js.map +1 -0
  39. package/dist/src/tools/signatures.d.ts +83 -0
  40. package/dist/src/tools/signatures.d.ts.map +1 -0
  41. package/dist/src/tools/signatures.js +93 -0
  42. package/dist/src/tools/signatures.js.map +1 -0
  43. package/dist/src/types.d.ts +22 -0
  44. package/dist/src/types.d.ts.map +1 -0
  45. package/dist/src/types.js +2 -0
  46. package/dist/src/types.js.map +1 -0
  47. package/dist/src/utils.d.ts +22 -0
  48. package/dist/src/utils.d.ts.map +1 -0
  49. package/dist/src/utils.js +183 -0
  50. package/dist/src/utils.js.map +1 -0
  51. package/dist/test/tools/advanced.test.d.ts +2 -0
  52. package/dist/test/tools/advanced.test.d.ts.map +1 -0
  53. package/dist/test/tools/advanced.test.js +235 -0
  54. package/dist/test/tools/advanced.test.js.map +1 -0
  55. package/dist/test/tools/balance.test.d.ts +2 -0
  56. package/dist/test/tools/balance.test.d.ts.map +1 -0
  57. package/dist/test/tools/balance.test.js +167 -0
  58. package/dist/test/tools/balance.test.js.map +1 -0
  59. package/dist/test/tools/contract-info.test.d.ts +2 -0
  60. package/dist/test/tools/contract-info.test.d.ts.map +1 -0
  61. package/dist/test/tools/contract-info.test.js +286 -0
  62. package/dist/test/tools/contract-info.test.js.map +1 -0
  63. package/dist/test/tools/contract.test.d.ts +2 -0
  64. package/dist/test/tools/contract.test.d.ts.map +1 -0
  65. package/dist/test/tools/contract.test.js +234 -0
  66. package/dist/test/tools/contract.test.js.map +1 -0
  67. package/dist/test/tools/ens.test.d.ts +2 -0
  68. package/dist/test/tools/ens.test.d.ts.map +1 -0
  69. package/dist/test/tools/ens.test.js +236 -0
  70. package/dist/test/tools/ens.test.js.map +1 -0
  71. package/dist/test/tools/logs.test.d.ts +2 -0
  72. package/dist/test/tools/logs.test.d.ts.map +1 -0
  73. package/dist/test/tools/logs.test.js +196 -0
  74. package/dist/test/tools/logs.test.js.map +1 -0
  75. package/dist/test/tools/signatures.test.d.ts +2 -0
  76. package/dist/test/tools/signatures.test.d.ts.map +1 -0
  77. package/dist/test/tools/signatures.test.js +112 -0
  78. package/dist/test/tools/signatures.test.js.map +1 -0
  79. package/package.json +37 -22
  80. package/src/client.ts +160 -0
  81. package/src/index.ts +96 -0
  82. package/src/tools/advanced.ts +262 -0
  83. package/src/tools/balance.ts +176 -0
  84. package/src/tools/contract-info.ts +582 -0
  85. package/src/tools/contract.ts +180 -0
  86. package/src/tools/ens.ts +493 -0
  87. package/src/tools/index.ts +37 -0
  88. package/src/tools/logs.ts +291 -0
  89. package/src/tools/signatures.ts +126 -0
  90. package/src/types.ts +29 -0
  91. package/src/utils.ts +222 -0
  92. package/dist/hypersync-client.darwin-arm64-7fegfwn5.node +0 -0
  93. package/dist/index.js +0 -28282
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { http, createPublicClient } from 'viem';
2
+ import { arbitrum, base, celo, localhost, mainnet, optimism, polygon } from 'viem/chains';
3
+ // Enhanced RPC configuration with API keys
4
+ function getRpcUrl(chainName, config) {
5
+ // Check for custom RPC URLs first
6
+ if (config.customRpcUrls?.[chainName]) {
7
+ return config.customRpcUrls[chainName];
8
+ }
9
+ // Enhanced RPC URLs with API keys
10
+ const enhancedRpcs = {
11
+ mainnet: config.alchemyApiKey
12
+ ? `https://eth-mainnet.g.alchemy.com/v2/${config.alchemyApiKey}`
13
+ : config.infuraApiKey
14
+ ? `https://mainnet.infura.io/v3/${config.infuraApiKey}`
15
+ : 'https://eth.llamarpc.com',
16
+ base: config.alchemyApiKey
17
+ ? `https://base-mainnet.g.alchemy.com/v2/${config.alchemyApiKey}`
18
+ : 'https://base.llamarpc.com',
19
+ arbitrum: config.alchemyApiKey
20
+ ? `https://arb-mainnet.g.alchemy.com/v2/${config.alchemyApiKey}`
21
+ : config.infuraApiKey
22
+ ? `https://arbitrum-mainnet.infura.io/v3/${config.infuraApiKey}`
23
+ : 'https://arb1.arbitrum.io/rpc',
24
+ polygon: config.alchemyApiKey
25
+ ? `https://polygon-mainnet.g.alchemy.com/v2/${config.alchemyApiKey}`
26
+ : config.infuraApiKey
27
+ ? `https://polygon-mainnet.infura.io/v3/${config.infuraApiKey}`
28
+ : 'https://polygon-rpc.com/',
29
+ optimism: config.alchemyApiKey
30
+ ? `https://opt-mainnet.g.alchemy.com/v2/${config.alchemyApiKey}`
31
+ : config.infuraApiKey
32
+ ? `https://optimism-mainnet.infura.io/v3/${config.infuraApiKey}`
33
+ : 'https://mainnet.optimism.io',
34
+ celo: 'https://celo.drpc.org',
35
+ localhost: 'http://localhost:8545'
36
+ };
37
+ return enhancedRpcs[chainName] ?? 'https://eth.llamarpc.com';
38
+ }
39
+ // Supported chains with their RPC endpoints (now dynamic)
40
+ export const CHAINS = (config) => ({
41
+ mainnet: {
42
+ chain: mainnet,
43
+ get rpc() {
44
+ return getRpcUrl('mainnet', config);
45
+ }
46
+ },
47
+ base: {
48
+ chain: base,
49
+ get rpc() {
50
+ return getRpcUrl('base', config);
51
+ }
52
+ },
53
+ arbitrum: {
54
+ chain: arbitrum,
55
+ get rpc() {
56
+ return getRpcUrl('arbitrum', config);
57
+ }
58
+ },
59
+ polygon: {
60
+ chain: polygon,
61
+ get rpc() {
62
+ return getRpcUrl('polygon', config);
63
+ }
64
+ },
65
+ optimism: {
66
+ chain: optimism,
67
+ get rpc() {
68
+ return getRpcUrl('optimism', config);
69
+ }
70
+ },
71
+ celo: {
72
+ chain: celo,
73
+ get rpc() {
74
+ return getRpcUrl('celo', config);
75
+ }
76
+ },
77
+ localhost: {
78
+ chain: localhost,
79
+ get rpc() {
80
+ return getRpcUrl('localhost', config);
81
+ }
82
+ }
83
+ });
84
+ // Hypersync URLs for supported chains (localhost is not supported)
85
+ export const HYPERSYNC_URLS = {
86
+ base: 'https://base.hypersync.xyz',
87
+ arbitrum: 'https://arbitrum.hypersync.xyz',
88
+ mainnet: 'https://eth.hypersync.xyz',
89
+ polygon: 'https://polygon.hypersync.xyz',
90
+ optimism: 'https://optimism.hypersync.xyz'
91
+ // celo and localhost are not supported by hypersync
92
+ };
93
+ export const SUPPORTED_CHAINS = ['mainnet', 'base', 'arbitrum', 'polygon', 'optimism', 'celo', 'localhost'];
94
+ // Client manager
95
+ export class ClientManager {
96
+ clients = new Map();
97
+ config;
98
+ constructor(config) {
99
+ this.config = config;
100
+ }
101
+ getClient(chainName) {
102
+ if (!this.clients.has(chainName)) {
103
+ const chains = CHAINS(this.config);
104
+ const { chain, rpc } = chains[chainName];
105
+ const client = createPublicClient({
106
+ chain,
107
+ transport: http(rpc)
108
+ });
109
+ this.clients.set(chainName, client);
110
+ }
111
+ const client = this.clients.get(chainName);
112
+ if (!client) {
113
+ throw new Error(`Failed to create client for chain: ${chainName}`);
114
+ }
115
+ return client;
116
+ }
117
+ getEtherscanDomain(chainName) {
118
+ const domains = {
119
+ mainnet: 'etherscan.io',
120
+ base: 'basescan.org',
121
+ arbitrum: 'arbiscan.io',
122
+ polygon: 'polygonscan.com',
123
+ optimism: 'optimistic.etherscan.io',
124
+ celo: 'celoscan.io',
125
+ localhost: 'etherscan.io'
126
+ };
127
+ return domains[chainName] || 'etherscan.io';
128
+ }
129
+ }
130
+ // Export a global client manager instance
131
+ let clientManager = null;
132
+ export function initializeClientManager(config) {
133
+ clientManager = new ClientManager(config);
134
+ return clientManager;
135
+ }
136
+ export function getClientManager() {
137
+ if (!clientManager) {
138
+ throw new Error('Client manager not initialized');
139
+ }
140
+ return clientManager;
141
+ }
142
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ import packageJson from "../package.json" with { type: "json" };
3
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
+ import { initializeClientManager } from "./client.js";
6
+ import { registerAllTools } from "./tools/index.js";
7
+ import { parseCommandLineArgs } from "./utils.js";
8
+ // Parse configuration
9
+ const config = parseCommandLineArgs();
10
+ // Show help if requested
11
+ if (config.showHelp) {
12
+ console.log(`
13
+ Web3 Tools MCP Server v${packageJson.version}
14
+ ${packageJson.description}
15
+
16
+ USAGE:
17
+ npx web3-tools-mcp [OPTIONS]
18
+
19
+ OPTIONS:
20
+ --help, -h Show this help message
21
+ --etherscan-api-key <key> Etherscan API key (for contract ABI retrieval)
22
+ --alchemy-api-key <key> Alchemy API key (for enhanced RPC)
23
+ --infura-api-key <key> Infura API key (for alternative RPC)
24
+ --hypersync-api-key <key> Hypersync API key (for fast event queries)
25
+ --custom-rpc <json> Custom RPC URLs as JSON object
26
+ Example: '{"mainnet":"https://...", "base":"https://..."}'
27
+
28
+ ENVIRONMENT VARIABLES:
29
+ ETHERSCAN_API_KEY Alternative to --etherscan-api-key
30
+ ALCHEMY_API_KEY Alternative to --alchemy-api-key
31
+ INFURA_API_KEY Alternative to --infura-api-key
32
+ HYPERSYNC_API_KEY Alternative to --hypersync-api-key
33
+
34
+ SUPPORTED CHAINS:
35
+ mainnet, base, arbitrum, polygon, optimism, celo, localhost
36
+
37
+ EXAMPLES:
38
+ # Use with npx (recommended)
39
+ npx web3-tools-mcp --etherscan-api-key YOUR_KEY
40
+
41
+ # Use environment variables
42
+ export ETHERSCAN_API_KEY=your_key
43
+ npx web3-tools-mcp
44
+
45
+ # Use custom RPC
46
+ npx web3-tools-mcp --custom-rpc '{"mainnet":"https://my-rpc.com"}'
47
+
48
+ DOCUMENTATION:
49
+ GitHub: ${packageJson.repository.url.replace('git+', '').replace('.git', '')}
50
+ Issues: ${packageJson.bugs.url}
51
+
52
+ For MCP client configuration, see the README.md file.
53
+ `);
54
+ process.exit(0);
55
+ }
56
+ // Log configuration info
57
+ if (config.etherscanApiKey) {
58
+ console.error("[MCP] Etherscan API key configured");
59
+ }
60
+ if (config.alchemyApiKey) {
61
+ console.error("[MCP] Alchemy API key configured");
62
+ }
63
+ if (config.infuraApiKey) {
64
+ console.error("[MCP] Infura API key configured");
65
+ }
66
+ if (config.customRpcUrls) {
67
+ console.error("[MCP] Custom RPC URLs:", Object.keys(config.customRpcUrls));
68
+ }
69
+ // Initialize client manager
70
+ initializeClientManager(config);
71
+ // Create MCP server instance
72
+ const server = new McpServer({
73
+ name: "web3-tools-mcp",
74
+ version: packageJson.version,
75
+ });
76
+ // Register all tools
77
+ registerAllTools(server);
78
+ // Start server
79
+ async function main() {
80
+ const transport = new StdioServerTransport();
81
+ await server.connect(transport);
82
+ console.error("Web3 Tools MCP Server running on stdio");
83
+ }
84
+ main().catch((error) => {
85
+ console.error("Fatal error:", error);
86
+ process.exit(1);
87
+ });
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,sBAAsB;AACtB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;AAEtC,yBAAyB;AACzB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC;yBACW,WAAW,CAAC,OAAO;EAC1C,WAAW,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAmCb,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,GAAG;;;CAG/B,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,yBAAyB;AACzB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACtD,CAAC;AACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACpD,CAAC;AACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACnD,CAAC;AACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,4BAA4B;AAC5B,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAEhC,6BAA6B;AAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CAC7B,CAAC,CAAC;AAEH,qBAAqB;AACrB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC1D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ declare const _default: {
3
+ get_storage_at: {
4
+ title: string;
5
+ description: string;
6
+ schema: z.ZodObject<{
7
+ chain: z.ZodEnum<["mainnet", "base", "arbitrum", "polygon", "optimism", "celo", "localhost"]>;
8
+ address: z.ZodString;
9
+ slot: z.ZodString;
10
+ abiType: z.ZodString;
11
+ blockNumber: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
14
+ address: string;
15
+ slot: string;
16
+ abiType: string;
17
+ blockNumber?: string | undefined;
18
+ }, {
19
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
20
+ address: string;
21
+ slot: string;
22
+ abiType: string;
23
+ blockNumber?: string | undefined;
24
+ }>;
25
+ handler: (args: {
26
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
27
+ address: string;
28
+ slot: string;
29
+ abiType: string;
30
+ blockNumber?: string | undefined;
31
+ }) => Promise<import("../types.js").ToolResult>;
32
+ };
33
+ get_block_info: {
34
+ title: string;
35
+ description: string;
36
+ schema: z.ZodObject<{
37
+ chain: z.ZodEnum<["mainnet", "base", "arbitrum", "polygon", "optimism", "celo", "localhost"]>;
38
+ blockNumber: z.ZodOptional<z.ZodString>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
41
+ blockNumber?: string | undefined;
42
+ }, {
43
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
44
+ blockNumber?: string | undefined;
45
+ }>;
46
+ handler: (args: {
47
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
48
+ blockNumber?: string | undefined;
49
+ }) => Promise<import("../types.js").ToolResult>;
50
+ };
51
+ trace_transaction: {
52
+ title: string;
53
+ description: string;
54
+ schema: z.ZodObject<{
55
+ chain: z.ZodEnum<["mainnet", "base", "arbitrum", "polygon", "optimism", "celo", "localhost"]>;
56
+ transactionHash: z.ZodString;
57
+ traceType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["trace", "vmTrace", "stateDiff"]>>>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
60
+ transactionHash: string;
61
+ traceType: "trace" | "vmTrace" | "stateDiff";
62
+ }, {
63
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
64
+ transactionHash: string;
65
+ traceType?: "trace" | "vmTrace" | "stateDiff" | undefined;
66
+ }>;
67
+ handler: (args: {
68
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
69
+ transactionHash: string;
70
+ traceType: "trace" | "vmTrace" | "stateDiff";
71
+ }) => Promise<import("../types.js").ToolResult>;
72
+ };
73
+ };
74
+ export default _default;
75
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../src/tools/advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKvB,wBA+PC"}
@@ -0,0 +1,234 @@
1
+ import { decodeAbiParameters, isAddress, parseAbiParameters } from 'viem';
2
+ import { z } from 'zod';
3
+ import { getClientManager, SUPPORTED_CHAINS } from '../client.js';
4
+ import { createTool, formatResponse } from '../utils.js';
5
+ export default {
6
+ get_storage_at: createTool('Read Contract Storage', '⚠️ ADVANCED: Direct storage slot access with type decoding. Use for low-level contract inspection.', z.object({
7
+ chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
8
+ address: z.string().describe('The contract address to inspect'),
9
+ slot: z.string().describe('Storage slot (hex string, e.g., "0x0")'),
10
+ abiType: z
11
+ .string()
12
+ .describe('ABI type for decoding (e.g., "uint256", "address", "bool", "bytes32")'),
13
+ blockNumber: z.string().optional().describe('Block number (optional, defaults to latest)')
14
+ }), async (args) => {
15
+ if (!isAddress(args.address)) {
16
+ throw new Error('Invalid address format');
17
+ }
18
+ const clientManager = getClientManager();
19
+ const client = clientManager.getClient(args.chain);
20
+ const blockTag = args.blockNumber ? BigInt(args.blockNumber) : 'latest';
21
+ try {
22
+ const storageValue = await client.getStorageAt({
23
+ address: args.address,
24
+ slot: args.slot,
25
+ blockNumber: blockTag === 'latest' ? undefined : blockTag
26
+ });
27
+ if (!storageValue) {
28
+ throw new Error('No storage value found');
29
+ }
30
+ // Decode based on ABI type
31
+ let decodedValue;
32
+ let formattedValue;
33
+ try {
34
+ switch (args.abiType.toLowerCase()) {
35
+ case 'uint256':
36
+ case 'uint': {
37
+ decodedValue = BigInt(storageValue);
38
+ formattedValue = decodedValue.toString();
39
+ break;
40
+ }
41
+ case 'int256':
42
+ case 'int': {
43
+ // Handle two's complement for negative numbers
44
+ const uint256Value = BigInt(storageValue);
45
+ const maxUint256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
46
+ decodedValue = uint256Value > maxUint256 / 2n ? uint256Value - maxUint256 - 1n : uint256Value;
47
+ formattedValue = decodedValue.toString();
48
+ break;
49
+ }
50
+ case 'address': {
51
+ decodedValue = `0x${storageValue.slice(-40)}`;
52
+ formattedValue = decodedValue;
53
+ break;
54
+ }
55
+ case 'bool': {
56
+ decodedValue = BigInt(storageValue) !== 0n;
57
+ formattedValue = String(decodedValue);
58
+ break;
59
+ }
60
+ case 'bytes32': {
61
+ decodedValue = storageValue;
62
+ formattedValue = storageValue;
63
+ break;
64
+ }
65
+ default: {
66
+ // Try to decode as ABI parameters
67
+ try {
68
+ const parsedTypes = parseAbiParameters([args.abiType]);
69
+ if (parsedTypes.length > 0) {
70
+ const decoded = decodeAbiParameters(parsedTypes, storageValue);
71
+ decodedValue = decoded.length > 0 ? decoded[0] : null;
72
+ formattedValue = decodedValue ? String(decodedValue) : 'No data';
73
+ }
74
+ else {
75
+ decodedValue = null;
76
+ formattedValue = 'Invalid ABI type';
77
+ }
78
+ }
79
+ catch {
80
+ decodedValue = null;
81
+ formattedValue = 'Failed to decode with custom ABI type';
82
+ }
83
+ break;
84
+ }
85
+ }
86
+ }
87
+ catch {
88
+ decodedValue = null;
89
+ formattedValue = 'Failed to decode';
90
+ }
91
+ return formatResponse({
92
+ rawValue: storageValue,
93
+ decodedValue,
94
+ formattedValue,
95
+ abiType: args.abiType,
96
+ slot: args.slot,
97
+ address: args.address,
98
+ chain: args.chain,
99
+ blockNumber: blockTag === 'latest' ? 'latest' : blockTag.toString()
100
+ });
101
+ }
102
+ catch (error) {
103
+ throw new Error(`Failed to get storage: ${error}`);
104
+ }
105
+ }),
106
+ get_block_info: createTool('Get Block Information', 'Retrieve block data including timestamps, hashes, and dates. Use for time-based analysis.', z.object({
107
+ chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
108
+ blockNumber: z.string().optional().describe('Block number (optional, defaults to latest)')
109
+ }), async (args) => {
110
+ const clientManager = getClientManager();
111
+ const client = clientManager.getClient(args.chain);
112
+ const blockTag = args.blockNumber ? BigInt(args.blockNumber) : 'latest';
113
+ try {
114
+ const block = await client.getBlock({
115
+ blockNumber: blockTag === 'latest' ? undefined : blockTag,
116
+ includeTransactions: false
117
+ });
118
+ const timestamp = Number(block.timestamp);
119
+ const date = new Date(timestamp * 1000);
120
+ return formatResponse({
121
+ blockNumber: block.number,
122
+ timestamp: block.timestamp,
123
+ timestampMs: timestamp * 1000,
124
+ dateIso: date.toISOString(),
125
+ dateReadable: date.toLocaleString(),
126
+ hash: block.hash,
127
+ parentHash: block.parentHash,
128
+ chain: args.chain
129
+ });
130
+ }
131
+ catch (error) {
132
+ throw new Error(`Failed to get block time: ${error}`);
133
+ }
134
+ }),
135
+ trace_transaction: createTool('Trace Transaction', '⚠️ INTENSIVE: Detailed transaction analysis including call traces and state changes. Use sparingly.', z.object({
136
+ chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
137
+ transactionHash: z.string().describe('Transaction hash to trace (0x prefixed)'),
138
+ traceType: z
139
+ .enum(['trace', 'vmTrace', 'stateDiff'])
140
+ .optional()
141
+ .describe('Trace type: "trace" (call tree, recommended), "vmTrace" (VM execution), "stateDiff" (state changes)')
142
+ .default('trace')
143
+ }), async (args) => {
144
+ const clientManager = getClientManager();
145
+ const client = clientManager.getClient(args.chain);
146
+ try {
147
+ // First get the transaction receipt to make sure it exists
148
+ const transaction = await client.getTransaction({ hash: args.transactionHash });
149
+ const receipt = await client.getTransactionReceipt({ hash: args.transactionHash });
150
+ let traceResult = null;
151
+ // Perform the requested trace type
152
+ switch (args.traceType) {
153
+ case 'trace':
154
+ try {
155
+ // Use debug_traceTransaction for call trace
156
+ traceResult = await client.request({
157
+ method: 'debug_traceTransaction',
158
+ params: [args.transactionHash, { tracer: 'callTracer' }]
159
+ });
160
+ }
161
+ catch (e) {
162
+ traceResult = { error: e.message };
163
+ }
164
+ break;
165
+ case 'vmTrace':
166
+ try {
167
+ traceResult = await client.request({
168
+ method: 'debug_traceTransaction',
169
+ params: [args.transactionHash, { tracer: 'prestateTracer' }]
170
+ });
171
+ }
172
+ catch (e) {
173
+ traceResult = { error: e.message };
174
+ }
175
+ break;
176
+ case 'stateDiff':
177
+ try {
178
+ traceResult = await client.request({
179
+ method: 'debug_traceTransaction',
180
+ params: [args.transactionHash, { tracer: 'stateDiffTracer' }]
181
+ });
182
+ }
183
+ catch (e) {
184
+ traceResult = { error: e.message };
185
+ }
186
+ break;
187
+ default:
188
+ traceResult = {
189
+ type: 'CALL',
190
+ from: transaction.from,
191
+ to: transaction.to,
192
+ value: transaction.value?.toString() || '0',
193
+ gas: transaction.gas?.toString() || '0',
194
+ gasUsed: receipt.gasUsed?.toString() || '0',
195
+ input: transaction.input,
196
+ output: '0x',
197
+ error: receipt.status === 'success' ? null : 'Transaction failed'
198
+ };
199
+ }
200
+ const result = {
201
+ success: true,
202
+ chain: args.chain,
203
+ transactionHash: args.transactionHash,
204
+ traceType: args.traceType,
205
+ transaction: {
206
+ blockNumber: transaction.blockNumber?.toString(),
207
+ from: transaction.from,
208
+ to: transaction.to,
209
+ value: transaction.value?.toString() || '0',
210
+ gas: transaction.gas?.toString() || '0',
211
+ gasPrice: transaction.gasPrice?.toString() || '0',
212
+ nonce: transaction.nonce?.toString() || '0',
213
+ input: transaction.input
214
+ },
215
+ receipt: {
216
+ status: receipt.status,
217
+ gasUsed: receipt.gasUsed?.toString() || '0',
218
+ effectiveGasPrice: receipt.effectiveGasPrice?.toString() || '0',
219
+ logs: receipt.logs.map(log => ({
220
+ address: log.address,
221
+ topics: log.topics,
222
+ data: log.data
223
+ }))
224
+ },
225
+ trace: traceResult
226
+ };
227
+ return formatResponse(result);
228
+ }
229
+ catch (error) {
230
+ throw new Error(`Transaction trace failed: ${error}`);
231
+ }
232
+ })
233
+ };
234
+ //# sourceMappingURL=advanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../src/tools/advanced.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ declare const _default: {
3
+ get_balance: {
4
+ title: string;
5
+ description: string;
6
+ schema: z.ZodObject<{
7
+ queries: z.ZodArray<z.ZodObject<{
8
+ chain: z.ZodEnum<["mainnet", "base", "arbitrum", "polygon", "optimism", "celo", "localhost"]>;
9
+ address: z.ZodString;
10
+ tokenAddress: z.ZodOptional<z.ZodString>;
11
+ blockNumber: z.ZodOptional<z.ZodString>;
12
+ label: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
15
+ address: string;
16
+ blockNumber?: string | undefined;
17
+ tokenAddress?: string | undefined;
18
+ label?: string | undefined;
19
+ }, {
20
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
21
+ address: string;
22
+ blockNumber?: string | undefined;
23
+ tokenAddress?: string | undefined;
24
+ label?: string | undefined;
25
+ }>, "many">;
26
+ }, "strip", z.ZodTypeAny, {
27
+ queries: {
28
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
29
+ address: string;
30
+ blockNumber?: string | undefined;
31
+ tokenAddress?: string | undefined;
32
+ label?: string | undefined;
33
+ }[];
34
+ }, {
35
+ queries: {
36
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
37
+ address: string;
38
+ blockNumber?: string | undefined;
39
+ tokenAddress?: string | undefined;
40
+ label?: string | undefined;
41
+ }[];
42
+ }>;
43
+ handler: (args: {
44
+ queries: {
45
+ chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
46
+ address: string;
47
+ blockNumber?: string | undefined;
48
+ tokenAddress?: string | undefined;
49
+ label?: string | undefined;
50
+ }[];
51
+ }) => Promise<import("../types.js").ToolResult>;
52
+ };
53
+ };
54
+ export default _default;
55
+ //# sourceMappingURL=balance.d.ts.map