@aztec/archiver 3.0.0-nightly.20251210 → 3.0.0-nightly.20251212

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 (79) hide show
  1. package/dest/archiver/archiver.d.ts +10 -15
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +28 -21
  4. package/dest/archiver/archiver_store.d.ts +4 -11
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  8. package/dest/archiver/archiver_store_test_suite.js +18 -35
  9. package/dest/archiver/config.d.ts +3 -2
  10. package/dest/archiver/config.d.ts.map +1 -1
  11. package/dest/archiver/config.js +8 -1
  12. package/dest/archiver/instrumentation.d.ts +3 -1
  13. package/dest/archiver/instrumentation.d.ts.map +1 -1
  14. package/dest/archiver/instrumentation.js +11 -0
  15. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +5 -12
  16. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  17. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +1 -9
  18. package/dest/archiver/kv_archiver_store/log_store.d.ts +2 -9
  19. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  20. package/dest/archiver/kv_archiver_store/log_store.js +1 -24
  21. package/dest/archiver/kv_archiver_store/message_store.d.ts +2 -2
  22. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  23. package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
  24. package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
  25. package/dest/archiver/l1/bin/retrieve-calldata.js +147 -0
  26. package/dest/archiver/l1/calldata_retriever.d.ts +98 -0
  27. package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
  28. package/dest/archiver/l1/calldata_retriever.js +403 -0
  29. package/dest/archiver/l1/data_retrieval.d.ts +87 -0
  30. package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
  31. package/dest/archiver/{data_retrieval.js → l1/data_retrieval.js} +19 -89
  32. package/dest/archiver/l1/debug_tx.d.ts +19 -0
  33. package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
  34. package/dest/archiver/l1/debug_tx.js +73 -0
  35. package/dest/archiver/l1/spire_proposer.d.ts +70 -0
  36. package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
  37. package/dest/archiver/l1/spire_proposer.js +157 -0
  38. package/dest/archiver/l1/trace_tx.d.ts +97 -0
  39. package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
  40. package/dest/archiver/l1/trace_tx.js +91 -0
  41. package/dest/archiver/l1/types.d.ts +12 -0
  42. package/dest/archiver/l1/types.d.ts.map +1 -0
  43. package/dest/archiver/l1/types.js +3 -0
  44. package/dest/archiver/l1/validate_trace.d.ts +29 -0
  45. package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
  46. package/dest/archiver/l1/validate_trace.js +150 -0
  47. package/dest/index.d.ts +2 -2
  48. package/dest/index.d.ts.map +1 -1
  49. package/dest/index.js +1 -1
  50. package/dest/test/mock_l2_block_source.js +1 -1
  51. package/package.json +15 -14
  52. package/src/archiver/archiver.ts +45 -33
  53. package/src/archiver/archiver_store.ts +3 -11
  54. package/src/archiver/archiver_store_test_suite.ts +10 -27
  55. package/src/archiver/config.ts +8 -7
  56. package/src/archiver/instrumentation.ts +14 -0
  57. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +4 -14
  58. package/src/archiver/kv_archiver_store/log_store.ts +0 -27
  59. package/src/archiver/kv_archiver_store/message_store.ts +1 -1
  60. package/src/archiver/l1/README.md +98 -0
  61. package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
  62. package/src/archiver/l1/calldata_retriever.ts +531 -0
  63. package/src/archiver/{data_retrieval.ts → l1/data_retrieval.ts} +50 -137
  64. package/src/archiver/l1/debug_tx.ts +99 -0
  65. package/src/archiver/l1/spire_proposer.ts +160 -0
  66. package/src/archiver/l1/trace_tx.ts +128 -0
  67. package/src/archiver/l1/types.ts +13 -0
  68. package/src/archiver/l1/validate_trace.ts +211 -0
  69. package/src/index.ts +1 -1
  70. package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
  71. package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
  72. package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
  73. package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
  74. package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
  75. package/src/test/fixtures/trace_transaction-proxied.json +128 -0
  76. package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
  77. package/src/test/mock_l2_block_source.ts +1 -1
  78. package/dest/archiver/data_retrieval.d.ts +0 -80
  79. package/dest/archiver/data_retrieval.d.ts.map +0 -1
@@ -0,0 +1,211 @@
1
+ import type { ViemPublicDebugClient } from '@aztec/ethereum/types';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+
4
+ import type { Hex } from 'viem';
5
+ import type { ZodSchema } from 'zod';
6
+
7
+ import { callTraceSchema } from './debug_tx.js';
8
+ import { traceTransactionResponseSchema } from './trace_tx.js';
9
+
10
+ const logger = createLogger('aztec:archiver:validate_trace');
11
+
12
+ /**
13
+ * Helper function to test a trace method with validation
14
+ *
15
+ * @param client - The Viem public debug client
16
+ * @param txHash - Transaction hash to trace
17
+ * @param schema - Zod schema to validate the response
18
+ * @param method - Name of the RPC method ('debug_traceTransaction' or 'trace_transaction')
19
+ * @param blockType - Type of block being tested ('recent' or 'old')
20
+ * @returns true if the method works and validation passes, false otherwise
21
+ */
22
+ async function testTraceMethod(
23
+ client: ViemPublicDebugClient,
24
+ txHash: Hex,
25
+ schema: ZodSchema,
26
+ method: 'debug_traceTransaction' | 'trace_transaction',
27
+ blockType: string,
28
+ ): Promise<boolean> {
29
+ try {
30
+ // Make request with appropriate params based on method name
31
+ const result = await client.request(
32
+ method === 'debug_traceTransaction'
33
+ ? { method, params: [txHash, { tracer: 'callTracer' }] }
34
+ : { method, params: [txHash] },
35
+ );
36
+
37
+ schema.parse(result);
38
+ logger.debug(`${method} works for ${blockType} blocks`);
39
+ return true;
40
+ } catch (error) {
41
+ logger.warn(`${method} failed for ${blockType} blocks: ${error}`);
42
+ return false;
43
+ }
44
+ }
45
+
46
+ /** Result of trace availability checks */
47
+ export interface TraceAvailability {
48
+ /** Whether debug_traceTransaction works for recent blocks */
49
+ debugTraceRecent: boolean;
50
+ /** Whether trace_transaction works for recent blocks */
51
+ traceTransactionRecent: boolean;
52
+ /** Whether debug_traceTransaction works for old blocks (512 blocks ago) */
53
+ debugTraceOld: boolean;
54
+ /** Whether trace_transaction works for old blocks (512 blocks ago) */
55
+ traceTransactionOld: boolean;
56
+ }
57
+
58
+ /**
59
+ * Validates the availability of debug/trace methods on the Ethereum client.
60
+ *
61
+ * @param client - The Viem public debug client
62
+ * @returns Object indicating which trace methods are available for recent and old blocks
63
+ */
64
+ export async function validateTraceAvailability(client: ViemPublicDebugClient): Promise<TraceAvailability> {
65
+ const result: TraceAvailability = {
66
+ debugTraceRecent: false,
67
+ traceTransactionRecent: false,
68
+ debugTraceOld: false,
69
+ traceTransactionOld: false,
70
+ };
71
+
72
+ try {
73
+ // Get the latest block
74
+ let latestBlock = await client.getBlock({ blockTag: 'latest' });
75
+ let attempts = 10;
76
+
77
+ // Loop back to find a block with transactions (handles dev/test scenarios)
78
+ while (!hasTxs(latestBlock) && latestBlock.number && latestBlock.number > 0n && --attempts > 0) {
79
+ logger.debug(`Block ${latestBlock.number} has no transactions, checking previous block`);
80
+ latestBlock = await client.getBlock({ blockNumber: latestBlock.number - 1n });
81
+ }
82
+
83
+ if (!hasTxs(latestBlock)) {
84
+ logger.warn('No blocks with transactions found from latest back to genesis, cannot validate trace availability');
85
+ return result;
86
+ }
87
+
88
+ // Get a transaction from the found block
89
+ const recentTxHash = latestBlock.transactions[0] as Hex;
90
+
91
+ // Test debug_traceTransaction with recent block
92
+ result.debugTraceRecent = await testTraceMethod(
93
+ client,
94
+ recentTxHash,
95
+ callTraceSchema,
96
+ 'debug_traceTransaction',
97
+ 'recent',
98
+ );
99
+
100
+ // Test trace_transaction with recent block
101
+ result.traceTransactionRecent = await testTraceMethod(
102
+ client,
103
+ recentTxHash,
104
+ traceTransactionResponseSchema,
105
+ 'trace_transaction',
106
+ 'recent',
107
+ );
108
+
109
+ // Get a block from 512 blocks ago
110
+ const oldBlockNumber = latestBlock.number ? latestBlock.number - 512n : null;
111
+ if (!oldBlockNumber || oldBlockNumber < 0n) {
112
+ logger.debug('Cannot test old blocks, blockchain too short');
113
+ return result;
114
+ }
115
+
116
+ let oldBlock = await client.getBlock({ blockNumber: oldBlockNumber });
117
+ attempts = 10;
118
+
119
+ // Loop back to find a block with transactions (handles dev/test scenarios)
120
+ while (!hasTxs(oldBlock) && oldBlock.number && oldBlock.number > 0n && --attempts > 0) {
121
+ logger.debug(`Block ${oldBlock.number} has no transactions, checking previous block`);
122
+ oldBlock = await client.getBlock({ blockNumber: oldBlock.number - 1n });
123
+ }
124
+
125
+ if (!hasTxs(oldBlock)) {
126
+ logger.debug(
127
+ 'No blocks with transactions found from old block back to genesis, cannot validate trace availability for old blocks',
128
+ );
129
+ return result;
130
+ }
131
+
132
+ const oldTxHash = oldBlock.transactions[0] as Hex;
133
+
134
+ // Test debug_traceTransaction with old block
135
+ result.debugTraceOld = await testTraceMethod(client, oldTxHash, callTraceSchema, 'debug_traceTransaction', 'old');
136
+
137
+ // Test trace_transaction with old block
138
+ result.traceTransactionOld = await testTraceMethod(
139
+ client,
140
+ oldTxHash,
141
+ traceTransactionResponseSchema,
142
+ 'trace_transaction',
143
+ 'old',
144
+ );
145
+ } catch (error) {
146
+ logger.warn(`Error validating debug_traceTransaction and trace_transaction availability: ${error}`);
147
+ }
148
+
149
+ return result;
150
+ }
151
+
152
+ function hasTxs(block: { transactions?: Hex[] }): boolean {
153
+ return Array.isArray(block.transactions) && block.transactions.length > 0;
154
+ }
155
+
156
+ /**
157
+ * Validates trace availability and logs appropriate messages based on the results.
158
+ * Optionally throws an error if no trace methods are available and ethereumAllowNoDebugHosts is false.
159
+ *
160
+ * @param client - The Viem public debug client
161
+ * @param ethereumAllowNoDebugHosts - If false, throws an error when no trace methods are available
162
+ * @throws Error if ethereumAllowNoDebugHosts is false and no trace methods are available
163
+ */
164
+ export async function validateAndLogTraceAvailability(
165
+ client: ViemPublicDebugClient,
166
+ ethereumAllowNoDebugHosts: boolean,
167
+ ): Promise<void> {
168
+ logger.info('Validating trace/debug method availability...');
169
+
170
+ const availability = await validateTraceAvailability(client);
171
+
172
+ // Check if we have support for old blocks (either debug or trace)
173
+ const hasOldBlockSupport = availability.debugTraceOld || availability.traceTransactionOld;
174
+
175
+ if (hasOldBlockSupport) {
176
+ // Ideal case: we have trace support for old blocks
177
+ const methods: string[] = [];
178
+ if (availability.debugTraceOld) {
179
+ methods.push('debug_traceTransaction');
180
+ }
181
+ if (availability.traceTransactionOld) {
182
+ methods.push('trace_transaction');
183
+ }
184
+ logger.info(
185
+ `Ethereum client supports trace methods for old blocks (${methods.join(', ')}). Archiver can retrieve historical transaction traces.`,
186
+ );
187
+ } else if (availability.debugTraceRecent || availability.traceTransactionRecent) {
188
+ // Warning case: only recent block support
189
+ const methods: string[] = [];
190
+ if (availability.debugTraceRecent) {
191
+ methods.push('debug_traceTransaction');
192
+ }
193
+ if (availability.traceTransactionRecent) {
194
+ methods.push('trace_transaction');
195
+ }
196
+ logger.warn(
197
+ `Ethereum client only supports trace methods for recent blocks (${methods.join(', ')}). Historical transaction traces may not be available.`,
198
+ );
199
+ } else {
200
+ // Error case: no support at all
201
+ const errorMessage =
202
+ 'Ethereum debug client does not support debug_traceTransaction or trace_transaction methods. Transaction tracing will not be available. This may impact archiver syncing.';
203
+
204
+ if (ethereumAllowNoDebugHosts) {
205
+ logger.warn(`${errorMessage} Continuing because ETHEREUM_ALLOW_NO_DEBUG_HOSTS is set to true.`);
206
+ } else {
207
+ logger.error(errorMessage);
208
+ throw new Error(`${errorMessage} Set ETHEREUM_ALLOW_NO_DEBUG_HOSTS=true to bypass this check.`);
209
+ }
210
+ }
211
+ }
package/src/index.ts CHANGED
@@ -2,4 +2,4 @@ export * from './archiver/index.js';
2
2
  export * from './factory.js';
3
3
  export * from './rpc/index.js';
4
4
 
5
- export { retrieveL2ProofVerifiedEvents } from './archiver/data_retrieval.js';
5
+ export { retrieveCheckpointsFromRollup, retrieveL2ProofVerifiedEvents } from './archiver/l1/data_retrieval.js';
@@ -0,0 +1,88 @@
1
+ {
2
+ "calls": [
3
+ {
4
+ "calls": [
5
+ {
6
+ "calls": [
7
+ {
8
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
9
+ "gas": "0x3a6ea",
10
+ "gasUsed": "0x54",
11
+ "input": "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
12
+ "output": "0x5f0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
13
+ "to": "0x0000000000000000000000000000000000000002",
14
+ "type": "STATICCALL"
15
+ },
16
+ {
17
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
18
+ "gas": "0x3a2aa",
19
+ "gasUsed": "0x48",
20
+ "input": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
21
+ "output": "0x1cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d924",
22
+ "to": "0x0000000000000000000000000000000000000002",
23
+ "type": "STATICCALL"
24
+ },
25
+ {
26
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
27
+ "gas": "0x3975a",
28
+ "gasUsed": "0xa8",
29
+ "input": "0x12b29004da68459a34b8b637fac9138621509aaa0cf8624c431df46b9605cca0001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061da000000006930b123b182f279fc586e7fee9224ee9afa2a4a042086ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
30
+ "output": "0x98282f2700c04edec8522fc414d59b70a00cb291dcd5d4a3821a09d5d19ae69c",
31
+ "to": "0x0000000000000000000000000000000000000002",
32
+ "type": "STATICCALL"
33
+ },
34
+ {
35
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
36
+ "gas": "0x293ec",
37
+ "gasUsed": "0xbb8",
38
+ "input": "0x2ac8c9c81764e3cb921234992e730f34858205ebae48d6d174ea72602de6401e000000000000000000000000000000000000000000000000000000000000001be0d37dd4017f483f54f42503f1eef9ff922ccd3131985ad3fe55c172b07e474335d3fdc3bfc87931afa552e6d147d35ba5d59df222083b18033f8780a8a1e86e",
39
+ "output": "0x00000000000000000000000095bc711004dfb58fcfd8c6d2b5142002a0b93d58",
40
+ "to": "0x0000000000000000000000000000000000000001",
41
+ "type": "STATICCALL"
42
+ },
43
+ {
44
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
45
+ "gas": "0x275e3",
46
+ "gasUsed": "0xbb8",
47
+ "input": "0x1d1534a63c7ce5e29ca97b2a477014f86e4b42642d70a50a9802efefdfb9f54b000000000000000000000000000000000000000000000000000000000000001cf13a6bbc6d4398dcaebdc088a3e323307bbaf0c2836e77096c1df13586dc843271145cff3b6e1d76c1608e133f98fa325bfc085739f1c17ae4ab2ebb1d39d374",
48
+ "output": "0x00000000000000000000000095bc711004dfb58fcfd8c6d2b5142002a0b93d58",
49
+ "to": "0x0000000000000000000000000000000000000001",
50
+ "type": "STATICCALL"
51
+ },
52
+ {
53
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
54
+ "gas": "0x24d79",
55
+ "gasUsed": "0x60",
56
+ "input": "0x00c9a29021bbeee7e1a36027acca6018cd972f9a721db0707035bd791dbc5da4c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
57
+ "output": "0xa4dd4e9ea06df59cc42cb227e5d65ff504fb407c35d73a442be1f672465cb900",
58
+ "to": "0x0000000000000000000000000000000000000002",
59
+ "type": "STATICCALL"
60
+ }
61
+ ],
62
+ "from": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
63
+ "gas": "0x3f54d",
64
+ "gasUsed": "0x2869b",
65
+ "input": "0x547b85980962b277f292e63c49cb4325efe59b70c6068df6fafe8aff093dd558667e66032e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d6000000000000000000000000000000000000000000000000000000000003b3101fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012b29004da68459a34b8b637fac9138621509aaa0cf8624c431df46b9605cca0001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061da000000000000000000000000000000000000000000000000000000006930b123000000000000000000000000b182f279fc586e7fee9224ee9afa2a4a042086ab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000009e0000000000000000000000000000000000000000000000000000000000000001cf13a6bbc6d4398dcaebdc088a3e323307bbaf0c2836e77096c1df13586dc843271145cff3b6e1d76c1608e133f98fa325bfc085739f1c17ae4ab2ebb1d39d3740000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003efdfff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1b74d08c3743b13ab07f02996a3f83f4630de33b7c7e7215b530f4479e87986ad27e2fc4b7f5f53cbc3d653a0ee15dfff9015e2ab7f588e94a71cf57658082f1201bf6eb17bbb177f18ab6094b1dde41ce85e5172b06e25f7a8a669158d92af66ec80ac8f4526cc1af29c51d8109c66f025c1d85b732b9b1b3457662af95116a91521b63acb4d800b216b0cc0a051f63f0b264f4057d53b7722cb3e68ac15abaf0d14a23dc684246f73e3f3286c7f36dea947f05710cb81dfb6f82c4bef85507baa1de85d977d689fb3c055da0622e8705b42b13467bca1b2c2eb1a3c095440e2ecc36af4d315455a3eaeb2b80ac96064614ac07dd10d4967615cd6f4354f94af84e56b54eabb5d834871a0bc8f4a9e9c605c4ebc87231ab1be0d37dd4017f483f54f42503f1eef9ff922ccd3131985ad3fe55c172b07e474335d3fdc3bfc87931afa552e6d147d35ba5d59df222083b18033f8780a8a1e86e1c9ef127dbe39da89386d09d2e48f5ba8dbc28b11f2a8ead851d7766a3c315646c00cb2617fe9fda00b50a48372d486df84d97e69ba4d42810cdce36a31388e2481ca39246de8a4558d5e0c284e86dc40c794759c2336a6c4f9a847e72c1f48ea8915edba145890347aba6b5e58bfda5663a746758c751303e6e797de74f9bb5184d1b6b095d75a6ab697b4d3a2d26cd705d1f8f800f8617a86719ff14185c5848dd6612cc23d868b56ae16264e41ad27dfe549da08086bf70215d758b7a621311d1021c02a995e0e846b662c1dc63384525ebfe202e69c52bab6aae7537a3ec60d9417c6ca8a293f95839f72699d16f783ac90a27e3fb17914cbdefd156ec86b99c7de29a93f10c617c73b30c52c8df0f56d2f52373d0871b58094a919cff6cf0e92de4f7792316a9d091492619953dd3cc8903cab6669b7e387f3d3c2f134d198f5599b5832cd5521feea040574889b556ebb381a5de04f21b33211d34608fe8954eb792c8dce185071b1a37538444564b6fffefca699f74856ee2fa053a6b7e29ddea7a719630edfc131f1f92f690c485ca8f31406af27e1b1cfddef6c77769ae7bf470a453d3a9b669a16df503d4cd3872642b4a14f60867b95805dbe328b33a81451e8ce612703f14045531ddfc9255f2779338a298ada2481cc3f3458a1a5e7debde9ca265010e728a639cd1840e55da91dfb3f7c36a3bd75971604400ddb4d21c5a2cfa62c2313f084d100536db43d51190e7ee5f6e35e5191b12ba72125ad2d8630cd21e978cfd774e3eb3fbc0e1fa0c1e79518f22bf6215a20743e493c482fd0307ef40a4df17fe7580bb5917104e4b7243245a7e5c4a3e411b64d7c0e98257720e3266e8a1b232f7b6bfe2b0b73ce4ef44bc5d19fd23fd5d0b3bdd3b278f948531d226569bd2a3ff1072bfe38a6665c4ff8e5c1858fc0035711b9be36baae8f8a14b9a0acdc8a377bf8e2bb232b5b3fef95d82816f22e132a72c48668f3e08a79308d1edfb7728d7285779991256a7375718c91bce58624381f41c5894768a0eaf420b351862a32bb60f43f5b8f9df163bfcda34264fec2f9be5627e63ba9019c18556952ee9173ac366facd35532eadc3483b36a90aa4aa3fe0961c471bd5ea0e83b9a7fe73a2347b92c2ba9d860083bc61453d76f4e5d2c0be708013f3ac8869c3f098efc33e14e5d0220bd2c63c351b03907481b1f27a44f9ebf41b3bfe6e39452964315b907947c4c4de7f30c9f86149cc2cbf5958c389e964f9f1488944349d96d61b0260e7b89ac59e55723c3945d132640febfe37fcecdfa3b31c49df5f115618357a1c1a0d6cfe79f075935c9647c4fabdb6a0351209ff7a0aaa340e37b83e943cc751539cab91fae219eb38941405a2c7cfe7c54db1c7a9a6811b0c83c4ee1d82db107832ee60bca463c3fb16c4c3b400aadf8dbbf53d45d75a4977261a3dc99fbe3f0c4fa0d462e54d3e387be8cb65d7676b4fab07047a7f9cc71bbfc189348e2af68d50efc6d906ba7a2044c9b1162f7bf902aea5fa54e7e840d0427a366c67b0629331baadc8ebd389ade81ee16dc4e993b380afa0a183ba9ceb00000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000fa7cdb0de9af423a0540d6cf449aea5d7030dc19000000000000000000000000d10b8cb85c74852409d9cfe7c724b1f38ccca88e00000000000000000000000026050a2d1d9fce4d03cce956e9657e9f8f2df91b00000000000000000000000091b7e897f5d99f140ff3162cd57523bd151ac0c900000000000000000000000095bc711004dfb58fcfd8c6d2b5142002a0b93d58000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d680020000000000000000000000006272e73e9a040c093b1f3c4ca8a96072504549bc00000000000000000000000058b7293d981383f7b334c11775ef8474eae2424d0000000000000000000000003e08421924f3cbb27a11e1a608cbb2040c6ff368000000000000000000000000d46873ec9c2c634de34454ee9106ac811f07b8db000000000000000000000000dbd97dd5e25cf01ebab47d938fc826fa807a28c3000000000000000000000000b587a6f5d3ca5ae4376a9f21292809178fe119ba000000000000000000000000328bd7a03a407e4b355ce07002ccb226558707f8000000000000000000000000f6da0971a198250beaff75bcd88288fbc638528000000000000000000000000030589e4ed431348f3ae1eeb482f2e106c67bd51e000000000000000000000000811e417f3566e024fb451bfc4b8e3af367bb6a3a000000000000000000000000661baf2db3f8cbb3cbb269c984bc04464921ffa6000000000000000000000000550b49b83b980ab25fc9930ad82e1a7df9eac8c20000000000000000000000005516bad7a9203f7bad4aaf80c562aab71c22982a0000000000000000000000002a4e7464b74f26c9d46561d365b5188f4ecd0d9f000000000000000000000000ec91be0ac5db057976294f930b76891fb374de9b0000000000000000000000006a8490a6e711fa229a58fd56595be3e9976db1ac000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
66
+ "to": "0x1e0a5d9f39c4393b71dd4c6d038be4b77266c1a4",
67
+ "type": "DELEGATECALL",
68
+ "value": "0x0"
69
+ }
70
+ ],
71
+ "from": "0xca11bde05977b3631167028862be2a173976ca11",
72
+ "gas": "0x43c04",
73
+ "gasUsed": "0x2bd73",
74
+ "input": "0x48aeda190962b277f292e63c49cb4325efe59b70c6068df6fafe8aff093dd558667e66032e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d6000000000000000000000000000000000000000000000000000000000003b3101fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012b29004da68459a34b8b637fac9138621509aaa0cf8624c431df46b9605cca0001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061da000000000000000000000000000000000000000000000000000000006930b123000000000000000000000000b182f279fc586e7fee9224ee9afa2a4a042086ab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001cf13a6bbc6d4398dcaebdc088a3e323307bbaf0c2836e77096c1df13586dc843271145cff3b6e1d76c1608e133f98fa325bfc085739f1c17ae4ab2ebb1d39d3740000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003efdfff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1b74d08c3743b13ab07f02996a3f83f4630de33b7c7e7215b530f4479e87986ad27e2fc4b7f5f53cbc3d653a0ee15dfff9015e2ab7f588e94a71cf57658082f1201bf6eb17bbb177f18ab6094b1dde41ce85e5172b06e25f7a8a669158d92af66ec80ac8f4526cc1af29c51d8109c66f025c1d85b732b9b1b3457662af95116a91521b63acb4d800b216b0cc0a051f63f0b264f4057d53b7722cb3e68ac15abaf0d14a23dc684246f73e3f3286c7f36dea947f05710cb81dfb6f82c4bef85507baa1de85d977d689fb3c055da0622e8705b42b13467bca1b2c2eb1a3c095440e2ecc36af4d315455a3eaeb2b80ac96064614ac07dd10d4967615cd6f4354f94af84e56b54eabb5d834871a0bc8f4a9e9c605c4ebc87231ab1be0d37dd4017f483f54f42503f1eef9ff922ccd3131985ad3fe55c172b07e474335d3fdc3bfc87931afa552e6d147d35ba5d59df222083b18033f8780a8a1e86e1c9ef127dbe39da89386d09d2e48f5ba8dbc28b11f2a8ead851d7766a3c315646c00cb2617fe9fda00b50a48372d486df84d97e69ba4d42810cdce36a31388e2481ca39246de8a4558d5e0c284e86dc40c794759c2336a6c4f9a847e72c1f48ea8915edba145890347aba6b5e58bfda5663a746758c751303e6e797de74f9bb5184d1b6b095d75a6ab697b4d3a2d26cd705d1f8f800f8617a86719ff14185c5848dd6612cc23d868b56ae16264e41ad27dfe549da08086bf70215d758b7a621311d1021c02a995e0e846b662c1dc63384525ebfe202e69c52bab6aae7537a3ec60d9417c6ca8a293f95839f72699d16f783ac90a27e3fb17914cbdefd156ec86b99c7de29a93f10c617c73b30c52c8df0f56d2f52373d0871b58094a919cff6cf0e92de4f7792316a9d091492619953dd3cc8903cab6669b7e387f3d3c2f134d198f5599b5832cd5521feea040574889b556ebb381a5de04f21b33211d34608fe8954eb792c8dce185071b1a37538444564b6fffefca699f74856ee2fa053a6b7e29ddea7a719630edfc131f1f92f690c485ca8f31406af27e1b1cfddef6c77769ae7bf470a453d3a9b669a16df503d4cd3872642b4a14f60867b95805dbe328b33a81451e8ce612703f14045531ddfc9255f2779338a298ada2481cc3f3458a1a5e7debde9ca265010e728a639cd1840e55da91dfb3f7c36a3bd75971604400ddb4d21c5a2cfa62c2313f084d100536db43d51190e7ee5f6e35e5191b12ba72125ad2d8630cd21e978cfd774e3eb3fbc0e1fa0c1e79518f22bf6215a20743e493c482fd0307ef40a4df17fe7580bb5917104e4b7243245a7e5c4a3e411b64d7c0e98257720e3266e8a1b232f7b6bfe2b0b73ce4ef44bc5d19fd23fd5d0b3bdd3b278f948531d226569bd2a3ff1072bfe38a6665c4ff8e5c1858fc0035711b9be36baae8f8a14b9a0acdc8a377bf8e2bb232b5b3fef95d82816f22e132a72c48668f3e08a79308d1edfb7728d7285779991256a7375718c91bce58624381f41c5894768a0eaf420b351862a32bb60f43f5b8f9df163bfcda34264fec2f9be5627e63ba9019c18556952ee9173ac366facd35532eadc3483b36a90aa4aa3fe0961c471bd5ea0e83b9a7fe73a2347b92c2ba9d860083bc61453d76f4e5d2c0be708013f3ac8869c3f098efc33e14e5d0220bd2c63c351b03907481b1f27a44f9ebf41b3bfe6e39452964315b907947c4c4de7f30c9f86149cc2cbf5958c389e964f9f1488944349d96d61b0260e7b89ac59e55723c3945d132640febfe37fcecdfa3b31c49df5f115618357a1c1a0d6cfe79f075935c9647c4fabdb6a0351209ff7a0aaa340e37b83e943cc751539cab91fae219eb38941405a2c7cfe7c54db1c7a9a6811b0c83c4ee1d82db107832ee60bca463c3fb16c4c3b400aadf8dbbf53d45d75a4977261a3dc99fbe3f0c4fa0d462e54d3e387be8cb65d7676b4fab07047a7f9cc71bbfc189348e2af68d50efc6d906ba7a2044c9b1162f7bf902aea5fa54e7e840d0427a366c67b0629331baadc8ebd389ade81ee16dc4e993b380afa0a183ba9ceb00000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000fa7cdb0de9af423a0540d6cf449aea5d7030dc19000000000000000000000000d10b8cb85c74852409d9cfe7c724b1f38ccca88e00000000000000000000000026050a2d1d9fce4d03cce956e9657e9f8f2df91b00000000000000000000000091b7e897f5d99f140ff3162cd57523bd151ac0c900000000000000000000000095bc711004dfb58fcfd8c6d2b5142002a0b93d58000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d680020000000000000000000000006272e73e9a040c093b1f3c4ca8a96072504549bc00000000000000000000000058b7293d981383f7b334c11775ef8474eae2424d0000000000000000000000003e08421924f3cbb27a11e1a608cbb2040c6ff368000000000000000000000000d46873ec9c2c634de34454ee9106ac811f07b8db000000000000000000000000dbd97dd5e25cf01ebab47d938fc826fa807a28c3000000000000000000000000b587a6f5d3ca5ae4376a9f21292809178fe119ba000000000000000000000000328bd7a03a407e4b355ce07002ccb226558707f8000000000000000000000000f6da0971a198250beaff75bcd88288fbc638528000000000000000000000000030589e4ed431348f3ae1eeb482f2e106c67bd51e000000000000000000000000811e417f3566e024fb451bfc4b8e3af367bb6a3a000000000000000000000000661baf2db3f8cbb3cbb269c984bc04464921ffa6000000000000000000000000550b49b83b980ab25fc9930ad82e1a7df9eac8c20000000000000000000000005516bad7a9203f7bad4aaf80c562aab71c22982a0000000000000000000000002a4e7464b74f26c9d46561d365b5188f4ecd0d9f000000000000000000000000ec91be0ac5db057976294f930b76891fb374de9b0000000000000000000000006a8490a6e711fa229a58fd56595be3e9976db1ac000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
75
+ "to": "0x603bb2c05d474794ea97805e8de69bccfb3bca12",
76
+ "type": "CALL",
77
+ "value": "0x0"
78
+ }
79
+ ],
80
+ "from": "0xefad0df6d62ea1898225150301555516edbb5cff",
81
+ "gas": "0x5557b",
82
+ "gasUsed": "0x3c88e",
83
+ "input": "0x82ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000603bb2c05d474794ea97805e8de69bccfb3bca12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000d0448aeda190962b277f292e63c49cb4325efe59b70c6068df6fafe8aff093dd558667e66032e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d6000000000000000000000000000000000000000000000000000000000003b3101fd848aa69e1633722fe249a5b7f53b094f1c9cef9f5c694b073fd1cc5850dfb00000000000000000000000000000000000000000000000000000000000000000c499b373a1f0fe1b510a63563546d2d39e206895056a5af0143c5f30d639073000000000000000000000000000000000000000000000000000000000000008023c08a6b1297210c5e24c76b9a936250a1ce2721576c26ea797c7ec35f9e46a90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000012b29004da68459a34b8b637fac9138621509aaa0cf8624c431df46b9605cca0001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061da000000000000000000000000000000000000000000000000000000006930b123000000000000000000000000b182f279fc586e7fee9224ee9afa2a4a042086ab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000009c0000000000000000000000000000000000000000000000000000000000000001cf13a6bbc6d4398dcaebdc088a3e323307bbaf0c2836e77096c1df13586dc843271145cff3b6e1d76c1608e133f98fa325bfc085739f1c17ae4ab2ebb1d39d3740000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003efdfff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005be1b74d08c3743b13ab07f02996a3f83f4630de33b7c7e7215b530f4479e87986ad27e2fc4b7f5f53cbc3d653a0ee15dfff9015e2ab7f588e94a71cf57658082f1201bf6eb17bbb177f18ab6094b1dde41ce85e5172b06e25f7a8a669158d92af66ec80ac8f4526cc1af29c51d8109c66f025c1d85b732b9b1b3457662af95116a91521b63acb4d800b216b0cc0a051f63f0b264f4057d53b7722cb3e68ac15abaf0d14a23dc684246f73e3f3286c7f36dea947f05710cb81dfb6f82c4bef85507baa1de85d977d689fb3c055da0622e8705b42b13467bca1b2c2eb1a3c095440e2ecc36af4d315455a3eaeb2b80ac96064614ac07dd10d4967615cd6f4354f94af84e56b54eabb5d834871a0bc8f4a9e9c605c4ebc87231ab1be0d37dd4017f483f54f42503f1eef9ff922ccd3131985ad3fe55c172b07e474335d3fdc3bfc87931afa552e6d147d35ba5d59df222083b18033f8780a8a1e86e1c9ef127dbe39da89386d09d2e48f5ba8dbc28b11f2a8ead851d7766a3c315646c00cb2617fe9fda00b50a48372d486df84d97e69ba4d42810cdce36a31388e2481ca39246de8a4558d5e0c284e86dc40c794759c2336a6c4f9a847e72c1f48ea8915edba145890347aba6b5e58bfda5663a746758c751303e6e797de74f9bb5184d1b6b095d75a6ab697b4d3a2d26cd705d1f8f800f8617a86719ff14185c5848dd6612cc23d868b56ae16264e41ad27dfe549da08086bf70215d758b7a621311d1021c02a995e0e846b662c1dc63384525ebfe202e69c52bab6aae7537a3ec60d9417c6ca8a293f95839f72699d16f783ac90a27e3fb17914cbdefd156ec86b99c7de29a93f10c617c73b30c52c8df0f56d2f52373d0871b58094a919cff6cf0e92de4f7792316a9d091492619953dd3cc8903cab6669b7e387f3d3c2f134d198f5599b5832cd5521feea040574889b556ebb381a5de04f21b33211d34608fe8954eb792c8dce185071b1a37538444564b6fffefca699f74856ee2fa053a6b7e29ddea7a719630edfc131f1f92f690c485ca8f31406af27e1b1cfddef6c77769ae7bf470a453d3a9b669a16df503d4cd3872642b4a14f60867b95805dbe328b33a81451e8ce612703f14045531ddfc9255f2779338a298ada2481cc3f3458a1a5e7debde9ca265010e728a639cd1840e55da91dfb3f7c36a3bd75971604400ddb4d21c5a2cfa62c2313f084d100536db43d51190e7ee5f6e35e5191b12ba72125ad2d8630cd21e978cfd774e3eb3fbc0e1fa0c1e79518f22bf6215a20743e493c482fd0307ef40a4df17fe7580bb5917104e4b7243245a7e5c4a3e411b64d7c0e98257720e3266e8a1b232f7b6bfe2b0b73ce4ef44bc5d19fd23fd5d0b3bdd3b278f948531d226569bd2a3ff1072bfe38a6665c4ff8e5c1858fc0035711b9be36baae8f8a14b9a0acdc8a377bf8e2bb232b5b3fef95d82816f22e132a72c48668f3e08a79308d1edfb7728d7285779991256a7375718c91bce58624381f41c5894768a0eaf420b351862a32bb60f43f5b8f9df163bfcda34264fec2f9be5627e63ba9019c18556952ee9173ac366facd35532eadc3483b36a90aa4aa3fe0961c471bd5ea0e83b9a7fe73a2347b92c2ba9d860083bc61453d76f4e5d2c0be708013f3ac8869c3f098efc33e14e5d0220bd2c63c351b03907481b1f27a44f9ebf41b3bfe6e39452964315b907947c4c4de7f30c9f86149cc2cbf5958c389e964f9f1488944349d96d61b0260e7b89ac59e55723c3945d132640febfe37fcecdfa3b31c49df5f115618357a1c1a0d6cfe79f075935c9647c4fabdb6a0351209ff7a0aaa340e37b83e943cc751539cab91fae219eb38941405a2c7cfe7c54db1c7a9a6811b0c83c4ee1d82db107832ee60bca463c3fb16c4c3b400aadf8dbbf53d45d75a4977261a3dc99fbe3f0c4fa0d462e54d3e387be8cb65d7676b4fab07047a7f9cc71bbfc189348e2af68d50efc6d906ba7a2044c9b1162f7bf902aea5fa54e7e840d0427a366c67b0629331baadc8ebd389ade81ee16dc4e993b380afa0a183ba9ceb00000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000fa7cdb0de9af423a0540d6cf449aea5d7030dc19000000000000000000000000d10b8cb85c74852409d9cfe7c724b1f38ccca88e00000000000000000000000026050a2d1d9fce4d03cce956e9657e9f8f2df91b00000000000000000000000091b7e897f5d99f140ff3162cd57523bd151ac0c900000000000000000000000095bc711004dfb58fcfd8c6d2b5142002a0b93d58000000000000000000000000210e3db61f84ff959c1dce0a0822266fe9d680020000000000000000000000006272e73e9a040c093b1f3c4ca8a96072504549bc00000000000000000000000058b7293d981383f7b334c11775ef8474eae2424d0000000000000000000000003e08421924f3cbb27a11e1a608cbb2040c6ff368000000000000000000000000d46873ec9c2c634de34454ee9106ac811f07b8db000000000000000000000000dbd97dd5e25cf01ebab47d938fc826fa807a28c3000000000000000000000000b587a6f5d3ca5ae4376a9f21292809178fe119ba000000000000000000000000328bd7a03a407e4b355ce07002ccb226558707f8000000000000000000000000f6da0971a198250beaff75bcd88288fbc638528000000000000000000000000030589e4ed431348f3ae1eeb482f2e106c67bd51e000000000000000000000000811e417f3566e024fb451bfc4b8e3af367bb6a3a000000000000000000000000661baf2db3f8cbb3cbb269c984bc04464921ffa6000000000000000000000000550b49b83b980ab25fc9930ad82e1a7df9eac8c20000000000000000000000005516bad7a9203f7bad4aaf80c562aab71c22982a0000000000000000000000002a4e7464b74f26c9d46561d365b5188f4ecd0d9f000000000000000000000000ec91be0ac5db057976294f930b76891fb374de9b0000000000000000000000006a8490a6e711fa229a58fd56595be3e9976db1ac000000000000000000000000000000000000000000000000000000000000003101c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
84
+ "output": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000",
85
+ "to": "0xca11bde05977b3631167028862be2a173976ca11",
86
+ "type": "CALL",
87
+ "value": "0x0"
88
+ }
@@ -0,0 +1,153 @@
1
+ {
2
+ "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
3
+ "gas": "0x5f6c7",
4
+ "gasUsed": "0x55f29",
5
+ "to": "0xca11bde05977b3631167028862be2a173976ca11",
6
+ "input": "0x82ad56cb00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005400000000000000000000000004ed7c70f96b99c776995fb64377f0d4ab3b0e1c100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000046448aeda191647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad82000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ed7c70f96b99c776995fb64377f0d4ab3b0e1c100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000046448aeda191647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000006fab233d771976276779f317271d5b4289121386000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad82000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
7
+ "output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004338736ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000",
8
+ "calls": [
9
+ {
10
+ "from": "0xca11bde05977b3631167028862be2a173976ca11",
11
+ "gas": "0x5ce68",
12
+ "gasUsed": "0xba8f",
13
+ "to": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
14
+ "input": "0x48aeda191647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad82000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
15
+ "output": "0x338736ad",
16
+ "error": "execution reverted",
17
+ "calls": [
18
+ {
19
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
20
+ "gas": "0x592a4",
21
+ "gasUsed": "0x954a",
22
+ "to": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae",
23
+ "input": "0x547b85981647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad820000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
24
+ "output": "0x338736ad",
25
+ "error": "execution reverted",
26
+ "calls": [
27
+ {
28
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
29
+ "gas": "0x547c5",
30
+ "gasUsed": "0x54",
31
+ "to": "0x0000000000000000000000000000000000000002",
32
+ "input": "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
33
+ "output": "0x5f0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
34
+ "type": "STATICCALL"
35
+ },
36
+ {
37
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
38
+ "gas": "0x54385",
39
+ "gasUsed": "0x48",
40
+ "to": "0x0000000000000000000000000000000000000002",
41
+ "input": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
42
+ "output": "0x1cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d924",
43
+ "type": "STATICCALL"
44
+ },
45
+ {
46
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
47
+ "gas": "0x53815",
48
+ "gasUsed": "0xa8",
49
+ "to": "0x0000000000000000000000000000000000000002",
50
+ "input": "0x0f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000006930e44f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000",
51
+ "output": "0xac0d552bdfc429e69ec10bf46553b860ea37f43536642da6badb93b48c6f193d",
52
+ "type": "STATICCALL"
53
+ }
54
+ ],
55
+ "value": "0x0",
56
+ "type": "DELEGATECALL"
57
+ }
58
+ ],
59
+ "value": "0x0",
60
+ "type": "CALL"
61
+ },
62
+ {
63
+ "from": "0xca11bde05977b3631167028862be2a173976ca11",
64
+ "gas": "0x512a3",
65
+ "gasUsed": "0x3eb5a",
66
+ "to": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
67
+ "input": "0x48aeda191647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000006fab233d771976276779f317271d5b4289121386000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad82000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
68
+ "calls": [
69
+ {
70
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
71
+ "gas": "0x4d9ce",
72
+ "gasUsed": "0x3c605",
73
+ "to": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae",
74
+ "input": "0x547b85981647e30298ce6a962792a1370bd0731a556dde8378f363424e3f92439c0d4e2b2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d60000000000000000000000000000000000000000000000000000000000000030112a8282e7a29901550dcde0c4a283336f1b3d0a50bee4791aa606a2450ee2d50000000000000000000000000000000000000000000000000000000000000080272a878a1591695d26b83b42bb49da699247d8e5621d64345e57d9618da818d10000000000000000000000000000000000000000000000000000000000000100186321fac0c143f932974ff3da1958ae16dc7f7b7b280b3c4d6b708ab95a945a000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000006930e44f0000000000000000000000006fab233d771976276779f317271d5b4289121386000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad820000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
75
+ "calls": [
76
+ {
77
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
78
+ "gas": "0x491d2",
79
+ "gasUsed": "0x54",
80
+ "to": "0x0000000000000000000000000000000000000002",
81
+ "input": "0xc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
82
+ "output": "0x5f0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
83
+ "type": "STATICCALL"
84
+ },
85
+ {
86
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
87
+ "gas": "0x48d92",
88
+ "gasUsed": "0x48",
89
+ "to": "0x0000000000000000000000000000000000000002",
90
+ "input": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
91
+ "output": "0x1cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d924",
92
+ "type": "STATICCALL"
93
+ },
94
+ {
95
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
96
+ "gas": "0x48223",
97
+ "gasUsed": "0xa8",
98
+ "to": "0x0000000000000000000000000000000000000002",
99
+ "input": "0x0f00e5a409cb3da35022d1e635b5ec5d16e24b0e6c147a5bf5d75b2a2a9094ae001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000006930e44f6fab233d771976276779f317271d5b428912138600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000000000",
100
+ "output": "0xaf42492b2ed73bf43c04963d5053aaa7c101d3fd94d15984d26cc190bca09da2",
101
+ "type": "STATICCALL"
102
+ },
103
+ {
104
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
105
+ "gas": "0x3f21b",
106
+ "gasUsed": "0x60",
107
+ "to": "0x0000000000000000000000000000000000000002",
108
+ "input": "0x0047757ceb90a1f74e8ad802559401f0c78b9ffeb71d0d23e82c681c148d739cc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
109
+ "output": "0x890061b3c5fb2f528788dc43fbff84485e15ca1f544044c9f30c098bdd2f424b",
110
+ "type": "STATICCALL"
111
+ },
112
+ {
113
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
114
+ "gas": "0x168d8",
115
+ "gasUsed": "0x2855",
116
+ "to": "0x0665fbb86a3aceca91df68388ec4bbe11556ddce",
117
+ "input": "0x483f31ab0000000000000000000000000000000000000000000000000000000000000003",
118
+ "output": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c",
119
+ "value": "0x0",
120
+ "type": "CALL"
121
+ },
122
+ {
123
+ "from": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
124
+ "gas": "0x12d05",
125
+ "gasUsed": "0x138e",
126
+ "to": "0x9d63c831188174d95338a847bc027095a2442550",
127
+ "input": "0x9459643300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000",
128
+ "calls": [
129
+ {
130
+ "from": "0x9d63c831188174d95338a847bc027095a2442550",
131
+ "gas": "0x12660",
132
+ "gasUsed": "0x1f0",
133
+ "to": "0x4ed7c70f96b99c776995fb64377f0d4ab3b0e1c1",
134
+ "input": "0xb67d057b",
135
+ "output": "0x0000000000000000000000000000000000000000000000000000000000000002",
136
+ "type": "STATICCALL"
137
+ }
138
+ ],
139
+ "value": "0x0",
140
+ "type": "CALL"
141
+ }
142
+ ],
143
+ "value": "0x0",
144
+ "type": "DELEGATECALL"
145
+ }
146
+ ],
147
+ "value": "0x0",
148
+ "type": "CALL"
149
+ }
150
+ ],
151
+ "value": "0x0",
152
+ "type": "CALL"
153
+ }