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.
- package/README.md +46 -230
- package/dist/package.json +63 -0
- package/dist/src/client.d.ts +1653 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +142 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +88 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/tools/advanced.d.ts +75 -0
- package/dist/src/tools/advanced.d.ts.map +1 -0
- package/dist/src/tools/advanced.js +234 -0
- package/dist/src/tools/advanced.js.map +1 -0
- package/dist/src/tools/balance.d.ts +55 -0
- package/dist/src/tools/balance.d.ts.map +1 -0
- package/dist/src/tools/balance.js +146 -0
- package/dist/src/tools/balance.js.map +1 -0
- package/dist/src/tools/contract-info.d.ts +79 -0
- package/dist/src/tools/contract-info.d.ts.map +1 -0
- package/dist/src/tools/contract-info.js +450 -0
- package/dist/src/tools/contract-info.js.map +1 -0
- package/dist/src/tools/contract.d.ts +79 -0
- package/dist/src/tools/contract.d.ts.map +1 -0
- package/dist/src/tools/contract.js +140 -0
- package/dist/src/tools/contract.js.map +1 -0
- package/dist/src/tools/ens.d.ts +119 -0
- package/dist/src/tools/ens.d.ts.map +1 -0
- package/dist/src/tools/ens.js +425 -0
- package/dist/src/tools/ens.js.map +1 -0
- package/dist/src/tools/index.d.ts +3 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +29 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/logs.d.ts +39 -0
- package/dist/src/tools/logs.d.ts.map +1 -0
- package/dist/src/tools/logs.js +231 -0
- package/dist/src/tools/logs.js.map +1 -0
- package/dist/src/tools/signatures.d.ts +83 -0
- package/dist/src/tools/signatures.d.ts.map +1 -0
- package/dist/src/tools/signatures.js +93 -0
- package/dist/src/tools/signatures.js.map +1 -0
- package/dist/src/types.d.ts +22 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +22 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +183 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/test/tools/advanced.test.d.ts +2 -0
- package/dist/test/tools/advanced.test.d.ts.map +1 -0
- package/dist/test/tools/advanced.test.js +235 -0
- package/dist/test/tools/advanced.test.js.map +1 -0
- package/dist/test/tools/balance.test.d.ts +2 -0
- package/dist/test/tools/balance.test.d.ts.map +1 -0
- package/dist/test/tools/balance.test.js +167 -0
- package/dist/test/tools/balance.test.js.map +1 -0
- package/dist/test/tools/contract-info.test.d.ts +2 -0
- package/dist/test/tools/contract-info.test.d.ts.map +1 -0
- package/dist/test/tools/contract-info.test.js +286 -0
- package/dist/test/tools/contract-info.test.js.map +1 -0
- package/dist/test/tools/contract.test.d.ts +2 -0
- package/dist/test/tools/contract.test.d.ts.map +1 -0
- package/dist/test/tools/contract.test.js +234 -0
- package/dist/test/tools/contract.test.js.map +1 -0
- package/dist/test/tools/ens.test.d.ts +2 -0
- package/dist/test/tools/ens.test.d.ts.map +1 -0
- package/dist/test/tools/ens.test.js +236 -0
- package/dist/test/tools/ens.test.js.map +1 -0
- package/dist/test/tools/logs.test.d.ts +2 -0
- package/dist/test/tools/logs.test.d.ts.map +1 -0
- package/dist/test/tools/logs.test.js +196 -0
- package/dist/test/tools/logs.test.js.map +1 -0
- package/dist/test/tools/signatures.test.d.ts +2 -0
- package/dist/test/tools/signatures.test.d.ts.map +1 -0
- package/dist/test/tools/signatures.test.js +112 -0
- package/dist/test/tools/signatures.test.js.map +1 -0
- package/package.json +37 -22
- package/src/client.ts +160 -0
- package/src/index.ts +96 -0
- package/src/tools/advanced.ts +262 -0
- package/src/tools/balance.ts +176 -0
- package/src/tools/contract-info.ts +582 -0
- package/src/tools/contract.ts +180 -0
- package/src/tools/ens.ts +493 -0
- package/src/tools/index.ts +37 -0
- package/src/tools/logs.ts +291 -0
- package/src/tools/signatures.ts +126 -0
- package/src/types.ts +29 -0
- package/src/utils.ts +222 -0
- package/dist/hypersync-client.darwin-arm64-7fegfwn5.node +0 -0
- 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 @@
|
|
|
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
|