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.
- package/CHANGELOG.md +182 -1
- package/README.md +76 -47
- package/dist/anvil.d.ts +17 -19
- package/dist/anvil.d.ts.map +1 -1
- package/dist/anvil.js +124 -228
- package/dist/anvil.js.map +1 -1
- package/dist/chain-meta.d.ts.map +1 -1
- package/dist/chain-meta.js +19 -8
- package/dist/chain-meta.js.map +1 -1
- package/dist/chains.d.ts +9 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +11 -2
- package/dist/chains.js.map +1 -1
- package/dist/clear-signing.d.ts.map +1 -1
- package/dist/clear-signing.js +17 -6
- package/dist/clear-signing.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +22 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +24 -0
- package/dist/context.js.map +1 -0
- package/dist/hosted.d.ts +12 -0
- package/dist/hosted.d.ts.map +1 -0
- package/dist/hosted.js +12 -0
- package/dist/hosted.js.map +1 -0
- package/dist/http-server.d.ts +13 -0
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +22 -7
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +20 -12
- package/dist/index.js.map +1 -1
- package/dist/kv-storage.d.ts +2 -1
- package/dist/kv-storage.d.ts.map +1 -1
- package/dist/kv-storage.js +5 -2
- package/dist/kv-storage.js.map +1 -1
- package/dist/lib.d.ts +24 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +23 -0
- package/dist/lib.js.map +1 -0
- package/dist/mcp-server.d.ts +4 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +43 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/oauth.d.ts +57 -8
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +133 -63
- package/dist/oauth.js.map +1 -1
- package/dist/preview.d.ts +7 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +21 -7
- package/dist/preview.js.map +1 -1
- package/dist/signing-requests.d.ts +81 -0
- package/dist/signing-requests.d.ts.map +1 -0
- package/dist/signing-requests.js +138 -0
- package/dist/signing-requests.js.map +1 -0
- package/dist/tools/index.d.ts +27 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +50 -15
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +39 -30
- package/dist/tools/read/advanced.d.ts.map +1 -0
- package/dist/tools/{advanced.js → read/advanced.js} +53 -41
- package/dist/tools/read/advanced.js.map +1 -0
- package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
- package/dist/tools/read/balance.d.ts.map +1 -0
- package/dist/tools/{balance.js → read/balance.js} +18 -33
- package/dist/tools/read/balance.js.map +1 -0
- package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +20 -15
- package/dist/tools/read/contract-info.d.ts.map +1 -0
- package/dist/tools/{contract-info.js → read/contract-info.js} +54 -123
- package/dist/tools/read/contract-info.js.map +1 -0
- package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
- package/dist/tools/read/contract.d.ts.map +1 -0
- package/dist/tools/{contract.js → read/contract.js} +3 -2
- package/dist/tools/read/contract.js.map +1 -0
- package/dist/tools/read/ens.d.ts +104 -0
- package/dist/tools/read/ens.d.ts.map +1 -0
- package/dist/tools/{ens.js → read/ens.js} +25 -33
- package/dist/tools/read/ens.js.map +1 -0
- package/dist/tools/read/gas.d.ts +171 -0
- package/dist/tools/read/gas.d.ts.map +1 -0
- package/dist/tools/read/gas.js +333 -0
- package/dist/tools/read/gas.js.map +1 -0
- package/dist/tools/read/logs.d.ts +101 -0
- package/dist/tools/read/logs.d.ts.map +1 -0
- package/dist/tools/read/logs.js +211 -0
- package/dist/tools/read/logs.js.map +1 -0
- package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
- package/dist/tools/read/signatures.d.ts.map +1 -0
- package/dist/tools/{signatures.js → read/signatures.js} +4 -3
- package/dist/tools/read/signatures.js.map +1 -0
- package/dist/tools/read/signing.d.ts +27 -0
- package/dist/tools/read/signing.d.ts.map +1 -0
- package/dist/tools/read/signing.js +81 -0
- package/dist/tools/read/signing.js.map +1 -0
- package/dist/tools/sign/errors.d.ts +9 -0
- package/dist/tools/sign/errors.d.ts.map +1 -0
- package/dist/tools/sign/errors.js +29 -0
- package/dist/tools/sign/errors.js.map +1 -0
- package/dist/tools/sign/transactions.d.ts +141 -0
- package/dist/tools/sign/transactions.d.ts.map +1 -0
- package/dist/tools/sign/transactions.js +361 -0
- package/dist/tools/sign/transactions.js.map +1 -0
- package/dist/tools/sign/wallet.d.ts +50 -0
- package/dist/tools/sign/wallet.d.ts.map +1 -0
- package/dist/tools/sign/wallet.js +180 -0
- package/dist/tools/sign/wallet.js.map +1 -0
- package/dist/utils.d.ts +23 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +48 -3
- package/dist/utils.js.map +1 -1
- package/dist/wallet-client.d.ts +34 -4
- package/dist/wallet-client.d.ts.map +1 -1
- package/dist/wallet-client.js +106 -27
- package/dist/wallet-client.js.map +1 -1
- package/dist/walletconnect.d.ts +100 -13
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +215 -50
- package/dist/walletconnect.js.map +1 -1
- package/package.json +12 -9
- package/src/anvil.ts +150 -271
- package/src/chain-meta.ts +16 -7
- package/src/chains.ts +14 -2
- package/src/clear-signing.ts +15 -9
- package/src/client.ts +0 -1
- package/src/context.ts +27 -0
- package/src/hosted.ts +11 -0
- package/src/http-server.ts +38 -8
- package/src/index.ts +20 -13
- package/src/kv-storage.ts +6 -3
- package/src/lib.ts +24 -0
- package/src/mcp-server.ts +47 -0
- package/src/oauth.ts +181 -69
- package/src/preview.ts +28 -7
- package/src/signing-requests.ts +198 -0
- package/src/tools/index.ts +78 -16
- package/src/tools/{advanced.ts → read/advanced.ts} +74 -43
- package/src/tools/{balance.ts → read/balance.ts} +20 -35
- package/src/tools/{contract-info.ts → read/contract-info.ts} +66 -146
- package/src/tools/{contract.ts → read/contract.ts} +4 -3
- package/src/tools/{ens.ts → read/ens.ts} +27 -34
- package/src/tools/read/gas.ts +443 -0
- package/src/tools/read/logs.ts +281 -0
- package/src/tools/{signatures.ts → read/signatures.ts} +5 -5
- package/src/tools/read/signing.ts +92 -0
- package/src/tools/sign/errors.ts +28 -0
- package/src/tools/sign/transactions.ts +479 -0
- package/src/tools/sign/wallet.ts +216 -0
- package/src/utils.ts +52 -3
- package/src/wallet-client.ts +107 -24
- package/src/walletconnect.ts +250 -48
- package/dist/tools/advanced.d.ts.map +0 -1
- package/dist/tools/advanced.js.map +0 -1
- package/dist/tools/balance.d.ts.map +0 -1
- package/dist/tools/balance.js.map +0 -1
- package/dist/tools/contract-info.d.ts.map +0 -1
- package/dist/tools/contract-info.js.map +0 -1
- package/dist/tools/contract.d.ts.map +0 -1
- package/dist/tools/contract.js.map +0 -1
- package/dist/tools/ens.d.ts +0 -119
- package/dist/tools/ens.d.ts.map +0 -1
- package/dist/tools/ens.js.map +0 -1
- package/dist/tools/gas.d.ts +0 -99
- package/dist/tools/gas.d.ts.map +0 -1
- package/dist/tools/gas.js +0 -181
- package/dist/tools/gas.js.map +0 -1
- package/dist/tools/logs.d.ts +0 -39
- package/dist/tools/logs.d.ts.map +0 -1
- package/dist/tools/logs.js +0 -230
- package/dist/tools/logs.js.map +0 -1
- package/dist/tools/signatures.d.ts.map +0 -1
- package/dist/tools/signatures.js.map +0 -1
- package/dist/tools/transactions.d.ts +0 -155
- package/dist/tools/transactions.d.ts.map +0 -1
- package/dist/tools/transactions.js +0 -365
- package/dist/tools/transactions.js.map +0 -1
- package/src/tools/gas.ts +0 -219
- package/src/tools/logs.ts +0 -293
- 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
35
|
-
export async function
|
|
36
|
-
const
|
|
37
|
-
if (!
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
47
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
|
80
|
+
return await run(blockTag(blockNumber));
|
|
124
81
|
}
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
149
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
method: '
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
|
216
|
-
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"anvil.js","sourceRoot":"","sources":["../src/anvil.ts"],"names":[],"mappings":"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"}
|
package/dist/chain-meta.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/chain-meta.js
CHANGED
|
@@ -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
|
-
|
|
14
|
-
const
|
|
15
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
|
|
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. */
|
package/dist/chain-meta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-meta.js","sourceRoot":"","sources":["../src/chain-meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAA0B,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
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
|
-
/**
|
|
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
|
package/dist/chains.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
/**
|
|
107
|
-
|
|
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
|
package/dist/chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,GAAG,EACH,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACP,MAAM,aAAa,CAAA;
|
|
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;
|
|
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"}
|