web3-tools-mcp 1.5.0 → 2.0.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 (109) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +346 -164
  3. package/dist/anvil.d.ts +1 -1
  4. package/dist/anvil.d.ts.map +1 -1
  5. package/dist/anvil.js +11 -9
  6. package/dist/anvil.js.map +1 -1
  7. package/dist/chain-meta.d.ts.map +1 -1
  8. package/dist/chain-meta.js +7 -3
  9. package/dist/chain-meta.js.map +1 -1
  10. package/dist/chains.d.ts +960 -0
  11. package/dist/chains.d.ts.map +1 -0
  12. package/dist/chains.js +108 -0
  13. package/dist/chains.js.map +1 -0
  14. package/dist/client.d.ts +10 -1717
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +33 -216
  17. package/dist/client.js.map +1 -1
  18. package/dist/http-server.d.ts +18 -0
  19. package/dist/http-server.d.ts.map +1 -0
  20. package/dist/http-server.js +89 -0
  21. package/dist/http-server.js.map +1 -0
  22. package/dist/index.js +77 -32
  23. package/dist/index.js.map +1 -1
  24. package/dist/kv-storage.d.ts +23 -0
  25. package/dist/kv-storage.d.ts.map +1 -0
  26. package/dist/kv-storage.js +69 -0
  27. package/dist/kv-storage.js.map +1 -0
  28. package/dist/oauth.d.ts +31 -0
  29. package/dist/oauth.d.ts.map +1 -0
  30. package/dist/oauth.js +227 -0
  31. package/dist/oauth.js.map +1 -0
  32. package/dist/preview.d.ts.map +1 -1
  33. package/dist/preview.js +14 -4
  34. package/dist/preview.js.map +1 -1
  35. package/dist/tools/advanced.d.ts +4 -4
  36. package/dist/tools/advanced.d.ts.map +1 -1
  37. package/dist/tools/advanced.js +228 -247
  38. package/dist/tools/advanced.js.map +1 -1
  39. package/dist/tools/balance.d.ts +1 -1
  40. package/dist/tools/balance.d.ts.map +1 -1
  41. package/dist/tools/balance.js +97 -103
  42. package/dist/tools/balance.js.map +1 -1
  43. package/dist/tools/contract-info.d.ts +3 -3
  44. package/dist/tools/contract-info.d.ts.map +1 -1
  45. package/dist/tools/contract-info.js +150 -161
  46. package/dist/tools/contract-info.js.map +1 -1
  47. package/dist/tools/contract.d.ts +4 -4
  48. package/dist/tools/contract.d.ts.map +1 -1
  49. package/dist/tools/contract.js +91 -110
  50. package/dist/tools/contract.js.map +1 -1
  51. package/dist/tools/ens.d.ts +6 -6
  52. package/dist/tools/ens.d.ts.map +1 -1
  53. package/dist/tools/ens.js +239 -297
  54. package/dist/tools/ens.js.map +1 -1
  55. package/dist/tools/gas.d.ts +4 -4
  56. package/dist/tools/gas.d.ts.map +1 -1
  57. package/dist/tools/gas.js +90 -138
  58. package/dist/tools/gas.js.map +1 -1
  59. package/dist/tools/index.d.ts +1 -1
  60. package/dist/tools/index.d.ts.map +1 -1
  61. package/dist/tools/logs.d.ts +1 -1
  62. package/dist/tools/logs.d.ts.map +1 -1
  63. package/dist/tools/logs.js +36 -37
  64. package/dist/tools/logs.js.map +1 -1
  65. package/dist/tools/signatures.d.ts.map +1 -1
  66. package/dist/tools/signatures.js +67 -89
  67. package/dist/tools/signatures.js.map +1 -1
  68. package/dist/tools/transactions.d.ts +48 -4
  69. package/dist/tools/transactions.d.ts.map +1 -1
  70. package/dist/tools/transactions.js +228 -44
  71. package/dist/tools/transactions.js.map +1 -1
  72. package/dist/types.d.ts +2 -1
  73. package/dist/types.d.ts.map +1 -1
  74. package/dist/utils.d.ts +3 -8
  75. package/dist/utils.d.ts.map +1 -1
  76. package/dist/utils.js +36 -98
  77. package/dist/utils.js.map +1 -1
  78. package/dist/wallet-client.d.ts +11 -1
  79. package/dist/wallet-client.d.ts.map +1 -1
  80. package/dist/wallet-client.js +27 -9
  81. package/dist/wallet-client.js.map +1 -1
  82. package/dist/walletconnect.d.ts +52 -0
  83. package/dist/walletconnect.d.ts.map +1 -0
  84. package/dist/walletconnect.js +221 -0
  85. package/dist/walletconnect.js.map +1 -0
  86. package/package.json +21 -9
  87. package/src/anvil.ts +15 -18
  88. package/src/chain-meta.ts +8 -4
  89. package/src/chains.ts +145 -0
  90. package/src/client.ts +39 -252
  91. package/src/http-server.ts +117 -0
  92. package/src/index.ts +98 -49
  93. package/src/kv-storage.ts +83 -0
  94. package/src/oauth.ts +270 -0
  95. package/src/preview.ts +15 -14
  96. package/src/tools/advanced.ts +195 -213
  97. package/src/tools/balance.ts +103 -108
  98. package/src/tools/contract-info.ts +163 -184
  99. package/src/tools/contract.ts +123 -144
  100. package/src/tools/ens.ts +290 -345
  101. package/src/tools/gas.ts +122 -170
  102. package/src/tools/index.ts +2 -2
  103. package/src/tools/logs.ts +45 -43
  104. package/src/tools/signatures.ts +68 -86
  105. package/src/tools/transactions.ts +283 -50
  106. package/src/types.ts +2 -15
  107. package/src/utils.ts +56 -127
  108. package/src/wallet-client.ts +31 -9
  109. package/src/walletconnect.ts +269 -0
@@ -1,16 +1,14 @@
1
1
  import { decodeAbiParameters, isAddress, parseAbiParameters } from 'viem';
2
2
  import { z } from 'zod';
3
+ import { isAnvilInstalled, simulateCallWithTrace, traceTransactionWithAnvil } from '../anvil.js';
3
4
  import { getClientManager, SUPPORTED_CHAINS } from '../client.js';
4
5
  import { createTool, formatResponse, summarizeTrace } from '../utils.js';
5
- import { isAnvilInstalled, traceTransactionWithAnvil, simulateCallWithTrace } from '../anvil.js';
6
6
  export default {
7
7
  get_storage_at: createTool('Read Contract Storage', '⚠️ ADVANCED: Direct storage slot access with type decoding. Use for low-level contract inspection.', z.object({
8
8
  chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
9
9
  address: z.string().describe('The contract address to inspect'),
10
10
  slot: z.string().describe('Storage slot (hex string, e.g., "0x0")'),
11
- abiType: z
12
- .string()
13
- .describe('ABI type for decoding (e.g., "uint256", "address", "bool", "bytes32")'),
11
+ abiType: z.string().describe('ABI type for decoding (e.g., "uint256", "address", "bool", "bytes32")'),
14
12
  blockNumber: z.string().optional().describe('Block number (optional, defaults to latest)')
15
13
  }), async (args) => {
16
14
  if (!isAddress(args.address)) {
@@ -19,90 +17,85 @@ export default {
19
17
  const clientManager = getClientManager();
20
18
  const client = clientManager.getClient(args.chain);
21
19
  const blockTag = args.blockNumber ? BigInt(args.blockNumber) : 'latest';
20
+ const storageValue = await client.getStorageAt({
21
+ address: args.address,
22
+ slot: args.slot,
23
+ blockNumber: blockTag === 'latest' ? undefined : blockTag
24
+ });
25
+ if (!storageValue) {
26
+ throw new Error('No storage value found');
27
+ }
28
+ // Decode based on ABI type
29
+ let decodedValue;
30
+ let formattedValue;
22
31
  try {
23
- const storageValue = await client.getStorageAt({
24
- address: args.address,
25
- slot: args.slot,
26
- blockNumber: blockTag === 'latest' ? undefined : blockTag
27
- });
28
- if (!storageValue) {
29
- throw new Error('No storage value found');
30
- }
31
- // Decode based on ABI type
32
- let decodedValue;
33
- let formattedValue;
34
- try {
35
- switch (args.abiType.toLowerCase()) {
36
- case 'uint256':
37
- case 'uint': {
38
- decodedValue = BigInt(storageValue);
39
- formattedValue = decodedValue.toString();
40
- break;
41
- }
42
- case 'int256':
43
- case 'int': {
44
- // Handle two's complement for negative numbers
45
- const uint256Value = BigInt(storageValue);
46
- const maxUint256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
47
- decodedValue = uint256Value > maxUint256 / 2n ? uint256Value - maxUint256 - 1n : uint256Value;
48
- formattedValue = decodedValue.toString();
49
- break;
50
- }
51
- case 'address': {
52
- decodedValue = `0x${storageValue.slice(-40)}`;
53
- formattedValue = decodedValue;
54
- break;
55
- }
56
- case 'bool': {
57
- decodedValue = BigInt(storageValue) !== 0n;
58
- formattedValue = String(decodedValue);
59
- break;
60
- }
61
- case 'bytes32': {
62
- decodedValue = storageValue;
63
- formattedValue = storageValue;
64
- break;
65
- }
66
- default: {
67
- // Try to decode as ABI parameters
68
- try {
69
- const parsedTypes = parseAbiParameters([args.abiType]);
70
- if (parsedTypes.length > 0) {
71
- const decoded = decodeAbiParameters(parsedTypes, storageValue);
72
- decodedValue = decoded.length > 0 ? decoded[0] : null;
73
- formattedValue = decodedValue ? String(decodedValue) : 'No data';
74
- }
75
- else {
76
- decodedValue = null;
77
- formattedValue = 'Invalid ABI type';
78
- }
32
+ switch (args.abiType.toLowerCase()) {
33
+ case 'uint256':
34
+ case 'uint': {
35
+ decodedValue = BigInt(storageValue);
36
+ formattedValue = decodedValue.toString();
37
+ break;
38
+ }
39
+ case 'int256':
40
+ case 'int': {
41
+ // Handle two's complement for negative numbers
42
+ const uint256Value = BigInt(storageValue);
43
+ const maxUint256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
44
+ decodedValue = uint256Value > maxUint256 / 2n ? uint256Value - maxUint256 - 1n : uint256Value;
45
+ formattedValue = decodedValue.toString();
46
+ break;
47
+ }
48
+ case 'address': {
49
+ decodedValue = `0x${storageValue.slice(-40)}`;
50
+ formattedValue = decodedValue;
51
+ break;
52
+ }
53
+ case 'bool': {
54
+ decodedValue = BigInt(storageValue) !== 0n;
55
+ formattedValue = String(decodedValue);
56
+ break;
57
+ }
58
+ case 'bytes32': {
59
+ decodedValue = storageValue;
60
+ formattedValue = storageValue;
61
+ break;
62
+ }
63
+ default: {
64
+ // Try to decode as ABI parameters
65
+ try {
66
+ const parsedTypes = parseAbiParameters([args.abiType]);
67
+ if (parsedTypes.length > 0) {
68
+ const decoded = decodeAbiParameters(parsedTypes, storageValue);
69
+ decodedValue = decoded.length > 0 ? decoded[0] : null;
70
+ formattedValue = decodedValue ? String(decodedValue) : 'No data';
79
71
  }
80
- catch {
72
+ else {
81
73
  decodedValue = null;
82
- formattedValue = 'Failed to decode with custom ABI type';
74
+ formattedValue = 'Invalid ABI type';
83
75
  }
84
- break;
85
76
  }
77
+ catch {
78
+ decodedValue = null;
79
+ formattedValue = 'Failed to decode with custom ABI type';
80
+ }
81
+ break;
86
82
  }
87
83
  }
88
- catch {
89
- decodedValue = null;
90
- formattedValue = 'Failed to decode';
91
- }
92
- return formatResponse({
93
- rawValue: storageValue,
94
- decodedValue,
95
- formattedValue,
96
- abiType: args.abiType,
97
- slot: args.slot,
98
- address: args.address,
99
- chain: args.chain,
100
- blockNumber: blockTag === 'latest' ? 'latest' : blockTag.toString()
101
- });
102
84
  }
103
- catch (error) {
104
- throw new Error(`Failed to get storage: ${error}`);
85
+ catch {
86
+ decodedValue = null;
87
+ formattedValue = 'Failed to decode';
105
88
  }
89
+ return formatResponse({
90
+ rawValue: storageValue,
91
+ decodedValue,
92
+ formattedValue,
93
+ abiType: args.abiType,
94
+ slot: args.slot,
95
+ address: args.address,
96
+ chain: args.chain,
97
+ blockNumber: blockTag === 'latest' ? 'latest' : blockTag.toString()
98
+ });
106
99
  }),
107
100
  get_block_info: createTool('Get Block Information', 'Retrieve block data including timestamps, hashes, and dates. Use for time-based analysis.', z.object({
108
101
  chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
@@ -111,27 +104,22 @@ export default {
111
104
  const clientManager = getClientManager();
112
105
  const client = clientManager.getClient(args.chain);
113
106
  const blockTag = args.blockNumber ? BigInt(args.blockNumber) : 'latest';
114
- try {
115
- const block = await client.getBlock({
116
- blockNumber: blockTag === 'latest' ? undefined : blockTag,
117
- includeTransactions: false
118
- });
119
- const timestamp = Number(block.timestamp);
120
- const date = new Date(timestamp * 1000);
121
- return formatResponse({
122
- blockNumber: block.number,
123
- timestamp: block.timestamp,
124
- timestampMs: timestamp * 1000,
125
- dateIso: date.toISOString(),
126
- dateReadable: date.toLocaleString(),
127
- hash: block.hash,
128
- parentHash: block.parentHash,
129
- chain: args.chain
130
- });
131
- }
132
- catch (error) {
133
- throw new Error(`Failed to get block time: ${error}`);
134
- }
107
+ const block = await client.getBlock({
108
+ blockNumber: blockTag === 'latest' ? undefined : blockTag,
109
+ includeTransactions: false
110
+ });
111
+ const timestamp = Number(block.timestamp);
112
+ const date = new Date(timestamp * 1000);
113
+ return formatResponse({
114
+ blockNumber: block.number,
115
+ timestamp: block.timestamp,
116
+ timestampMs: timestamp * 1000,
117
+ dateIso: date.toISOString(),
118
+ dateReadable: date.toLocaleString(),
119
+ hash: block.hash,
120
+ parentHash: block.parentHash,
121
+ chain: args.chain
122
+ });
135
123
  }),
136
124
  trace_transaction: createTool('Trace Transaction', '⚠️ INTENSIVE: Detailed transaction analysis including call traces and state changes. Use sparingly.', z.object({
137
125
  chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to use'),
@@ -154,121 +142,119 @@ export default {
154
142
  }), async (args) => {
155
143
  const clientManager = getClientManager();
156
144
  const client = clientManager.getClient(args.chain);
157
- try {
158
- // First get the transaction receipt to make sure it exists
159
- const transaction = await client.getTransaction({ hash: args.transactionHash });
160
- const receipt = await client.getTransactionReceipt({ hash: args.transactionHash });
161
- let traceResult = null;
162
- let usedAnvil = false;
163
- // Map trace type to tracer name
164
- const tracerMap = {
165
- trace: 'callTracer',
166
- vmTrace: 'prestateTracer',
167
- stateDiff: 'stateDiffTracer'
168
- };
169
- const tracer = tracerMap[args.traceType ?? 'trace'] ?? 'callTracer';
170
- // Try RPC tracing first (unless forceAnvil is true)
171
- if (!args.useAnvil) {
172
- try {
173
- traceResult = await client.request({
174
- method: 'debug_traceTransaction',
175
- params: [args.transactionHash, { tracer }]
176
- });
145
+ // First get the transaction receipt to make sure it exists
146
+ const transaction = await client.getTransaction({ hash: args.transactionHash });
147
+ const receipt = await client.getTransactionReceipt({ hash: args.transactionHash });
148
+ let traceResult = null;
149
+ let usedAnvil = false;
150
+ // Map trace type to tracer name
151
+ const tracerMap = {
152
+ trace: 'callTracer',
153
+ vmTrace: 'prestateTracer',
154
+ stateDiff: 'stateDiffTracer'
155
+ };
156
+ const tracer = tracerMap[args.traceType ?? 'trace'] ?? 'callTracer';
157
+ // Try RPC tracing first (unless forceAnvil is true)
158
+ if (!args.useAnvil) {
159
+ try {
160
+ traceResult = await client.request({
161
+ method: 'debug_traceTransaction',
162
+ params: [args.transactionHash, { tracer }]
163
+ });
164
+ }
165
+ catch (rpcError) {
166
+ // RPC tracing failed, will try Anvil fallback
167
+ const errorMessage = rpcError.message;
168
+ if (errorMessage.includes('not supported') ||
169
+ errorMessage.includes('not available') ||
170
+ errorMessage.includes('method not found') ||
171
+ errorMessage.includes('does not exist')) {
172
+ // This is an expected error for public RPCs, try Anvil
173
+ traceResult = null;
177
174
  }
178
- catch (rpcError) {
179
- // RPC tracing failed, will try Anvil fallback
180
- const errorMessage = rpcError.message;
181
- if (errorMessage.includes('not supported') ||
182
- errorMessage.includes('not available') ||
183
- errorMessage.includes('method not found') ||
184
- errorMessage.includes('does not exist')) {
185
- // This is an expected error for public RPCs, try Anvil
186
- traceResult = null;
187
- }
188
- else {
189
- // Other error, store it but still try Anvil
190
- traceResult = { rpcError: errorMessage };
191
- }
175
+ else {
176
+ // Other error, store it but still try Anvil
177
+ traceResult = { rpcError: errorMessage };
192
178
  }
193
179
  }
194
- // Fallback to Anvil if RPC tracing failed or was skipped
195
- if (traceResult === null || (traceResult && typeof traceResult === 'object' && 'rpcError' in traceResult) || args.useAnvil) {
196
- const anvilAvailable = await isAnvilInstalled();
197
- if (anvilAvailable) {
198
- usedAnvil = true; // Mark as used before attempting (even if it fails)
199
- try {
200
- const forkUrl = clientManager.getRpcUrl(args.chain);
201
- const blockNumber = transaction.blockNumber ?? 0n;
202
- traceResult = await traceTransactionWithAnvil(forkUrl, args.transactionHash, blockNumber, tracer, args.chain);
203
- }
204
- catch (anvilError) {
205
- // Anvil tracing also failed
206
- traceResult = {
207
- error: `Anvil tracing failed: ${anvilError.message}`,
208
- rpcError: traceResult && typeof traceResult === 'object' && 'rpcError' in traceResult
209
- ? traceResult.rpcError
210
- : 'RPC does not support debug_traceTransaction'
211
- };
212
- }
180
+ }
181
+ // Fallback to Anvil if RPC tracing failed or was skipped
182
+ if (traceResult === null ||
183
+ (traceResult && typeof traceResult === 'object' && 'rpcError' in traceResult) ||
184
+ args.useAnvil) {
185
+ const anvilAvailable = await isAnvilInstalled();
186
+ if (anvilAvailable) {
187
+ usedAnvil = true; // Mark as used before attempting (even if it fails)
188
+ try {
189
+ const forkUrl = clientManager.getRpcUrl(args.chain);
190
+ const blockNumber = transaction.blockNumber ?? 0n;
191
+ traceResult = await traceTransactionWithAnvil(forkUrl, args.transactionHash, blockNumber, tracer, args.chain);
213
192
  }
214
- else if (!traceResult || (typeof traceResult === 'object' && 'rpcError' in traceResult)) {
215
- // Anvil not available and RPC failed
193
+ catch (anvilError) {
194
+ // Anvil tracing also failed
216
195
  traceResult = {
217
- error: 'Tracing not available. Install Foundry (anvil) for local tracing: https://book.getfoundry.sh/getting-started/installation',
196
+ error: `Anvil tracing failed: ${anvilError.message}`,
218
197
  rpcError: traceResult && typeof traceResult === 'object' && 'rpcError' in traceResult
219
198
  ? traceResult.rpcError
220
199
  : 'RPC does not support debug_traceTransaction'
221
200
  };
222
201
  }
223
202
  }
224
- // Apply summarization if requested - focused on finding reverts
225
- // Skip summarization only if traceResult is a plain error object (not a call trace with an error field)
226
- const isPlainError = traceResult && typeof traceResult === 'object' &&
227
- 'error' in traceResult && !('type' in traceResult) && !('calls' in traceResult);
228
- const traceSummary = args.summarize && traceResult && typeof traceResult === 'object' && !isPlainError
229
- ? summarizeTrace(traceResult)
230
- : null;
231
- const result = args.summarize && traceSummary
232
- ? {
233
- chain: args.chain,
234
- transactionHash: args.transactionHash,
235
- status: receipt.status,
236
- gasUsed: receipt.gasUsed?.toString(),
237
- ...traceSummary // { hasError, errorPath, summary }
238
- }
239
- : {
240
- success: true,
241
- chain: args.chain,
242
- transactionHash: args.transactionHash,
243
- traceType: args.traceType,
244
- usedAnvil,
245
- transaction: {
246
- blockNumber: transaction.blockNumber?.toString(),
247
- from: transaction.from,
248
- to: transaction.to,
249
- value: transaction.value?.toString() || '0',
250
- gas: transaction.gas?.toString() || '0',
251
- gasPrice: transaction.gasPrice?.toString() || '0',
252
- nonce: transaction.nonce?.toString() || '0',
253
- input: transaction.input
254
- },
255
- receipt: {
256
- status: receipt.status,
257
- gasUsed: receipt.gasUsed?.toString() || '0',
258
- effectiveGasPrice: receipt.effectiveGasPrice?.toString() || '0',
259
- logs: receipt.logs.map(log => ({
260
- address: log.address,
261
- topics: log.topics,
262
- data: log.data
263
- }))
264
- },
265
- trace: traceResult
203
+ else if (!traceResult || (typeof traceResult === 'object' && 'rpcError' in traceResult)) {
204
+ // Anvil not available and RPC failed
205
+ traceResult = {
206
+ error: 'Tracing not available. Install Foundry (anvil) for local tracing: https://book.getfoundry.sh/getting-started/installation',
207
+ rpcError: traceResult && typeof traceResult === 'object' && 'rpcError' in traceResult
208
+ ? traceResult.rpcError
209
+ : 'RPC does not support debug_traceTransaction'
266
210
  };
267
- return formatResponse(result);
268
- }
269
- catch (error) {
270
- throw new Error(`Transaction trace failed: ${error}`);
211
+ }
271
212
  }
213
+ // Apply summarization if requested - focused on finding reverts
214
+ // Skip summarization only if traceResult is a plain error object (not a call trace with an error field)
215
+ const isPlainError = traceResult &&
216
+ typeof traceResult === 'object' &&
217
+ 'error' in traceResult &&
218
+ !('type' in traceResult) &&
219
+ !('calls' in traceResult);
220
+ const traceSummary = args.summarize && traceResult && typeof traceResult === 'object' && !isPlainError ? summarizeTrace(traceResult) : null;
221
+ const result = args.summarize && traceSummary
222
+ ? {
223
+ chain: args.chain,
224
+ transactionHash: args.transactionHash,
225
+ status: receipt.status,
226
+ gasUsed: receipt.gasUsed?.toString(),
227
+ ...traceSummary // { hasError, errorPath, summary }
228
+ }
229
+ : {
230
+ success: true,
231
+ chain: args.chain,
232
+ transactionHash: args.transactionHash,
233
+ traceType: args.traceType,
234
+ usedAnvil,
235
+ transaction: {
236
+ blockNumber: transaction.blockNumber?.toString(),
237
+ from: transaction.from,
238
+ to: transaction.to,
239
+ value: transaction.value?.toString() || '0',
240
+ gas: transaction.gas?.toString() || '0',
241
+ gasPrice: transaction.gasPrice?.toString() || '0',
242
+ nonce: transaction.nonce?.toString() || '0',
243
+ input: transaction.input
244
+ },
245
+ receipt: {
246
+ status: receipt.status,
247
+ gasUsed: receipt.gasUsed?.toString() || '0',
248
+ effectiveGasPrice: receipt.effectiveGasPrice?.toString() || '0',
249
+ logs: receipt.logs.map((log) => ({
250
+ address: log.address,
251
+ topics: log.topics,
252
+ data: log.data
253
+ }))
254
+ },
255
+ trace: traceResult
256
+ };
257
+ return formatResponse(result);
272
258
  }),
273
259
  debug_call: createTool('Debug Contract Call', 'Simulate a contract call with full trace output. Requires Foundry (anvil) installed. Useful for debugging reverts and understanding call execution.', z.object({
274
260
  chain: z.enum(SUPPORTED_CHAINS).describe('The blockchain network to fork'),
@@ -282,10 +268,7 @@ export default {
282
268
  .array(z.union([z.string(), z.number(), z.boolean()]))
283
269
  .optional()
284
270
  .describe('Function arguments (when using functionAbi)'),
285
- from: z
286
- .string()
287
- .optional()
288
- .describe('Sender address (defaults to zero address)'),
271
+ from: z.string().optional().describe('Sender address (defaults to zero address)'),
289
272
  value: z.string().optional().describe('ETH value to send (in wei)'),
290
273
  blockNumber: z.string().optional().describe('Block number to fork from (defaults to latest)'),
291
274
  traceType: z
@@ -325,49 +308,47 @@ export default {
325
308
  throw new Error(`Failed to encode function call: ${encodeError.message}`);
326
309
  }
327
310
  }
328
- try {
329
- const blockNumber = args.blockNumber ? BigInt(args.blockNumber) : undefined;
330
- const value = args.value ? BigInt(args.value) : undefined;
331
- const traceResult = await simulateCallWithTrace(forkUrl, {
311
+ const blockNumber = args.blockNumber ? BigInt(args.blockNumber) : undefined;
312
+ const value = args.value ? BigInt(args.value) : undefined;
313
+ const traceResult = await simulateCallWithTrace(forkUrl, {
314
+ to: args.to,
315
+ data: calldata,
316
+ from: args.from,
317
+ value
318
+ }, blockNumber, args.traceType);
319
+ // Apply summarization if requested - focused on finding reverts
320
+ // Skip summarization only if trace is a plain error object (not a call trace with an error field)
321
+ const isPlainTraceError = traceResult.trace &&
322
+ typeof traceResult.trace === 'object' &&
323
+ 'error' in traceResult.trace &&
324
+ !('type' in traceResult.trace) &&
325
+ !('calls' in traceResult.trace);
326
+ const traceSummary = args.summarize && traceResult.trace && typeof traceResult.trace === 'object' && !isPlainTraceError
327
+ ? summarizeTrace(traceResult.trace)
328
+ : null;
329
+ const result = args.summarize && traceSummary
330
+ ? {
331
+ chain: args.chain,
332
332
  to: args.to,
333
+ success: traceResult.success,
334
+ gasUsed: traceResult.gasUsed.toString(),
335
+ revertReason: traceResult.revertReason,
336
+ ...traceSummary // { hasError, errorPath, summary }
337
+ }
338
+ : {
339
+ success: traceResult.success,
340
+ chain: args.chain,
341
+ to: args.to,
342
+ from: args.from ?? '0x0000000000000000000000000000000000000000',
333
343
  data: calldata,
334
- from: args.from,
335
- value
336
- }, blockNumber, args.traceType);
337
- // Apply summarization if requested - focused on finding reverts
338
- // Skip summarization only if trace is a plain error object (not a call trace with an error field)
339
- const isPlainTraceError = traceResult.trace && typeof traceResult.trace === 'object' &&
340
- 'error' in traceResult.trace && !('type' in traceResult.trace) && !('calls' in traceResult.trace);
341
- const traceSummary = args.summarize && traceResult.trace && typeof traceResult.trace === 'object' && !isPlainTraceError
342
- ? summarizeTrace(traceResult.trace)
343
- : null;
344
- const result = args.summarize && traceSummary
345
- ? {
346
- chain: args.chain,
347
- to: args.to,
348
- success: traceResult.success,
349
- gasUsed: traceResult.gasUsed.toString(),
350
- revertReason: traceResult.revertReason,
351
- ...traceSummary // { hasError, errorPath, summary }
352
- }
353
- : {
354
- success: traceResult.success,
355
- chain: args.chain,
356
- to: args.to,
357
- from: args.from ?? '0x0000000000000000000000000000000000000000',
358
- data: calldata,
359
- value: value?.toString() ?? '0',
360
- blockNumber: blockNumber?.toString() ?? 'latest',
361
- result: traceResult.result,
362
- gasUsed: traceResult.gasUsed.toString(),
363
- revertReason: traceResult.revertReason,
364
- trace: traceResult.trace
365
- };
366
- return formatResponse(result);
367
- }
368
- catch (error) {
369
- throw new Error(`Debug call failed: ${error.message}`);
370
- }
344
+ value: value?.toString() ?? '0',
345
+ blockNumber: blockNumber?.toString() ?? 'latest',
346
+ result: traceResult.result,
347
+ gasUsed: traceResult.gasUsed.toString(),
348
+ revertReason: traceResult.revertReason,
349
+ trace: traceResult.trace
350
+ };
351
+ return formatResponse(result);
371
352
  })
372
353
  };
373
354
  //# sourceMappingURL=advanced.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../src/tools/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,eAAe;IACb,cAAc,EAAE,UAAU,CACxB,uBAAuB,EACvB,oGAAoG,EACpG,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACnE,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,CAAC,uEAAuE,CAAC;QACpF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KAC3F,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEvE,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC7C,OAAO,EAAE,IAAI,CAAC,OAAkB;gBAChC,IAAI,EAAE,IAAI,CAAC,IAAqB;gBAChC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;aAC1D,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC3C,CAAC;YAED,2BAA2B;YAC3B,IAAI,YAAqB,CAAA;YACzB,IAAI,cAAsB,CAAA;YAE1B,IAAI,CAAC;gBACH,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnC,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM,CAAC,CAAC,CAAC;wBACZ,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;wBACnC,cAAc,GAAI,YAAuB,CAAC,QAAQ,EAAE,CAAA;wBACpD,MAAK;oBACP,CAAC;oBACD,KAAK,QAAQ,CAAC;oBACd,KAAK,KAAK,CAAC,CAAC,CAAC;wBACX,+CAA+C;wBAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;wBACzC,MAAM,UAAU,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAA;wBAC/F,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;wBAC7F,cAAc,GAAI,YAAuB,CAAC,QAAQ,EAAE,CAAA;wBACpD,MAAK;oBACP,CAAC;oBACD,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,YAAY,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;wBAC7C,cAAc,GAAG,YAAsB,CAAA;wBACvC,MAAK;oBACP,CAAC;oBACD,KAAK,MAAM,CAAC,CAAC,CAAC;wBACZ,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;wBAC1C,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;wBACrC,MAAK;oBACP,CAAC;oBACD,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,YAAY,GAAG,YAAY,CAAA;wBAC3B,cAAc,GAAG,YAAY,CAAA;wBAC7B,MAAK;oBACP,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACR,kCAAkC;wBAClC,IAAI,CAAC;4BACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;4BACtD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAuB,CAAA;gCACpF,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gCACrD,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;4BAClE,CAAC;iCAAM,CAAC;gCACN,YAAY,GAAG,IAAI,CAAA;gCACnB,cAAc,GAAG,kBAAkB,CAAA;4BACrC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,YAAY,GAAG,IAAI,CAAA;4BACnB,cAAc,GAAG,uCAAuC,CAAA;wBAC1D,CAAC;wBACD,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,IAAI,CAAA;gBACnB,cAAc,GAAG,kBAAkB,CAAA;YACrC,CAAC;YAED,OAAO,cAAc,CAAC;gBACpB,QAAQ,EAAE,YAAY;gBACtB,YAAY;gBACZ,cAAc;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aACpE,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC,CACF;IAED,cAAc,EAAE,UAAU,CACxB,uBAAuB,EACvB,2FAA2F,EAC3F,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KAC3F,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEvE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;gBAClC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;gBACzD,mBAAmB,EAAE,KAAK;aAC3B,CAAC,CAAA;YAEF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;YAEvC,OAAO,cAAc,CAAC;gBACpB,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,SAAS,GAAG,IAAI;gBAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;gBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,CACF;IAED,iBAAiB,EAAE,UAAU,CAC3B,mBAAmB,EACnB,qGAAqG,EACrG,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAC/E,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aACvC,QAAQ,EAAE;aACV,QAAQ,CACP,qGAAqG,CACtG;aACA,OAAO,CAAC,OAAO,CAAC;QACnB,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,2GAA2G,CAAC;aACrH,OAAO,CAAC,KAAK,CAAC;QACjB,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,+FAA+F,CAAC;aACzG,OAAO,CAAC,KAAK,CAAC;KAClB,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,IAAI,CAAC;YACH,2DAA2D;YAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAgC,EAAE,CAAC,CAAA;YAChG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAgC,EAAE,CAAC,CAAA;YAEnG,IAAI,WAAW,GAAY,IAAI,CAAA;YAC/B,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,gCAAgC;YAChC,MAAM,SAAS,GAAwE;gBACrF,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,iBAAiB;aAC7B,CAAA;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,YAAY,CAAA;YAEnE,oDAAoD;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;wBACjC,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC;qBAC3C,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,8CAA8C;oBAC9C,MAAM,YAAY,GAAI,QAAkB,CAAC,OAAO,CAAA;oBAChD,IACE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;wBACtC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;wBACtC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC;wBACzC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,CAAC;wBACD,uDAAuD;wBACvD,WAAW,GAAG,IAAI,CAAA;oBACpB,CAAC;yBAAM,CAAC;wBACN,4CAA4C;wBAC5C,WAAW,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3H,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAA;gBAC/C,IAAI,cAAc,EAAE,CAAC;oBACnB,SAAS,GAAG,IAAI,CAAA,CAAC,oDAAoD;oBACrE,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;wBAChE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAA;wBAEjD,WAAW,GAAG,MAAM,yBAAyB,CAC3C,OAAO,EACP,IAAI,CAAC,eAAe,EACpB,WAAW,EACX,MAAM,EACN,IAAI,CAAC,KAAK,CACX,CAAA;oBACH,CAAC;oBAAC,OAAO,UAAU,EAAE,CAAC;wBACpB,4BAA4B;wBAC5B,WAAW,GAAG;4BACZ,KAAK,EAAE,yBAA0B,UAAoB,CAAC,OAAO,EAAE;4BAC/D,QAAQ,EAAE,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW;gCACnF,CAAC,CAAE,WAAoC,CAAC,QAAQ;gCAChD,CAAC,CAAC,6CAA6C;yBAClD,CAAA;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;oBAC1F,qCAAqC;oBACrC,WAAW,GAAG;wBACZ,KAAK,EAAE,2HAA2H;wBAClI,QAAQ,EAAE,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW;4BACnF,CAAC,CAAE,WAAoC,CAAC,QAAQ;4BAChD,CAAC,CAAC,6CAA6C;qBAClD,CAAA;gBACH,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,wGAAwG;YACxG,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;gBACjE,OAAO,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,CAAA;YACjF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,YAAY;gBACpG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAA;YAER,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY;gBAC3C,CAAC,CAAC;oBACE,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE;oBACpC,GAAG,YAAY,CAAC,mCAAmC;iBACpD;gBACH,CAAC,CAAC;oBACE,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS;oBACT,WAAW,EAAE;wBACX,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE;wBAChD,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,EAAE,EAAE,WAAW,CAAC,EAAE;wBAClB,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;wBAC3C,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG;wBACvC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;wBACjD,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;wBAC3C,KAAK,EAAE,WAAW,CAAC,KAAK;qBACzB;oBACD,OAAO,EAAE;wBACP,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG;wBAC3C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,GAAG;wBAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,IAAI,EAAE,GAAG,CAAC,IAAI;yBACf,CAAC,CAAC;qBACJ;oBACD,KAAK,EAAE,WAAW;iBACnB,CAAA;YAEL,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,CACF;IAED,UAAU,EAAE,UAAU,CACpB,qBAAqB,EACrB,qJAAqJ,EACrJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC1E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QAC1G,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0GAA0G,CAAC;QACvH,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACrD,QAAQ,EAAE;aACV,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2CAA2C,CAAC;QACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACnE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC7F,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;aACtC,QAAQ,EAAE;aACV,OAAO,CAAC,YAAY,CAAC;aACrB,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,+FAA+F,CAAC;aACzG,OAAO,CAAC,KAAK,CAAC;KAClB,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,8BAA8B;QAC9B,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAA;QACH,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAEhE,6CAA6C;QAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;gBACjE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;gBACrD,CAAC;gBACD,QAAQ,GAAG,kBAAkB,CAAC;oBAC5B,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAuB;iBAC9C,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,mCAAoC,WAAqB,CAAC,OAAO,EAAE,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAEzD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAC7C,OAAO,EACP;gBACE,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK;aACN,EACD,WAAW,EACX,IAAI,CAAC,SAAS,CACf,CAAA;YAED,gEAAgE;YAChE,kGAAkG;YAClG,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;gBAClF,OAAO,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;YACnG,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB;gBACrH,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAA;YAER,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY;gBAC3C,CAAC,CAAC;oBACE,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACvC,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,GAAG,YAAY,CAAC,mCAAmC;iBACpD;gBACH,CAAC,CAAC;oBACE,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,4CAA4C;oBAC/D,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;oBAC/B,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,QAAQ;oBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACvC,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,KAAK,EAAE,WAAW,CAAC,KAAK;iBACzB,CAAA;YAEL,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sBAAuB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;QACnE,CAAC;IACH,CAAC,CACF;CACF,CAAA"}
1
+ {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../src/tools/advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAExE,eAAe;IACb,cAAc,EAAE,UAAU,CACxB,uBAAuB,EACvB,oGAAoG,EACpG,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;QACrG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KAC3F,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEvE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAkB;YAChC,IAAI,EAAE,IAAI,CAAC,IAAqB;YAChC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;SAC1D,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,2BAA2B;QAC3B,IAAI,YAAqB,CAAA;QACzB,IAAI,cAAsB,CAAA;QAE1B,IAAI,CAAC;YACH,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnC,KAAK,SAAS,CAAC;gBACf,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;oBACnC,cAAc,GAAI,YAAuB,CAAC,QAAQ,EAAE,CAAA;oBACpD,MAAK;gBACP,CAAC;gBACD,KAAK,QAAQ,CAAC;gBACd,KAAK,KAAK,CAAC,CAAC,CAAC;oBACX,+CAA+C;oBAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;oBACzC,MAAM,UAAU,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAA;oBAC/F,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;oBAC7F,cAAc,GAAI,YAAuB,CAAC,QAAQ,EAAE,CAAA;oBACpD,MAAK;gBACP,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,YAAY,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;oBAC7C,cAAc,GAAG,YAAsB,CAAA;oBACvC,MAAK;gBACP,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;oBAC1C,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;oBACrC,MAAK;gBACP,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,YAAY,GAAG,YAAY,CAAA;oBAC3B,cAAc,GAAG,YAAY,CAAA;oBAC7B,MAAK;gBACP,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,kCAAkC;oBAClC,IAAI,CAAC;wBACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;wBACtD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAuB,CAAA;4BACpF,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;4BACrD,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;wBAClE,CAAC;6BAAM,CAAC;4BACN,YAAY,GAAG,IAAI,CAAA;4BACnB,cAAc,GAAG,kBAAkB,CAAA;wBACrC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY,GAAG,IAAI,CAAA;wBACnB,cAAc,GAAG,uCAAuC,CAAA;oBAC1D,CAAC;oBACD,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,IAAI,CAAA;YACnB,cAAc,GAAG,kBAAkB,CAAA;QACrC,CAAC;QAED,OAAO,cAAc,CAAC;YACpB,QAAQ,EAAE,YAAY;YACtB,YAAY;YACZ,cAAc;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;SACpE,CAAC,CAAA;IACJ,CAAC,CACF;IAED,cAAc,EAAE,UAAU,CACxB,uBAAuB,EACvB,2FAA2F,EAC3F,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;KAC3F,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAEvE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACzD,mBAAmB,EAAE,KAAK;SAC3B,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;QAEvC,OAAO,cAAc,CAAC;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,SAAS,GAAG,IAAI;YAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;YAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC,CACF;IAED,iBAAiB,EAAE,UAAU,CAC3B,mBAAmB,EACnB,qGAAqG,EACrG,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAC/E,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aACvC,QAAQ,EAAE;aACV,QAAQ,CAAC,qGAAqG,CAAC;aAC/G,OAAO,CAAC,OAAO,CAAC;QACnB,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,2GAA2G,CAAC;aACrH,OAAO,CAAC,KAAK,CAAC;QACjB,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,+FAA+F,CAAC;aACzG,OAAO,CAAC,KAAK,CAAC;KAClB,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,2DAA2D;QAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAgC,EAAE,CAAC,CAAA;QAChG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAgC,EAAE,CAAC,CAAA;QAEnG,IAAI,WAAW,GAAY,IAAI,CAAA;QAC/B,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,gCAAgC;QAChC,MAAM,SAAS,GAAwE;YACrF,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,iBAAiB;SAC7B,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,YAAY,CAAA;QAEnE,oDAAoD;QACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBACjC,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC;iBAC3C,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,8CAA8C;gBAC9C,MAAM,YAAY,GAAI,QAAkB,CAAC,OAAO,CAAA;gBAChD,IACE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;oBACtC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;oBACtC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACzC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACvC,CAAC;oBACD,uDAAuD;oBACvD,WAAW,GAAG,IAAI,CAAA;gBACpB,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,WAAW,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IACE,WAAW,KAAK,IAAI;YACpB,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC;YAC7E,IAAI,CAAC,QAAQ,EACb,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAA;YAC/C,IAAI,cAAc,EAAE,CAAC;gBACnB,SAAS,GAAG,IAAI,CAAA,CAAC,oDAAoD;gBACrE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;oBAChE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAA;oBAEjD,WAAW,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC/G,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,4BAA4B;oBAC5B,WAAW,GAAG;wBACZ,KAAK,EAAE,yBAA0B,UAAoB,CAAC,OAAO,EAAE;wBAC/D,QAAQ,EACN,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW;4BACzE,CAAC,CAAE,WAAoC,CAAC,QAAQ;4BAChD,CAAC,CAAC,6CAA6C;qBACpD,CAAA;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;gBAC1F,qCAAqC;gBACrC,WAAW,GAAG;oBACZ,KAAK,EACH,2HAA2H;oBAC7H,QAAQ,EACN,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,UAAU,IAAI,WAAW;wBACzE,CAAC,CAAE,WAAoC,CAAC,QAAQ;wBAChD,CAAC,CAAC,6CAA6C;iBACpD,CAAA;YACH,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,wGAAwG;QACxG,MAAM,YAAY,GAChB,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,OAAO,IAAI,WAAW;YACtB,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC;YACxB,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,CAAA;QAC3B,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAExH,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,IAAI,YAAY;YAC5B,CAAC,CAAC;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE;gBACpC,GAAG,YAAY,CAAC,mCAAmC;aACpD;YACH,CAAC,CAAC;gBACE,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS;gBACT,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE;oBAChD,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;oBAC3C,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG;oBACvC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAG;oBACjD,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;oBAC3C,KAAK,EAAE,WAAW,CAAC,KAAK;iBACzB;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG;oBAC3C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,GAAG;oBAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;qBACf,CAAC,CAAC;iBACJ;gBACD,KAAK,EAAE,WAAW;aACnB,CAAA;QAEP,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC,CACF;IAED,UAAU,EAAE,UAAU,CACpB,qBAAqB,EACrB,qJAAqJ,EACrJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QAC1E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QAC1G,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0GAA0G,CAAC;QACvH,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACrD,QAAQ,EAAE;aACV,QAAQ,CAAC,6CAA6C,CAAC;QAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACnE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC7F,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;aACtC,QAAQ,EAAE;aACV,OAAO,CAAC,YAAY,CAAC;aACrB,QAAQ,CAAC,+EAA+E,CAAC;QAC5F,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,+FAA+F,CAAC;aACzG,OAAO,CAAC,KAAK,CAAC;KAClB,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,8BAA8B;QAC9B,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAA;QAC5H,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAEhE,6CAA6C;QAC7C,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;gBACjE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;gBACrD,CAAC;gBACD,QAAQ,GAAG,kBAAkB,CAAC;oBAC5B,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAuB;iBAC9C,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,mCAAoC,WAAqB,CAAC,OAAO,EAAE,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEzD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAC7C,OAAO,EACP;YACE,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;SACN,EACD,WAAW,EACX,IAAI,CAAC,SAAS,CACf,CAAA;QAED,gEAAgE;QAChE,kGAAkG;QAClG,MAAM,iBAAiB,GACrB,WAAW,CAAC,KAAK;YACjB,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;YACrC,OAAO,IAAI,WAAW,CAAC,KAAK;YAC5B,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC;YAC9B,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,KAAK,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB;YAChG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;YACnC,CAAC,CAAC,IAAI,CAAA;QAEV,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,IAAI,YAAY;YAC5B,CAAC,CAAC;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvC,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,GAAG,YAAY,CAAC,mCAAmC;aACpD;YACH,CAAC,CAAC;gBACE,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,4CAA4C;gBAC/D,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;gBAC/B,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,QAAQ;gBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvC,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,KAAK,EAAE,WAAW,CAAC,KAAK;aACzB,CAAA;QAEP,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC,CACF;CACF,CAAA"}
@@ -5,7 +5,7 @@ declare const _default: {
5
5
  description: string;
6
6
  schema: z.ZodObject<{
7
7
  queries: z.ZodArray<z.ZodObject<{
8
- chain: z.ZodEnum<["mainnet", "arbitrum", "avalanche", "base", "bnb", "gnosis", "sonic", "optimism", "polygon", "zksync", "linea", "unichain", "localhost"]>;
8
+ chain: z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>;
9
9
  address: z.ZodString;
10
10
  tokenAddress: z.ZodOptional<z.ZodString>;
11
11
  blockNumber: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBvB,wBA8JC"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAavB,wBA4JC"}