web3-tools-mcp 2.0.2 → 3.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 (162) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +5 -0
  3. package/dist/anvil.d.ts +17 -19
  4. package/dist/anvil.d.ts.map +1 -1
  5. package/dist/anvil.js +124 -228
  6. package/dist/anvil.js.map +1 -1
  7. package/dist/chains.d.ts +9 -1
  8. package/dist/chains.d.ts.map +1 -1
  9. package/dist/chains.js +11 -2
  10. package/dist/chains.js.map +1 -1
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js.map +1 -1
  13. package/dist/context.d.ts +22 -0
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/context.js +24 -0
  16. package/dist/context.js.map +1 -0
  17. package/dist/hosted.d.ts +12 -0
  18. package/dist/hosted.d.ts.map +1 -0
  19. package/dist/hosted.js +12 -0
  20. package/dist/hosted.js.map +1 -0
  21. package/dist/http-server.d.ts +13 -0
  22. package/dist/http-server.d.ts.map +1 -1
  23. package/dist/http-server.js +13 -4
  24. package/dist/http-server.js.map +1 -1
  25. package/dist/index.js +15 -11
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib.d.ts +24 -0
  28. package/dist/lib.d.ts.map +1 -0
  29. package/dist/lib.js +23 -0
  30. package/dist/lib.js.map +1 -0
  31. package/dist/mcp-server.d.ts +4 -0
  32. package/dist/mcp-server.d.ts.map +1 -0
  33. package/dist/mcp-server.js +43 -0
  34. package/dist/mcp-server.js.map +1 -0
  35. package/dist/oauth.d.ts +41 -6
  36. package/dist/oauth.d.ts.map +1 -1
  37. package/dist/oauth.js +75 -41
  38. package/dist/oauth.js.map +1 -1
  39. package/dist/preview.d.ts +7 -0
  40. package/dist/preview.d.ts.map +1 -1
  41. package/dist/preview.js +14 -2
  42. package/dist/preview.js.map +1 -1
  43. package/dist/signing-requests.d.ts +81 -0
  44. package/dist/signing-requests.d.ts.map +1 -0
  45. package/dist/signing-requests.js +138 -0
  46. package/dist/signing-requests.js.map +1 -0
  47. package/dist/tools/index.d.ts +27 -1
  48. package/dist/tools/index.d.ts.map +1 -1
  49. package/dist/tools/index.js +37 -15
  50. package/dist/tools/index.js.map +1 -1
  51. package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +30 -26
  52. package/dist/tools/read/advanced.d.ts.map +1 -0
  53. package/dist/tools/{advanced.js → read/advanced.js} +10 -10
  54. package/dist/tools/read/advanced.js.map +1 -0
  55. package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
  56. package/dist/tools/read/balance.d.ts.map +1 -0
  57. package/dist/tools/{balance.js → read/balance.js} +2 -2
  58. package/dist/tools/read/balance.js.map +1 -0
  59. package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +18 -15
  60. package/dist/tools/read/contract-info.d.ts.map +1 -0
  61. package/dist/tools/{contract-info.js → read/contract-info.js} +2 -2
  62. package/dist/tools/read/contract-info.js.map +1 -0
  63. package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
  64. package/dist/tools/read/contract.d.ts.map +1 -0
  65. package/dist/tools/{contract.js → read/contract.js} +2 -2
  66. package/dist/tools/read/contract.js.map +1 -0
  67. package/dist/tools/{ens.d.ts → read/ens.d.ts} +30 -25
  68. package/dist/tools/read/ens.d.ts.map +1 -0
  69. package/dist/tools/{ens.js → read/ens.js} +2 -2
  70. package/dist/tools/read/ens.js.map +1 -0
  71. package/dist/tools/read/gas.d.ts +171 -0
  72. package/dist/tools/read/gas.d.ts.map +1 -0
  73. package/dist/tools/read/gas.js +368 -0
  74. package/dist/tools/read/gas.js.map +1 -0
  75. package/dist/tools/{logs.d.ts → read/logs.d.ts} +6 -5
  76. package/dist/tools/read/logs.d.ts.map +1 -0
  77. package/dist/tools/{logs.js → read/logs.js} +2 -2
  78. package/dist/tools/read/logs.js.map +1 -0
  79. package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
  80. package/dist/tools/read/signatures.d.ts.map +1 -0
  81. package/dist/tools/{signatures.js → read/signatures.js} +1 -1
  82. package/dist/tools/read/signatures.js.map +1 -0
  83. package/dist/tools/read/signing.d.ts +27 -0
  84. package/dist/tools/read/signing.d.ts.map +1 -0
  85. package/dist/tools/read/signing.js +75 -0
  86. package/dist/tools/read/signing.js.map +1 -0
  87. package/dist/tools/sign/errors.d.ts +9 -0
  88. package/dist/tools/sign/errors.d.ts.map +1 -0
  89. package/dist/tools/sign/errors.js +29 -0
  90. package/dist/tools/sign/errors.js.map +1 -0
  91. package/dist/tools/{transactions.d.ts → sign/transactions.d.ts} +48 -62
  92. package/dist/tools/sign/transactions.d.ts.map +1 -0
  93. package/dist/tools/sign/transactions.js +316 -0
  94. package/dist/tools/sign/transactions.js.map +1 -0
  95. package/dist/tools/sign/wallet.d.ts +50 -0
  96. package/dist/tools/sign/wallet.d.ts.map +1 -0
  97. package/dist/tools/sign/wallet.js +180 -0
  98. package/dist/tools/sign/wallet.js.map +1 -0
  99. package/dist/utils.d.ts +5 -2
  100. package/dist/utils.d.ts.map +1 -1
  101. package/dist/utils.js +5 -2
  102. package/dist/utils.js.map +1 -1
  103. package/dist/wallet-client.d.ts +33 -4
  104. package/dist/wallet-client.d.ts.map +1 -1
  105. package/dist/wallet-client.js +90 -24
  106. package/dist/wallet-client.js.map +1 -1
  107. package/dist/walletconnect.d.ts +100 -13
  108. package/dist/walletconnect.d.ts.map +1 -1
  109. package/dist/walletconnect.js +215 -50
  110. package/dist/walletconnect.js.map +1 -1
  111. package/package.json +10 -4
  112. package/src/anvil.ts +150 -271
  113. package/src/chains.ts +14 -2
  114. package/src/client.ts +0 -1
  115. package/src/context.ts +27 -0
  116. package/src/hosted.ts +11 -0
  117. package/src/http-server.ts +30 -5
  118. package/src/index.ts +15 -12
  119. package/src/lib.ts +24 -0
  120. package/src/mcp-server.ts +47 -0
  121. package/src/oauth.ts +98 -45
  122. package/src/preview.ts +21 -2
  123. package/src/signing-requests.ts +198 -0
  124. package/src/tools/index.ts +67 -16
  125. package/src/tools/{advanced.ts → read/advanced.ts} +13 -11
  126. package/src/tools/{balance.ts → read/balance.ts} +3 -3
  127. package/src/tools/{contract-info.ts → read/contract-info.ts} +3 -3
  128. package/src/tools/{contract.ts → read/contract.ts} +3 -3
  129. package/src/tools/{ens.ts → read/ens.ts} +3 -3
  130. package/src/tools/read/gas.ts +480 -0
  131. package/src/tools/{logs.ts → read/logs.ts} +3 -3
  132. package/src/tools/{signatures.ts → read/signatures.ts} +2 -2
  133. package/src/tools/read/signing.ts +86 -0
  134. package/src/tools/sign/errors.ts +28 -0
  135. package/src/tools/sign/transactions.ts +428 -0
  136. package/src/tools/sign/wallet.ts +216 -0
  137. package/src/utils.ts +5 -2
  138. package/src/wallet-client.ts +91 -22
  139. package/src/walletconnect.ts +250 -48
  140. package/dist/tools/advanced.d.ts.map +0 -1
  141. package/dist/tools/advanced.js.map +0 -1
  142. package/dist/tools/balance.d.ts.map +0 -1
  143. package/dist/tools/balance.js.map +0 -1
  144. package/dist/tools/contract-info.d.ts.map +0 -1
  145. package/dist/tools/contract-info.js.map +0 -1
  146. package/dist/tools/contract.d.ts.map +0 -1
  147. package/dist/tools/contract.js.map +0 -1
  148. package/dist/tools/ens.d.ts.map +0 -1
  149. package/dist/tools/ens.js.map +0 -1
  150. package/dist/tools/gas.d.ts +0 -99
  151. package/dist/tools/gas.d.ts.map +0 -1
  152. package/dist/tools/gas.js +0 -181
  153. package/dist/tools/gas.js.map +0 -1
  154. package/dist/tools/logs.d.ts.map +0 -1
  155. package/dist/tools/logs.js.map +0 -1
  156. package/dist/tools/signatures.d.ts.map +0 -1
  157. package/dist/tools/signatures.js.map +0 -1
  158. package/dist/tools/transactions.d.ts.map +0 -1
  159. package/dist/tools/transactions.js +0 -365
  160. package/dist/tools/transactions.js.map +0 -1
  161. package/src/tools/gas.ts +0 -219
  162. package/src/tools/transactions.ts +0 -456
@@ -0,0 +1,368 @@
1
+ import { decodeFunctionResult, encodeFunctionData, formatEther, isAddress, parseAbiItem, toHex } from 'viem';
2
+ import { simulateBlocks } from 'viem/actions';
3
+ import { z } from 'zod';
4
+ import { getClientManager, SUPPORTED_CHAINS } from '../../client.js';
5
+ import { enrichTransfers } from '../../preview.js';
6
+ import { convertArgumentsToTypes, createTool, formatResponse } from '../../utils.js';
7
+ /** Alchemy's bundle method takes at most this many transactions. */
8
+ const ALCHEMY_BUNDLE_LIMIT = 3;
9
+ /** One tool call is one quota unit, so an unbounded bundle would be a way around the quota. */
10
+ const MAX_BUNDLE = 25;
11
+ /** Where eth_simulateV1's traced native transfers say they come from. */
12
+ const NATIVE_TOKEN = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
13
+ const argsSchema = z.array(z.union([z.string(), z.number(), z.boolean(), z.null()]));
14
+ /**
15
+ * Why an RPC call failed, without the request URL — viem puts it in `message`, and with a
16
+ * provider key configured that URL carries the key.
17
+ */
18
+ function rpcReason(error) {
19
+ const { details, shortMessage } = error;
20
+ return details || shortMessage || 'The RPC request failed';
21
+ }
22
+ function bundleCall(call, from, index) {
23
+ const sender = call.from ?? from;
24
+ if (!isAddress(call.to))
25
+ throw new Error(`Call ${index}: invalid to address ${call.to}`);
26
+ if (sender && !isAddress(sender))
27
+ throw new Error(`Call ${index}: invalid from address ${sender}`);
28
+ if (call.functionAbi && call.data)
29
+ throw new Error(`Call ${index}: give functionAbi and args, or data — not both`);
30
+ const abi = call.functionAbi ? parseAbiItem(call.functionAbi) : undefined;
31
+ const data = abi
32
+ ? encodeFunctionData({ abi: [abi], functionName: abi.name, args: convertArgumentsToTypes(call.args ?? [], abi.inputs) })
33
+ : call.data;
34
+ return { from: sender, to: call.to, data, value: call.value ? BigInt(call.value) : undefined, abi };
35
+ }
36
+ /** Native, ERC20, ERC721 and ERC1155 changes with token metadata — on Alchemy's paid plans only. */
37
+ async function viaAlchemy(chain, calls, blockNumber) {
38
+ const client = getClientManager().getClient(chain);
39
+ const transactions = calls.map((call) => ({
40
+ from: call.from,
41
+ to: call.to,
42
+ data: call.data,
43
+ value: call.value !== undefined ? toHex(call.value) : undefined
44
+ }));
45
+ const params = blockNumber === undefined ? [transactions] : [transactions, toHex(blockNumber)];
46
+ const outcomes = (await client.request({ method: 'alchemy_simulateAssetChangesBundle', params }));
47
+ return outcomes.map((outcome) => ({
48
+ status: outcome.error ? 'failure' : 'success',
49
+ gasUsed: outcome.gasUsed ? BigInt(outcome.gasUsed).toString() : undefined,
50
+ error: outcome.error?.message,
51
+ assetChanges: outcome.changes.map((change) => ({
52
+ assetType: change.assetType,
53
+ token: change.contractAddress,
54
+ symbol: change.symbol,
55
+ tokenId: change.tokenId,
56
+ from: change.from,
57
+ to: change.to,
58
+ amount: change.amount,
59
+ rawAmount: change.rawAmount
60
+ }))
61
+ }));
62
+ }
63
+ function decodeResult(abi, data) {
64
+ if (!abi?.outputs.length)
65
+ return data;
66
+ try {
67
+ return decodeFunctionResult({ abi: [abi], functionName: abi.name, data });
68
+ }
69
+ catch {
70
+ return data;
71
+ }
72
+ }
73
+ /**
74
+ * Any RPC with eth_simulateV1: decoded return values, and native, ERC20 and ERC721 transfers.
75
+ *
76
+ * ponytail: ERC1155 moves tokens with TransferSingle / TransferBatch, which are not read
77
+ * here, so those changes are missing on this path. Parse them if 1155 bundles matter.
78
+ */
79
+ async function viaSimulateV1(chain, calls, blockNumber) {
80
+ const client = getClientManager().getClient(chain);
81
+ const [block] = await simulateBlocks(client, {
82
+ blocks: [{ calls: calls.map((call) => ({ account: call.from, to: call.to, data: call.data, value: call.value })) }],
83
+ traceTransfers: true,
84
+ validation: false,
85
+ ...(blockNumber !== undefined && { blockNumber })
86
+ });
87
+ if (!block)
88
+ throw new Error('The RPC returned no simulated block');
89
+ const nativeSymbol = client.chain?.nativeCurrency.symbol;
90
+ return Promise.all(block.calls.map(async (call, index) => {
91
+ const error = call.error;
92
+ const transfers = await enrichTransfers(chain, (call.logs ?? []));
93
+ return {
94
+ status: call.status,
95
+ gasUsed: call.gasUsed.toString(),
96
+ error: call.status === 'success' ? undefined : (error?.shortMessage ?? error?.message ?? 'execution reverted'),
97
+ result: call.status === 'success' ? decodeResult(calls[index]?.abi, call.data) : undefined,
98
+ assetChanges: transfers.map((transfer) => {
99
+ if (transfer.tokenId !== undefined) {
100
+ return {
101
+ assetType: 'ERC721',
102
+ token: transfer.token,
103
+ symbol: transfer.symbol,
104
+ tokenId: transfer.tokenId,
105
+ from: transfer.from,
106
+ to: transfer.to,
107
+ amount: '1',
108
+ rawAmount: '1'
109
+ };
110
+ }
111
+ const native = transfer.token.toLowerCase() === NATIVE_TOKEN;
112
+ return {
113
+ assetType: native ? 'NATIVE' : 'ERC20',
114
+ token: native ? undefined : transfer.token,
115
+ symbol: native ? nativeSymbol : transfer.symbol,
116
+ from: transfer.from,
117
+ to: transfer.to,
118
+ amount: native ? formatEther(BigInt(transfer.amount)) : transfer.humanAmount,
119
+ rawAmount: transfer.amount
120
+ };
121
+ })
122
+ };
123
+ }));
124
+ }
125
+ export default {
126
+ simulate_contract: createTool('Simulate Contract Call', 'Simulate a contract call (including state-changing functions) without broadcasting. Returns simulation result and estimated gas.', z.object({
127
+ chain: z.enum(SUPPORTED_CHAINS).describe('Blockchain network to simulate on'),
128
+ contractAddress: z.string().describe('Contract address to call'),
129
+ functionAbi: z
130
+ .string()
131
+ .describe('Function ABI signature (e.g., "function transfer(address to, uint256 amount)"). Can be any function type.'),
132
+ args: z
133
+ .array(z.union([z.string(), z.number(), z.boolean(), z.null()]))
134
+ .optional()
135
+ .describe('Function arguments in order matching the ABI signature'),
136
+ from: z.string().optional().describe('Sender address (defaults to zero address)'),
137
+ value: z.string().optional().describe('ETH value to send with the transaction (in wei as string)'),
138
+ blockNumber: z.string().optional().describe('Block number for simulation (defaults to latest)')
139
+ }), async (args) => {
140
+ if (!isAddress(args.contractAddress)) {
141
+ throw new Error(`Invalid contract address: ${args.contractAddress}`);
142
+ }
143
+ if (args.from && !isAddress(args.from)) {
144
+ throw new Error(`Invalid from address: ${args.from}`);
145
+ }
146
+ const clientManager = getClientManager();
147
+ const client = clientManager.getClient(args.chain);
148
+ try {
149
+ const abiItem = parseAbiItem(args.functionAbi);
150
+ const convertedArgs = convertArgumentsToTypes(args.args || [], abiItem.inputs);
151
+ const blockTag = args.blockNumber ? BigInt(args.blockNumber) : undefined;
152
+ // Simulate the call
153
+ const result = await client.call({
154
+ to: args.contractAddress,
155
+ data: encodeFunctionData({
156
+ abi: [abiItem],
157
+ functionName: abiItem.name,
158
+ args: convertedArgs
159
+ }),
160
+ account: args.from ? args.from : undefined,
161
+ value: args.value ? BigInt(args.value) : undefined,
162
+ blockNumber: blockTag
163
+ });
164
+ // Also estimate gas
165
+ const gasEstimate = await client.estimateGas({
166
+ to: args.contractAddress,
167
+ data: encodeFunctionData({
168
+ abi: [abiItem],
169
+ functionName: abiItem.name,
170
+ args: convertedArgs
171
+ }),
172
+ account: args.from ? args.from : undefined,
173
+ value: args.value ? BigInt(args.value) : undefined,
174
+ blockNumber: blockTag
175
+ });
176
+ // Decode the result if the function has outputs
177
+ let decodedResult = result.data;
178
+ if (abiItem.outputs && abiItem.outputs.length > 0 && result.data) {
179
+ decodedResult = decodeFunctionResult({
180
+ abi: [abiItem],
181
+ functionName: abiItem.name,
182
+ data: result.data
183
+ });
184
+ }
185
+ return formatResponse({
186
+ success: true,
187
+ chain: args.chain,
188
+ contractAddress: args.contractAddress,
189
+ functionName: abiItem.name,
190
+ result: decodedResult,
191
+ rawData: result.data,
192
+ gasEstimate: gasEstimate.toString(),
193
+ blockNumber: args.blockNumber || 'latest'
194
+ });
195
+ }
196
+ catch (error) {
197
+ // Check if it's a revert error
198
+ const errorMessage = error instanceof Error ? error.message : String(error);
199
+ return formatResponse({
200
+ success: false,
201
+ chain: args.chain,
202
+ contractAddress: args.contractAddress,
203
+ error: errorMessage,
204
+ reverted: errorMessage.includes('revert') || errorMessage.includes('execution reverted')
205
+ });
206
+ }
207
+ }),
208
+ simulate_bundle: createTool('Simulate Transaction Bundle', 'Simulate several transactions in order, in one block, each seeing the state the previous ones left — e.g. ' +
209
+ 'approve then swap, or deposit then borrow. Nothing is broadcast. Returns per transaction whether it ' +
210
+ 'succeeded, gas used, the revert reason, and the assets that moved. Up to 3 transactions go through ' +
211
+ "Alchemy's asset-change simulation (native, ERC20, ERC721, ERC1155, with symbols) where the plan allows it; " +
212
+ 'otherwise eth_simulateV1, which adds decoded return values but reports only native and ERC20 transfers.', z.object({
213
+ chain: z.enum(SUPPORTED_CHAINS).describe('Blockchain network to simulate on'),
214
+ from: z.string().optional().describe('Sender for every transaction that does not name its own'),
215
+ calls: z
216
+ .array(z.object({
217
+ to: z.string().describe('Contract or recipient address'),
218
+ functionAbi: z
219
+ .string()
220
+ .optional()
221
+ .describe('Function signature to encode the call, e.g. "function approve(address spender, uint256 amount)"'),
222
+ args: argsSchema.optional().describe('Arguments for functionAbi, in order'),
223
+ data: z.string().optional().describe('Raw calldata, instead of functionAbi and args'),
224
+ value: z.string().optional().describe('Native value to send, in wei'),
225
+ from: z.string().optional().describe('Sender of this transaction, if not the bundle-wide from')
226
+ }))
227
+ .min(1)
228
+ .max(MAX_BUNDLE)
229
+ .describe('Transactions to run, in order'),
230
+ blockNumber: z.string().optional().describe('Block to simulate on top of (defaults to latest)')
231
+ }), async (args) => {
232
+ const chain = args.chain;
233
+ const calls = args.calls.map((call, index) => bundleCall(call, args.from, index));
234
+ const blockNumber = args.blockNumber ? BigInt(args.blockNumber) : undefined;
235
+ let outcomes;
236
+ let via = 'alchemy_simulateAssetChangesBundle';
237
+ let fallbackReason;
238
+ if (calls.length <= ALCHEMY_BUNDLE_LIMIT) {
239
+ try {
240
+ outcomes = await viaAlchemy(chain, calls, blockNumber);
241
+ }
242
+ catch (error) {
243
+ // A free plan, a chain Alchemy does not simulate on, or a custom RPC that is not Alchemy.
244
+ fallbackReason = rpcReason(error);
245
+ }
246
+ }
247
+ else {
248
+ fallbackReason = `Alchemy simulates at most ${ALCHEMY_BUNDLE_LIMIT} transactions per bundle`;
249
+ }
250
+ if (!outcomes) {
251
+ via = 'eth_simulateV1';
252
+ try {
253
+ outcomes = await viaSimulateV1(chain, calls, blockNumber);
254
+ }
255
+ catch (error) {
256
+ return formatResponse({ success: false, chain, error: rpcReason(error), alchemyBundleError: fallbackReason });
257
+ }
258
+ }
259
+ return formatResponse({
260
+ success: outcomes.every((outcome) => outcome.status === 'success'),
261
+ chain,
262
+ via,
263
+ ...(fallbackReason && { fallbackReason }),
264
+ totalGasUsed: outcomes.reduce((sum, outcome) => sum + BigInt(outcome.gasUsed ?? 0), 0n),
265
+ calls: outcomes.map((outcome, index) => ({
266
+ index,
267
+ to: calls[index]?.to,
268
+ ...(calls[index]?.abi && { functionName: calls[index].abi.name }),
269
+ ...outcome
270
+ }))
271
+ });
272
+ },
273
+ // Offered only where a provider RPC backs it: public endpoints rarely serve eth_simulateV1.
274
+ () => Boolean(getClientManager().getConfig().alchemyApiKey)),
275
+ estimate_gas: createTool('Estimate Gas', 'Estimate gas required for a transaction. Supports contract calls, transfers, and deployments.', z.object({
276
+ chain: z.enum(SUPPORTED_CHAINS).describe('Blockchain network'),
277
+ to: z.string().optional().describe('Recipient address (omit for contract deployment)'),
278
+ from: z.string().optional().describe('Sender address (optional)'),
279
+ value: z.string().optional().describe('ETH value to send (in wei as string)'),
280
+ data: z.string().optional().describe('Transaction data (hex string for contract calls or deployment bytecode)'),
281
+ functionAbi: z.string().optional().describe('Optional: Function ABI signature to encode call data automatically'),
282
+ args: z
283
+ .array(z.union([z.string(), z.number(), z.boolean(), z.null()]))
284
+ .optional()
285
+ .describe('Optional: Function arguments (only used with functionAbi)')
286
+ }), async (args) => {
287
+ if (args.to && !isAddress(args.to)) {
288
+ throw new Error(`Invalid to address: ${args.to}`);
289
+ }
290
+ if (args.from && !isAddress(args.from)) {
291
+ throw new Error(`Invalid from address: ${args.from}`);
292
+ }
293
+ const clientManager = getClientManager();
294
+ const client = clientManager.getClient(args.chain);
295
+ let callData = args.data;
296
+ // If functionAbi is provided, encode the call data
297
+ if (args.functionAbi) {
298
+ const abiItem = parseAbiItem(args.functionAbi);
299
+ const convertedArgs = convertArgumentsToTypes(args.args || [], abiItem.inputs);
300
+ callData = encodeFunctionData({
301
+ abi: [abiItem],
302
+ functionName: abiItem.name,
303
+ args: convertedArgs
304
+ });
305
+ }
306
+ const gasEstimate = await client.estimateGas({
307
+ to: args.to ? args.to : undefined,
308
+ account: args.from ? args.from : undefined,
309
+ value: args.value ? BigInt(args.value) : undefined,
310
+ data: callData
311
+ });
312
+ return formatResponse({
313
+ success: true,
314
+ chain: args.chain,
315
+ gasEstimate: gasEstimate.toString(),
316
+ to: args.to,
317
+ from: args.from,
318
+ value: args.value
319
+ });
320
+ }),
321
+ get_gas_price: createTool('Get Gas Price', 'Get current gas prices for a chain. Returns both legacy gasPrice and EIP-1559 fees (maxFeePerGas, maxPriorityFeePerGas).', z.object({
322
+ chain: z.enum(SUPPORTED_CHAINS).describe('Blockchain network'),
323
+ formatted: z.boolean().optional().default(true).describe('Return prices in Gwei (default: true). If false, returns wei.')
324
+ }), async (args) => {
325
+ const clientManager = getClientManager();
326
+ const client = clientManager.getClient(args.chain);
327
+ // Get both legacy and EIP-1559 gas prices
328
+ const [gasPrice, feeData] = await Promise.all([
329
+ client.getGasPrice(),
330
+ client.estimateFeesPerGas().catch(() => null) // Some chains don't support EIP-1559
331
+ ]);
332
+ const formatPrice = (wei) => {
333
+ if (args.formatted) {
334
+ // Convert to Gwei (1 Gwei = 1e9 wei)
335
+ const gwei = Number(wei) / 1e9;
336
+ return `${gwei.toFixed(2)} Gwei`;
337
+ }
338
+ return wei.toString();
339
+ };
340
+ const response = {
341
+ chain: args.chain,
342
+ timestamp: new Date().toISOString(),
343
+ legacy: {
344
+ gasPrice: args.formatted ? formatPrice(gasPrice) : gasPrice.toString(),
345
+ gasPriceWei: gasPrice.toString()
346
+ }
347
+ };
348
+ // Add EIP-1559 data if available
349
+ if (feeData) {
350
+ response.eip1559 = {
351
+ maxFeePerGas: args.formatted ? formatPrice(feeData.maxFeePerGas) : feeData.maxFeePerGas.toString(),
352
+ maxPriorityFeePerGas: args.formatted
353
+ ? formatPrice(feeData.maxPriorityFeePerGas)
354
+ : feeData.maxPriorityFeePerGas.toString(),
355
+ maxFeePerGasWei: feeData.maxFeePerGas.toString(),
356
+ maxPriorityFeePerGasWei: feeData.maxPriorityFeePerGas.toString()
357
+ };
358
+ // Calculate estimated total cost for a standard 21000 gas transaction
359
+ const standardGasLimit = 21000n;
360
+ const estimatedCost = feeData.maxFeePerGas * standardGasLimit;
361
+ response.eip1559.estimatedCostFor21kGas = args.formatted
362
+ ? `${(Number(estimatedCost) / 1e18).toFixed(6)} ETH`
363
+ : estimatedCost.toString();
364
+ }
365
+ return formatResponse(response);
366
+ })
367
+ };
368
+ //# sourceMappingURL=gas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../../src/tools/read/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EAEX,SAAS,EACT,YAAY,EACZ,KAAK,EACN,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpF,oEAAoE;AACpE,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAC9B,+FAA+F;AAC/F,MAAM,UAAU,GAAG,EAAE,CAAA;AACrB,yEAAyE;AACzE,MAAM,YAAY,GAAG,4CAA4C,CAAA;AAEjE,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AA4CpF;;;GAGG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAoD,CAAA;IACtF,OAAO,OAAO,IAAI,YAAY,IAAI,wBAAwB,CAAA;AAC5D,CAAC;AAED,SAAS,UAAU,CACjB,IAA2H,EAC3H,IAAwB,EACxB,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,wBAAwB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACxF,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,0BAA0B,MAAM,EAAE,CAAC,CAAA;IAClG,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,iDAAiD,CAAC,CAAA;IAElH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,MAAM,IAAI,GAAG,GAAG;QACd,CAAC,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACxH,CAAC,CAAE,IAAI,CAAC,IAAwB,CAAA;IAElC,OAAO,EAAE,IAAI,EAAE,MAA6B,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAA;AAC5H,CAAC;AAED,oGAAoG;AACpG,KAAK,UAAU,UAAU,CAAC,KAAgB,EAAE,KAAmB,EAAE,WAAoB;IACnF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAChE,CAAC,CAAC,CAAA;IACH,MAAM,MAAM,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9F,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,oCAAoC,EAAE,MAAM,EAAW,CAAC,CAAqB,CAAA;IAC9H,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACzE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO;QAC7B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;AACL,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B,EAAE,IAAS;IAC3D,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACrC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,KAAgB,EAAE,KAAmB,EAAE,WAAoB;IACtF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;QAC3C,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACnH,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,KAAK;QACjB,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;KAClD,CAAC,CAAA;IACF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAElE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAA;IACxD,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAwB,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgE,CAAA;QACnF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAU,CAAC,CAAA;QAE1E,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,KAAK,EAAE,OAAO,IAAI,oBAAoB,CAAC;YAC9G,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACvC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO;wBACL,SAAS,EAAE,QAAQ;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,MAAM,EAAE,GAAG;wBACX,SAAS,EAAE,GAAG;qBACf,CAAA;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAAA;gBAC5D,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;oBACtC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;oBAC1C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;oBAC/C,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;oBAC5E,SAAS,EAAE,QAAQ,CAAC,MAAM;iBAC3B,CAAA;YACH,CAAC,CAAC;SACH,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,eAAe;IACb,iBAAiB,EAAE,UAAU,CAC3B,wBAAwB,EACxB,kIAAkI,EAClI,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAChE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CAAC,2GAA2G,CAAC;QACxH,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,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,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,2DAA2D,CAAC;QAClG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAChG,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAgB,CAAA;YAC7D,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAE9E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAExE,oBAAoB;YACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,eAA0B;gBACnC,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,aAAa;iBACpB,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClD,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAA;YAEF,oBAAoB;YACpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;gBAC3C,EAAE,EAAE,IAAI,CAAC,eAA0B;gBACnC,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,aAAa;iBACpB,CAAC;gBACF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClD,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAA;YAEF,gDAAgD;YAChD,IAAI,aAAa,GAAY,MAAM,CAAC,IAAI,CAAA;YACxC,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjE,aAAa,GAAG,oBAAoB,CAAC;oBACnC,GAAG,EAAE,CAAC,OAAO,CAAC;oBACd,YAAY,EAAE,OAAO,CAAC,IAAI;oBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,cAAc,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ;aAC1C,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+BAA+B;YAC/B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAE3E,OAAO,cAAc,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;aACzF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF;IAED,eAAe,EAAE,UAAU,CACzB,6BAA6B,EAC7B,4GAA4G;QAC1G,sGAAsG;QACtG,qGAAqG;QACrG,6GAA6G;QAC7G,yGAAyG,EAC3G,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QAC/F,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACxD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iGAAiG,CAAC;YAC9G,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;SAChG,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,UAAU,CAAC;aACf,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAChG,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAkB,CAAA;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAE3E,IAAI,QAAmC,CAAA;QACvC,IAAI,GAAG,GAAG,oCAAoC,CAAA;QAC9C,IAAI,cAAkC,CAAA;QAEtC,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0FAA0F;gBAC1F,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,6BAA6B,oBAAoB,0BAA0B,CAAA;QAC9F,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,GAAG,gBAAgB,CAAA;YACtB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAAA;YAC/G,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;YAClE,KAAK;YACL,GAAG;YACH,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;YACzC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACvF,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACvC,KAAK;gBACL,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;gBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjE,GAAG,OAAO;aACX,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;IACD,4FAA4F;IAC5F,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAC5D;IAED,YAAY,EAAE,UAAU,CACtB,cAAc,EACd,+FAA+F,EAC/F,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QACtF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QACjH,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,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;aACV,QAAQ,CAAC,2DAA2D,CAAC;KACzE,CAAC,EACF,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,KAAkB,CAAC,CAAA;QAE/D,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAExB,mDAAmD;QACnD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAgB,CAAA;YAC7D,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9E,QAAQ,GAAG,kBAAkB,CAAC;gBAC5B,GAAG,EAAE,CAAC,OAAO,CAAC;gBACd,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,IAAI,EAAE,aAAa;aACpB,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YAC3C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,EAAc,CAAC,CAAC,CAAC,SAAS;YAC9C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAgB,CAAC,CAAC,CAAC,SAAS;YACvD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAClD,IAAI,EAAE,QAAqC;SAC5C,CAAC,CAAA;QAEF,OAAO,cAAc,CAAC;YACpB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;YACnC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC,CACF;IAED,aAAa,EAAE,UAAU,CACvB,eAAe,EACf,0HAA0H,EAC1H,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;KAC1H,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,0CAA0C;QAC1C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,MAAM,CAAC,WAAW,EAAE;YACpB,MAAM,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,qCAAqC;SACpF,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;YAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,qCAAqC;gBACrC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;gBAC9B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;YAClC,CAAC;YACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC,CAAA;QAED,MAAM,QAAQ,GAAQ;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACtE,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACjC;SACF,CAAA;QAED,iCAAiC;QACjC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,OAAO,GAAG;gBACjB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAClG,oBAAoB,EAAE,IAAI,CAAC,SAAS;oBAClC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC;oBAC3C,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;gBAC3C,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAChD,uBAAuB,EAAE,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;aACjE,CAAA;YAED,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,MAAM,CAAA;YAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAA;YAC7D,QAAQ,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS;gBACtD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACpD,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;QAC9B,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,CACF;CACF,CAAA"}
@@ -4,21 +4,21 @@ declare const _default: {
4
4
  title: string;
5
5
  description: string;
6
6
  schema: z.ZodObject<{
7
- 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")[]]>;
7
+ chain: z.ZodEnum<["mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>;
8
8
  eventAbi: z.ZodString;
9
9
  address: z.ZodOptional<z.ZodString>;
10
10
  fromBlock: z.ZodOptional<z.ZodString>;
11
11
  toBlock: z.ZodOptional<z.ZodString>;
12
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
13
  }, "strip", z.ZodTypeAny, {
14
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
14
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
15
15
  eventAbi: string;
16
16
  address?: string | undefined;
17
17
  fromBlock?: string | undefined;
18
18
  toBlock?: string | undefined;
19
19
  eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
20
20
  }, {
21
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
21
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
22
22
  eventAbi: string;
23
23
  address?: string | undefined;
24
24
  fromBlock?: string | undefined;
@@ -26,13 +26,14 @@ declare const _default: {
26
26
  eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
27
27
  }>;
28
28
  handler: (args: {
29
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
29
+ chain: "mainnet" | "arbitrum" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
30
30
  eventAbi: string;
31
31
  address?: string | undefined;
32
32
  fromBlock?: string | undefined;
33
33
  toBlock?: string | undefined;
34
34
  eventArgs?: Record<string, string | number | boolean | (string | number | boolean)[]> | undefined;
35
- }) => Promise<import("../types.js").ToolResult>;
35
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
36
+ available: (() => boolean) | undefined;
36
37
  };
37
38
  };
38
39
  export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/tools/read/logs.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHvB,wBA8JC"}
@@ -1,8 +1,8 @@
1
1
  import { HypersyncClient, LogField } from '@envio-dev/hypersync-client';
2
2
  import { decodeEventLog, isAddress, keccak256, numberToHex, padHex, parseAbiItem, toBytes, toEventSignature } from 'viem';
3
3
  import { z } from 'zod';
4
- import { getClientManager, SUPPORTED_CHAINS } from '../client.js';
5
- import { convertEventArgsToTypes, createTool, formatResponse } from '../utils.js';
4
+ import { getClientManager, SUPPORTED_CHAINS } from '../../client.js';
5
+ import { convertEventArgsToTypes, createTool, formatResponse } from '../../utils.js';
6
6
  /**
7
7
  * A topic is always 32 bytes, so an address, a number or a short hex value has to be
8
8
  * left-padded to fit. Passing one through unpadded is rejected outright by Hypersync.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/tools/read/logs.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ declare const _default: {
24
24
  items: {
25
25
  functionAbi: string;
26
26
  }[];
27
- }) => Promise<import("../types.js").ToolResult>;
27
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
28
+ available: (() => boolean) | undefined;
28
29
  };
29
30
  get_event_signature: {
30
31
  title: string;
@@ -50,7 +51,8 @@ declare const _default: {
50
51
  items: {
51
52
  eventAbi: string;
52
53
  }[];
53
- }) => Promise<import("../types.js").ToolResult>;
54
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
55
+ available: (() => boolean) | undefined;
54
56
  };
55
57
  get_error_signature: {
56
58
  title: string;
@@ -76,7 +78,8 @@ declare const _default: {
76
78
  items: {
77
79
  errorAbi: string;
78
80
  }[];
79
- }) => Promise<import("../types.js").ToolResult>;
81
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
82
+ available: (() => boolean) | undefined;
80
83
  };
81
84
  encode_function_data: {
82
85
  title: string;
@@ -94,7 +97,8 @@ declare const _default: {
94
97
  handler: (args: {
95
98
  args: (string | number | boolean)[];
96
99
  functionAbi: string;
97
- }) => Promise<import("../types.js").ToolResult>;
100
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
101
+ available: (() => boolean) | undefined;
98
102
  };
99
103
  };
100
104
  export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/tools/read/signatures.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBvB,wBA+GC"}
@@ -1,6 +1,6 @@
1
1
  import { encodeFunctionData, keccak256, parseAbiItem, toBytes, toEventSignature, toFunctionSignature } from 'viem';
2
2
  import { z } from 'zod';
3
- import { createTool, formatResponse } from '../utils.js';
3
+ import { createTool, formatResponse } from '../../utils.js';
4
4
  const FunctionAbiSchema = z.object({
5
5
  functionAbi: z.string().describe('Function ABI definition (e.g., "function transfer(address to, uint256 amount)")')
6
6
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../src/tools/read/signatures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Collecting a signature that was not given within the tool call that asked for it.
4
+ *
5
+ * A read rather than a signing tool on purpose: the signature was requested — and charged
6
+ * for — once already, and a host metering signing should not bill an agent again for asking
7
+ * whether the human has got round to it yet.
8
+ */
9
+ declare const _default: {
10
+ check_signing_request: {
11
+ title: string;
12
+ description: string;
13
+ schema: z.ZodObject<{
14
+ requestId: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ requestId: string;
17
+ }, {
18
+ requestId: string;
19
+ }>;
20
+ handler: (args: {
21
+ requestId: string;
22
+ }, identity: string) => Promise<import("../../types.js").ToolResult>;
23
+ available: (() => boolean) | undefined;
24
+ };
25
+ };
26
+ export default _default;
27
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../src/tools/read/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB;;;;;;GAMG;;;;;;;;;;;;;;;;;;AACH,wBAyEC"}