@aztec/archiver 0.87.3-nightly.20250528 → 0.87.3
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 +3 -4
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +0 -8
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +6 -5
- package/dest/archiver/data_retrieval.d.ts +3 -2
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +7 -6
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +5 -4
- package/dest/test/mock_l2_block_source.d.ts +1 -1
- package/dest/test/mock_l2_block_source.js +1 -1
- package/package.json +12 -12
- package/src/archiver/archiver.ts +1 -11
- package/src/archiver/archiver_store_test_suite.ts +6 -5
- package/src/archiver/data_retrieval.ts +10 -14
- package/src/archiver/kv_archiver_store/block_store.ts +6 -5
- package/src/test/mock_l2_block_source.ts +1 -1
|
@@ -7,7 +7,7 @@ import { type Logger } from '@aztec/foundation/log';
|
|
|
7
7
|
import type { CustomRange } from '@aztec/kv-store';
|
|
8
8
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
9
9
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
-
import { type
|
|
10
|
+
import { type L2Block, type L2BlockSource, type L2Tips } from '@aztec/stdlib/block';
|
|
11
11
|
import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
12
12
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
13
13
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
@@ -16,6 +16,7 @@ import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/lo
|
|
|
16
16
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
17
17
|
import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
18
18
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
19
|
+
import { EventEmitter } from 'events';
|
|
19
20
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from './archiver_store.js';
|
|
20
21
|
import type { ArchiverConfig } from './config.js';
|
|
21
22
|
import { ArchiverInstrumentation } from './instrumentation.js';
|
|
@@ -25,13 +26,12 @@ import type { PublishedL2Block } from './structs/published.js';
|
|
|
25
26
|
* Helper interface to combine all sources this archiver implementation provides.
|
|
26
27
|
*/
|
|
27
28
|
export type ArchiveSource = L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource;
|
|
28
|
-
declare const Archiver_base: new () => ArchiverEmitter;
|
|
29
29
|
/**
|
|
30
30
|
* Pulls L2 blocks in a non-blocking manner and provides interface for their retrieval.
|
|
31
31
|
* Responsible for handling robust L1 polling so that other components do not need to
|
|
32
32
|
* concern themselves with it.
|
|
33
33
|
*/
|
|
34
|
-
export declare class Archiver extends
|
|
34
|
+
export declare class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
35
35
|
private readonly publicClient;
|
|
36
36
|
private readonly l1Addresses;
|
|
37
37
|
readonly dataStore: ArchiverDataStore;
|
|
@@ -246,5 +246,4 @@ export declare class ArchiverStoreHelper implements Omit<ArchiverDataStore, 'add
|
|
|
246
246
|
removeL1ToL2Messages(startIndex: bigint): Promise<void>;
|
|
247
247
|
getLastL1ToL2Message(): Promise<InboxMessage | undefined>;
|
|
248
248
|
}
|
|
249
|
-
export {};
|
|
250
249
|
//# sourceMappingURL=archiver.d.ts.map
|
|
@@ -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,EAGL,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAY,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC9D,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;AAKlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -470,14 +470,6 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
470
470
|
this.log.info(`Updated proven chain to block ${provenBlockNumber}`, {
|
|
471
471
|
provenBlockNumber
|
|
472
472
|
});
|
|
473
|
-
const provenSlotNumber = localBlockForDestinationProvenBlockNumber.header.globalVariables.slotNumber.toBigInt();
|
|
474
|
-
const provenEpochNumber = getEpochAtSlot(provenSlotNumber, this.l1constants);
|
|
475
|
-
this.emit(L2BlockSourceEvents.L2BlockProven, {
|
|
476
|
-
type: L2BlockSourceEvents.L2BlockProven,
|
|
477
|
-
blockNumber: provenBlockNumber,
|
|
478
|
-
slotNumber: provenSlotNumber,
|
|
479
|
-
epochNumber: provenEpochNumber
|
|
480
|
-
});
|
|
481
473
|
} else {
|
|
482
474
|
this.log.trace(`Proven block ${provenBlockNumber} already stored.`);
|
|
483
475
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AA6BA,OAAO,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAMnF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAi/B/D"}
|
|
@@ -3,11 +3,12 @@ import { makeTuple } from '@aztec/foundation/array';
|
|
|
3
3
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
4
4
|
import { times, timesParallel } from '@aztec/foundation/collection';
|
|
5
5
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
6
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
6
7
|
import { Fr } from '@aztec/foundation/fields';
|
|
7
8
|
import { toArray } from '@aztec/foundation/iterable';
|
|
8
9
|
import { sleep } from '@aztec/foundation/sleep';
|
|
9
10
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
-
import {
|
|
11
|
+
import { L2Block, wrapInBlock } from '@aztec/stdlib/block';
|
|
11
12
|
import { SerializableContractInstance, computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
|
|
12
13
|
import { LogId, PrivateLog, PublicLog } from '@aztec/stdlib/logs';
|
|
13
14
|
import { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
@@ -58,7 +59,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
58
59
|
blockHash: `0x${l1BlockNumber}`,
|
|
59
60
|
timestamp: BigInt(l1BlockNumber * 1000)
|
|
60
61
|
},
|
|
61
|
-
|
|
62
|
+
signatures: times(3, Signature.random)
|
|
62
63
|
});
|
|
63
64
|
const expectBlocksEqual = (actual, expected)=>{
|
|
64
65
|
expect(actual.length).toEqual(expected.length);
|
|
@@ -67,7 +68,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
67
68
|
const actualBlock = actual[i];
|
|
68
69
|
expect(actualBlock.l1).toEqual(expectedBlock.l1);
|
|
69
70
|
expect(actualBlock.block.equals(expectedBlock.block)).toBe(true);
|
|
70
|
-
expect(actualBlock.
|
|
71
|
+
expect(actualBlock.signatures.every((s, i)=>s.equals(expectedBlock.signatures[i]))).toBe(true);
|
|
71
72
|
}
|
|
72
73
|
};
|
|
73
74
|
beforeEach(async ()=>{
|
|
@@ -788,7 +789,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
788
789
|
});
|
|
789
790
|
return {
|
|
790
791
|
block: block,
|
|
791
|
-
|
|
792
|
+
signatures: times(3, Signature.random),
|
|
792
793
|
l1: {
|
|
793
794
|
blockNumber: BigInt(blockNumber),
|
|
794
795
|
blockHash: `0x${blockNumber}`,
|
|
@@ -909,7 +910,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
|
|
|
909
910
|
blockHash: `0x${index}`,
|
|
910
911
|
timestamp: BigInt(index)
|
|
911
912
|
},
|
|
912
|
-
|
|
913
|
+
signatures: times(3, Signature.random)
|
|
913
914
|
}));
|
|
914
915
|
await store.addBlocks(blocks);
|
|
915
916
|
await store.addLogs(blocks.map((b)=>b.block));
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
2
2
|
import type { ViemClient, ViemPublicClient } from '@aztec/ethereum';
|
|
3
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
6
|
import { type Logger } from '@aztec/foundation/log';
|
|
6
7
|
import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
7
|
-
import { Body
|
|
8
|
+
import { Body } from '@aztec/stdlib/block';
|
|
8
9
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
9
10
|
import { ProposedBlockHeader, StateReference } from '@aztec/stdlib/tx';
|
|
10
11
|
import { type GetContractReturnType, type Hex } from 'viem';
|
|
@@ -20,7 +21,7 @@ export type RetrievedL2Block = {
|
|
|
20
21
|
l1: L1PublishedData;
|
|
21
22
|
chainId: Fr;
|
|
22
23
|
version: Fr;
|
|
23
|
-
|
|
24
|
+
signatures: Signature[];
|
|
24
25
|
};
|
|
25
26
|
export declare function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Block): PublishedL2Block;
|
|
26
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Blob, BlobDeserializationError } from '@aztec/blob-lib';
|
|
2
2
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
3
3
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
4
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
4
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
7
|
import { ForwarderAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
7
|
-
import { Body,
|
|
8
|
+
import { Body, L2Block } from '@aztec/stdlib/block';
|
|
8
9
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
9
10
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
10
11
|
import { BlockHeader, GlobalVariables, ProposedBlockHeader, StateReference } from '@aztec/stdlib/tx';
|
|
11
12
|
import { decodeFunctionData, getAbiItem, hexToBytes } from 'viem';
|
|
12
13
|
import { NoBlobBodiesFoundError } from './errors.js';
|
|
13
14
|
export function retrievedBlockToPublishedL2Block(retrievedBlock) {
|
|
14
|
-
const { l2BlockNumber, archiveRoot, stateReference, header: proposedHeader, body, l1, chainId, version,
|
|
15
|
+
const { l2BlockNumber, archiveRoot, stateReference, header: proposedHeader, body, l1, chainId, version, signatures } = retrievedBlock;
|
|
15
16
|
const archive = new AppendOnlyTreeSnapshot(archiveRoot, Number(l2BlockNumber + 1n));
|
|
16
17
|
const globalVariables = GlobalVariables.from({
|
|
17
18
|
chainId,
|
|
@@ -35,7 +36,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock) {
|
|
|
35
36
|
return {
|
|
36
37
|
block,
|
|
37
38
|
l1,
|
|
38
|
-
|
|
39
|
+
signatures
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
@@ -112,7 +113,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock) {
|
|
|
112
113
|
l1BlockNumber: log.blockNumber,
|
|
113
114
|
l2BlockNumber,
|
|
114
115
|
archive: archive.toString(),
|
|
115
|
-
|
|
116
|
+
signatures: block.signatures.map((signature)=>signature.toString())
|
|
116
117
|
});
|
|
117
118
|
} else {
|
|
118
119
|
logger.warn(`Ignoring L2 block ${l2BlockNumber} due to archive root mismatch`, {
|
|
@@ -190,7 +191,7 @@ export async function getL1BlockTime(publicClient, blockNumber) {
|
|
|
190
191
|
if (rollupFunctionName !== 'propose') {
|
|
191
192
|
throw new Error(`Unexpected rollup method called ${rollupFunctionName}`);
|
|
192
193
|
}
|
|
193
|
-
const [decodedArgs,
|
|
194
|
+
const [decodedArgs, signatures, _blobInput] = rollupArgs;
|
|
194
195
|
const header = ProposedBlockHeader.fromBuffer(Buffer.from(hexToBytes(decodedArgs.header)));
|
|
195
196
|
const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes);
|
|
196
197
|
if (blobBodies.length === 0) {
|
|
@@ -217,7 +218,7 @@ export async function getL1BlockTime(publicClient, blockNumber) {
|
|
|
217
218
|
stateReference,
|
|
218
219
|
header,
|
|
219
220
|
body,
|
|
220
|
-
|
|
221
|
+
signatures: signatures.map(Signature.fromViemSignature)
|
|
221
222
|
};
|
|
222
223
|
}
|
|
223
224
|
/** Given an L1 to L2 message, retrieves its corresponding event from the Inbox. */ export async function retrieveL1ToL2Message(inbox, leaf, fromBlock) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"
|
|
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;AAGxF,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;;IAqBT,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IASzC;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C7F;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IA+BvD;;;;;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;YAYzE,gBAAgB;YAajB,wBAAwB;IAsBtC;;;;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;IAQ/C,sBAAsB,CAAC,WAAW,EAAE,MAAM;CAe3C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
2
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
2
3
|
import { toArray } from '@aztec/foundation/iterable';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import { Body,
|
|
5
|
+
import { Body, L2Block, L2BlockHash } from '@aztec/stdlib/block';
|
|
5
6
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
6
7
|
import { BlockHeader, TxReceipt } from '@aztec/stdlib/tx';
|
|
7
8
|
import { BlockNumberNotSequentialError, InitialBlockNumberNotSequentialError } from '../errors.js';
|
|
@@ -58,7 +59,7 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
58
59
|
header: block.block.header.toBuffer(),
|
|
59
60
|
archive: block.block.archive.toBuffer(),
|
|
60
61
|
l1: block.l1,
|
|
61
|
-
|
|
62
|
+
signatures: block.signatures.map((sig)=>sig.toBuffer())
|
|
62
63
|
});
|
|
63
64
|
for(let i = 0; i < block.block.body.txEffects.length; i++){
|
|
64
65
|
const txEffect = block.block.body.txEffects[i];
|
|
@@ -170,11 +171,11 @@ export { TxReceipt } from '@aztec/stdlib/tx';
|
|
|
170
171
|
if (block.number !== blockNumber) {
|
|
171
172
|
throw new Error(`Block number mismatch when retrieving block from archive (expected ${blockNumber} but got ${block.number} with hash ${await block.hash()})`);
|
|
172
173
|
}
|
|
173
|
-
const
|
|
174
|
+
const signatures = blockStorage.signatures.map(Signature.fromBuffer);
|
|
174
175
|
return {
|
|
175
176
|
block,
|
|
176
177
|
l1: blockStorage.l1,
|
|
177
|
-
|
|
178
|
+
signatures
|
|
178
179
|
};
|
|
179
180
|
}
|
|
180
181
|
/**
|
|
@@ -55,7 +55,7 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
55
55
|
blockHash: `0x${string}`;
|
|
56
56
|
timestamp: bigint;
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
signatures: never[];
|
|
59
59
|
}[]>;
|
|
60
60
|
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
|
|
61
61
|
getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.87.3
|
|
3
|
+
"version": "0.87.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -62,17 +62,17 @@
|
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@aztec/blob-lib": "0.87.3
|
|
66
|
-
"@aztec/blob-sink": "0.87.3
|
|
67
|
-
"@aztec/constants": "0.87.3
|
|
68
|
-
"@aztec/ethereum": "0.87.3
|
|
69
|
-
"@aztec/foundation": "0.87.3
|
|
70
|
-
"@aztec/kv-store": "0.87.3
|
|
71
|
-
"@aztec/l1-artifacts": "0.87.3
|
|
72
|
-
"@aztec/noir-protocol-circuits-types": "0.87.3
|
|
73
|
-
"@aztec/protocol-contracts": "0.87.3
|
|
74
|
-
"@aztec/stdlib": "0.87.3
|
|
75
|
-
"@aztec/telemetry-client": "0.87.3
|
|
65
|
+
"@aztec/blob-lib": "0.87.3",
|
|
66
|
+
"@aztec/blob-sink": "0.87.3",
|
|
67
|
+
"@aztec/constants": "0.87.3",
|
|
68
|
+
"@aztec/ethereum": "0.87.3",
|
|
69
|
+
"@aztec/foundation": "0.87.3",
|
|
70
|
+
"@aztec/kv-store": "0.87.3",
|
|
71
|
+
"@aztec/l1-artifacts": "0.87.3",
|
|
72
|
+
"@aztec/noir-protocol-circuits-types": "0.87.3",
|
|
73
|
+
"@aztec/protocol-contracts": "0.87.3",
|
|
74
|
+
"@aztec/stdlib": "0.87.3",
|
|
75
|
+
"@aztec/telemetry-client": "0.87.3",
|
|
76
76
|
"lodash.groupby": "^4.6.0",
|
|
77
77
|
"lodash.omit": "^4.5.0",
|
|
78
78
|
"tsc-watch": "^6.0.0",
|
package/src/archiver/archiver.ts
CHANGED
|
@@ -30,7 +30,6 @@ import {
|
|
|
30
30
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
31
31
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
32
32
|
import {
|
|
33
|
-
type ArchiverEmitter,
|
|
34
33
|
type L2Block,
|
|
35
34
|
type L2BlockId,
|
|
36
35
|
type L2BlockSource,
|
|
@@ -89,7 +88,7 @@ export type ArchiveSource = L2BlockSource & L2LogsSource & ContractDataSource &
|
|
|
89
88
|
* Responsible for handling robust L1 polling so that other components do not need to
|
|
90
89
|
* concern themselves with it.
|
|
91
90
|
*/
|
|
92
|
-
export class Archiver extends
|
|
91
|
+
export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
93
92
|
/**
|
|
94
93
|
* A promise in which we will be continually fetching new L2 blocks.
|
|
95
94
|
*/
|
|
@@ -625,15 +624,6 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
625
624
|
this.log.info(`Updated proven chain to block ${provenBlockNumber}`, {
|
|
626
625
|
provenBlockNumber,
|
|
627
626
|
});
|
|
628
|
-
const provenSlotNumber =
|
|
629
|
-
localBlockForDestinationProvenBlockNumber.header.globalVariables.slotNumber.toBigInt();
|
|
630
|
-
const provenEpochNumber = getEpochAtSlot(provenSlotNumber, this.l1constants);
|
|
631
|
-
this.emit(L2BlockSourceEvents.L2BlockProven, {
|
|
632
|
-
type: L2BlockSourceEvents.L2BlockProven,
|
|
633
|
-
blockNumber: provenBlockNumber,
|
|
634
|
-
slotNumber: provenSlotNumber,
|
|
635
|
-
epochNumber: provenEpochNumber,
|
|
636
|
-
});
|
|
637
627
|
} else {
|
|
638
628
|
this.log.trace(`Proven block ${provenBlockNumber} already stored.`);
|
|
639
629
|
}
|
|
@@ -8,11 +8,12 @@ import { makeTuple } from '@aztec/foundation/array';
|
|
|
8
8
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
9
9
|
import { times, timesParallel } from '@aztec/foundation/collection';
|
|
10
10
|
import { randomInt } from '@aztec/foundation/crypto';
|
|
11
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
11
12
|
import { Fr } from '@aztec/foundation/fields';
|
|
12
13
|
import { toArray } from '@aztec/foundation/iterable';
|
|
13
14
|
import { sleep } from '@aztec/foundation/sleep';
|
|
14
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
-
import {
|
|
16
|
+
import { L2Block, wrapInBlock } from '@aztec/stdlib/block';
|
|
16
17
|
import {
|
|
17
18
|
type ContractClassPublic,
|
|
18
19
|
type ContractInstanceWithAddress,
|
|
@@ -63,7 +64,7 @@ export function describeArchiverDataStore(
|
|
|
63
64
|
blockHash: `0x${l1BlockNumber}`,
|
|
64
65
|
timestamp: BigInt(l1BlockNumber * 1000),
|
|
65
66
|
},
|
|
66
|
-
|
|
67
|
+
signatures: times(3, Signature.random),
|
|
67
68
|
});
|
|
68
69
|
|
|
69
70
|
const expectBlocksEqual = (actual: PublishedL2Block[], expected: PublishedL2Block[]) => {
|
|
@@ -73,7 +74,7 @@ export function describeArchiverDataStore(
|
|
|
73
74
|
const actualBlock = actual[i];
|
|
74
75
|
expect(actualBlock.l1).toEqual(expectedBlock.l1);
|
|
75
76
|
expect(actualBlock.block.equals(expectedBlock.block)).toBe(true);
|
|
76
|
-
expect(actualBlock.
|
|
77
|
+
expect(actualBlock.signatures.every((s, i) => s.equals(expectedBlock.signatures[i]))).toBe(true);
|
|
77
78
|
}
|
|
78
79
|
};
|
|
79
80
|
|
|
@@ -757,7 +758,7 @@ export function describeArchiverDataStore(
|
|
|
757
758
|
|
|
758
759
|
return {
|
|
759
760
|
block: block,
|
|
760
|
-
|
|
761
|
+
signatures: times(3, Signature.random),
|
|
761
762
|
l1: { blockNumber: BigInt(blockNumber), blockHash: `0x${blockNumber}`, timestamp: BigInt(blockNumber) },
|
|
762
763
|
};
|
|
763
764
|
};
|
|
@@ -875,7 +876,7 @@ export function describeArchiverDataStore(
|
|
|
875
876
|
blocks = await timesParallel(numBlocks, async (index: number) => ({
|
|
876
877
|
block: await L2Block.random(index + 1, txsPerBlock, numPublicFunctionCalls, numPublicLogs),
|
|
877
878
|
l1: { blockNumber: BigInt(index), blockHash: `0x${index}`, timestamp: BigInt(index) },
|
|
878
|
-
|
|
879
|
+
signatures: times(3, Signature.random),
|
|
879
880
|
}));
|
|
880
881
|
|
|
881
882
|
await store.addBlocks(blocks);
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { Blob, BlobDeserializationError } from '@aztec/blob-lib';
|
|
2
2
|
import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
3
|
-
import type {
|
|
4
|
-
EpochProofPublicInputArgs,
|
|
5
|
-
ViemClient,
|
|
6
|
-
ViemCommitteeAttestation,
|
|
7
|
-
ViemPublicClient,
|
|
8
|
-
} from '@aztec/ethereum';
|
|
3
|
+
import type { EpochProofPublicInputArgs, ViemClient, ViemPublicClient } from '@aztec/ethereum';
|
|
9
4
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
10
5
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
11
6
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
|
+
import { Signature, type ViemSignature } from '@aztec/foundation/eth-signature';
|
|
12
8
|
import { Fr } from '@aztec/foundation/fields';
|
|
13
9
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
14
10
|
import { ForwarderAbi, type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
15
|
-
import { Body,
|
|
11
|
+
import { Body, L2Block } from '@aztec/stdlib/block';
|
|
16
12
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
17
13
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
18
14
|
import { BlockHeader, GlobalVariables, ProposedBlockHeader, StateReference } from '@aztec/stdlib/tx';
|
|
@@ -40,7 +36,7 @@ export type RetrievedL2Block = {
|
|
|
40
36
|
l1: L1PublishedData;
|
|
41
37
|
chainId: Fr;
|
|
42
38
|
version: Fr;
|
|
43
|
-
|
|
39
|
+
signatures: Signature[];
|
|
44
40
|
};
|
|
45
41
|
|
|
46
42
|
export function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Block): PublishedL2Block {
|
|
@@ -53,7 +49,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Bloc
|
|
|
53
49
|
l1,
|
|
54
50
|
chainId,
|
|
55
51
|
version,
|
|
56
|
-
|
|
52
|
+
signatures,
|
|
57
53
|
} = retrievedBlock;
|
|
58
54
|
|
|
59
55
|
const archive = new AppendOnlyTreeSnapshot(
|
|
@@ -86,7 +82,7 @@ export function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Bloc
|
|
|
86
82
|
return {
|
|
87
83
|
block,
|
|
88
84
|
l1,
|
|
89
|
-
|
|
85
|
+
signatures,
|
|
90
86
|
};
|
|
91
87
|
}
|
|
92
88
|
|
|
@@ -200,7 +196,7 @@ async function processL2BlockProposedLogs(
|
|
|
200
196
|
l1BlockNumber: log.blockNumber,
|
|
201
197
|
l2BlockNumber,
|
|
202
198
|
archive: archive.toString(),
|
|
203
|
-
|
|
199
|
+
signatures: block.signatures.map(signature => signature.toString()),
|
|
204
200
|
});
|
|
205
201
|
} else {
|
|
206
202
|
logger.warn(`Ignoring L2 block ${l2BlockNumber} due to archive root mismatch`, {
|
|
@@ -299,7 +295,7 @@ async function getBlockFromRollupTx(
|
|
|
299
295
|
throw new Error(`Unexpected rollup method called ${rollupFunctionName}`);
|
|
300
296
|
}
|
|
301
297
|
|
|
302
|
-
const [decodedArgs,
|
|
298
|
+
const [decodedArgs, signatures, _blobInput] = rollupArgs! as readonly [
|
|
303
299
|
{
|
|
304
300
|
header: Hex;
|
|
305
301
|
archive: Hex;
|
|
@@ -310,7 +306,7 @@ async function getBlockFromRollupTx(
|
|
|
310
306
|
};
|
|
311
307
|
txHashes: Hex[];
|
|
312
308
|
},
|
|
313
|
-
|
|
309
|
+
ViemSignature[],
|
|
314
310
|
Hex,
|
|
315
311
|
];
|
|
316
312
|
|
|
@@ -345,7 +341,7 @@ async function getBlockFromRollupTx(
|
|
|
345
341
|
stateReference,
|
|
346
342
|
header,
|
|
347
343
|
body,
|
|
348
|
-
|
|
344
|
+
signatures: signatures.map(Signature.fromViemSignature),
|
|
349
345
|
};
|
|
350
346
|
}
|
|
351
347
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
2
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
2
3
|
import { toArray } from '@aztec/foundation/iterable';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncSingleton, Range } from '@aztec/kv-store';
|
|
5
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
-
import { Body,
|
|
7
|
+
import { Body, L2Block, L2BlockHash } from '@aztec/stdlib/block';
|
|
7
8
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
8
9
|
import { BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
9
10
|
|
|
@@ -18,7 +19,7 @@ type BlockStorage = {
|
|
|
18
19
|
header: Buffer;
|
|
19
20
|
archive: Buffer;
|
|
20
21
|
l1: L1PublishedData;
|
|
21
|
-
|
|
22
|
+
signatures: Buffer[];
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -89,7 +90,7 @@ export class BlockStore {
|
|
|
89
90
|
header: block.block.header.toBuffer(),
|
|
90
91
|
archive: block.block.archive.toBuffer(),
|
|
91
92
|
l1: block.l1,
|
|
92
|
-
|
|
93
|
+
signatures: block.signatures.map(sig => sig.toBuffer()),
|
|
93
94
|
});
|
|
94
95
|
|
|
95
96
|
for (let i = 0; i < block.block.body.txEffects.length; i++) {
|
|
@@ -220,8 +221,8 @@ export class BlockStore {
|
|
|
220
221
|
} with hash ${await block.hash()})`,
|
|
221
222
|
);
|
|
222
223
|
}
|
|
223
|
-
const
|
|
224
|
-
return { block, l1: blockStorage.l1,
|
|
224
|
+
const signatures = blockStorage.signatures.map(Signature.fromBuffer);
|
|
225
|
+
return { block, l1: blockStorage.l1, signatures };
|
|
225
226
|
}
|
|
226
227
|
|
|
227
228
|
/**
|