@aztec/archiver 0.84.0 → 0.85.0-alpha-testnet.1
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 +4 -3
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +9 -2
- package/dest/archiver/archiver_store.d.ts +5 -5
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +33 -7
- package/dest/archiver/data_retrieval.d.ts +0 -3
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +0 -3
- package/dest/archiver/kv_archiver_store/block_store.d.ts +4 -5
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +4 -3
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +3 -3
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +2 -2
- package/dest/test/mock_l1_to_l2_message_source.d.ts +3 -1
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +13 -0
- package/dest/test/mock_l2_block_source.d.ts +4 -2
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +7 -3
- package/package.json +13 -15
- package/src/archiver/archiver.ts +16 -5
- package/src/archiver/archiver_store.ts +5 -5
- package/src/archiver/archiver_store_test_suite.ts +13 -7
- package/src/archiver/data_retrieval.ts +0 -5
- package/src/archiver/kv_archiver_store/block_store.ts +6 -5
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +2 -2
- package/src/test/mock_l1_to_l2_message_source.ts +12 -1
- package/src/test/mock_l2_block_source.ts +12 -3
|
@@ -6,14 +6,14 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
import { type Logger } from '@aztec/foundation/log';
|
|
7
7
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
-
import { type
|
|
9
|
+
import { type L2Block, type L2BlockSource, type L2Tips } from '@aztec/stdlib/block';
|
|
10
10
|
import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
11
11
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
12
12
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
13
13
|
import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
|
|
14
14
|
import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
15
15
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
16
|
-
import { type BlockHeader,
|
|
16
|
+
import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
17
17
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
18
18
|
import { EventEmitter } from 'events';
|
|
19
19
|
import type { ArchiverDataStore } from './archiver_store.js';
|
|
@@ -83,6 +83,7 @@ export declare class Archiver extends EventEmitter implements ArchiveSource, Tra
|
|
|
83
83
|
* @param blockUntilSynced - If true, blocks until the archiver has fully synced.
|
|
84
84
|
*/
|
|
85
85
|
start(blockUntilSynced: boolean): Promise<void>;
|
|
86
|
+
syncImmediate(): Promise<void>;
|
|
86
87
|
private syncSafe;
|
|
87
88
|
/**
|
|
88
89
|
* Fetches logs from L1 contracts and processes them.
|
|
@@ -132,7 +133,7 @@ export declare class Archiver extends EventEmitter implements ArchiveSource, Tra
|
|
|
132
133
|
*/
|
|
133
134
|
getBlock(number: number): Promise<L2Block | undefined>;
|
|
134
135
|
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
|
|
135
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
136
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
136
137
|
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
|
|
137
138
|
/**
|
|
138
139
|
* Retrieves all private logs from up to `limit` blocks, starting from the block number `from`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAkB,KAAK,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAclE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,7 +84,7 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
84
84
|
rollup.getL1StartBlock(),
|
|
85
85
|
rollup.getL1GenesisTime()
|
|
86
86
|
]);
|
|
87
|
-
const { aztecEpochDuration: epochDuration, aztecSlotDuration: slotDuration, ethereumSlotDuration } = config;
|
|
87
|
+
const { aztecEpochDuration: epochDuration, aztecSlotDuration: slotDuration, ethereumSlotDuration, aztecProofSubmissionWindow: proofSubmissionWindow } = config;
|
|
88
88
|
const archiver = new Archiver(publicClient, config.l1Contracts, archiverStore, {
|
|
89
89
|
pollingIntervalMs: config.archiverPollingIntervalMS ?? 10_000,
|
|
90
90
|
batchSize: config.archiverBatchSize ?? 100
|
|
@@ -93,7 +93,8 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
93
93
|
l1GenesisTime,
|
|
94
94
|
epochDuration,
|
|
95
95
|
slotDuration,
|
|
96
|
-
ethereumSlotDuration
|
|
96
|
+
ethereumSlotDuration,
|
|
97
|
+
proofSubmissionWindow
|
|
97
98
|
});
|
|
98
99
|
await archiver.start(blockUntilSynced);
|
|
99
100
|
return archiver;
|
|
@@ -113,6 +114,12 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
113
114
|
NoBlobBodiesFoundError));
|
|
114
115
|
this.runningPromise.start();
|
|
115
116
|
}
|
|
117
|
+
syncImmediate() {
|
|
118
|
+
if (!this.runningPromise) {
|
|
119
|
+
throw new Error('Archiver is not running');
|
|
120
|
+
}
|
|
121
|
+
return this.runningPromise.trigger();
|
|
122
|
+
}
|
|
116
123
|
async syncSafe(initialRun) {
|
|
117
124
|
try {
|
|
118
125
|
await this.sync(initialRun);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import type {
|
|
4
|
+
import type { L2Block } from '@aztec/stdlib/block';
|
|
5
5
|
import type { ContractClassPublic, ContractInstanceUpdateWithAddress, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UtilityFunctionWithMembershipProof } from '@aztec/stdlib/contract';
|
|
6
6
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
7
7
|
import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
8
8
|
import type { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
9
|
-
import { BlockHeader, type
|
|
9
|
+
import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
10
10
|
import type { DataRetrieval } from './structs/data_retrieval.js';
|
|
11
11
|
import type { PublishedL2Block } from './structs/published.js';
|
|
12
12
|
/**
|
|
@@ -55,10 +55,10 @@ export interface ArchiverDataStore {
|
|
|
55
55
|
getBlockHeaders(from: number, limit: number): Promise<BlockHeader[]>;
|
|
56
56
|
/**
|
|
57
57
|
* Gets a tx effect.
|
|
58
|
-
* @param txHash - The
|
|
59
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
58
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
59
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
60
60
|
*/
|
|
61
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
61
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
62
62
|
/**
|
|
63
63
|
* Gets a receipt of a settled tx.
|
|
64
64
|
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,mBAAmB,EACnB,iCAAiC,EACjC,2BAA2B,EAC3B,4CAA4C,EAC5C,kCAAkC,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExD;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErE;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEpE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAErE;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAElE;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAEpE;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtD;;;;OAIG;IACH,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEtE;;;OAGG;IACH,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAEtD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEjE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE/E;;;OAGG;IACH,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C;;;OAGG;IACH,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;OAGG;IACH,4BAA4B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;OAGG;IACH,8BAA8B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE/C;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElH,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F,qBAAqB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAEpE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjG,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpG;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,iCAAiC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7G,6BAA6B,CAAC,IAAI,EAAE,iCAAiC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChH;;OAEG;IACH,YAAY,CACV,eAAe,EAAE,EAAE,EACnB,gBAAgB,EAAE,4CAA4C,EAAE,EAChE,gBAAgB,EAAE,kCAAkC,EAAE,GACrD,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;IAElH,+DAA+D;IAC/D,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAKrC,kCAAkC,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAErG;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvF,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,wCAAwC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AA0BA,OAAO,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAGnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AA0BA,OAAO,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAGnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAyvB/D"}
|
|
@@ -213,14 +213,40 @@ import { TxEffect, TxHash } from '@aztec/stdlib/tx';
|
|
|
213
213
|
await store.addBlocks(blocks);
|
|
214
214
|
});
|
|
215
215
|
it.each([
|
|
216
|
-
()=>
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
216
|
+
()=>({
|
|
217
|
+
data: blocks[0].block.body.txEffects[0],
|
|
218
|
+
block: blocks[0].block,
|
|
219
|
+
txIndexInBlock: 0
|
|
220
|
+
}),
|
|
221
|
+
()=>({
|
|
222
|
+
data: blocks[9].block.body.txEffects[3],
|
|
223
|
+
block: blocks[9].block,
|
|
224
|
+
txIndexInBlock: 3
|
|
225
|
+
}),
|
|
226
|
+
()=>({
|
|
227
|
+
data: blocks[3].block.body.txEffects[1],
|
|
228
|
+
block: blocks[3].block,
|
|
229
|
+
txIndexInBlock: 1
|
|
230
|
+
}),
|
|
231
|
+
()=>({
|
|
232
|
+
data: blocks[5].block.body.txEffects[2],
|
|
233
|
+
block: blocks[5].block,
|
|
234
|
+
txIndexInBlock: 2
|
|
235
|
+
}),
|
|
236
|
+
()=>({
|
|
237
|
+
data: blocks[1].block.body.txEffects[0],
|
|
238
|
+
block: blocks[1].block,
|
|
239
|
+
txIndexInBlock: 0
|
|
240
|
+
})
|
|
221
241
|
])('retrieves a previously stored transaction', async (getExpectedTx)=>{
|
|
222
|
-
const
|
|
223
|
-
const
|
|
242
|
+
const { data, block, txIndexInBlock } = getExpectedTx();
|
|
243
|
+
const expectedTx = {
|
|
244
|
+
data,
|
|
245
|
+
l2BlockNumber: block.number,
|
|
246
|
+
l2BlockHash: (await block.hash()).toString(),
|
|
247
|
+
txIndexInBlock
|
|
248
|
+
};
|
|
249
|
+
const actualTx = await store.getTxEffect(data.txHash);
|
|
224
250
|
expect(actualTx).toEqual(expectedTx);
|
|
225
251
|
});
|
|
226
252
|
it('returns undefined if tx is not found', async ()=>{
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
1
|
import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
4
2
|
import type { ViemPublicClient } from '@aztec/ethereum';
|
|
5
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -57,7 +55,6 @@ export declare function retrieveL2ProofsFromRollup(publicClient: ViemPublicClien
|
|
|
57
55
|
export type SubmitBlockProof = {
|
|
58
56
|
archiveRoot: Fr;
|
|
59
57
|
proverId: Fr;
|
|
60
|
-
aggregationObject: Buffer;
|
|
61
58
|
proof: Proof;
|
|
62
59
|
};
|
|
63
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -271,11 +271,9 @@ export async function getL1BlockTime(publicClient, blockNumber) {
|
|
|
271
271
|
});
|
|
272
272
|
let proverId;
|
|
273
273
|
let archiveRoot;
|
|
274
|
-
let aggregationObject;
|
|
275
274
|
let proof;
|
|
276
275
|
if (functionName === 'submitEpochRootProof') {
|
|
277
276
|
const [decodedArgs] = args;
|
|
278
|
-
aggregationObject = Buffer.from(hexToBytes(decodedArgs.aggregationObject));
|
|
279
277
|
proverId = Fr.fromHexString(decodedArgs.args.proverId);
|
|
280
278
|
archiveRoot = Fr.fromHexString(decodedArgs.args.endArchive);
|
|
281
279
|
proof = Proof.fromBuffer(Buffer.from(hexToBytes(decodedArgs.proof)));
|
|
@@ -287,7 +285,6 @@ export async function getL1BlockTime(publicClient, blockNumber) {
|
|
|
287
285
|
}
|
|
288
286
|
return {
|
|
289
287
|
proverId,
|
|
290
|
-
aggregationObject,
|
|
291
288
|
archiveRoot,
|
|
292
289
|
proof
|
|
293
290
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import { type
|
|
4
|
-
import { BlockHeader, TxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
3
|
+
import { BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
5
4
|
import type { PublishedL2Block } from '../structs/published.js';
|
|
6
5
|
export { TxReceipt, type TxEffect, type TxHash } from '@aztec/stdlib/tx';
|
|
7
6
|
/**
|
|
@@ -48,10 +47,10 @@ export declare class BlockStore {
|
|
|
48
47
|
private getBlockFromBlockStorage;
|
|
49
48
|
/**
|
|
50
49
|
* Gets a tx effect.
|
|
51
|
-
* @param txHash - The
|
|
52
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
50
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
51
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
53
52
|
*/
|
|
54
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
53
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
55
54
|
/**
|
|
56
55
|
* Gets a receipt of a settled tx.
|
|
57
56
|
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAA6C,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAA6C,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExF,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAWzE;;GAEG;AACH,qBAAa,UAAU;;IAwBT,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IAUzC;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B7D;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IA0BvD;;;;;OAKG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;IASvF;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAQ1E;;;;;OAKG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC;YAM1E,wBAAwB;IAetC;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAmBvE;;;;OAIG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAuBzE;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAI1F;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAI7G;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhD;;;OAGG;IACH,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItD,uBAAuB,CAAC,aAAa,EAAE,MAAM;IAIvC,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/C,sBAAsB,CAAC,WAAW,EAAE,MAAM;CAe3C"}
|
|
@@ -140,8 +140,8 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
142
|
* Gets a tx effect.
|
|
143
|
-
* @param txHash - The
|
|
144
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
143
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
144
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
145
145
|
*/ async getTxEffect(txHash) {
|
|
146
146
|
const [blockNumber, txIndex] = await this.getTxLocation(txHash) ?? [];
|
|
147
147
|
if (typeof blockNumber !== 'number' || typeof txIndex !== 'number') {
|
|
@@ -154,7 +154,8 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
154
154
|
return {
|
|
155
155
|
data: block.block.body.txEffects[txIndex],
|
|
156
156
|
l2BlockNumber: block.block.number,
|
|
157
|
-
l2BlockHash: (await block.block.hash()).toString()
|
|
157
|
+
l2BlockHash: (await block.block.hash()).toString(),
|
|
158
|
+
txIndexInBlock: txIndex
|
|
158
159
|
};
|
|
159
160
|
}
|
|
160
161
|
/**
|
|
@@ -68,10 +68,10 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
68
68
|
getBlockHeaders(start: number, limit: number): Promise<BlockHeader[]>;
|
|
69
69
|
/**
|
|
70
70
|
* Gets a tx effect.
|
|
71
|
-
* @param txHash - The
|
|
72
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
71
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
72
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
73
73
|
*/
|
|
74
|
-
getTxEffect(txHash: TxHash): Promise<import("@aztec/stdlib/
|
|
74
|
+
getTxEffect(txHash: TxHash): Promise<import("@aztec/stdlib/tx").IndexedTxEffect | undefined>;
|
|
75
75
|
/**
|
|
76
76
|
* Gets a receipt of a settled tx.
|
|
77
77
|
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
@@ -122,8 +122,8 @@ export const ARCHIVER_DB_VERSION = 1;
|
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
124
|
* Gets a tx effect.
|
|
125
|
-
* @param txHash - The
|
|
126
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
125
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
126
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
127
127
|
*/ getTxEffect(txHash) {
|
|
128
128
|
return this.#blockStore.getTxEffect(txHash);
|
|
129
129
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { L2Tips } from '@aztec/stdlib/block';
|
|
2
3
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
3
4
|
/**
|
|
4
5
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
@@ -12,5 +13,6 @@ export declare class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
|
12
13
|
getL1ToL2Messages(blockNumber: bigint): Promise<Fr[]>;
|
|
13
14
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
14
15
|
getBlockNumber(): Promise<number>;
|
|
16
|
+
getL2Tips(): Promise<L2Tips>;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=mock_l1_to_l2_message_source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mock_l1_to_l2_message_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l1_to_l2_message_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAGrD,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,gBAAgB,CAA2B;gBAE/B,WAAW,EAAE,MAAM;IAEhC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;IAIjD,cAAc,CAAC,WAAW,EAAE,MAAM;IAIzC,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIrD,qBAAqB,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAS7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
1
2
|
/**
|
|
2
3
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
3
4
|
*/ export class MockL1ToL2MessageSource {
|
|
@@ -22,4 +23,16 @@
|
|
|
22
23
|
getBlockNumber() {
|
|
23
24
|
return Promise.resolve(this.blockNumber);
|
|
24
25
|
}
|
|
26
|
+
getL2Tips() {
|
|
27
|
+
const number = this.blockNumber;
|
|
28
|
+
const tip = {
|
|
29
|
+
number,
|
|
30
|
+
hash: new Fr(number).toString()
|
|
31
|
+
};
|
|
32
|
+
return Promise.resolve({
|
|
33
|
+
latest: tip,
|
|
34
|
+
proven: tip,
|
|
35
|
+
finalized: tip
|
|
36
|
+
});
|
|
37
|
+
}
|
|
25
38
|
}
|
|
@@ -60,13 +60,14 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
60
60
|
getBlockHeadersForEpoch(epochNumber: bigint): Promise<BlockHeader[]>;
|
|
61
61
|
/**
|
|
62
62
|
* Gets a tx effect.
|
|
63
|
-
* @param txHash - The hash of
|
|
64
|
-
* @returns The requested tx effect.
|
|
63
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
64
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
65
65
|
*/
|
|
66
66
|
getTxEffect(txHash: TxHash): Promise<{
|
|
67
67
|
data: import("@aztec/stdlib/tx").TxEffect;
|
|
68
68
|
l2BlockNumber: number;
|
|
69
69
|
l2BlockHash: `0x${string}`;
|
|
70
|
+
txIndexInBlock: number;
|
|
70
71
|
} | undefined>;
|
|
71
72
|
/**
|
|
72
73
|
* Gets a receipt of a settled tx.
|
|
@@ -95,5 +96,6 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
95
96
|
getContractClassIds(): Promise<Fr[]>;
|
|
96
97
|
getDebugFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string | undefined>;
|
|
97
98
|
registerContractFunctionSignatures(_address: AztecAddress, _signatures: string[]): Promise<void>;
|
|
99
|
+
syncImmediate(): Promise<void>;
|
|
98
100
|
}
|
|
99
101
|
//# sourceMappingURL=mock_l2_block_source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAe,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAEjF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa,EAAE,kBAAkB;IACzE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,GAAG,CAAiD;IAE/C,YAAY,CAAC,SAAS,EAAE,MAAM;IAUpC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;IAK3B,YAAY,CAAC,SAAS,EAAE,MAAM;IAK9B,oBAAoB,CAAC,iBAAiB,EAAE,MAAM;IAIrD;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIvC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzC;;;OAGG;IACI,cAAc;IAId,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAQjD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;;;;;;;;;IAa7E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAI3E,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU1D,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIpE;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,8 +97,8 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
99
|
* Gets a tx effect.
|
|
100
|
-
* @param txHash - The hash of
|
|
101
|
-
* @returns The requested tx effect.
|
|
100
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
101
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
102
102
|
*/ async getTxEffect(txHash) {
|
|
103
103
|
const match = this.l2Blocks.flatMap((b)=>b.body.txEffects.map((tx)=>[
|
|
104
104
|
tx,
|
|
@@ -111,7 +111,8 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
111
111
|
return {
|
|
112
112
|
data: txEffect,
|
|
113
113
|
l2BlockNumber: block.number,
|
|
114
|
-
l2BlockHash: (await block.hash()).toString()
|
|
114
|
+
l2BlockHash: (await block.hash()).toString(),
|
|
115
|
+
txIndexInBlock: block.body.txEffects.indexOf(txEffect)
|
|
115
116
|
};
|
|
116
117
|
}
|
|
117
118
|
/**
|
|
@@ -196,4 +197,7 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
196
197
|
registerContractFunctionSignatures(_address, _signatures) {
|
|
197
198
|
return Promise.resolve();
|
|
198
199
|
}
|
|
200
|
+
syncImmediate() {
|
|
201
|
+
return Promise.resolve();
|
|
202
|
+
}
|
|
199
203
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.85.0-alpha-testnet.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -64,24 +64,23 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/blob-lib": "0.
|
|
68
|
-
"@aztec/blob-sink": "0.
|
|
69
|
-
"@aztec/constants": "0.
|
|
70
|
-
"@aztec/ethereum": "0.
|
|
71
|
-
"@aztec/foundation": "0.
|
|
72
|
-
"@aztec/kv-store": "0.
|
|
73
|
-
"@aztec/l1-artifacts": "0.
|
|
74
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
75
|
-
"@aztec/protocol-contracts": "0.
|
|
76
|
-
"@aztec/stdlib": "0.
|
|
77
|
-
"@aztec/telemetry-client": "0.
|
|
67
|
+
"@aztec/blob-lib": "0.85.0-alpha-testnet.1",
|
|
68
|
+
"@aztec/blob-sink": "0.85.0-alpha-testnet.1",
|
|
69
|
+
"@aztec/constants": "0.85.0-alpha-testnet.1",
|
|
70
|
+
"@aztec/ethereum": "0.85.0-alpha-testnet.1",
|
|
71
|
+
"@aztec/foundation": "0.85.0-alpha-testnet.1",
|
|
72
|
+
"@aztec/kv-store": "0.85.0-alpha-testnet.1",
|
|
73
|
+
"@aztec/l1-artifacts": "0.85.0-alpha-testnet.1",
|
|
74
|
+
"@aztec/noir-protocol-circuits-types": "0.85.0-alpha-testnet.1",
|
|
75
|
+
"@aztec/protocol-contracts": "0.85.0-alpha-testnet.1",
|
|
76
|
+
"@aztec/stdlib": "0.85.0-alpha-testnet.1",
|
|
77
|
+
"@aztec/telemetry-client": "0.85.0-alpha-testnet.1",
|
|
78
78
|
"debug": "^4.3.4",
|
|
79
79
|
"lodash.groupby": "^4.6.0",
|
|
80
80
|
"lodash.omit": "^4.5.0",
|
|
81
81
|
"tsc-watch": "^6.0.0",
|
|
82
82
|
"tslib": "^2.5.0",
|
|
83
|
-
"viem": "2.23.7"
|
|
84
|
-
"ws": "^8.13.0"
|
|
83
|
+
"viem": "2.23.7"
|
|
85
84
|
},
|
|
86
85
|
"devDependencies": {
|
|
87
86
|
"@jest/globals": "^29.5.0",
|
|
@@ -90,7 +89,6 @@
|
|
|
90
89
|
"@types/lodash.groupby": "^4.6.9",
|
|
91
90
|
"@types/lodash.omit": "^4.5.7",
|
|
92
91
|
"@types/node": "^18.15.11",
|
|
93
|
-
"@types/ws": "^8.5.4",
|
|
94
92
|
"concurrently": "^8.0.1",
|
|
95
93
|
"jest": "^29.5.0",
|
|
96
94
|
"jest-mock-extended": "^3.0.4",
|
package/src/archiver/archiver.ts
CHANGED
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
20
20
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
21
|
import {
|
|
22
|
-
type InBlock,
|
|
23
22
|
type L2Block,
|
|
24
23
|
type L2BlockId,
|
|
25
24
|
type L2BlockSource,
|
|
@@ -48,7 +47,7 @@ import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec
|
|
|
48
47
|
import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
|
|
49
48
|
import { ContractClassLog, type LogFilter, type PrivateLog, type PublicLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
50
49
|
import type { InboxLeaf, L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
51
|
-
import { type BlockHeader,
|
|
50
|
+
import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
52
51
|
import { Attributes, type TelemetryClient, type Traceable, type Tracer, trackSpan } from '@aztec/telemetry-client';
|
|
53
52
|
|
|
54
53
|
import { EventEmitter } from 'events';
|
|
@@ -151,7 +150,12 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
151
150
|
rollup.getL1GenesisTime(),
|
|
152
151
|
] as const);
|
|
153
152
|
|
|
154
|
-
const {
|
|
153
|
+
const {
|
|
154
|
+
aztecEpochDuration: epochDuration,
|
|
155
|
+
aztecSlotDuration: slotDuration,
|
|
156
|
+
ethereumSlotDuration,
|
|
157
|
+
aztecProofSubmissionWindow: proofSubmissionWindow,
|
|
158
|
+
} = config;
|
|
155
159
|
|
|
156
160
|
const archiver = new Archiver(
|
|
157
161
|
publicClient,
|
|
@@ -163,7 +167,7 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
163
167
|
},
|
|
164
168
|
deps.blobSinkClient,
|
|
165
169
|
await ArchiverInstrumentation.new(deps.telemetry, () => archiverStore.estimateSize()),
|
|
166
|
-
{ l1StartBlock, l1GenesisTime, epochDuration, slotDuration, ethereumSlotDuration },
|
|
170
|
+
{ l1StartBlock, l1GenesisTime, epochDuration, slotDuration, ethereumSlotDuration, proofSubmissionWindow },
|
|
167
171
|
);
|
|
168
172
|
await archiver.start(blockUntilSynced);
|
|
169
173
|
return archiver;
|
|
@@ -197,6 +201,13 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
197
201
|
this.runningPromise.start();
|
|
198
202
|
}
|
|
199
203
|
|
|
204
|
+
public syncImmediate() {
|
|
205
|
+
if (!this.runningPromise) {
|
|
206
|
+
throw new Error('Archiver is not running');
|
|
207
|
+
}
|
|
208
|
+
return this.runningPromise.trigger();
|
|
209
|
+
}
|
|
210
|
+
|
|
200
211
|
private async syncSafe(initialRun: boolean) {
|
|
201
212
|
try {
|
|
202
213
|
await this.sync(initialRun);
|
|
@@ -1117,7 +1128,7 @@ class ArchiverStoreHelper
|
|
|
1117
1128
|
getBlockHeaders(from: number, limit: number): Promise<BlockHeader[]> {
|
|
1118
1129
|
return this.store.getBlockHeaders(from, limit);
|
|
1119
1130
|
}
|
|
1120
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
1131
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined> {
|
|
1121
1132
|
return this.store.getTxEffect(txHash);
|
|
1122
1133
|
}
|
|
1123
1134
|
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined> {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import type {
|
|
4
|
+
import type { L2Block } from '@aztec/stdlib/block';
|
|
5
5
|
import type {
|
|
6
6
|
ContractClassPublic,
|
|
7
7
|
ContractInstanceUpdateWithAddress,
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
13
13
|
import type { LogFilter, PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
14
14
|
import type { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
15
|
-
import { BlockHeader, type
|
|
15
|
+
import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
16
16
|
|
|
17
17
|
import type { DataRetrieval } from './structs/data_retrieval.js';
|
|
18
18
|
import type { PublishedL2Block } from './structs/published.js';
|
|
@@ -68,10 +68,10 @@ export interface ArchiverDataStore {
|
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Gets a tx effect.
|
|
71
|
-
* @param txHash - The
|
|
72
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
71
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
72
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
73
73
|
*/
|
|
74
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
74
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* Gets a receipt of a settled tx.
|
|
@@ -223,14 +223,20 @@ export function describeArchiverDataStore(
|
|
|
223
223
|
});
|
|
224
224
|
|
|
225
225
|
it.each([
|
|
226
|
-
() =>
|
|
227
|
-
() =>
|
|
228
|
-
() =>
|
|
229
|
-
() =>
|
|
230
|
-
() =>
|
|
226
|
+
() => ({ data: blocks[0].block.body.txEffects[0], block: blocks[0].block, txIndexInBlock: 0 }),
|
|
227
|
+
() => ({ data: blocks[9].block.body.txEffects[3], block: blocks[9].block, txIndexInBlock: 3 }),
|
|
228
|
+
() => ({ data: blocks[3].block.body.txEffects[1], block: blocks[3].block, txIndexInBlock: 1 }),
|
|
229
|
+
() => ({ data: blocks[5].block.body.txEffects[2], block: blocks[5].block, txIndexInBlock: 2 }),
|
|
230
|
+
() => ({ data: blocks[1].block.body.txEffects[0], block: blocks[1].block, txIndexInBlock: 0 }),
|
|
231
231
|
])('retrieves a previously stored transaction', async getExpectedTx => {
|
|
232
|
-
const
|
|
233
|
-
const
|
|
232
|
+
const { data, block, txIndexInBlock } = getExpectedTx();
|
|
233
|
+
const expectedTx = {
|
|
234
|
+
data,
|
|
235
|
+
l2BlockNumber: block.number,
|
|
236
|
+
l2BlockHash: (await block.hash()).toString(),
|
|
237
|
+
txIndexInBlock,
|
|
238
|
+
};
|
|
239
|
+
const actualTx = await store.getTxEffect(data.txHash);
|
|
234
240
|
expect(actualTx).toEqual(expectedTx);
|
|
235
241
|
});
|
|
236
242
|
|
|
@@ -370,7 +370,6 @@ export async function retrieveL2ProofsFromRollup(
|
|
|
370
370
|
export type SubmitBlockProof = {
|
|
371
371
|
archiveRoot: Fr;
|
|
372
372
|
proverId: Fr;
|
|
373
|
-
aggregationObject: Buffer;
|
|
374
373
|
proof: Proof;
|
|
375
374
|
};
|
|
376
375
|
|
|
@@ -393,7 +392,6 @@ export async function getProofFromSubmitProofTx(
|
|
|
393
392
|
|
|
394
393
|
let proverId: Fr;
|
|
395
394
|
let archiveRoot: Fr;
|
|
396
|
-
let aggregationObject: Buffer;
|
|
397
395
|
let proof: Proof;
|
|
398
396
|
|
|
399
397
|
if (functionName === 'submitEpochRootProof') {
|
|
@@ -403,12 +401,10 @@ export async function getProofFromSubmitProofTx(
|
|
|
403
401
|
end: bigint;
|
|
404
402
|
args: EpochProofPublicInputArgs;
|
|
405
403
|
fees: readonly Hex[];
|
|
406
|
-
aggregationObject: Hex;
|
|
407
404
|
proof: Hex;
|
|
408
405
|
},
|
|
409
406
|
];
|
|
410
407
|
|
|
411
|
-
aggregationObject = Buffer.from(hexToBytes(decodedArgs.aggregationObject));
|
|
412
408
|
proverId = Fr.fromHexString(decodedArgs.args.proverId);
|
|
413
409
|
archiveRoot = Fr.fromHexString(decodedArgs.args.endArchive);
|
|
414
410
|
proof = Proof.fromBuffer(Buffer.from(hexToBytes(decodedArgs.proof)));
|
|
@@ -422,7 +418,6 @@ export async function getProofFromSubmitProofTx(
|
|
|
422
418
|
|
|
423
419
|
return {
|
|
424
420
|
proverId,
|
|
425
|
-
aggregationObject,
|
|
426
421
|
archiveRoot,
|
|
427
422
|
proof,
|
|
428
423
|
};
|
|
@@ -4,9 +4,9 @@ import { toArray } from '@aztec/foundation/iterable';
|
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncSingleton, Range } from '@aztec/kv-store';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import { Body,
|
|
7
|
+
import { Body, L2Block, L2BlockHash } from '@aztec/stdlib/block';
|
|
8
8
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
9
|
-
import { BlockHeader,
|
|
9
|
+
import { BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
10
10
|
|
|
11
11
|
import type { L1PublishedData, PublishedL2Block } from '../structs/published.js';
|
|
12
12
|
|
|
@@ -180,10 +180,10 @@ export class BlockStore {
|
|
|
180
180
|
|
|
181
181
|
/**
|
|
182
182
|
* Gets a tx effect.
|
|
183
|
-
* @param txHash - The
|
|
184
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
183
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
184
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
185
185
|
*/
|
|
186
|
-
async getTxEffect(txHash: TxHash): Promise<
|
|
186
|
+
async getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined> {
|
|
187
187
|
const [blockNumber, txIndex] = (await this.getTxLocation(txHash)) ?? [];
|
|
188
188
|
if (typeof blockNumber !== 'number' || typeof txIndex !== 'number') {
|
|
189
189
|
return undefined;
|
|
@@ -198,6 +198,7 @@ export class BlockStore {
|
|
|
198
198
|
data: block.block.body.txEffects[txIndex],
|
|
199
199
|
l2BlockNumber: block.block.number,
|
|
200
200
|
l2BlockHash: (await block.block.hash()).toString(),
|
|
201
|
+
txIndexInBlock: txIndex,
|
|
201
202
|
};
|
|
202
203
|
}
|
|
203
204
|
|
|
@@ -196,8 +196,8 @@ export class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
198
|
* Gets a tx effect.
|
|
199
|
-
* @param txHash - The
|
|
200
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
199
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
200
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
201
201
|
*/
|
|
202
202
|
getTxEffect(txHash: TxHash) {
|
|
203
203
|
return this.#blockStore.getTxEffect(txHash);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { L2Tips } from '@aztec/stdlib/block';
|
|
2
3
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -28,4 +29,14 @@ export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
|
28
29
|
getBlockNumber(): Promise<number> {
|
|
29
30
|
return Promise.resolve(this.blockNumber);
|
|
30
31
|
}
|
|
32
|
+
|
|
33
|
+
getL2Tips(): Promise<L2Tips> {
|
|
34
|
+
const number = this.blockNumber;
|
|
35
|
+
const tip = { number, hash: new Fr(number).toString() };
|
|
36
|
+
return Promise.resolve({
|
|
37
|
+
latest: tip,
|
|
38
|
+
proven: tip,
|
|
39
|
+
finalized: tip,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
31
42
|
}
|
|
@@ -128,8 +128,8 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
128
128
|
|
|
129
129
|
/**
|
|
130
130
|
* Gets a tx effect.
|
|
131
|
-
* @param txHash - The hash of
|
|
132
|
-
* @returns The requested tx effect.
|
|
131
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
132
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
133
133
|
*/
|
|
134
134
|
public async getTxEffect(txHash: TxHash) {
|
|
135
135
|
const match = this.l2Blocks
|
|
@@ -139,7 +139,12 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
139
139
|
return Promise.resolve(undefined);
|
|
140
140
|
}
|
|
141
141
|
const [txEffect, block] = match;
|
|
142
|
-
return {
|
|
142
|
+
return {
|
|
143
|
+
data: txEffect,
|
|
144
|
+
l2BlockNumber: block.number,
|
|
145
|
+
l2BlockHash: (await block.hash()).toString(),
|
|
146
|
+
txIndexInBlock: block.body.txEffects.indexOf(txEffect),
|
|
147
|
+
};
|
|
143
148
|
}
|
|
144
149
|
|
|
145
150
|
/**
|
|
@@ -249,4 +254,8 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
249
254
|
registerContractFunctionSignatures(_address: AztecAddress, _signatures: string[]): Promise<void> {
|
|
250
255
|
return Promise.resolve();
|
|
251
256
|
}
|
|
257
|
+
|
|
258
|
+
syncImmediate(): Promise<void> {
|
|
259
|
+
return Promise.resolve();
|
|
260
|
+
}
|
|
252
261
|
}
|