@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.
- package/dest/archiver/archiver.d.ts +10 -15
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +28 -21
- package/dest/archiver/archiver_store.d.ts +4 -11
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +18 -35
- package/dest/archiver/config.d.ts +3 -2
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +8 -1
- package/dest/archiver/instrumentation.d.ts +3 -1
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +11 -0
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +5 -12
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +1 -9
- package/dest/archiver/kv_archiver_store/log_store.d.ts +2 -9
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +1 -24
- package/dest/archiver/kv_archiver_store/message_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/archiver/l1/bin/retrieve-calldata.js +147 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +98 -0
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/archiver/l1/calldata_retriever.js +403 -0
- package/dest/archiver/l1/data_retrieval.d.ts +87 -0
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
- package/dest/archiver/{data_retrieval.js → l1/data_retrieval.js} +19 -89
- package/dest/archiver/l1/debug_tx.d.ts +19 -0
- package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
- package/dest/archiver/l1/debug_tx.js +73 -0
- package/dest/archiver/l1/spire_proposer.d.ts +70 -0
- package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
- package/dest/archiver/l1/spire_proposer.js +157 -0
- package/dest/archiver/l1/trace_tx.d.ts +97 -0
- package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
- package/dest/archiver/l1/trace_tx.js +91 -0
- package/dest/archiver/l1/types.d.ts +12 -0
- package/dest/archiver/l1/types.d.ts.map +1 -0
- package/dest/archiver/l1/types.js +3 -0
- package/dest/archiver/l1/validate_trace.d.ts +29 -0
- package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
- package/dest/archiver/l1/validate_trace.js +150 -0
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/test/mock_l2_block_source.js +1 -1
- package/package.json +15 -14
- package/src/archiver/archiver.ts +45 -33
- package/src/archiver/archiver_store.ts +3 -11
- package/src/archiver/archiver_store_test_suite.ts +10 -27
- package/src/archiver/config.ts +8 -7
- package/src/archiver/instrumentation.ts +14 -0
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +4 -14
- package/src/archiver/kv_archiver_store/log_store.ts +0 -27
- package/src/archiver/kv_archiver_store/message_store.ts +1 -1
- package/src/archiver/l1/README.md +98 -0
- package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
- package/src/archiver/l1/calldata_retriever.ts +531 -0
- package/src/archiver/{data_retrieval.ts → l1/data_retrieval.ts} +50 -137
- package/src/archiver/l1/debug_tx.ts +99 -0
- package/src/archiver/l1/spire_proposer.ts +160 -0
- package/src/archiver/l1/trace_tx.ts +128 -0
- package/src/archiver/l1/types.ts +13 -0
- package/src/archiver/l1/validate_trace.ts +211 -0
- package/src/index.ts +1 -1
- package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
- package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
- package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
- package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
- package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
- package/src/test/fixtures/trace_transaction-proxied.json +128 -0
- package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
- package/src/test/mock_l2_block_source.ts +1 -1
- package/dest/archiver/data_retrieval.d.ts +0 -80
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
|
@@ -17,6 +17,7 @@ export class ArchiverInstrumentation {
|
|
|
17
17
|
txsPerBlock;
|
|
18
18
|
syncDurationPerMessage;
|
|
19
19
|
syncMessageCount;
|
|
20
|
+
blockProposalTxTargetCount;
|
|
20
21
|
log;
|
|
21
22
|
constructor(telemetry, lmdbStats){
|
|
22
23
|
this.telemetry = telemetry;
|
|
@@ -81,6 +82,10 @@ export class ArchiverInstrumentation {
|
|
|
81
82
|
description: 'Number of prunes detected',
|
|
82
83
|
valueType: ValueType.INT
|
|
83
84
|
});
|
|
85
|
+
this.blockProposalTxTargetCount = meter.createUpDownCounter(Metrics.ARCHIVER_BLOCK_PROPOSAL_TX_TARGET_COUNT, {
|
|
86
|
+
description: 'Number of block proposals by tx target',
|
|
87
|
+
valueType: ValueType.INT
|
|
88
|
+
});
|
|
84
89
|
this.dbMetrics = new LmdbMetrics(meter, {
|
|
85
90
|
[Attributes.DB_DATA_TYPE]: 'archiver'
|
|
86
91
|
}, lmdbStats);
|
|
@@ -137,4 +142,10 @@ export class ArchiverInstrumentation {
|
|
|
137
142
|
updateL1BlockHeight(blockNumber) {
|
|
138
143
|
this.l1BlockHeight.record(Number(blockNumber));
|
|
139
144
|
}
|
|
145
|
+
recordBlockProposalTxTarget(target, usedTrace) {
|
|
146
|
+
this.blockProposalTxTargetCount.add(1, {
|
|
147
|
+
[Attributes.L1_BLOCK_PROPOSAL_TX_TARGET]: target.toLowerCase(),
|
|
148
|
+
[Attributes.L1_BLOCK_PROPOSAL_USED_TRACE]: usedTrace
|
|
149
|
+
});
|
|
150
|
+
}
|
|
140
151
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { L1BlockId } from '@aztec/ethereum';
|
|
2
|
-
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
1
|
+
import type { L1BlockId } from '@aztec/ethereum/l1-types';
|
|
2
|
+
import type { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { AztecAsyncKVStore, CustomRange, StoreSize } from '@aztec/kv-store';
|
|
5
5
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
@@ -7,13 +7,13 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
7
7
|
import { type L2Block, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
8
8
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceUpdateWithAddress, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UtilityFunctionWithMembershipProof } from '@aztec/stdlib/contract';
|
|
9
9
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
10
|
-
import {
|
|
10
|
+
import type { LogFilter, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
11
11
|
import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
12
12
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
13
13
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
14
14
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
15
15
|
import type { PublishedL2Block } from '../structs/published.js';
|
|
16
|
-
export declare const ARCHIVER_DB_VERSION =
|
|
16
|
+
export declare const ARCHIVER_DB_VERSION = 4;
|
|
17
17
|
export declare const MAX_FUNCTION_SIGNATURES = 1000;
|
|
18
18
|
export declare const MAX_FUNCTION_NAME_LEN = 256;
|
|
19
19
|
/**
|
|
@@ -119,13 +119,6 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
119
119
|
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
120
120
|
*/
|
|
121
121
|
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
122
|
-
/**
|
|
123
|
-
* Retrieves all private logs from up to `limit` blocks, starting from the block number `from`.
|
|
124
|
-
* @param from - The block number from which to begin retrieving logs.
|
|
125
|
-
* @param limit - The maximum number of blocks to retrieve logs from.
|
|
126
|
-
* @returns An array of private logs from the specified range of blocks.
|
|
127
|
-
*/
|
|
128
|
-
getPrivateLogs(from: BlockNumber, limit: number): Promise<PrivateLog[]>;
|
|
129
122
|
/**
|
|
130
123
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
131
124
|
* @param tags - The tags to filter the logs by.
|
|
@@ -166,4 +159,4 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
166
159
|
getPendingChainValidationStatus(): Promise<ValidateBlockResult | undefined>;
|
|
167
160
|
setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void>;
|
|
168
161
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9rdl9hcmNoaXZlcl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFlLEtBQUssbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFDVixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlDQUFpQyxFQUNqQywyQkFBMkIsRUFDM0IsNENBQTRDLEVBQzVDLGtDQUFrQyxFQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJbEQs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { ContractClassStore } from './contract_class_store.js';
|
|
|
8
8
|
import { ContractInstanceStore } from './contract_instance_store.js';
|
|
9
9
|
import { LogStore } from './log_store.js';
|
|
10
10
|
import { MessageStore } from './message_store.js';
|
|
11
|
-
export const ARCHIVER_DB_VERSION =
|
|
11
|
+
export const ARCHIVER_DB_VERSION = 4;
|
|
12
12
|
export const MAX_FUNCTION_SIGNATURES = 1000;
|
|
13
13
|
export const MAX_FUNCTION_NAME_LEN = 256;
|
|
14
14
|
/**
|
|
@@ -203,14 +203,6 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
203
203
|
return this.#messageStore.getL1ToL2Messages(checkpointNumber);
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
206
|
-
* Retrieves all private logs from up to `limit` blocks, starting from the block number `from`.
|
|
207
|
-
* @param from - The block number from which to begin retrieving logs.
|
|
208
|
-
* @param limit - The maximum number of blocks to retrieve logs from.
|
|
209
|
-
* @returns An array of private logs from the specified range of blocks.
|
|
210
|
-
*/ getPrivateLogs(from, limit) {
|
|
211
|
-
return this.#logStore.getPrivateLogs(from, limit);
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
206
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
215
207
|
* @param tags - The tags to filter the logs by.
|
|
216
208
|
* @param logsPerTag - How many logs to return per tag. Default returns everything
|
|
@@ -2,7 +2,7 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
3
|
import type { L2Block } from '@aztec/stdlib/block';
|
|
4
4
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
5
|
-
import { type LogFilter,
|
|
5
|
+
import { type LogFilter, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
6
6
|
import type { BlockStore } from './block_store.js';
|
|
7
7
|
/**
|
|
8
8
|
* A store for logs
|
|
@@ -19,13 +19,6 @@ export declare class LogStore {
|
|
|
19
19
|
*/
|
|
20
20
|
addLogs(blocks: L2Block[]): Promise<boolean>;
|
|
21
21
|
deleteLogs(blocks: L2Block[]): Promise<boolean>;
|
|
22
|
-
/**
|
|
23
|
-
* Retrieves all private logs from up to `limit` blocks, starting from the block number `start`.
|
|
24
|
-
* @param start - The block number from which to begin retrieving logs.
|
|
25
|
-
* @param limit - The maximum number of blocks to retrieve logs from.
|
|
26
|
-
* @returns An array of private logs from the specified range of blocks.
|
|
27
|
-
*/
|
|
28
|
-
getPrivateLogs(start: number, limit: number): Promise<PrivateLog[]>;
|
|
29
22
|
/**
|
|
30
23
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
31
24
|
* @param tags - The tags to filter the logs by.
|
|
@@ -46,4 +39,4 @@ export declare class LogStore {
|
|
|
46
39
|
*/
|
|
47
40
|
getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
|
|
48
41
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxFQUlMLEtBQUssU0FBUyxFQUdkLGFBQWEsRUFDZCxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5EOztHQUVHO0FBQ0gscUJBQWEsUUFBUTs7SUFTakIsT0FBTyxDQUFDLEVBQUU7SUFDVixPQUFPLENBQUMsVUFBVTtJQUZwQixZQUNVLEVBQUUsRUFBRSxpQkFBaUIsRUFDckIsVUFBVSxFQUFFLFVBQVUsRUFDOUIsZUFBZSxHQUFFLE1BQWEsRUFRL0I7SUFnQ0Q7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQTBEM0M7SUFFRCxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0F3QjlDO0lBRUQ7Ozs7O09BS0c7SUFDRyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQVFoRjtJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FRL0Q7SUF1RUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBUTdFO0NBcUdGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAGd,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IASjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAFpB,YACU,EAAE,EAAE,iBAAiB,EACrB,UAAU,EAAE,UAAU,EAC9B,eAAe,GAAE,MAAa,EAQ/B;IAgCD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA0D3C;IAED,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB9C;IAED;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAQhF;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ/D;IAuED;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAQ7E;CAqGF"}
|
|
@@ -2,7 +2,7 @@ import { INITIAL_L2_BLOCK_NUM, MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
|
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { BufferReader, numToUInt32BE } from '@aztec/foundation/serialize';
|
|
5
|
-
import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId,
|
|
5
|
+
import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, PublicLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
6
6
|
/**
|
|
7
7
|
* A store for logs
|
|
8
8
|
*/ export class LogStore {
|
|
@@ -10,7 +10,6 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
10
10
|
blockStore;
|
|
11
11
|
#logsByTag;
|
|
12
12
|
#logTagsByBlock;
|
|
13
|
-
#privateLogsByBlock;
|
|
14
13
|
#publicLogsByBlock;
|
|
15
14
|
#contractClassLogsByBlock;
|
|
16
15
|
#logsMaxPageSize;
|
|
@@ -21,7 +20,6 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
21
20
|
this.#log = createLogger('archiver:log_store');
|
|
22
21
|
this.#logsByTag = db.openMap('archiver_tagged_logs_by_tag');
|
|
23
22
|
this.#logTagsByBlock = db.openMap('archiver_log_tags_by_block');
|
|
24
|
-
this.#privateLogsByBlock = db.openMap('archiver_private_logs_by_block');
|
|
25
23
|
this.#publicLogsByBlock = db.openMap('archiver_public_logs_by_block');
|
|
26
24
|
this.#contractClassLogsByBlock = db.openMap('archiver_contract_class_logs_by_block');
|
|
27
25
|
this.#logsMaxPageSize = logsMaxPageSize;
|
|
@@ -79,8 +77,6 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
79
77
|
tagsInBlock.push(tag);
|
|
80
78
|
}
|
|
81
79
|
await this.#logTagsByBlock.set(block.number, tagsInBlock);
|
|
82
|
-
const privateLogsInBlock = block.body.txEffects.map((txEffect)=>txEffect.privateLogs).flat().map((log)=>log.toBuffer());
|
|
83
|
-
await this.#privateLogsByBlock.set(block.number, Buffer.concat(privateLogsInBlock));
|
|
84
80
|
const publicLogsInBlock = block.body.txEffects.map((txEffect, txIndex)=>[
|
|
85
81
|
numToUInt32BE(txIndex),
|
|
86
82
|
numToUInt32BE(txEffect.publicLogs.length),
|
|
@@ -104,7 +100,6 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
104
100
|
return tags ?? [];
|
|
105
101
|
}))).flat();
|
|
106
102
|
await Promise.all(blocks.map((block)=>Promise.all([
|
|
107
|
-
this.#privateLogsByBlock.delete(block.number),
|
|
108
103
|
this.#publicLogsByBlock.delete(block.number),
|
|
109
104
|
this.#logTagsByBlock.delete(block.number),
|
|
110
105
|
this.#contractClassLogsByBlock.delete(block.number)
|
|
@@ -114,24 +109,6 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
114
109
|
});
|
|
115
110
|
}
|
|
116
111
|
/**
|
|
117
|
-
* Retrieves all private logs from up to `limit` blocks, starting from the block number `start`.
|
|
118
|
-
* @param start - The block number from which to begin retrieving logs.
|
|
119
|
-
* @param limit - The maximum number of blocks to retrieve logs from.
|
|
120
|
-
* @returns An array of private logs from the specified range of blocks.
|
|
121
|
-
*/ async getPrivateLogs(start, limit) {
|
|
122
|
-
const logs = [];
|
|
123
|
-
for await (const buffer of this.#privateLogsByBlock.valuesAsync({
|
|
124
|
-
start,
|
|
125
|
-
limit
|
|
126
|
-
})){
|
|
127
|
-
const reader = new BufferReader(buffer);
|
|
128
|
-
while(reader.remainingBytes() > 0){
|
|
129
|
-
logs.push(reader.readObject(PrivateLog));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return logs;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
112
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
136
113
|
* @param tags - The tags to filter the logs by.
|
|
137
114
|
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { L1BlockId } from '@aztec/ethereum';
|
|
1
|
+
import type { L1BlockId } from '@aztec/ethereum/l1-types';
|
|
2
2
|
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { type AztecAsyncKVStore, type CustomRange } from '@aztec/kv-store';
|
|
@@ -37,4 +37,4 @@ export declare class MessageStore {
|
|
|
37
37
|
private leafToIndexKey;
|
|
38
38
|
private increaseTotalMessageCount;
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL21lc3NhZ2Vfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBELE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUd0QixLQUFLLFdBQVcsRUFFakIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBSWxCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMscUJBQWEsaUJBQWtCLFNBQVEsS0FBSzthQUd4QixZQUFZLEVBQUUsWUFBWTtJQUY1QyxZQUNFLE9BQU8sRUFBRSxNQUFNLEVBQ0MsWUFBWSxFQUFFLFlBQVksRUFJM0M7Q0FDRjtBQUVELHFCQUFhLFlBQVk7O0lBWVgsT0FBTyxDQUFDLEVBQUU7SUFBdEIsWUFBb0IsRUFBRSxFQUFFLGlCQUFpQixFQUt4QztJQUVZLDBCQUEwQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFekQ7SUFFRCxxQ0FBcUM7SUFDeEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FRL0Q7SUFFRCxvQ0FBb0M7SUFDdkIsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR2hFO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNkZoRTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRTNFO0lBRVksY0FBYyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBRy9EO0lBRVksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBdUJoRjtJQUVhLHFCQUFxQixDQUFDLEtBQUssR0FBRSxXQUFXLENBQUMsTUFBTSxDQUFNLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBS3hHO0lBRU0sb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0I3RDtJQUVNLGtDQUFrQyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJakc7SUFFRCxPQUFPLENBQUMsVUFBVTtJQUlsQixPQUFPLENBQUMsY0FBYztZQUlSLHlCQUF5QjtDQVN4QyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,YAAY,EAAE,YAAY;IAF5C,YACE,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,YAAY,EAI3C;CACF;AAED,qBAAa,YAAY;;IAYX,OAAO,CAAC,EAAE;IAAtB,YAAoB,EAAE,EAAE,iBAAiB,EAKxC;IAEY,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD;IAED,qCAAqC;IACxB,iBAAiB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQ/D;IAED,oCAAoC;IACvB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;IAED;;;;OAIG;IACI,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhE;IAED;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE3E;IAEY,cAAc,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAG/D;IAEY,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAuBhF;IAEa,qBAAqB,CAAC,KAAK,GAAE,WAAW,CAAC,MAAM,CAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAKxG;IAEM,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D;IAEM,kCAAkC,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG;IAED,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;YAIR,yBAAyB;CASxC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtY2FsbGRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcmNoaXZlci9sMS9iaW4vcmV0cmlldmUtY2FsbGRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve-calldata.d.ts","sourceRoot":"","sources":["../../../../src/archiver/l1/bin/retrieve-calldata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { createPublicClient, http } from 'viem';
|
|
6
|
+
import { mainnet } from 'viem/chains';
|
|
7
|
+
import { CalldataRetriever } from '../calldata_retriever.js';
|
|
8
|
+
const logger = createLogger('archiver:calldata-test');
|
|
9
|
+
function parseArgs() {
|
|
10
|
+
const args = process.argv.slice(2);
|
|
11
|
+
if (args.length < 2) {
|
|
12
|
+
// eslint-disable-next-line no-console
|
|
13
|
+
console.error('Usage: node index.js <rollup-address> <tx-hash> [target-committee-size]');
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.error('');
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.error('Environment variables:');
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
console.error(' ETHEREUM_HOST or RPC_URL - Ethereum RPC endpoint');
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.error('');
|
|
22
|
+
// eslint-disable-next-line no-console
|
|
23
|
+
console.error('Example:');
|
|
24
|
+
// eslint-disable-next-line no-console
|
|
25
|
+
console.error(' RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR-API-KEY \\');
|
|
26
|
+
// eslint-disable-next-line no-console
|
|
27
|
+
console.error(' node index.js 0x1234... 0xabcd... 32');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const rollupAddress = EthAddress.fromString(args[0]);
|
|
31
|
+
const txHash = args[1];
|
|
32
|
+
const targetCommitteeSize = args[2] ? parseInt(args[2], 10) : 24;
|
|
33
|
+
const rpcUrl = process.env.ETHEREUM_HOST || process.env.RPC_URL;
|
|
34
|
+
if (!rpcUrl) {
|
|
35
|
+
// eslint-disable-next-line no-console
|
|
36
|
+
console.error('Error: ETHEREUM_HOST or RPC_URL environment variable must be set');
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
if (targetCommitteeSize <= 0 || targetCommitteeSize > 256) {
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.error('Error: target-committee-size must be between 1 and 256');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
rollupAddress,
|
|
46
|
+
txHash,
|
|
47
|
+
rpcUrl,
|
|
48
|
+
targetCommitteeSize
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async function main() {
|
|
52
|
+
const { rollupAddress, txHash, rpcUrl, targetCommitteeSize } = parseArgs();
|
|
53
|
+
logger.info('Calldata Retriever Test Script');
|
|
54
|
+
logger.info('===============================');
|
|
55
|
+
logger.info(`Rollup Address: ${rollupAddress.toString()}`);
|
|
56
|
+
logger.info(`Transaction Hash: ${txHash}`);
|
|
57
|
+
logger.info(`RPC URL: ${rpcUrl}`);
|
|
58
|
+
logger.info(`Target Committee Size: ${targetCommitteeSize}`);
|
|
59
|
+
logger.info('');
|
|
60
|
+
try {
|
|
61
|
+
// Create viem public client
|
|
62
|
+
const publicClient = createPublicClient({
|
|
63
|
+
chain: mainnet,
|
|
64
|
+
transport: http(rpcUrl)
|
|
65
|
+
});
|
|
66
|
+
logger.info('Fetching transaction...');
|
|
67
|
+
const tx = await publicClient.getTransaction({
|
|
68
|
+
hash: txHash
|
|
69
|
+
});
|
|
70
|
+
if (!tx) {
|
|
71
|
+
throw new Error(`Transaction ${txHash} not found`);
|
|
72
|
+
}
|
|
73
|
+
logger.info(`Transaction found in block ${tx.blockNumber}`);
|
|
74
|
+
// For simplicity, use zero addresses for optional contract addresses
|
|
75
|
+
// In production, these would be fetched from the rollup contract or configuration
|
|
76
|
+
const slashingProposerAddress = EthAddress.ZERO;
|
|
77
|
+
const governanceProposerAddress = EthAddress.ZERO;
|
|
78
|
+
const slashFactoryAddress = undefined;
|
|
79
|
+
logger.info('Using zero addresses for governance/slashing (can be configured if needed)');
|
|
80
|
+
// Create CalldataRetriever
|
|
81
|
+
const retriever = new CalldataRetriever(publicClient, publicClient, targetCommitteeSize, undefined, logger, {
|
|
82
|
+
rollupAddress,
|
|
83
|
+
governanceProposerAddress,
|
|
84
|
+
slashingProposerAddress,
|
|
85
|
+
slashFactoryAddress
|
|
86
|
+
});
|
|
87
|
+
// Extract L2 block number from transaction logs
|
|
88
|
+
logger.info('Decoding transaction to extract L2 block number...');
|
|
89
|
+
const receipt = await publicClient.getTransactionReceipt({
|
|
90
|
+
hash: txHash
|
|
91
|
+
});
|
|
92
|
+
const l2BlockProposedEvent = receipt.logs.find((log)=>{
|
|
93
|
+
try {
|
|
94
|
+
// Try to match the L2BlockProposed event
|
|
95
|
+
return log.address.toLowerCase() === rollupAddress.toString().toLowerCase() && log.topics[0] === '0x2f1d0e696fa5186494a2f2f89a0e0bcbb15d607f6c5eac4637e07e1e5e7d3c00' // L2BlockProposed event signature
|
|
96
|
+
;
|
|
97
|
+
} catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
let l2BlockNumber;
|
|
102
|
+
if (l2BlockProposedEvent && l2BlockProposedEvent.topics[1]) {
|
|
103
|
+
// L2 block number is typically the first indexed parameter
|
|
104
|
+
l2BlockNumber = Number(BigInt(l2BlockProposedEvent.topics[1]));
|
|
105
|
+
logger.info(`L2 Block Number (from event): ${l2BlockNumber}`);
|
|
106
|
+
} else {
|
|
107
|
+
// Fallback: try to extract from transaction data or use a default
|
|
108
|
+
logger.warn('Could not extract L2 block number from event, using block number as fallback');
|
|
109
|
+
l2BlockNumber = Number(tx.blockNumber);
|
|
110
|
+
}
|
|
111
|
+
logger.info('');
|
|
112
|
+
logger.info('Retrieving block header from rollup transaction...');
|
|
113
|
+
logger.info('');
|
|
114
|
+
// For this script, we don't have blob hashes, so pass empty array
|
|
115
|
+
const result = await retriever.getCheckpointFromRollupTx(txHash, [], CheckpointNumber(l2BlockNumber));
|
|
116
|
+
logger.info(' Successfully retrieved block header!');
|
|
117
|
+
logger.info('');
|
|
118
|
+
logger.info('Block Header Details:');
|
|
119
|
+
logger.info('====================');
|
|
120
|
+
logger.info(`Checkpoint Number: ${result.checkpointNumber}`);
|
|
121
|
+
logger.info(`Block Hash: ${result.blockHash}`);
|
|
122
|
+
logger.info(`Archive Root: ${result.archiveRoot.toString()}`);
|
|
123
|
+
logger.info('');
|
|
124
|
+
logger.info('Header:');
|
|
125
|
+
logger.info(` Slot Number: ${result.header.slotNumber.toString()}`);
|
|
126
|
+
logger.info(` Timestamp: ${result.header.timestamp.toString()}`);
|
|
127
|
+
logger.info(` Coinbase: ${result.header.coinbase.toString()}`);
|
|
128
|
+
logger.info(` Fee Recipient: ${result.header.feeRecipient.toString()}`);
|
|
129
|
+
logger.info(` Total Mana Used: ${result.header.totalManaUsed.toString()}`);
|
|
130
|
+
logger.info('');
|
|
131
|
+
logger.info('Attestations:');
|
|
132
|
+
logger.info(` Count: ${result.attestations.length}`);
|
|
133
|
+
logger.info(` Non-empty attestations: ${result.attestations.filter((a)=>!a.signature.isEmpty()).length}`);
|
|
134
|
+
process.exit(0);
|
|
135
|
+
} catch (error) {
|
|
136
|
+
logger.error('Error retrieving block header:');
|
|
137
|
+
logger.error(error instanceof Error ? error.message : String(error));
|
|
138
|
+
if (error instanceof Error && error.stack) {
|
|
139
|
+
logger.debug(error.stack);
|
|
140
|
+
}
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Only run if this is the main module
|
|
145
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
146
|
+
void main();
|
|
147
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
|
|
2
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
6
|
+
import { CommitteeAttestation } from '@aztec/stdlib/block';
|
|
7
|
+
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
8
|
+
import { type Hex, type Transaction } from 'viem';
|
|
9
|
+
import type { ArchiverInstrumentation } from '../instrumentation.js';
|
|
10
|
+
/**
|
|
11
|
+
* Extracts calldata to the `propose` method of the rollup contract from an L1 transaction
|
|
12
|
+
* in order to reconstruct an L2 block header.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CalldataRetriever {
|
|
15
|
+
private readonly publicClient;
|
|
16
|
+
private readonly debugClient;
|
|
17
|
+
private readonly targetCommitteeSize;
|
|
18
|
+
private readonly instrumentation;
|
|
19
|
+
private readonly logger;
|
|
20
|
+
/** Pre-computed valid contract calls for validation */
|
|
21
|
+
private readonly validContractCalls;
|
|
22
|
+
private readonly rollupAddress;
|
|
23
|
+
constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, targetCommitteeSize: number, instrumentation: ArchiverInstrumentation | undefined, logger: Logger, contractAddresses: {
|
|
24
|
+
rollupAddress: EthAddress;
|
|
25
|
+
governanceProposerAddress: EthAddress;
|
|
26
|
+
slashingProposerAddress: EthAddress;
|
|
27
|
+
slashFactoryAddress?: EthAddress;
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Gets checkpoint header and metadata from the calldata of an L1 transaction.
|
|
31
|
+
* Tries multicall3 decoding, falls back to trace-based extraction.
|
|
32
|
+
* @param txHash - Hash of the tx that published it.
|
|
33
|
+
* @param blobHashes - Blob hashes for the checkpoint.
|
|
34
|
+
* @param checkpointNumber - Checkpoint number.
|
|
35
|
+
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
36
|
+
*/
|
|
37
|
+
getCheckpointFromRollupTx(txHash: `0x${string}`, blobHashes: Buffer[], checkpointNumber: CheckpointNumber): Promise<{
|
|
38
|
+
checkpointNumber: CheckpointNumber;
|
|
39
|
+
archiveRoot: Fr;
|
|
40
|
+
header: CheckpointHeader;
|
|
41
|
+
attestations: CommitteeAttestation[];
|
|
42
|
+
blockHash: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** Gets rollup propose calldata from a transaction */
|
|
45
|
+
protected getProposeCallData(tx: Transaction, checkpointNumber: CheckpointNumber): Promise<Hex>;
|
|
46
|
+
/**
|
|
47
|
+
* Attempts to decode a transaction as a Spire Proposer multicall wrapper.
|
|
48
|
+
* If successful, extracts the wrapped call and validates it as either multicall3 or direct propose.
|
|
49
|
+
* @param tx - The transaction to decode
|
|
50
|
+
* @returns The propose calldata if successfully decoded and validated, undefined otherwise
|
|
51
|
+
*/
|
|
52
|
+
protected tryDecodeSpireProposer(tx: Transaction): Promise<Hex | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* Attempts to decode transaction input as multicall3 and extract propose calldata.
|
|
55
|
+
* Returns undefined if validation fails.
|
|
56
|
+
* @param tx - The transaction-like object with to, input, and hash
|
|
57
|
+
* @returns The propose calldata if successfully validated, undefined otherwise
|
|
58
|
+
*/
|
|
59
|
+
protected tryDecodeMulticall3(tx: {
|
|
60
|
+
to: Hex | null | undefined;
|
|
61
|
+
input: Hex;
|
|
62
|
+
hash: Hex;
|
|
63
|
+
}): Hex | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Attempts to decode transaction as a direct propose call to the rollup contract.
|
|
66
|
+
* Returns undefined if validation fails.
|
|
67
|
+
* @param tx - The transaction-like object with to, input, and hash
|
|
68
|
+
* @returns The propose calldata if successfully validated, undefined otherwise
|
|
69
|
+
*/
|
|
70
|
+
protected tryDecodeDirectPropose(tx: {
|
|
71
|
+
to: Hex | null | undefined;
|
|
72
|
+
input: Hex;
|
|
73
|
+
hash: Hex;
|
|
74
|
+
}): Hex | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Uses debug/trace RPC to extract the actual calldata from the successful propose call.
|
|
77
|
+
* This is the definitive fallback that works for any transaction pattern.
|
|
78
|
+
* Tries trace_transaction first, then falls back to debug_traceTransaction.
|
|
79
|
+
* @param txHash - The transaction hash to trace
|
|
80
|
+
* @returns The propose calldata from the successful call
|
|
81
|
+
*/
|
|
82
|
+
protected extractCalldataViaTrace(txHash: Hex): Promise<Hex>;
|
|
83
|
+
/**
|
|
84
|
+
* Decodes propose calldata and builds the checkpoint header structure.
|
|
85
|
+
* @param proposeCalldata - The propose function calldata
|
|
86
|
+
* @param blockHash - The L1 block hash containing this transaction
|
|
87
|
+
* @param checkpointNumber - The checkpoint number
|
|
88
|
+
* @returns The decoded checkpoint header and metadata
|
|
89
|
+
*/
|
|
90
|
+
protected decodeAndBuildCheckpoint(proposeCalldata: Hex, blockHash: Hex, checkpointNumber: CheckpointNumber): {
|
|
91
|
+
checkpointNumber: CheckpointNumber;
|
|
92
|
+
archiveRoot: Fr;
|
|
93
|
+
header: CheckpointHeader;
|
|
94
|
+
attestations: CommitteeAttestation[];
|
|
95
|
+
blockHash: string;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxXQUFXLEVBQXFFLE1BQU0sTUFBTSxDQUFDO0FBRXJILE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNckU7OztHQUdHO0FBQ0gscUJBQWEsaUJBQWlCO0lBTzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7SUFDNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7SUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlO0lBQ2hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQVZ6Qix1REFBdUQ7SUFDdkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBc0I7SUFFekQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQWE7SUFFM0MsWUFDbUIsWUFBWSxFQUFFLGdCQUFnQixFQUM5QixXQUFXLEVBQUUscUJBQXFCLEVBQ2xDLG1CQUFtQixFQUFFLE1BQU0sRUFDM0IsZUFBZSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsRUFDcEQsTUFBTSxFQUFFLE1BQU0sRUFDL0IsaUJBQWlCLEVBQUU7UUFDakIsYUFBYSxFQUFFLFVBQVUsQ0FBQztRQUMxQix5QkFBeUIsRUFBRSxVQUFVLENBQUM7UUFDdEMsdUJBQXVCLEVBQUUsVUFBVSxDQUFDO1FBQ3BDLG1CQUFtQixDQUFDLEVBQUUsVUFBVSxDQUFDO0tBQ2xDLEVBSUY7SUFFRDs7Ozs7OztPQU9HO0lBQ0cseUJBQXlCLENBQzdCLE1BQU0sRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUNyQixVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQ3BCLGdCQUFnQixFQUFFLGdCQUFnQixHQUNqQyxPQUFPLENBQUM7UUFDVCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUNuQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUN6QixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztRQUNyQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0tBQ25CLENBQUMsQ0FLRDtJQUVELHNEQUFzRDtJQUN0RCxVQUFnQixrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0ErQnBHO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFnQixzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBNEJoRjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRTtRQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFBO0tBQUUsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQXVGeEc7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUU7UUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUM7UUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1FBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQTtLQUFFLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0EwQjNHO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBZ0IsdUJBQXVCLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBeUNqRTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyx3QkFBd0IsQ0FDaEMsZUFBZSxFQUFFLEdBQUcsRUFDcEIsU0FBUyxFQUFFLEdBQUcsRUFDZCxnQkFBZ0IsRUFBRSxnQkFBZ0IsR0FDakM7UUFDRCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUNuQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUN6QixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztRQUNyQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0tBQ25CLENBNkNBO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}
|