web3-tools-mcp 2.0.2 → 3.1.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 (180) hide show
  1. package/CHANGELOG.md +182 -1
  2. package/README.md +76 -47
  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/chain-meta.d.ts.map +1 -1
  8. package/dist/chain-meta.js +19 -8
  9. package/dist/chain-meta.js.map +1 -1
  10. package/dist/chains.d.ts +9 -1
  11. package/dist/chains.d.ts.map +1 -1
  12. package/dist/chains.js +11 -2
  13. package/dist/chains.js.map +1 -1
  14. package/dist/clear-signing.d.ts.map +1 -1
  15. package/dist/clear-signing.js +17 -6
  16. package/dist/clear-signing.js.map +1 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js.map +1 -1
  19. package/dist/context.d.ts +22 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +24 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/hosted.d.ts +12 -0
  24. package/dist/hosted.d.ts.map +1 -0
  25. package/dist/hosted.js +12 -0
  26. package/dist/hosted.js.map +1 -0
  27. package/dist/http-server.d.ts +13 -0
  28. package/dist/http-server.d.ts.map +1 -1
  29. package/dist/http-server.js +22 -7
  30. package/dist/http-server.js.map +1 -1
  31. package/dist/index.js +20 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/kv-storage.d.ts +2 -1
  34. package/dist/kv-storage.d.ts.map +1 -1
  35. package/dist/kv-storage.js +5 -2
  36. package/dist/kv-storage.js.map +1 -1
  37. package/dist/lib.d.ts +24 -0
  38. package/dist/lib.d.ts.map +1 -0
  39. package/dist/lib.js +23 -0
  40. package/dist/lib.js.map +1 -0
  41. package/dist/mcp-server.d.ts +4 -0
  42. package/dist/mcp-server.d.ts.map +1 -0
  43. package/dist/mcp-server.js +43 -0
  44. package/dist/mcp-server.js.map +1 -0
  45. package/dist/oauth.d.ts +57 -8
  46. package/dist/oauth.d.ts.map +1 -1
  47. package/dist/oauth.js +133 -63
  48. package/dist/oauth.js.map +1 -1
  49. package/dist/preview.d.ts +7 -0
  50. package/dist/preview.d.ts.map +1 -1
  51. package/dist/preview.js +21 -7
  52. package/dist/preview.js.map +1 -1
  53. package/dist/signing-requests.d.ts +81 -0
  54. package/dist/signing-requests.d.ts.map +1 -0
  55. package/dist/signing-requests.js +138 -0
  56. package/dist/signing-requests.js.map +1 -0
  57. package/dist/tools/index.d.ts +27 -1
  58. package/dist/tools/index.d.ts.map +1 -1
  59. package/dist/tools/index.js +50 -15
  60. package/dist/tools/index.js.map +1 -1
  61. package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +39 -30
  62. package/dist/tools/read/advanced.d.ts.map +1 -0
  63. package/dist/tools/{advanced.js → read/advanced.js} +53 -41
  64. package/dist/tools/read/advanced.js.map +1 -0
  65. package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
  66. package/dist/tools/read/balance.d.ts.map +1 -0
  67. package/dist/tools/{balance.js → read/balance.js} +18 -33
  68. package/dist/tools/read/balance.js.map +1 -0
  69. package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +20 -15
  70. package/dist/tools/read/contract-info.d.ts.map +1 -0
  71. package/dist/tools/{contract-info.js → read/contract-info.js} +54 -123
  72. package/dist/tools/read/contract-info.js.map +1 -0
  73. package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
  74. package/dist/tools/read/contract.d.ts.map +1 -0
  75. package/dist/tools/{contract.js → read/contract.js} +3 -2
  76. package/dist/tools/read/contract.js.map +1 -0
  77. package/dist/tools/read/ens.d.ts +104 -0
  78. package/dist/tools/read/ens.d.ts.map +1 -0
  79. package/dist/tools/{ens.js → read/ens.js} +25 -33
  80. package/dist/tools/read/ens.js.map +1 -0
  81. package/dist/tools/read/gas.d.ts +171 -0
  82. package/dist/tools/read/gas.d.ts.map +1 -0
  83. package/dist/tools/read/gas.js +333 -0
  84. package/dist/tools/read/gas.js.map +1 -0
  85. package/dist/tools/read/logs.d.ts +101 -0
  86. package/dist/tools/read/logs.d.ts.map +1 -0
  87. package/dist/tools/read/logs.js +211 -0
  88. package/dist/tools/read/logs.js.map +1 -0
  89. package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
  90. package/dist/tools/read/signatures.d.ts.map +1 -0
  91. package/dist/tools/{signatures.js → read/signatures.js} +4 -3
  92. package/dist/tools/read/signatures.js.map +1 -0
  93. package/dist/tools/read/signing.d.ts +27 -0
  94. package/dist/tools/read/signing.d.ts.map +1 -0
  95. package/dist/tools/read/signing.js +81 -0
  96. package/dist/tools/read/signing.js.map +1 -0
  97. package/dist/tools/sign/errors.d.ts +9 -0
  98. package/dist/tools/sign/errors.d.ts.map +1 -0
  99. package/dist/tools/sign/errors.js +29 -0
  100. package/dist/tools/sign/errors.js.map +1 -0
  101. package/dist/tools/sign/transactions.d.ts +141 -0
  102. package/dist/tools/sign/transactions.d.ts.map +1 -0
  103. package/dist/tools/sign/transactions.js +361 -0
  104. package/dist/tools/sign/transactions.js.map +1 -0
  105. package/dist/tools/sign/wallet.d.ts +50 -0
  106. package/dist/tools/sign/wallet.d.ts.map +1 -0
  107. package/dist/tools/sign/wallet.js +180 -0
  108. package/dist/tools/sign/wallet.js.map +1 -0
  109. package/dist/utils.d.ts +23 -2
  110. package/dist/utils.d.ts.map +1 -1
  111. package/dist/utils.js +48 -3
  112. package/dist/utils.js.map +1 -1
  113. package/dist/wallet-client.d.ts +34 -4
  114. package/dist/wallet-client.d.ts.map +1 -1
  115. package/dist/wallet-client.js +106 -27
  116. package/dist/wallet-client.js.map +1 -1
  117. package/dist/walletconnect.d.ts +100 -13
  118. package/dist/walletconnect.d.ts.map +1 -1
  119. package/dist/walletconnect.js +215 -50
  120. package/dist/walletconnect.js.map +1 -1
  121. package/package.json +12 -9
  122. package/src/anvil.ts +150 -271
  123. package/src/chain-meta.ts +16 -7
  124. package/src/chains.ts +14 -2
  125. package/src/clear-signing.ts +15 -9
  126. package/src/client.ts +0 -1
  127. package/src/context.ts +27 -0
  128. package/src/hosted.ts +11 -0
  129. package/src/http-server.ts +38 -8
  130. package/src/index.ts +20 -13
  131. package/src/kv-storage.ts +6 -3
  132. package/src/lib.ts +24 -0
  133. package/src/mcp-server.ts +47 -0
  134. package/src/oauth.ts +181 -69
  135. package/src/preview.ts +28 -7
  136. package/src/signing-requests.ts +198 -0
  137. package/src/tools/index.ts +78 -16
  138. package/src/tools/{advanced.ts → read/advanced.ts} +74 -43
  139. package/src/tools/{balance.ts → read/balance.ts} +20 -35
  140. package/src/tools/{contract-info.ts → read/contract-info.ts} +66 -146
  141. package/src/tools/{contract.ts → read/contract.ts} +4 -3
  142. package/src/tools/{ens.ts → read/ens.ts} +27 -34
  143. package/src/tools/read/gas.ts +443 -0
  144. package/src/tools/read/logs.ts +281 -0
  145. package/src/tools/{signatures.ts → read/signatures.ts} +5 -5
  146. package/src/tools/read/signing.ts +92 -0
  147. package/src/tools/sign/errors.ts +28 -0
  148. package/src/tools/sign/transactions.ts +479 -0
  149. package/src/tools/sign/wallet.ts +216 -0
  150. package/src/utils.ts +52 -3
  151. package/src/wallet-client.ts +107 -24
  152. package/src/walletconnect.ts +250 -48
  153. package/dist/tools/advanced.d.ts.map +0 -1
  154. package/dist/tools/advanced.js.map +0 -1
  155. package/dist/tools/balance.d.ts.map +0 -1
  156. package/dist/tools/balance.js.map +0 -1
  157. package/dist/tools/contract-info.d.ts.map +0 -1
  158. package/dist/tools/contract-info.js.map +0 -1
  159. package/dist/tools/contract.d.ts.map +0 -1
  160. package/dist/tools/contract.js.map +0 -1
  161. package/dist/tools/ens.d.ts +0 -119
  162. package/dist/tools/ens.d.ts.map +0 -1
  163. package/dist/tools/ens.js.map +0 -1
  164. package/dist/tools/gas.d.ts +0 -99
  165. package/dist/tools/gas.d.ts.map +0 -1
  166. package/dist/tools/gas.js +0 -181
  167. package/dist/tools/gas.js.map +0 -1
  168. package/dist/tools/logs.d.ts +0 -39
  169. package/dist/tools/logs.d.ts.map +0 -1
  170. package/dist/tools/logs.js +0 -230
  171. package/dist/tools/logs.js.map +0 -1
  172. package/dist/tools/signatures.d.ts.map +0 -1
  173. package/dist/tools/signatures.js.map +0 -1
  174. package/dist/tools/transactions.d.ts +0 -155
  175. package/dist/tools/transactions.d.ts.map +0 -1
  176. package/dist/tools/transactions.js +0 -365
  177. package/dist/tools/transactions.js.map +0 -1
  178. package/src/tools/gas.ts +0 -219
  179. package/src/tools/logs.ts +0 -293
  180. package/src/tools/transactions.ts +0 -456
package/dist/anvil.js CHANGED
@@ -1,256 +1,152 @@
1
- import { spawn } from 'node:child_process';
2
1
  import { createPublicClient, http } from 'viem';
3
2
  import { mainnet } from 'viem/chains';
4
- // Check if anvil is installed
5
- export async function isAnvilInstalled() {
6
- return new Promise((resolve) => {
7
- const proc = spawn('anvil', ['--version'], { shell: true });
8
- proc.on('close', (code) => resolve(code === 0));
9
- proc.on('error', () => resolve(false));
10
- });
3
+ import { HOSTED } from './hosted.js';
4
+ /**
5
+ * Tracing through a node that already supports `debug_*`, usually a local Anvil. Nothing
6
+ * is started here.
7
+ *
8
+ * Anvil serves no block below its own fork height — `debug_traceCall` at an earlier one
9
+ * fails with BlockOutOfRangeError — so replaying an old transaction means re-forking the
10
+ * node there with `anvil_reset`. That discards whatever state it held, which is why it
11
+ * happens only when ANVIL_ALLOW_RESET says so. A provider whose endpoint exposes
12
+ * `debug_traceTransaction` needs none of this and is tried first.
13
+ */
14
+ const DEFAULT_DEBUG_RPC = 'http://127.0.0.1:8545';
15
+ /** Re-forking clears the node, so it is never done to someone's dev chain uninvited. */
16
+ const ALLOW_RESET = ['1', 'true', 'yes'].includes((process.env.ANVIL_ALLOW_RESET ?? '').toLowerCase());
17
+ /**
18
+ * The node to ask for traces, or undefined when there is none.
19
+ *
20
+ * Hosted, only an explicit setting counts: defaulting to loopback would turn every trace
21
+ * into a request against the server's own private network.
22
+ */
23
+ export function debugRpcUrl() {
24
+ if (process.env.ANVIL_RPC_URL)
25
+ return process.env.ANVIL_RPC_URL;
26
+ return HOSTED ? undefined : DEFAULT_DEBUG_RPC;
11
27
  }
12
- // Find an available port
13
- async function findAvailablePort(startPort = 8545) {
14
- const net = await import('node:net');
15
- return new Promise((resolve, reject) => {
16
- const server = net.createServer();
17
- server.listen(startPort, () => {
18
- const address = server.address();
19
- if (address && typeof address === 'object') {
20
- server.close(() => resolve(address.port));
21
- }
22
- else {
23
- server.close(() => reject(new Error('Could not get port')));
24
- }
25
- });
26
- server.on('error', () => {
27
- // Port in use, try next one
28
- findAvailablePort(startPort + 1)
29
- .then(resolve)
30
- .catch(reject);
31
- });
32
- });
28
+ function debugClient(url) {
29
+ return createPublicClient({ chain: mainnet, transport: http(url) });
33
30
  }
34
- // Start an Anvil instance
35
- export async function startAnvil(config) {
36
- const installed = await isAnvilInstalled();
37
- if (!installed) {
38
- throw new Error('Anvil is not installed. Please install Foundry: https://book.getfoundry.sh/getting-started/installation');
39
- }
40
- const port = config.port ?? (await findAvailablePort());
41
- const rpcUrl = `http://127.0.0.1:${port}`;
42
- const args = ['--fork-url', config.forkUrl, '--port', port.toString(), '--silent'];
43
- if (config.forkBlockNumber !== undefined) {
44
- args.push('--fork-block-number', config.forkBlockNumber.toString());
31
+ /** Whether a tracing node is reachable and actually offers the debug namespace. */
32
+ export async function isDebugNodeAvailable() {
33
+ const url = debugRpcUrl();
34
+ if (!url)
35
+ return false;
36
+ try {
37
+ const response = await fetch(url, {
38
+ method: 'POST',
39
+ headers: { 'Content-Type': 'application/json' },
40
+ body: JSON.stringify({ jsonrpc: '2.0', method: 'web3_clientVersion', params: [], id: 1 }),
41
+ signal: AbortSignal.timeout(2000)
42
+ });
43
+ return response.ok;
45
44
  }
46
- if (config.chainId !== undefined) {
47
- args.push('--chain-id', config.chainId.toString());
45
+ catch {
46
+ return false;
48
47
  }
49
- return new Promise((resolve, reject) => {
50
- const proc = spawn('anvil', args, {
51
- shell: true,
52
- stdio: ['ignore', 'pipe', 'pipe']
53
- });
54
- let stderr = '';
55
- proc.stderr?.on('data', (data) => {
56
- stderr += data.toString();
57
- });
58
- proc.on('error', (err) => {
59
- reject(new Error(`Failed to start Anvil: ${err.message}`));
60
- });
61
- proc.on('close', (code) => {
62
- if (code !== 0 && code !== null) {
63
- reject(new Error(`Anvil exited with code ${code}: ${stderr}`));
64
- }
65
- });
66
- // Wait for Anvil to be ready by polling the RPC
67
- const maxAttempts = 50; // 5 seconds
68
- let attempts = 0;
69
- const checkReady = async () => {
70
- attempts++;
71
- try {
72
- const response = await fetch(rpcUrl, {
73
- method: 'POST',
74
- headers: { 'Content-Type': 'application/json' },
75
- body: JSON.stringify({
76
- jsonrpc: '2.0',
77
- method: 'eth_blockNumber',
78
- params: [],
79
- id: 1
80
- })
81
- });
82
- if (response.ok) {
83
- // Add small delay to ensure all RPC methods are ready (including debug_*)
84
- await new Promise((r) => setTimeout(r, 100));
85
- const client = createPublicClient({
86
- chain: mainnet, // Chain is overridden by fork anyway
87
- transport: http(rpcUrl)
88
- });
89
- resolve({ process: proc, port, rpcUrl, client });
90
- }
91
- else if (attempts < maxAttempts) {
92
- setTimeout(checkReady, 100);
93
- }
94
- else {
95
- proc.kill();
96
- reject(new Error('Anvil failed to start within timeout'));
97
- }
98
- }
99
- catch {
100
- if (attempts < maxAttempts) {
101
- setTimeout(checkReady, 100);
102
- }
103
- else {
104
- proc.kill();
105
- reject(new Error('Anvil failed to start within timeout'));
106
- }
107
- }
108
- };
109
- // Start checking after a small delay
110
- setTimeout(checkReady, 200);
111
- });
112
48
  }
113
- // Stop an Anvil instance
114
- export function stopAnvil(instance) {
115
- if (instance.process && !instance.process.killed) {
116
- instance.process.kill('SIGTERM');
49
+ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
50
+ function callObject(params) {
51
+ return {
52
+ to: params.to,
53
+ data: params.data,
54
+ from: params.from ?? ZERO_ADDRESS,
55
+ value: params.value ? `0x${params.value.toString(16)}` : undefined,
56
+ gas: params.gas ? `0x${params.gas.toString(16)}` : undefined
57
+ };
58
+ }
59
+ function blockTag(blockNumber) {
60
+ return blockNumber === undefined ? 'latest' : `0x${blockNumber.toString(16)}`;
61
+ }
62
+ function requireDebugNode() {
63
+ const url = debugRpcUrl();
64
+ if (!url) {
65
+ throw new Error('No tracing node configured. Set ANVIL_RPC_URL to a node exposing debug_traceCall, such as a local Anvil.');
117
66
  }
67
+ return url;
68
+ }
69
+ function isBlockOutOfRange(error) {
70
+ return /BlockOutOfRangeError|block height is/i.test(error?.message ?? '');
118
71
  }
119
- // Helper to run a function with a temporary Anvil instance
120
- export async function withAnvil(config, fn) {
121
- const instance = await startAnvil(config);
72
+ /**
73
+ * Run something against a block, re-forking the node when it cannot reach that far back.
74
+ *
75
+ * Returns to head afterwards rather than leaving the node pinned to an old block, which
76
+ * would silently break whatever the owner does with it next. Its state is gone either way.
77
+ */
78
+ async function atBlock(client, forkUrl, blockNumber, run) {
122
79
  try {
123
- return await fn(instance);
80
+ return await run(blockTag(blockNumber));
124
81
  }
125
- finally {
126
- stopAnvil(instance);
82
+ catch (error) {
83
+ if (blockNumber === undefined || !isBlockOutOfRange(error))
84
+ throw error;
85
+ if (!ALLOW_RESET) {
86
+ throw new Error(`The tracing node is forked past block ${blockNumber}, and Anvil serves nothing earlier. Re-forking it there would clear its state, so set ANVIL_ALLOW_RESET=1 to allow that — or use an RPC whose endpoint supports debug_traceTransaction.`);
87
+ }
88
+ const refork = (block) => client.request({
89
+ method: 'anvil_reset',
90
+ params: [{ forking: { jsonRpcUrl: forkUrl, ...(block === undefined ? {} : { blockNumber: Number(block) }) } }]
91
+ });
92
+ await refork(blockNumber);
93
+ try {
94
+ return await run('latest');
95
+ }
96
+ finally {
97
+ await refork().catch(() => { });
98
+ }
127
99
  }
128
100
  }
129
- // Archive RPC URLs for chains that need historical state access
130
- const ARCHIVE_RPCS = {
131
- arbitrum: 'https://arbitrum-one.arpc.x.superfluid.dev'
132
- };
133
- // Trace a transaction using Anvil fork
134
- export async function traceTransactionWithAnvil(forkUrl, transactionHash, blockNumber, tracer = 'callTracer', chainName) {
135
- // Use archive RPC if available for better historical state access
136
- const archiveUrl = chainName && ARCHIVE_RPCS[chainName] ? ARCHIVE_RPCS[chainName] : forkUrl;
137
- // First, fetch the original transaction from the RPC
138
- const fetchClient = createPublicClient({
139
- chain: mainnet,
140
- transport: http(forkUrl)
141
- });
142
- const tx = await fetchClient.getTransaction({
143
- hash: transactionHash
144
- });
145
- if (!tx) {
101
+ function traceCall(client, call, block, tracer) {
102
+ return client.request({ method: 'debug_traceCall', params: [call, block, { tracer }] });
103
+ }
104
+ /**
105
+ * Replay a transaction through the tracing node.
106
+ *
107
+ * Run against the block before it, so the state is what the transaction actually saw. The
108
+ * node needs archive access to that block; without it this fails rather than quietly
109
+ * tracing against the wrong state.
110
+ */
111
+ export async function traceTransactionWithAnvil(forkUrl, transactionHash, blockNumber, tracer = 'callTracer') {
112
+ const tx = await debugClient(forkUrl).getTransaction({ hash: transactionHash });
113
+ if (!tx)
146
114
  throw new Error(`Transaction ${transactionHash} not found`);
147
- }
148
- // Fork at the block BEFORE the transaction to replay it accurately
149
- // Note: This requires an archival RPC that has historical state
150
- const forkBlock = blockNumber > 0n ? blockNumber - 1n : 0n;
151
- return withAnvil({
152
- forkUrl: archiveUrl,
153
- forkBlockNumber: forkBlock
154
- }, async (instance) => {
155
- // Use debug_traceCall to simulate and trace the transaction
156
- // Note: This replays the tx against the post-block state, which may differ slightly
157
- // from the original execution if state changed within the block
158
- const trace = await instance.client.request({
159
- method: 'debug_traceCall',
160
- params: [
161
- {
162
- from: tx.from,
163
- to: tx.to,
164
- data: tx.input,
165
- value: tx.value ? `0x${tx.value.toString(16)}` : '0x0',
166
- gas: tx.gas ? `0x${tx.gas.toString(16)}` : undefined
167
- },
168
- 'latest',
169
- { tracer }
170
- ]
171
- });
172
- return trace;
173
- });
115
+ const client = debugClient(requireDebugNode());
116
+ const call = callObject({ to: tx.to ?? ZERO_ADDRESS, data: tx.input, from: tx.from, value: tx.value, gas: tx.gas });
117
+ return atBlock(client, forkUrl, blockNumber > 0n ? blockNumber - 1n : 0n, (block) => traceCall(client, call, block, tracer));
174
118
  }
175
119
  export async function simulateCallWithTrace(forkUrl, params, blockNumber, tracer = 'callTracer') {
176
- return withAnvil({
177
- forkUrl,
178
- forkBlockNumber: blockNumber
179
- }, async (instance) => {
180
- // First, try a regular call to get the result
120
+ const client = debugClient(requireDebugNode());
121
+ const call = callObject(params);
122
+ // Call, gas and trace all inside one atBlock, so they describe the same state: a block
123
+ // the node cannot serve re-forks it once, instead of being reported as a revert.
124
+ return atBlock(client, forkUrl, blockNumber, async (block) => {
181
125
  let result = '0x';
182
126
  let success = true;
183
127
  let revertReason;
184
128
  let gasUsed = 0n;
185
129
  try {
186
- // Use eth_call to get the result
187
- result = (await instance.client.request({
188
- method: 'eth_call',
189
- params: [
190
- {
191
- to: params.to,
192
- data: params.data,
193
- from: params.from ?? '0x0000000000000000000000000000000000000000',
194
- value: params.value ? `0x${params.value.toString(16)}` : undefined,
195
- gas: params.gas ? `0x${params.gas.toString(16)}` : undefined
196
- },
197
- 'latest'
198
- ]
199
- }));
200
- // Estimate gas
201
- try {
202
- gasUsed = await instance.client.estimateGas({
203
- to: params.to,
204
- data: params.data,
205
- account: params.from,
206
- value: params.value
207
- });
208
- }
209
- catch {
210
- // Ignore gas estimation errors
211
- }
130
+ result = (await client.request({ method: 'eth_call', params: [call, block] }));
131
+ gasUsed = await client
132
+ .request({ method: 'eth_estimateGas', params: [call, block] })
133
+ .then((gas) => BigInt(gas))
134
+ // Gas estimation is a nicety; a failure here says nothing about the call itself.
135
+ .catch(() => 0n);
212
136
  }
213
137
  catch (error) {
138
+ if (isBlockOutOfRange(error))
139
+ throw error;
214
140
  success = false;
215
- const errorMessage = error.message;
216
- // Try to extract revert reason
217
- const revertMatch = errorMessage.match(/revert(?:ed)?[:\s]*(.+?)(?:\n|$)/i);
218
- if (revertMatch) {
219
- revertReason = revertMatch[1].trim();
220
- }
221
- else {
222
- revertReason = errorMessage;
223
- }
141
+ const message = error.message;
142
+ revertReason = message.match(/revert(?:ed)?[:\s]*(.+?)(?:\n|$)/i)?.[1]?.trim() ?? message;
224
143
  }
225
- // Get the trace using debug_traceCall
226
- let trace = null;
227
- try {
228
- trace = await instance.client.request({
229
- method: 'debug_traceCall',
230
- params: [
231
- {
232
- to: params.to,
233
- data: params.data,
234
- from: params.from ?? '0x0000000000000000000000000000000000000000',
235
- value: params.value ? `0x${params.value.toString(16)}` : undefined,
236
- gas: params.gas ? `0x${params.gas.toString(16)}` : undefined
237
- },
238
- 'latest',
239
- { tracer }
240
- ]
241
- });
242
- }
243
- catch (traceError) {
244
- // If tracing fails, include the error
245
- trace = { error: traceError.message };
246
- }
247
- return {
248
- result,
249
- trace,
250
- gasUsed,
251
- success,
252
- revertReason
253
- };
144
+ const trace = await traceCall(client, call, block, tracer).catch((error) => {
145
+ if (isBlockOutOfRange(error))
146
+ throw error;
147
+ return { error: error.message };
148
+ });
149
+ return { result, trace, gasUsed, success, revertReason };
254
150
  });
255
151
  }
256
152
  //# sourceMappingURL=anvil.js.map
package/dist/anvil.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"anvil.js","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anvil.js","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chain-meta.d.ts","sourceRoot":"","sources":["../src/chain-meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,GAAG,EAA8B,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAW3C,wBAAsB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;SAJvB,GAAG;YAAU,UAAU,GAAG,SAAS;YAAU,MAAM;WAAS,MAAM;GAqCzG;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;aArClB,MAAM;eAAa,MAAM;GAyDrE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmBjG;AAED,wEAAwE;AACxE,eAAO,MAAM,WAAW,QAAoB,CAAA;AAC5C,eAAO,MAAM,mBAAmB,QAAmB,CAAA"}
1
+ {"version":3,"file":"chain-meta.d.ts","sourceRoot":"","sources":["../src/chain-meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,GAAG,EAA8B,MAAM,MAAM,CAAA;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAiB3C,wBAAsB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;SAP1B,GAAG;YAAU,UAAU,GAAG,SAAS;YAAU,MAAM;WAAS,MAAM;GAwCtG;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;aAxCrB,MAAM;eAAa,MAAM;GA6DlE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqBjG;AAED,wEAAwE;AACxE,eAAO,MAAM,WAAW,QAAoB,CAAA;AAC5C,eAAO,MAAM,mBAAmB,QAAmB,CAAA"}
@@ -6,13 +6,18 @@
6
6
  import { whatsabi } from '@shazow/whatsabi';
7
7
  import { parseAbiItem } from 'viem';
8
8
  import { getClientManager } from './client.js';
9
+ import { TtlCache } from './utils.js';
9
10
  const ERC20_META_ABI = [
10
11
  parseAbiItem('function decimals() view returns (uint8)'),
11
12
  parseAbiItem('function symbol() view returns (string)')
12
13
  ];
13
- const abiCache = new Map();
14
- const labelCache = new Map();
15
- const metaCache = new Map();
14
+ // An hour covers a session's repeats while still noticing an upgraded proxy.
15
+ const TTL_MS = 60 * 60 * 1000;
16
+ const abiCache = new TtlCache(200, TTL_MS);
17
+ const labelCache = new TtlCache(1000, TTL_MS);
18
+ const metaCache = new TtlCache(1000, TTL_MS);
19
+ /** A local node is reset and redeployed at will, so nothing learned from it stays true. */
20
+ const cacheable = (chain) => chain !== 'localhost';
16
21
  export async function loadAbi(chain, address) {
17
22
  const key = `${chain}:${address.toLowerCase()}`;
18
23
  const cached = abiCache.get(key);
@@ -41,7 +46,8 @@ export async function loadAbi(chain, address) {
41
46
  proxy: result.address !== address ? result.address : undefined,
42
47
  name: result.contractResult?.name ?? undefined
43
48
  };
44
- abiCache.set(key, loaded);
49
+ if (cacheable(chain))
50
+ abiCache.set(key, loaded);
45
51
  return loaded;
46
52
  }
47
53
  export async function tokenMeta(chain, token) {
@@ -61,7 +67,9 @@ export async function tokenMeta(chain, token) {
61
67
  decimals: decimals.status === 'success' ? Number(decimals.result) : undefined,
62
68
  symbol: symbol.status === 'success' ? symbol.result : undefined
63
69
  };
64
- metaCache.set(key, meta);
70
+ // A failed call may be a flaky RPC rather than a token without that method.
71
+ if (cacheable(chain) && decimals.status === 'success' && symbol.status === 'success')
72
+ metaCache.set(key, meta);
65
73
  return meta;
66
74
  }
67
75
  /**
@@ -71,8 +79,9 @@ export async function tokenMeta(chain, token) {
71
79
  */
72
80
  export async function addressLabel(chain, address) {
73
81
  const key = `${chain}:${address.toLowerCase()}`;
74
- if (labelCache.has(key))
75
- return labelCache.get(key);
82
+ const cached = labelCache.get(key);
83
+ if (cached)
84
+ return cached.label;
76
85
  let label;
77
86
  try {
78
87
  const code = await getClientManager()
@@ -86,8 +95,10 @@ export async function addressLabel(chain, address) {
86
95
  }
87
96
  catch {
88
97
  // Unknown address — show it bare rather than failing the preview.
98
+ return undefined;
89
99
  }
90
- labelCache.set(key, label);
100
+ if (cacheable(chain))
101
+ labelCache.set(key, { label });
91
102
  return label;
92
103
  }
93
104
  /** uint256 max and anything near it means "infinite" in an approval. */
@@ -1 +1 @@
1
- {"version":3,"file":"chain-meta.js","sourceRoot":"","sources":["../src/chain-meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain-meta.js","sourceRoot":"","sources":["../src/chain-meta.ts"],"names":[],"mappings":"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"}
package/dist/chains.d.ts CHANGED
@@ -954,7 +954,15 @@ declare const TABLE: {
954
954
  };
955
955
  export type ChainName = keyof typeof TABLE;
956
956
  export declare const CHAINS: Record<ChainName, ChainInfo>;
957
- /** Tuple rather than array, because `z.enum` needs a non-empty literal list. */
957
+ /**
958
+ * Chains the tools will accept.
959
+ *
960
+ * `localhost` is dropped when hosted. It resolves to the machine running the server, so on
961
+ * a shared host it is not the caller's dev node — it is a way to aim requests at whatever
962
+ * that host has listening on its own loopback.
963
+ *
964
+ * Tuple rather than array, because `z.enum` needs a non-empty literal list.
965
+ */
958
966
  export declare const SUPPORTED_CHAINS: [ChainName, ...ChainName[]];
959
967
  export {};
960
968
  //# sourceMappingURL=chains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAiBjC;;;;GAIG;AACH,UAAU,SAAS;IACjB,KAAK,EAAE,KAAK,CAAA;IACZ,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAoEa,CAAC;;;;;sFAQa,CAAC;;;;;6FAUxB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAnBkC,CAAC;;;;;sFAQpC,CAAC;;;;;6FASoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EArDI,CAAC;;;;;qFAWzB,CAAC;;;;;4FAUT,CAAC;;;;;yFAamB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFALI,CAAC;;;;;sFAQvB,CAAC;;;;;6FASR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BApGJ,CAAC;;;;;0BAMiE,CAAC;;;;;;;;2BAQjD,CAAC;oCAET,CAAC;0BAEG,CAAC;+BACR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGoC,CAAA;AAE9C,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,KAAK,CAAA;AAI1C,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAS,CAAA;AAEzD,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAA0B,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAkBjC;;;;GAIG;AACH,UAAU,SAAS;IACjB,KAAK,EAAE,KAAK,CAAA;IACZ,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAmEuD,CAAC;;;;;sFAS/D,CAAF;;;;;6FASS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAlBC,CAAC;;;;;sFAOL,CAAC;;;;;6FAUN,CAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EArDI,CAAC;;;;;qFAQmC,CAAC;;;;;4FAY1B,CAAC;;;;;yFAaJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAL6B,CAAC;;;;;sFAQW,CAAC;;;;;6FASxC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BApGd,CAAC;;;;;0BAO4B,CAAC;;;;;;;;2BAO9B,CAAC;oCAC+D,CAAC;0BAEnB,CAAC;+BAEQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGZ,CAAA;AAE9C,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,KAAK,CAAA;AAI1C,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAS,CAAA;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAkG,CAC7H,SAAS,EACT,GAAG,SAAS,EAAE,CACf,CAAA"}
package/dist/chains.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { arbitrum, avalanche, base, bsc, gnosis, linea, localhost, mainnet, optimism, polygon, sonic, unichain, zksync } from 'viem/chains';
2
+ import { HOSTED } from './hosted.js';
2
3
  const TABLE = {
3
4
  mainnet: {
4
5
  chain: mainnet,
@@ -103,6 +104,14 @@ const TABLE = {
103
104
  // Widened: `as const` above is only there to infer ChainName from the keys, and reading a
104
105
  // literal entry would otherwise lose the fields that not every chain sets.
105
106
  export const CHAINS = TABLE;
106
- /** Tuple rather than array, because `z.enum` needs a non-empty literal list. */
107
- export const SUPPORTED_CHAINS = Object.keys(CHAINS);
107
+ /**
108
+ * Chains the tools will accept.
109
+ *
110
+ * `localhost` is dropped when hosted. It resolves to the machine running the server, so on
111
+ * a shared host it is not the caller's dev node — it is a way to aim requests at whatever
112
+ * that host has listening on its own loopback.
113
+ *
114
+ * Tuple rather than array, because `z.enum` needs a non-empty literal list.
115
+ */
116
+ export const SUPPORTED_CHAINS = (HOSTED ? Object.keys(CHAINS).filter((name) => name !== 'localhost') : Object.keys(CHAINS));
108
117
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clear-signing.d.ts","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;GAMG;AAEH,UAAU,UAAU;IAElB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC7E;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAkCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAiBD,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA+DD,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKxF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiBlC"}
1
+ {"version":3,"file":"clear-signing.d.ts","sourceRoot":"","sources":["../src/clear-signing.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;GAMG;AAEH,UAAU,UAAU;IAElB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC7E;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAkCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAiBD,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAqED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKxF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiBlC"}