web3-tools-mcp 1.1.0 → 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 (68) hide show
  1. package/README.md +28 -4
  2. package/dist/package.json +5 -2
  3. package/dist/src/tools/ens.d.ts +119 -0
  4. package/dist/src/tools/ens.d.ts.map +1 -0
  5. package/dist/src/tools/ens.js +425 -0
  6. package/dist/src/tools/ens.js.map +1 -0
  7. package/dist/src/tools/index.d.ts.map +1 -1
  8. package/dist/src/tools/index.js +3 -1
  9. package/dist/src/tools/index.js.map +1 -1
  10. package/dist/test/tools/ens.test.d.ts +2 -0
  11. package/dist/test/tools/ens.test.d.ts.map +1 -0
  12. package/dist/test/tools/ens.test.js +236 -0
  13. package/dist/test/tools/ens.test.js.map +1 -0
  14. package/package.json +5 -2
  15. package/src/tools/ens.ts +493 -0
  16. package/src/tools/index.ts +3 -1
  17. package/dist/client.d.ts +0 -1653
  18. package/dist/client.d.ts.map +0 -1
  19. package/dist/client.js +0 -142
  20. package/dist/client.js.map +0 -1
  21. package/dist/index.d.ts +0 -3
  22. package/dist/index.d.ts.map +0 -1
  23. package/dist/index.js +0 -88
  24. package/dist/index.js.map +0 -1
  25. package/dist/test/mcp-client.test.d.ts +0 -2
  26. package/dist/test/mcp-client.test.d.ts.map +0 -1
  27. package/dist/test/mcp-client.test.js +0 -376
  28. package/dist/test/mcp-client.test.js.map +0 -1
  29. package/dist/tools/advanced.d.ts +0 -75
  30. package/dist/tools/advanced.d.ts.map +0 -1
  31. package/dist/tools/advanced.js +0 -234
  32. package/dist/tools/advanced.js.map +0 -1
  33. package/dist/tools/balance.d.ts +0 -55
  34. package/dist/tools/balance.d.ts.map +0 -1
  35. package/dist/tools/balance.js +0 -146
  36. package/dist/tools/balance.js.map +0 -1
  37. package/dist/tools/batch.d.ts +0 -122
  38. package/dist/tools/batch.d.ts.map +0 -1
  39. package/dist/tools/batch.js +0 -243
  40. package/dist/tools/batch.js.map +0 -1
  41. package/dist/tools/contract-info.d.ts +0 -79
  42. package/dist/tools/contract-info.d.ts.map +0 -1
  43. package/dist/tools/contract-info.js +0 -450
  44. package/dist/tools/contract-info.js.map +0 -1
  45. package/dist/tools/contract.d.ts +0 -79
  46. package/dist/tools/contract.d.ts.map +0 -1
  47. package/dist/tools/contract.js +0 -140
  48. package/dist/tools/contract.js.map +0 -1
  49. package/dist/tools/index.d.ts +0 -3
  50. package/dist/tools/index.d.ts.map +0 -1
  51. package/dist/tools/index.js +0 -27
  52. package/dist/tools/index.js.map +0 -1
  53. package/dist/tools/logs.d.ts +0 -39
  54. package/dist/tools/logs.d.ts.map +0 -1
  55. package/dist/tools/logs.js +0 -231
  56. package/dist/tools/logs.js.map +0 -1
  57. package/dist/tools/signatures.d.ts +0 -83
  58. package/dist/tools/signatures.d.ts.map +0 -1
  59. package/dist/tools/signatures.js +0 -93
  60. package/dist/tools/signatures.js.map +0 -1
  61. package/dist/types.d.ts +0 -22
  62. package/dist/types.d.ts.map +0 -1
  63. package/dist/types.js +0 -2
  64. package/dist/types.js.map +0 -1
  65. package/dist/utils.d.ts +0 -22
  66. package/dist/utils.d.ts.map +0 -1
  67. package/dist/utils.js +0 -183
  68. package/dist/utils.js.map +0 -1
@@ -1,140 +0,0 @@
1
- import { isAddress, parseAbiItem } from "viem";
2
- import { z } from "zod";
3
- import { getClientManager, SUPPORTED_CHAINS } from "../client.js";
4
- import { convertArgumentsToTypes, createTool, formatResponse } from "../utils.js";
5
- const ContractCallSchema = z.object({
6
- chain: z
7
- .enum(SUPPORTED_CHAINS)
8
- .describe("Blockchain network (mainnet, base, arbitrum, polygon, optimism, celo, localhost)"),
9
- contractAddress: z
10
- .string()
11
- .describe("Contract address to call (must be valid checksummed address)"),
12
- functionAbi: z
13
- .string()
14
- .describe('Function ABI signature string (e.g., "function balanceOf(address owner) view returns (uint256)"). Only view/pure functions allowed.'),
15
- args: z
16
- .array(z.union([z.string(), z.number(), z.boolean(), z.null()]))
17
- .optional()
18
- .describe("Function arguments in order matching the ABI signature. Automatically type-converted."),
19
- blockNumber: z
20
- .string()
21
- .optional()
22
- .describe("Block number for historical queries (defaults to latest)"),
23
- label: z.string().optional().describe("Optional label to identify this call in batch results"),
24
- });
25
- export default {
26
- call_contract_function: createTool("Call Contract Functions", "Execute multiple view/pure contract functions efficiently. BATCH OPTIMIZED - use for reading contract state, token metadata.", z.object({
27
- calls: z
28
- .array(ContractCallSchema)
29
- .describe("Array of contract function calls. Automatically batched by chain/block for optimal performance."),
30
- }), async (args) => {
31
- // Group by chain and blockNumber for efficient multicall
32
- const groupedCalls = new Map();
33
- for (const item of args.calls) {
34
- const key = `${item.chain}:${item.blockNumber || "latest"}`;
35
- if (!groupedCalls.has(key)) {
36
- groupedCalls.set(key, []);
37
- }
38
- groupedCalls.get(key).push(item);
39
- }
40
- const allResults = [];
41
- try {
42
- // Process each group
43
- for (const [key, calls] of groupedCalls) {
44
- const [chain, blockNum] = key.split(":");
45
- const clientManager = getClientManager();
46
- const client = clientManager.getClient(chain);
47
- const blockTag = blockNum === "latest" ? "latest" : BigInt(blockNum);
48
- // Prepare multicall contracts
49
- const multicallContracts = calls.map((call) => {
50
- if (!isAddress(call.contractAddress)) {
51
- throw new Error(`Invalid contract address: ${call.contractAddress}`);
52
- }
53
- const abiItem = parseAbiItem(call.functionAbi);
54
- if (abiItem.stateMutability !== "view" && abiItem.stateMutability !== "pure") {
55
- throw new Error(`Only view and pure functions can be called: ${call.functionAbi}`);
56
- }
57
- const convertedArgs = convertArgumentsToTypes(call.args || [], abiItem.inputs);
58
- return {
59
- address: call.contractAddress,
60
- abi: [abiItem],
61
- functionName: abiItem.name,
62
- args: convertedArgs,
63
- };
64
- });
65
- // Execute multicall
66
- const multicallResults = await client.multicall({
67
- contracts: multicallContracts,
68
- blockNumber: blockTag === "latest" ? undefined : blockTag,
69
- });
70
- // Process results
71
- multicallResults.forEach((result, idx) => {
72
- const call = calls[idx];
73
- const abiItem = parseAbiItem(call.functionAbi);
74
- const originalIndex = args.calls.indexOf(call);
75
- if (result.status === "success") {
76
- allResults[originalIndex] = {
77
- index: originalIndex,
78
- label: call.label,
79
- contractAddress: call.contractAddress,
80
- functionName: abiItem.name,
81
- success: true,
82
- result: result.result,
83
- chain: call.chain,
84
- blockNumber: call.blockNumber || "latest",
85
- };
86
- }
87
- else {
88
- allResults[originalIndex] = {
89
- index: originalIndex,
90
- label: call.label,
91
- contractAddress: call.contractAddress,
92
- functionName: abiItem.name,
93
- success: false,
94
- error: result.error instanceof Error ? result.error.message : String(result.error),
95
- chain: call.chain,
96
- blockNumber: call.blockNumber || "latest",
97
- };
98
- }
99
- });
100
- }
101
- return formatResponse({
102
- success: true,
103
- totalCalls: args.calls.length,
104
- successfulCalls: allResults.filter((r) => r.success).length,
105
- failedCalls: allResults.filter((r) => !r.success).length,
106
- results: allResults,
107
- });
108
- }
109
- catch (error) {
110
- throw new Error(`Contract call failed: ${error}`);
111
- }
112
- }),
113
- is_contract: createTool("Check Address Type", "Determine if address is smart contract or EOA. Returns contract status and bytecode length.", z.object({
114
- chain: z.enum(SUPPORTED_CHAINS).describe("Blockchain network to query"),
115
- address: z
116
- .string()
117
- .describe("Address to check (returns true if contract, false if EOA/wallet)"),
118
- }), async (args) => {
119
- if (!isAddress(args.address)) {
120
- throw new Error("Invalid address format");
121
- }
122
- const clientManager = getClientManager();
123
- const client = clientManager.getClient(args.chain);
124
- try {
125
- const bytecode = await client.getBytecode({ address: args.address });
126
- const isContractFlag = bytecode !== undefined && bytecode !== "0x";
127
- return formatResponse({
128
- address: args.address,
129
- isContract: isContractFlag,
130
- type: isContractFlag ? "contract" : "EOA",
131
- chain: args.chain,
132
- bytecodeLength: bytecode ? bytecode.length - 2 : 0, // -2 for '0x' prefix
133
- });
134
- }
135
- catch (error) {
136
- throw new Error(`Failed to check address type: ${error}`);
137
- }
138
- }),
139
- };
140
- //# sourceMappingURL=contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerAllTools(server: McpServer): void;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAoBnE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,QAcjD"}
@@ -1,27 +0,0 @@
1
- import advancedTools from './advanced.js';
2
- import balanceTools from './balance.js';
3
- import contractTools from './contract.js';
4
- import contractInfoTools from './contract-info.js';
5
- import logTools from './logs.js';
6
- import signatureTools from './signatures.js';
7
- const allToolDefinitions = {
8
- ...signatureTools,
9
- ...contractTools,
10
- ...contractInfoTools,
11
- ...balanceTools,
12
- ...logTools,
13
- ...advancedTools
14
- };
15
- // Register all tools with the MCP server
16
- export function registerAllTools(server) {
17
- Object.entries(allToolDefinitions).forEach(([name, tool]) => {
18
- server.registerTool(name, {
19
- title: tool.title,
20
- description: tool.description,
21
- inputSchema: tool.schema.shape
22
- }, async (args, _extra) => {
23
- return await tool.handler(args);
24
- });
25
- });
26
- }
27
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,eAAe,CAAA;AACzC,OAAO,YAAY,MAAM,cAAc,CAAA;AACvC,OAAO,aAAa,MAAM,eAAe,CAAA;AACzC,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C,MAAM,kBAAkB,GAAG;IACzB,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,iBAAiB;IACpB,GAAG,YAAY;IACf,GAAG,QAAQ;IACX,GAAG,aAAa;CACR,CAAA;AAEV,yCAAyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1D,MAAM,CAAC,YAAY,CACjB,IAAI,EACJ;YACE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SAC/B,EACD,KAAK,EAAE,IAAS,EAAE,MAA8D,EAAE,EAAE;YAClF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,CAAC,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,39 +0,0 @@
1
- import { z } from 'zod';
2
- declare const _default: {
3
- get_logs: {
4
- title: string;
5
- description: string;
6
- schema: z.ZodObject<{
7
- chain: z.ZodEnum<["mainnet", "base", "arbitrum", "polygon", "optimism", "celo", "localhost"]>;
8
- eventAbi: z.ZodString;
9
- address: z.ZodOptional<z.ZodString>;
10
- fromBlock: z.ZodOptional<z.ZodString>;
11
- toBlock: z.ZodOptional<z.ZodString>;
12
- eventArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
13
- }, "strip", z.ZodTypeAny, {
14
- chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
15
- eventAbi: string;
16
- address?: string | undefined;
17
- fromBlock?: string | undefined;
18
- toBlock?: string | undefined;
19
- eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
20
- }, {
21
- chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
22
- eventAbi: string;
23
- address?: string | undefined;
24
- fromBlock?: string | undefined;
25
- toBlock?: string | undefined;
26
- eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
27
- }>;
28
- handler: (args: {
29
- chain: "mainnet" | "base" | "arbitrum" | "polygon" | "optimism" | "celo" | "localhost";
30
- eventAbi: string;
31
- address?: string | undefined;
32
- fromBlock?: string | undefined;
33
- toBlock?: string | undefined;
34
- eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
35
- }) => Promise<import("../types.js").ToolResult>;
36
- };
37
- };
38
- export default _default;
39
- //# sourceMappingURL=logs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+GvB,wBAyKC"}
@@ -1,231 +0,0 @@
1
- import { HypersyncClient, LogField } from '@envio-dev/hypersync-client';
2
- import { isAddress, keccak256, parseAbiItem, toBytes, toEventSignature } from 'viem';
3
- import { z } from 'zod';
4
- import { getClientManager, HYPERSYNC_URLS, SUPPORTED_CHAINS } from '../client.js';
5
- import { convertEventArgsToTypes, createTool, formatResponse } from '../utils.js';
6
- async function getLogsWithHypersync(chainName, eventAbi, hypersyncApiKey, address, fromBlock, toBlock, eventArgs) {
7
- const hypersyncUrl = HYPERSYNC_URLS[chainName];
8
- if (!hypersyncUrl) {
9
- throw new Error(`Hypersync not supported for chain: ${chainName}`);
10
- }
11
- const client = HypersyncClient.new({
12
- url: hypersyncUrl,
13
- bearerToken: hypersyncApiKey
14
- });
15
- const abiItem = parseAbiItem(eventAbi);
16
- const eventSignature = toEventSignature(abiItem);
17
- const topic0 = keccak256(toBytes(eventSignature));
18
- // Build topics array for filtering
19
- const topics = [topic0];
20
- // Add indexed parameter filtering if eventArgs provided
21
- if (eventArgs && Object.keys(eventArgs).length > 0) {
22
- const indexedInputs = abiItem.inputs.filter(input => input.indexed);
23
- for (let i = 0; i < indexedInputs.length && i < 3; i++) {
24
- const input = indexedInputs[i];
25
- const argValue = input?.name ? eventArgs[input.name] : undefined;
26
- if (argValue !== undefined) {
27
- // Convert the argument to the proper format for topic filtering
28
- let topicValue;
29
- if (typeof argValue === 'string' && argValue.startsWith('0x')) {
30
- topicValue = argValue;
31
- }
32
- else if (typeof argValue === 'string' && isAddress(argValue)) {
33
- topicValue = argValue.toLowerCase().padStart(66, '0x000000000000000000000000');
34
- }
35
- else {
36
- // For other types, we'd need more sophisticated encoding
37
- topicValue = String(argValue);
38
- }
39
- topics.push(topicValue);
40
- }
41
- else {
42
- topics.push(null);
43
- }
44
- }
45
- }
46
- const query = {
47
- fieldSelection: {
48
- log: [
49
- LogField.Address,
50
- LogField.Topic0,
51
- LogField.Topic1,
52
- LogField.Topic2,
53
- LogField.Topic3,
54
- LogField.Data,
55
- LogField.BlockNumber,
56
- LogField.BlockHash,
57
- LogField.TransactionHash,
58
- LogField.TransactionIndex,
59
- LogField.LogIndex
60
- ]
61
- },
62
- fromBlock: fromBlock ? Number.parseInt(fromBlock) : 0,
63
- toBlock: toBlock ? Number.parseInt(toBlock) : undefined,
64
- logs: [
65
- {
66
- address: address ? [address] : undefined,
67
- topics: topics.filter(t => t !== null).map(t => (Array.isArray(t) ? t : [t]))
68
- }
69
- ]
70
- };
71
- const res = await client.get(query);
72
- // Convert hypersync logs to viem-compatible format
73
- const decodedLogs = res.data.logs
74
- .map((log) => {
75
- try {
76
- return {
77
- address: log.address,
78
- blockHash: log.blockHash,
79
- blockNumber: log.blockNumber ? BigInt(log.blockNumber) : 0n,
80
- data: log.data,
81
- logIndex: log.logIndex,
82
- topics: log.topics,
83
- transactionHash: log.transactionHash,
84
- transactionIndex: log.transactionIndex,
85
- eventName: abiItem.name,
86
- args: {}
87
- };
88
- }
89
- catch (error) {
90
- console.warn('Failed to decode log:', error);
91
- return null;
92
- }
93
- })
94
- .filter((log) => log !== null);
95
- return decodedLogs;
96
- }
97
- export default {
98
- get_logs: createTool('Query Contract Events', 'Search and decode contract events with filtering. Uses viem with hypersync fallback. Specify address and block ranges for best performance.', z.object({
99
- chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
100
- eventAbi: z
101
- .string()
102
- .describe('Event ABI definition (e.g., "event Transfer(address indexed from, address indexed to, uint256 value)")'),
103
- address: z.string().optional().describe('Contract address (RECOMMENDED for performance)'),
104
- fromBlock: z.string().optional().describe('Start block (defaults to latest-1000)'),
105
- toBlock: z.string().optional().describe('End block (defaults to latest)'),
106
- eventArgs: z
107
- .record(z.union([
108
- z.string(),
109
- z.number(),
110
- z.boolean(),
111
- z.array(z.union([z.string(), z.number(), z.boolean()]))
112
- ]))
113
- .optional()
114
- .describe('Filter by indexed parameters: {"from": "0x123...", "to": "0x456..."}')
115
- }), async (args) => {
116
- const clientManager = getClientManager();
117
- const config = clientManager.config;
118
- // First try with regular viem client
119
- try {
120
- const client = clientManager.getClient(args.chain);
121
- const abiItem = parseAbiItem(args.eventAbi);
122
- // Determine block range
123
- const fromBlockNum = args.fromBlock ? BigInt(args.fromBlock) : undefined;
124
- const toBlockNum = args.toBlock ? BigInt(args.toBlock) : undefined;
125
- // Prepare getLogs parameters
126
- const getLogsParams = {
127
- event: abiItem,
128
- fromBlock: fromBlockNum,
129
- toBlock: toBlockNum
130
- };
131
- // Add address filter if provided
132
- if (args.address && isAddress(args.address)) {
133
- getLogsParams.address = args.address;
134
- }
135
- // Add event argument filters if provided
136
- if (args.eventArgs && Object.keys(args.eventArgs).length > 0) {
137
- // Convert event arguments to proper types based on ABI
138
- const convertedEventArgs = convertEventArgsToTypes(args.eventArgs, abiItem.inputs);
139
- getLogsParams.args = convertedEventArgs;
140
- }
141
- // Use client.getLogs with proper typing
142
- const logs = await client.getLogs(getLogsParams);
143
- // Convert logs to serializable format
144
- const serializedLogs = logs.map(log => {
145
- const baseLogData = {
146
- address: log.address,
147
- blockHash: log.blockHash,
148
- blockNumber: log.blockNumber?.toString(),
149
- data: log.data,
150
- logIndex: log.logIndex,
151
- topics: log.topics,
152
- transactionHash: log.transactionHash,
153
- transactionIndex: log.transactionIndex
154
- };
155
- return {
156
- ...baseLogData,
157
- decoded: {
158
- eventName: log.eventName,
159
- args: log.args
160
- }
161
- };
162
- });
163
- return formatResponse({
164
- logs: serializedLogs,
165
- eventSignature: toEventSignature(abiItem),
166
- chain: args.chain,
167
- fromBlock: fromBlockNum?.toString() || 'latest',
168
- toBlock: toBlockNum?.toString() || 'latest',
169
- count: logs.length,
170
- dataSource: 'viem',
171
- filters: {
172
- address: args.address || null,
173
- eventArgs: args.eventArgs || null
174
- }
175
- });
176
- }
177
- catch (viemError) {
178
- // If viem fails and we have hypersync support for this chain, try hypersync as fallback
179
- if (HYPERSYNC_URLS[args.chain] && args.chain !== 'localhost') {
180
- console.warn(`Viem getLogs failed for ${args.chain}, trying hypersync fallback:`, viemError);
181
- try {
182
- const hypersyncLogs = await getLogsWithHypersync(args.chain, args.eventAbi, config.hypersyncApiKey, args.address, args.fromBlock, args.toBlock, args.eventArgs);
183
- const abiItem = parseAbiItem(args.eventAbi);
184
- const fromBlockNum = args.fromBlock ? BigInt(args.fromBlock) : undefined;
185
- const toBlockNum = args.toBlock ? BigInt(args.toBlock) : undefined;
186
- // Convert hypersync logs to the same format as viem logs
187
- const serializedLogs = hypersyncLogs.map(log => {
188
- const baseLogData = {
189
- address: log.address,
190
- blockHash: log.blockHash,
191
- blockNumber: log.blockNumber?.toString(),
192
- data: log.data,
193
- logIndex: log.logIndex,
194
- topics: log.topics,
195
- transactionHash: log.transactionHash,
196
- transactionIndex: log.transactionIndex
197
- };
198
- return {
199
- ...baseLogData,
200
- decoded: {
201
- eventName: log.eventName,
202
- args: log.args
203
- }
204
- };
205
- });
206
- return formatResponse({
207
- logs: serializedLogs,
208
- eventSignature: toEventSignature(abiItem),
209
- chain: args.chain,
210
- fromBlock: fromBlockNum?.toString() || 'latest',
211
- toBlock: toBlockNum?.toString() || 'latest',
212
- count: hypersyncLogs.length,
213
- dataSource: 'hypersync',
214
- filters: {
215
- address: args.address || null,
216
- eventArgs: args.eventArgs || null
217
- }
218
- });
219
- }
220
- catch (hypersyncError) {
221
- throw new Error(`Both viem and hypersync failed. Viem error: ${viemError}. Hypersync error: ${hypersyncError}`);
222
- }
223
- }
224
- else {
225
- // No hypersync fallback available for this chain
226
- throw new Error(`Failed to get logs with viem (hypersync not available for ${args.chain}): ${viemError}`);
227
- }
228
- }
229
- })
230
- };
231
- //# sourceMappingURL=logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- import { z } from 'zod';
2
- declare const _default: {
3
- get_function_signature: {
4
- title: string;
5
- description: string;
6
- schema: z.ZodObject<{
7
- items: z.ZodArray<z.ZodObject<{
8
- functionAbi: z.ZodString;
9
- }, "strip", z.ZodTypeAny, {
10
- functionAbi: string;
11
- }, {
12
- functionAbi: string;
13
- }>, "many">;
14
- }, "strip", z.ZodTypeAny, {
15
- items: {
16
- functionAbi: string;
17
- }[];
18
- }, {
19
- items: {
20
- functionAbi: string;
21
- }[];
22
- }>;
23
- handler: (args: {
24
- items: {
25
- functionAbi: string;
26
- }[];
27
- }) => Promise<import("../types.js").ToolResult>;
28
- };
29
- get_event_signature: {
30
- title: string;
31
- description: string;
32
- schema: z.ZodObject<{
33
- items: z.ZodArray<z.ZodObject<{
34
- eventAbi: z.ZodString;
35
- }, "strip", z.ZodTypeAny, {
36
- eventAbi: string;
37
- }, {
38
- eventAbi: string;
39
- }>, "many">;
40
- }, "strip", z.ZodTypeAny, {
41
- items: {
42
- eventAbi: string;
43
- }[];
44
- }, {
45
- items: {
46
- eventAbi: string;
47
- }[];
48
- }>;
49
- handler: (args: {
50
- items: {
51
- eventAbi: string;
52
- }[];
53
- }) => Promise<import("../types.js").ToolResult>;
54
- };
55
- get_error_signature: {
56
- title: string;
57
- description: string;
58
- schema: z.ZodObject<{
59
- items: z.ZodArray<z.ZodObject<{
60
- errorAbi: z.ZodString;
61
- }, "strip", z.ZodTypeAny, {
62
- errorAbi: string;
63
- }, {
64
- errorAbi: string;
65
- }>, "many">;
66
- }, "strip", z.ZodTypeAny, {
67
- items: {
68
- errorAbi: string;
69
- }[];
70
- }, {
71
- items: {
72
- errorAbi: string;
73
- }[];
74
- }>;
75
- handler: (args: {
76
- items: {
77
- errorAbi: string;
78
- }[];
79
- }) => Promise<import("../types.js").ToolResult>;
80
- };
81
- };
82
- export default _default;
83
- //# sourceMappingURL=signatures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/tools/signatures.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBvB,wBA+FC"}