web3-tools-mcp 1.2.0 → 1.2.2

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 (31) hide show
  1. package/README.md +91 -228
  2. package/package.json +5 -5
  3. package/dist/package.json +0 -63
  4. package/dist/test/tools/advanced.test.d.ts +0 -2
  5. package/dist/test/tools/advanced.test.d.ts.map +0 -1
  6. package/dist/test/tools/advanced.test.js +0 -235
  7. package/dist/test/tools/advanced.test.js.map +0 -1
  8. package/dist/test/tools/balance.test.d.ts +0 -2
  9. package/dist/test/tools/balance.test.d.ts.map +0 -1
  10. package/dist/test/tools/balance.test.js +0 -167
  11. package/dist/test/tools/balance.test.js.map +0 -1
  12. package/dist/test/tools/contract-info.test.d.ts +0 -2
  13. package/dist/test/tools/contract-info.test.d.ts.map +0 -1
  14. package/dist/test/tools/contract-info.test.js +0 -286
  15. package/dist/test/tools/contract-info.test.js.map +0 -1
  16. package/dist/test/tools/contract.test.d.ts +0 -2
  17. package/dist/test/tools/contract.test.d.ts.map +0 -1
  18. package/dist/test/tools/contract.test.js +0 -234
  19. package/dist/test/tools/contract.test.js.map +0 -1
  20. package/dist/test/tools/ens.test.d.ts +0 -2
  21. package/dist/test/tools/ens.test.d.ts.map +0 -1
  22. package/dist/test/tools/ens.test.js +0 -236
  23. package/dist/test/tools/ens.test.js.map +0 -1
  24. package/dist/test/tools/logs.test.d.ts +0 -2
  25. package/dist/test/tools/logs.test.d.ts.map +0 -1
  26. package/dist/test/tools/logs.test.js +0 -196
  27. package/dist/test/tools/logs.test.js.map +0 -1
  28. package/dist/test/tools/signatures.test.d.ts +0 -2
  29. package/dist/test/tools/signatures.test.d.ts.map +0 -1
  30. package/dist/test/tools/signatures.test.js +0 -112
  31. package/dist/test/tools/signatures.test.js.map +0 -1
@@ -1,235 +0,0 @@
1
- import { describe, it, expect, beforeAll } from 'vitest';
2
- import { config } from 'dotenv';
3
- import { initializeClientManager } from '../../src/client.js';
4
- import advancedTools from '../../src/tools/advanced.js';
5
- // Load environment variables
6
- config();
7
- describe('Advanced Tools', () => {
8
- beforeAll(() => {
9
- // Initialize client manager with config
10
- initializeClientManager({
11
- alchemyApiKey: process.env.ALCHEMY_API_KEY,
12
- infuraApiKey: process.env.INFURA_API_KEY,
13
- etherscanApiKey: process.env.ETHERSCAN_API_KEY,
14
- hypersyncApiKey: process.env.HYPERSYNC_API_KEY
15
- });
16
- });
17
- describe('get_storage_at', () => {
18
- it('should read storage slot from USDC contract', async () => {
19
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
20
- const result = await advancedTools.get_storage_at.handler({
21
- chain: 'mainnet',
22
- address: USDC_CONTRACT,
23
- slot: '0x0',
24
- abiType: 'bytes32'
25
- });
26
- const data = JSON.parse(result.content[0].text);
27
- expect(data.address).toBe(USDC_CONTRACT);
28
- expect(data.slot).toBe('0x0');
29
- expect(data.rawValue).toBeDefined();
30
- expect(data.decodedValue).toBeDefined();
31
- }, 30000);
32
- it('should decode uint256 storage value', async () => {
33
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
34
- const result = await advancedTools.get_storage_at.handler({
35
- chain: 'mainnet',
36
- address: USDC_CONTRACT,
37
- slot: '0x2', // totalSupply slot in USDC
38
- abiType: 'uint256'
39
- });
40
- const data = JSON.parse(result.content[0].text);
41
- expect(data.decodedValue).toBeDefined();
42
- expect(typeof data.formattedValue).toBe('string');
43
- }, 30000);
44
- it('should decode address storage value', async () => {
45
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
46
- const result = await advancedTools.get_storage_at.handler({
47
- chain: 'mainnet',
48
- address: USDC_CONTRACT,
49
- slot: '0xa', // owner/admin slot (approximate)
50
- abiType: 'address'
51
- });
52
- const data = JSON.parse(result.content[0].text);
53
- expect(data.decodedValue).toBeDefined();
54
- // Should be an address format
55
- if (data.decodedValue !== '0x0000000000000000000000000000000000000000') {
56
- expect(data.decodedValue).toMatch(/^0x[a-fA-F0-9]{40}$/);
57
- }
58
- }, 30000);
59
- it('should decode bool storage value', async () => {
60
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
61
- const result = await advancedTools.get_storage_at.handler({
62
- chain: 'mainnet',
63
- address: USDC_CONTRACT,
64
- slot: '0xc', // paused slot (approximate)
65
- abiType: 'bool'
66
- });
67
- const data = JSON.parse(result.content[0].text);
68
- expect(data.decodedValue).toBeDefined();
69
- expect(typeof data.decodedValue).toBe('boolean');
70
- }, 30000);
71
- it('should read storage at specific block number', async () => {
72
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
73
- const result = await advancedTools.get_storage_at.handler({
74
- chain: 'mainnet',
75
- address: USDC_CONTRACT,
76
- slot: '0x0',
77
- abiType: 'bytes32',
78
- blockNumber: '18000000'
79
- });
80
- const data = JSON.parse(result.content[0].text);
81
- expect(data.blockNumber).toBe('18000000');
82
- }, 30000);
83
- });
84
- describe('get_block_info', () => {
85
- it('should fetch latest block information', async () => {
86
- const result = await advancedTools.get_block_info.handler({
87
- chain: 'mainnet'
88
- });
89
- const data = JSON.parse(result.content[0].text);
90
- expect(data.chain).toBe('mainnet');
91
- expect(data.blockNumber).toBeDefined();
92
- expect(data.hash).toBeDefined();
93
- expect(data.timestamp).toBeDefined();
94
- expect(data.dateIso).toBeDefined();
95
- }, 30000);
96
- it('should fetch specific block by number', async () => {
97
- const BLOCK_NUMBER = '18000000';
98
- const result = await advancedTools.get_block_info.handler({
99
- chain: 'mainnet',
100
- blockNumber: BLOCK_NUMBER
101
- });
102
- const data = JSON.parse(result.content[0].text);
103
- expect(data.blockNumber).toBe(BLOCK_NUMBER);
104
- expect(data.hash).toBeDefined();
105
- expect(data.timestamp).toBeDefined();
106
- expect(data.dateIso).toBeDefined();
107
- }, 30000);
108
- it('should include human-readable date', async () => {
109
- const result = await advancedTools.get_block_info.handler({
110
- chain: 'mainnet',
111
- blockNumber: '18000000'
112
- });
113
- const data = JSON.parse(result.content[0].text);
114
- expect(data.dateIso).toBeDefined();
115
- expect(typeof data.dateIso).toBe('string');
116
- // Should be ISO format
117
- expect(data.dateIso).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/);
118
- }, 30000);
119
- it('should work with different chains', async () => {
120
- const result = await advancedTools.get_block_info.handler({
121
- chain: 'base'
122
- });
123
- const data = JSON.parse(result.content[0].text);
124
- expect(data.chain).toBe('base');
125
- expect(data.blockNumber).toBeDefined();
126
- }, 30000);
127
- it('should include miner/validator information', async () => {
128
- const result = await advancedTools.get_block_info.handler({
129
- chain: 'mainnet',
130
- blockNumber: '18000000'
131
- });
132
- const data = JSON.parse(result.content[0].text);
133
- expect(data.parentHash).toBeDefined();
134
- }, 30000);
135
- });
136
- describe('trace_transaction', () => {
137
- it('should trace a simple ETH transfer transaction', async () => {
138
- // A well-known simple ETH transfer
139
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
140
- const result = await advancedTools.trace_transaction.handler({
141
- chain: 'mainnet',
142
- transactionHash: TX_HASH,
143
- traceType: 'trace'
144
- });
145
- const data = JSON.parse(result.content[0].text);
146
- expect(data.transactionHash).toBe(TX_HASH);
147
- expect(data.traceType).toBe('trace');
148
- expect(data.trace).toBeDefined();
149
- }, 30000);
150
- it('should trace a contract interaction transaction', async () => {
151
- // Use the same real transaction for consistency
152
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
153
- const result = await advancedTools.trace_transaction.handler({
154
- chain: 'mainnet',
155
- transactionHash: TX_HASH,
156
- traceType: 'trace'
157
- });
158
- const data = JSON.parse(result.content[0].text);
159
- expect(data).toBeDefined();
160
- expect(data.transactionHash).toBe(TX_HASH);
161
- expect(data.trace).toBeDefined();
162
- }, 30000);
163
- it('should handle vmTrace type', async () => {
164
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
165
- const result = await advancedTools.trace_transaction.handler({
166
- chain: 'mainnet',
167
- transactionHash: TX_HASH,
168
- traceType: 'vmTrace'
169
- });
170
- const data = JSON.parse(result.content[0].text);
171
- expect(data.transactionHash).toBe(TX_HASH);
172
- expect(data.traceType).toBe('vmTrace');
173
- }, 30000);
174
- it('should handle stateDiff type', async () => {
175
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
176
- const result = await advancedTools.trace_transaction.handler({
177
- chain: 'mainnet',
178
- transactionHash: TX_HASH,
179
- traceType: 'stateDiff'
180
- });
181
- const data = JSON.parse(result.content[0].text);
182
- expect(data.transactionHash).toBe(TX_HASH);
183
- expect(data.traceType).toBe('stateDiff');
184
- }, 30000);
185
- it('should include call hierarchy in trace', async () => {
186
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
187
- const result = await advancedTools.trace_transaction.handler({
188
- chain: 'mainnet',
189
- transactionHash: TX_HASH,
190
- traceType: 'trace'
191
- });
192
- const data = JSON.parse(result.content[0].text);
193
- expect(data.success).toBe(true);
194
- if (data.trace && data.trace.length > 0) {
195
- const trace = data.trace[0];
196
- expect(trace.action).toBeDefined();
197
- expect(trace.result).toBeDefined();
198
- expect(trace.type).toBeDefined();
199
- }
200
- }, 30000);
201
- it.skip('should handle failed transactions', async () => {
202
- // Skipping: would need a real failed transaction hash
203
- const TX_HASH = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
204
- try {
205
- await advancedTools.trace_transaction.handler({
206
- chain: 'mainnet',
207
- transactionHash: TX_HASH,
208
- traceType: 'trace'
209
- });
210
- }
211
- catch (error) {
212
- expect(error).toBeDefined();
213
- }
214
- }, 30000);
215
- it.skip('should work with different chains', async () => {
216
- // Skipping: would need a real Base transaction hash
217
- const TX_HASH = '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060';
218
- try {
219
- const result = await advancedTools.trace_transaction.handler({
220
- chain: 'base',
221
- transactionHash: TX_HASH,
222
- traceType: 'trace'
223
- });
224
- const data = JSON.parse(result.content[0].text);
225
- expect(data.transactionHash).toBe(TX_HASH);
226
- expect(data.chain).toBe('base');
227
- }
228
- catch (error) {
229
- // Transaction might not exist on Base
230
- expect(error).toBeDefined();
231
- }
232
- }, 30000);
233
- });
234
- });
235
- //# sourceMappingURL=advanced.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"advanced.test.js","sourceRoot":"","sources":["../../../test/tools/advanced.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=balance.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.test.d.ts","sourceRoot":"","sources":["../../../test/tools/balance.test.ts"],"names":[],"mappings":""}
@@ -1,167 +0,0 @@
1
- import { describe, it, expect, beforeAll } from 'vitest';
2
- import { config } from 'dotenv';
3
- import { initializeClientManager } from '../../src/client.js';
4
- import balanceTools from '../../src/tools/balance.js';
5
- // Load environment variables
6
- config();
7
- describe('Balance Tools', () => {
8
- beforeAll(() => {
9
- // Initialize client manager with config
10
- initializeClientManager({
11
- alchemyApiKey: process.env.ALCHEMY_API_KEY,
12
- infuraApiKey: process.env.INFURA_API_KEY,
13
- etherscanApiKey: process.env.ETHERSCAN_API_KEY,
14
- hypersyncApiKey: process.env.HYPERSYNC_API_KEY
15
- });
16
- });
17
- describe('get_balance', () => {
18
- it('should fetch native ETH balance for an address', async () => {
19
- const VITALIK_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
20
- const result = await balanceTools.get_balance.handler({
21
- queries: [
22
- {
23
- chain: 'mainnet',
24
- address: VITALIK_ADDRESS
25
- }
26
- ]
27
- });
28
- const data = JSON.parse(result.content[0].text);
29
- expect(data.success).toBe(true);
30
- expect(data.results).toHaveLength(1);
31
- expect(data.results[0].success).toBe(true);
32
- expect(data.results[0].address).toBe(VITALIK_ADDRESS);
33
- expect(data.results[0].chain).toBe('mainnet');
34
- expect(data.results[0].balance).toBeDefined();
35
- expect(data.results[0].balanceFormatted).toBeDefined();
36
- }, 30000);
37
- it('should fetch ERC20 token balance (USDC)', async () => {
38
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
39
- const HOLDER_ADDRESS = '0x28C6c06298d514Db089934071355E5743bf21d60'; // Binance 14
40
- const result = await balanceTools.get_balance.handler({
41
- queries: [
42
- {
43
- chain: 'mainnet',
44
- address: HOLDER_ADDRESS,
45
- tokenAddress: USDC_CONTRACT
46
- }
47
- ]
48
- });
49
- const data = JSON.parse(result.content[0].text);
50
- expect(data.success).toBe(true);
51
- expect(data.results).toHaveLength(1);
52
- expect(data.results[0].success).toBe(true);
53
- expect(data.results[0].address).toBe(HOLDER_ADDRESS);
54
- expect(data.results[0].tokenAddress).toBe(USDC_CONTRACT);
55
- expect(data.results[0].balance).toBeDefined();
56
- expect(data.results[0].balanceFormatted).toBeDefined();
57
- expect(data.results[0].decimals).toBe(6);
58
- expect(BigInt(data.results[0].balance)).toBeGreaterThan(0n);
59
- }, 30000);
60
- it('should handle batch queries efficiently', async () => {
61
- const VITALIK_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
62
- const USDC_CONTRACT = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
63
- const result = await balanceTools.get_balance.handler({
64
- queries: [
65
- {
66
- chain: 'mainnet',
67
- address: VITALIK_ADDRESS,
68
- label: 'Vitalik ETH'
69
- },
70
- {
71
- chain: 'mainnet',
72
- address: VITALIK_ADDRESS,
73
- tokenAddress: USDC_CONTRACT,
74
- label: 'Vitalik USDC'
75
- }
76
- ]
77
- });
78
- const data = JSON.parse(result.content[0].text);
79
- expect(data.success).toBe(true);
80
- expect(data.results).toHaveLength(2);
81
- expect(data.results[0].label).toBe('Vitalik ETH');
82
- expect(data.results[1].label).toBe('Vitalik USDC');
83
- expect(data.results[1].decimals).toBe(6);
84
- }, 30000);
85
- it('should fetch balance at specific block number', async () => {
86
- const VITALIK_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
87
- const BLOCK_NUMBER = '18000000';
88
- const result = await balanceTools.get_balance.handler({
89
- queries: [
90
- {
91
- chain: 'mainnet',
92
- address: VITALIK_ADDRESS,
93
- blockNumber: BLOCK_NUMBER
94
- }
95
- ]
96
- });
97
- const data = JSON.parse(result.content[0].text);
98
- expect(data.success).toBe(true);
99
- expect(data.results).toHaveLength(1);
100
- expect(data.results[0].success).toBe(true);
101
- expect(data.results[0].blockNumber).toBe(BLOCK_NUMBER);
102
- expect(data.results[0].balance).toBeDefined();
103
- }, 30000);
104
- it('should handle zero balance addresses', async () => {
105
- // Use an address that's extremely unlikely to have balance
106
- const ZERO_ADDRESS = '0x0000000000000000000000000000000000000002';
107
- const result = await balanceTools.get_balance.handler({
108
- queries: [
109
- {
110
- chain: 'mainnet',
111
- address: ZERO_ADDRESS
112
- }
113
- ]
114
- });
115
- const data = JSON.parse(result.content[0].text);
116
- expect(data.success).toBe(true);
117
- expect(data.results).toHaveLength(1);
118
- expect(data.results[0].success).toBe(true);
119
- // Balance might be 0 or very small
120
- expect(data.results[0].balance).toBeDefined();
121
- expect(data.results[0].balanceFormatted).toBeDefined();
122
- }, 30000);
123
- it('should handle invalid token address gracefully', async () => {
124
- const VITALIK_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
125
- const INVALID_TOKEN = '0x0000000000000000000000000000000000000001';
126
- const result = await balanceTools.get_balance.handler({
127
- queries: [
128
- {
129
- chain: 'mainnet',
130
- address: VITALIK_ADDRESS,
131
- tokenAddress: INVALID_TOKEN
132
- }
133
- ]
134
- });
135
- const data = JSON.parse(result.content[0].text);
136
- expect(data.success).toBe(true);
137
- expect(data.results).toHaveLength(1);
138
- // Should either succeed with 0 balance or fail gracefully
139
- expect(data.results[0]).toHaveProperty('success');
140
- }, 30000);
141
- it('should work across different chains', async () => {
142
- const TEST_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
143
- const result = await balanceTools.get_balance.handler({
144
- queries: [
145
- {
146
- chain: 'mainnet',
147
- address: TEST_ADDRESS,
148
- label: 'Ethereum'
149
- },
150
- {
151
- chain: 'base',
152
- address: TEST_ADDRESS,
153
- label: 'Base'
154
- }
155
- ]
156
- });
157
- const data = JSON.parse(result.content[0].text);
158
- expect(data.success).toBe(true);
159
- expect(data.results).toHaveLength(2);
160
- expect(data.results[0].chain).toBe('mainnet');
161
- expect(data.results[0].label).toBe('Ethereum');
162
- expect(data.results[1].chain).toBe('base');
163
- expect(data.results[1].label).toBe('Base');
164
- }, 30000);
165
- });
166
- });
167
- //# sourceMappingURL=balance.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.test.js","sourceRoot":"","sources":["../../../test/tools/balance.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=contract-info.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-info.test.d.ts","sourceRoot":"","sources":["../../../test/tools/contract-info.test.ts"],"names":[],"mappings":""}