@aztec/archiver 0.67.0 → 0.67.1-devnet

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.
@@ -12,6 +12,8 @@ import { type ConfigMappingsType } from '@aztec/foundation/config';
12
12
  export type ArchiverConfig = {
13
13
  /** URL for an archiver service. If set, will return an archiver client as opposed to starting a new one. */
14
14
  archiverUrl?: string;
15
+ /** URL for an L1 consensus client */
16
+ l1ConsensusClientUrl: string;
15
17
  /** The polling interval in ms for retrieving new L2 blocks and encrypted logs. */
16
18
  archiverPollingIntervalMS?: number;
17
19
  /** The number of L2 blocks the archiver will attempt to download at a time. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IAEjC,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,GAChB,iBAAiB,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CA4BrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qCAAqC;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,kFAAkF;IAClF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IAEjC,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,GAChB,iBAAiB,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAiCrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
@@ -5,6 +5,11 @@ export const archiverConfigMappings = {
5
5
  env: 'ARCHIVER_URL',
6
6
  description: 'URL for an archiver service. If set, will return an archiver client as opposed to starting a new one.',
7
7
  },
8
+ l1ConsensusClientUrl: {
9
+ env: 'L1_CONSENSUS_CLIENT_URL',
10
+ description: 'URL for an L1 consensus client.',
11
+ parseEnv: (val) => (val ? val : 'http://localhost:5052'),
12
+ },
8
13
  archiverPollingIntervalMS: {
9
14
  env: 'ARCHIVER_POLLING_INTERVAL_MS',
10
15
  description: 'The polling interval in ms for retrieving new L2 blocks and encrypted logs.',
@@ -36,4 +41,4 @@ export const archiverConfigMappings = {
36
41
  export function getArchiverConfigFromEnv() {
37
42
  return getConfigFromMappings(archiverConfigMappings);
38
43
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwseUJBQXlCLEVBQ3pCLHNCQUFzQixHQUN2QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBMkIscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWlDOUcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXVDO0lBQ3hFLFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxjQUFjO1FBQ25CLFdBQVcsRUFDVCx1R0FBdUc7S0FDMUc7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixHQUFHLEVBQUUsOEJBQThCO1FBQ25DLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsR0FBRyxrQkFBa0IsQ0FBQyxJQUFLLENBQUM7S0FDN0I7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixHQUFHLEVBQUUscUJBQXFCO1FBQzFCLFdBQVcsRUFBRSwwRUFBMEU7UUFDdkYsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsbUJBQW1CO1FBQ3hCLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsR0FBRyxrQkFBa0IsQ0FBQyxJQUFLLENBQUM7S0FDN0I7SUFDRCxHQUFHLHNCQUFzQjtJQUN6QixxQkFBcUIsRUFBRTtRQUNyQixHQUFHLEVBQUUsbUNBQW1DO1FBQ3hDLFdBQVcsRUFBRSxzQ0FBc0M7UUFDbkQsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDNUI7SUFDRCxHQUFHLHlCQUF5QjtDQUM3QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTyxxQkFBcUIsQ0FBaUIsc0JBQXNCLENBQUMsQ0FBQztBQUN2RSxDQUFDIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwseUJBQXlCLEVBQ3pCLHNCQUFzQixHQUN2QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBMkIscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQW9DOUcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXVDO0lBQ3hFLFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxjQUFjO1FBQ25CLFdBQVcsRUFDVCx1R0FBdUc7S0FDMUc7SUFDRCxvQkFBb0IsRUFBRTtRQUNwQixHQUFHLEVBQUUseUJBQXlCO1FBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7UUFDOUMsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztLQUNqRTtJQUNELHlCQUF5QixFQUFFO1FBQ3pCLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsV0FBVyxFQUFFLDZFQUE2RTtRQUMxRixHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsV0FBVyxFQUFFLDBFQUEwRTtRQUN2RixHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELE9BQU8sRUFBRTtRQUNQLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLDZFQUE2RTtRQUMxRixHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELEdBQUcsc0JBQXNCO0lBQ3pCLHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsRUFBRSxtQ0FBbUM7UUFDeEMsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztLQUM1QjtJQUNELEdBQUcseUJBQXlCO0NBQzdCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxPQUFPLHFCQUFxQixDQUFpQixzQkFBc0IsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Body, InboxLeaf, L2Block } from '@aztec/circuit-types';
2
2
  import { AppendOnlyTreeSnapshot, BlockHeader, Fr, Proof } from '@aztec/circuits.js';
3
3
  import { asyncPool } from '@aztec/foundation/async-pool';
4
+ import { Blob } from '@aztec/foundation/blob';
4
5
  import { createLogger } from '@aztec/foundation/log';
5
6
  import { numToUInt32BE } from '@aztec/foundation/serialize';
6
7
  import { RollupAbi } from '@aztec/l1-artifacts';
@@ -20,10 +21,10 @@ export async function retrieveBlocksFromRollup(rollup, publicClient, searchStart
20
21
  if (searchStartBlock > searchEndBlock) {
21
22
  break;
22
23
  }
23
- const l2BlockProposedLogs = await rollup.getEvents.L2BlockProposed({}, {
24
+ const l2BlockProposedLogs = (await rollup.getEvents.L2BlockProposed({}, {
24
25
  fromBlock: searchStartBlock,
25
- toBlock: searchEndBlock + 1n,
26
- });
26
+ toBlock: searchEndBlock,
27
+ })).filter(log => log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
27
28
  if (l2BlockProposedLogs.length === 0) {
28
29
  break;
29
30
  }
@@ -87,9 +88,29 @@ async function getBlockFromRollupTx(publicClient, txHash, l2BlockNum) {
87
88
  if (!allowedMethods.includes(functionName)) {
88
89
  throw new Error(`Unexpected method called ${functionName}`);
89
90
  }
90
- const [decodedArgs, , bodyHex] = args;
91
+ // TODO(#9101): 'bodyHex' will be removed from below
92
+ const [decodedArgs, , bodyHex, blobInputs] = args;
91
93
  const header = BlockHeader.fromBuffer(Buffer.from(hexToBytes(decodedArgs.header)));
94
+ // TODO(#9101): Retreiving the block body from calldata is a temporary soln before we have
95
+ // either a beacon chain client or link to some blob store. Web2 is ok because we will
96
+ // verify the block body vs the blob as below.
92
97
  const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
98
+ const blockFields = blockBody.toBlobFields();
99
+ // TODO(#9101): The below reconstruction is currently redundant, but once we extract blobs will be the way to construct blocks.
100
+ // The blob source will give us blockFields, and we must construct the body from them:
101
+ // TODO(#8954): When logs are refactored into fields, we won't need to inject them here.
102
+ const reconstructedBlock = Body.fromBlobFields(blockFields, blockBody.unencryptedLogs, blockBody.contractClassLogs);
103
+ if (!reconstructedBlock.toBuffer().equals(blockBody.toBuffer())) {
104
+ // TODO(#9101): Remove below check (without calldata there will be nothing to check against)
105
+ throw new Error(`Block reconstructed from blob fields does not match`);
106
+ }
107
+ // TODO(#9101): Once we stop publishing calldata, we will still need the blobCheck below to ensure that the block we are building does correspond to the blob fields
108
+ const blobCheck = Blob.getBlobs(blockFields);
109
+ if (Blob.getEthBlobEvaluationInputs(blobCheck) !== blobInputs) {
110
+ // NB: We can just check the blobhash here, which is the first 32 bytes of blobInputs
111
+ // A mismatch means that the fields published in the blob in propose() do NOT match those in the extracted block.
112
+ throw new Error(`Block body mismatched with blob for block number ${l2BlockNum}. \nExpected: ${Blob.getEthBlobEvaluationInputs(blobCheck)} \nGot: ${blobInputs}`);
113
+ }
93
114
  const blockNumberFromHeader = header.globalVariables.blockNumber.toBigInt();
94
115
  if (blockNumberFromHeader !== l2BlockNum) {
95
116
  throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${blockNumberFromHeader}`);
@@ -115,10 +136,10 @@ export async function retrieveL1ToL2Messages(inbox, searchStartBlock, searchEndB
115
136
  if (searchStartBlock > searchEndBlock) {
116
137
  break;
117
138
  }
118
- const messageSentLogs = await inbox.getEvents.MessageSent({}, {
139
+ const messageSentLogs = (await inbox.getEvents.MessageSent({}, {
119
140
  fromBlock: searchStartBlock,
120
- toBlock: searchEndBlock + 1n,
121
- });
141
+ toBlock: searchEndBlock,
142
+ })).filter(log => log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
122
143
  if (messageSentLogs.length === 0) {
123
144
  break;
124
145
  }
@@ -136,7 +157,7 @@ export async function retrieveL2ProofVerifiedEvents(publicClient, rollupAddress,
136
157
  const logs = await publicClient.getLogs({
137
158
  address: rollupAddress.toString(),
138
159
  fromBlock: searchStartBlock,
139
- toBlock: searchEndBlock ? searchEndBlock + 1n : undefined,
160
+ toBlock: searchEndBlock ? searchEndBlock : undefined,
140
161
  strict: true,
141
162
  event: getAbiItem({ abi: RollupAbi, name: 'L2ProofVerified' }),
142
163
  });
@@ -197,4 +218,4 @@ export async function getProofFromSubmitProofTx(publicClient, txHash, expectedPr
197
218
  proof,
198
219
  };
199
220
  }
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRCxPQUFPLEVBT0wsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFLZDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLE1BQW1GLEVBQ25GLFlBQTBCLEVBQzFCLGdCQUF3QixFQUN4QixjQUFzQixFQUN0QixTQUFpQixZQUFZLENBQUMsVUFBVSxDQUFDO0lBRXpDLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUM7SUFDbkQsR0FBRyxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FDaEUsRUFBRSxFQUNGO1lBQ0UsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixPQUFPLEVBQUUsY0FBYyxHQUFHLEVBQUU7U0FDN0IsQ0FDRixDQUFDO1FBRUYsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTTtRQUNSLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLEtBQUssQ0FDVixPQUFPLG1CQUFtQixDQUFDLE1BQU0sMENBQTBDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLHNCQUFzQixnQkFBZ0IsSUFBSSxjQUFjLEVBQUUsQ0FDek0sQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sMEJBQTBCLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0RyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFdBQVksR0FBRyxFQUFFLENBQUM7SUFDL0MsQ0FBQyxRQUFRLGdCQUFnQixJQUFJLGNBQWMsRUFBRTtJQUM3QyxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSwwQkFBMEIsQ0FDOUMsTUFBbUYsRUFDbkYsWUFBMEIsRUFDMUIsSUFBc0UsRUFDdEUsTUFBYztJQUVkLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUM7SUFDbkQsTUFBTSxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7UUFDcEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUM7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUV0RSxzRkFBc0Y7UUFDdEYsSUFBSSxPQUFPLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBRyxNQUFNLG9CQUFvQixDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsZUFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUU1RixNQUFNLEVBQUUsR0FBb0I7Z0JBQzFCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztnQkFDNUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO2dCQUN4QixTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDL0QsQ0FBQztZQUVGLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixhQUFhLCtCQUErQixFQUFFO2dCQUM3RSxNQUFNLEVBQUUsT0FBTztnQkFDZixRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxZQUEwQixFQUFFLFdBQW1CO0lBQ2xGLE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUsb0JBQW9CLENBQ2pDLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLFVBQWtCO0lBRWxCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU1RSxNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsRUFBRSxBQUFELEVBQUcsT0FBTyxDQUFDLEdBQUcsSUFhaEMsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwRSxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTVFLElBQUkscUJBQXFCLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsVUFBVSxZQUFZLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsdUJBQXVCO1FBQ3JFLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUseUNBQXlDO0tBQ2xGLENBQUMsQ0FDSCxDQUFDO0lBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLEtBQWlGLEVBQ2pGLGdCQUF3QixFQUN4QixjQUFzQjtJQUV0QixNQUFNLHVCQUF1QixHQUFnQixFQUFFLENBQUM7SUFDaEQsR0FBRyxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQ3ZELEVBQUUsRUFDRjtZQUNFLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsT0FBTyxFQUFFLGNBQWMsR0FBRyxFQUFFO1NBQzdCLENBQ0YsQ0FBQztRQUVGLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNO1FBQ1IsQ0FBQztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDbEMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2pDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFNLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxnQkFBZ0IsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFHLENBQUMsUUFBUSxnQkFBZ0IsSUFBSSxjQUFjLEVBQUU7SUFDN0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztBQUN2RyxDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxLQUFLLFVBQVUsNkJBQTZCLENBQ2pELFlBQTBCLEVBQzFCLGFBQXlCLEVBQ3pCLGdCQUF3QixFQUN4QixjQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDdEMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUU7UUFDakMsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3pELE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7S0FDL0QsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDOUIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVztRQUNuQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxNQUFNLEVBQUUsR0FBRyxDQUFDLGVBQWU7S0FDNUIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBQzlDLFlBQTBCLEVBQzFCLGFBQXlCLEVBQ3pCLGdCQUF3QixFQUN4QixjQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxNQUFNLDZCQUE2QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEgsTUFBTSxhQUFhLEdBQW1GLEVBQUUsQ0FBQztJQUN6RyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFFeEcsS0FBSyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxNQUFNLHlCQUF5QixDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEYsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFDRCxPQUFPO1FBQ0wsYUFBYTtRQUNiLDBCQUEwQjtLQUMzQixDQUFDO0FBQ0osQ0FBQztBQVNEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsWUFBMEIsRUFDMUIsTUFBcUIsRUFDckIsZ0JBQW9CO0lBRXBCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU1RSxJQUFJLFFBQVksQ0FBQztJQUNqQixJQUFJLFdBQWUsQ0FBQztJQUNwQixJQUFJLGlCQUF5QixDQUFDO0lBQzlCLElBQUksS0FBWSxDQUFDO0lBRWpCLElBQUksWUFBWSxLQUFLLHNCQUFzQixFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBUXJCLENBQUM7UUFFRixpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFFBQVEsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxXQUFXLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxnQkFBZ0IsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLGlCQUFpQjtRQUNqQixXQUFXO1FBQ1gsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDIn0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc5QyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0QsT0FBTyxFQU9MLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsVUFBVSxHQUNYLE1BQU0sTUFBTSxDQUFDO0FBS2Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUFtRixFQUNuRixZQUEwQixFQUMxQixnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsU0FBaUIsWUFBWSxDQUFDLFVBQVUsQ0FBQztJQUV6QyxNQUFNLGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBQ25ELEdBQUcsQ0FBQztRQUNGLElBQUksZ0JBQWdCLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDdEMsTUFBTTtRQUNSLENBQUM7UUFDRCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ3BDLEVBQUUsRUFDRjtZQUNFLFNBQVMsRUFBRSxnQkFBZ0I7WUFDM0IsT0FBTyxFQUFFLGNBQWM7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
@@ -1,7 +1,8 @@
1
1
  import { type L2Block } from '@aztec/circuit-types';
2
- import { type LmdbStatsCallback, type TelemetryClient } from '@aztec/telemetry-client';
2
+ import { type LmdbStatsCallback, type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
3
3
  export declare class ArchiverInstrumentation {
4
4
  private telemetry;
5
+ readonly tracer: Tracer;
5
6
  private blockHeight;
6
7
  private blockSize;
7
8
  private syncDuration;
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/archiver/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAKL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,uBAAuB;IAWd,OAAO,CAAC,SAAS;IAVrC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,GAAG,CAA4C;IAEvD,OAAO;WA2Ca,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB;IAU1E,SAAS,IAAI,OAAO;IAIpB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAS5D,qBAAqB,CAAC,WAAW,EAAE,MAAM;IAIzC,qBAAqB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;CAYhG"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/archiver/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAKL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,uBAAuB;IAad,OAAO,CAAC,SAAS;IAZrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,GAAG,CAA4C;IAEvD,OAAO;WA4Ca,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,iBAAiB;IAU1E,SAAS,IAAI,OAAO;IAIpB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAS5D,qBAAqB,CAAC,WAAW,EAAE,MAAM;IAIzC,qBAAqB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;CAYhG"}
@@ -4,6 +4,7 @@ export class ArchiverInstrumentation {
4
4
  constructor(telemetry, lmdbStats) {
5
5
  this.telemetry = telemetry;
6
6
  this.log = createLogger('archiver:instrumentation');
7
+ this.tracer = telemetry.getTracer('Archiver');
7
8
  const meter = telemetry.getMeter('Archiver');
8
9
  this.blockHeight = meter.createGauge(Metrics.ARCHIVER_BLOCK_HEIGHT, {
9
10
  description: 'The height of the latest block processed by the archiver',
@@ -68,4 +69,4 @@ export class ArchiverInstrumentation {
68
69
  }
69
70
  }
70
71
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUNMLFVBQVUsRUFHVixXQUFXLEVBRVgsT0FBTyxFQUdQLFNBQVMsR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFBNEIsU0FBMEIsRUFBRSxTQUE2QjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUY5QyxRQUFHLEdBQUcsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHckQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFO1lBQ2xFLFdBQVcsRUFBRSwwREFBMEQ7WUFDdkUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUU7WUFDOUQsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUN4RSxJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsbUJBQW1C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
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUNMLFVBQVUsRUFHVixXQUFXLEVBRVgsT0FBTyxFQUlQLFNBQVMsR0FDVixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE1BQU0sT0FBTyx1QkFBdUI7SUFhbEMsWUFBNEIsU0FBMEIsRUFBRSxTQUE2QjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUY5QyxRQUFHLEdBQUcsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHckQsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUNsRSxXQUFXLEVBQUUsMERBQTBEO1lBQ3ZFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzlELFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOtE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,SAAS,GAAE,eAA2C,EACtD,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,GAC3D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAUvC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAOtE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,SAAS,GAAE,eAA2C,EACtD,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,GAC3D,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAUvC"}
package/dest/factory.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import { computePublicBytecodeCommitment, getContractClassFromArtifact, } from '@aztec/circuits.js';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { createStore } from '@aztec/kv-store/lmdb';
4
- import { TokenBridgeContractArtifact, TokenContractArtifact } from '@aztec/noir-contracts.js';
5
- import { getCanonicalProtocolContract, protocolContractNames } from '@aztec/protocol-contracts';
4
+ import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
5
+ import { TokenBridgeContractArtifact } from '@aztec/noir-contracts.js/TokenBridge';
6
+ import { protocolContractNames } from '@aztec/protocol-contracts';
7
+ import { getCanonicalProtocolContract } from '@aztec/protocol-contracts/bundle';
6
8
  import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
7
9
  import { Archiver } from './archiver/archiver.js';
8
10
  import { KVArchiverDataStore } from './archiver/index.js';
@@ -50,4 +52,4 @@ async function registerCommonContracts(store) {
50
52
  const bytecodeCommitments = classes.map(x => computePublicBytecodeCommitment(x.packedBytecode));
51
53
  await store.addContractClasses(classes, bytecodeCommitments, blockNumber);
52
54
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCwrQkFBK0IsRUFDL0IsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE1BQXdDLEVBQ3hDLFlBQTZCLElBQUksbUJBQW1CLEVBQUUsRUFDdEQsT0FBb0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFO0lBRTVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxNQUFNLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkYsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxLQUEwQjtJQUNqRSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE1BQU0sbUJBQW1CLEdBQXdCO1lBQy9DLEdBQUcsUUFBUSxDQUFDLGFBQWE7WUFDekIsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixzQkFBc0IsRUFBRSxFQUFFO1NBQzNCLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekYsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNILENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYscUZBQXFGO0FBQ3JGLG1GQUFtRjtBQUNuRiw0RkFBNEY7QUFDNUYsa0dBQWtHO0FBQ2xHLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxLQUEwQjtJQUMvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxTQUFTLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDO1FBQ3pDLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsc0JBQXNCLEVBQUUsRUFBRTtLQUMzQixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUM1RSxDQUFDIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCwrQkFBK0IsRUFDL0IsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE1BQXdDLEVBQ3hDLFlBQTZCLElBQUksbUJBQW1CLEVBQUUsRUFDdEQsT0FBb0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFO0lBRTVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxNQUFNLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkYsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxLQUEwQjtJQUNqRSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE1BQU0sbUJBQW1CLEdBQXdCO1lBQy9DLEdBQUcsUUFBUSxDQUFDLGFBQWE7WUFDekIsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixzQkFBc0IsRUFBRSxFQUFFO1NBQzNCLENBQUM7UUFDRixNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxNQUFNLGtCQUFrQixHQUFHLCtCQUErQixDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekYsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNILENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYscUZBQXFGO0FBQ3JGLG1GQUFtRjtBQUNuRiw0RkFBNEY7QUFDNUYsa0dBQWtHO0FBQ2xHLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxLQUEwQjtJQUMvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxTQUFTLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDO1FBQ3pDLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsc0JBQXNCLEVBQUUsRUFBRTtLQUMzQixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUM1RSxDQUFDIn0=
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.67.0",
3
+ "version": "0.67.1-devnet",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
7
  "./data-retrieval": "./dest/archiver/data_retrieval.js",
8
8
  "./epoch": "./dest/archiver/epoch_helpers.js",
9
- "./test": "./dest/test/index.js"
9
+ "./test": "./dest/test/index.js",
10
+ "./config": "./dest/archiver/config.js"
10
11
  },
11
12
  "typedocOptions": {
12
13
  "entryPoints": [
@@ -68,16 +69,16 @@
68
69
  ]
69
70
  },
70
71
  "dependencies": {
71
- "@aztec/circuit-types": "0.67.0",
72
- "@aztec/circuits.js": "0.67.0",
73
- "@aztec/ethereum": "0.67.0",
74
- "@aztec/foundation": "0.67.0",
75
- "@aztec/kv-store": "0.67.0",
76
- "@aztec/l1-artifacts": "0.67.0",
77
- "@aztec/noir-contracts.js": "0.67.0",
78
- "@aztec/protocol-contracts": "0.67.0",
79
- "@aztec/telemetry-client": "0.67.0",
80
- "@aztec/types": "0.67.0",
72
+ "@aztec/circuit-types": "0.67.1-devnet",
73
+ "@aztec/circuits.js": "0.67.1-devnet",
74
+ "@aztec/ethereum": "0.67.1-devnet",
75
+ "@aztec/foundation": "0.67.1-devnet",
76
+ "@aztec/kv-store": "0.67.1-devnet",
77
+ "@aztec/l1-artifacts": "0.67.1-devnet",
78
+ "@aztec/noir-contracts.js": "0.67.1-devnet",
79
+ "@aztec/protocol-contracts": "0.67.1-devnet",
80
+ "@aztec/telemetry-client": "0.67.1-devnet",
81
+ "@aztec/types": "0.67.1-devnet",
81
82
  "debug": "^4.3.4",
82
83
  "lodash.groupby": "^4.6.0",
83
84
  "lodash.omit": "^4.5.0",
@@ -47,11 +47,11 @@ import { elapsed } from '@aztec/foundation/timer';
47
47
  import { InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
48
48
  import {
49
49
  ContractClassRegisteredEvent,
50
- ContractInstanceDeployedEvent,
51
50
  PrivateFunctionBroadcastedEvent,
52
51
  UnconstrainedFunctionBroadcastedEvent,
53
- } from '@aztec/protocol-contracts';
54
- import { type TelemetryClient } from '@aztec/telemetry-client';
52
+ } from '@aztec/protocol-contracts/class-registerer';
53
+ import { ContractInstanceDeployedEvent } from '@aztec/protocol-contracts/instance-deployer';
54
+ import { Attributes, type TelemetryClient, type Traceable, type Tracer, trackSpan } from '@aztec/telemetry-client';
55
55
 
56
56
  import groupBy from 'lodash.groupby';
57
57
  import {
@@ -85,7 +85,7 @@ export type ArchiveSource = L2BlockSource &
85
85
  * Responsible for handling robust L1 polling so that other components do not need to
86
86
  * concern themselves with it.
87
87
  */
88
- export class Archiver implements ArchiveSource {
88
+ export class Archiver implements ArchiveSource, Traceable {
89
89
  /**
90
90
  * A promise in which we will be continually fetching new L2 blocks.
91
91
  */
@@ -99,6 +99,8 @@ export class Archiver implements ArchiveSource {
99
99
  public l1BlockNumber: bigint | undefined;
100
100
  public l1Timestamp: bigint | undefined;
101
101
 
102
+ public readonly tracer: Tracer;
103
+
102
104
  /**
103
105
  * Creates a new instance of the Archiver.
104
106
  * @param publicClient - A client for interacting with the Ethereum node.
@@ -118,6 +120,7 @@ export class Archiver implements ArchiveSource {
118
120
  private readonly l1constants: L1RollupConstants,
119
121
  private readonly log: Logger = createLogger('archiver'),
120
122
  ) {
123
+ this.tracer = instrumentation.tracer;
121
124
  this.store = new ArchiverStoreHelper(dataStore);
122
125
 
123
126
  this.rollup = getContract({
@@ -194,24 +197,14 @@ export class Archiver implements ArchiveSource {
194
197
  await this.sync(blockUntilSynced);
195
198
  }
196
199
 
197
- this.runningPromise = new RunningPromise(() => this.safeSync(), this.config.pollingIntervalMs);
200
+ this.runningPromise = new RunningPromise(() => this.sync(false), this.log, this.config.pollingIntervalMs);
198
201
  this.runningPromise.start();
199
202
  }
200
203
 
201
- /**
202
- * Syncs and catches exceptions.
203
- */
204
- private async safeSync() {
205
- try {
206
- await this.sync(false);
207
- } catch (error) {
208
- this.log.error('Error syncing archiver', error);
209
- }
210
- }
211
-
212
204
  /**
213
205
  * Fetches logs from L1 contracts and processes them.
214
206
  */
207
+ @trackSpan('Archiver.sync', initialRun => ({ [Attributes.INITIAL_SYNC]: initialRun }))
215
208
  private async sync(initialRun: boolean) {
216
209
  /**
217
210
  * We keep track of three "pointers" to L1 blocks:
@@ -21,6 +21,9 @@ export type ArchiverConfig = {
21
21
  /** URL for an archiver service. If set, will return an archiver client as opposed to starting a new one. */
22
22
  archiverUrl?: string;
23
23
 
24
+ /** URL for an L1 consensus client */
25
+ l1ConsensusClientUrl: string;
26
+
24
27
  /** The polling interval in ms for retrieving new L2 blocks and encrypted logs. */
25
28
  archiverPollingIntervalMS?: number;
26
29
 
@@ -44,6 +47,11 @@ export const archiverConfigMappings: ConfigMappingsType<ArchiverConfig> = {
44
47
  description:
45
48
  'URL for an archiver service. If set, will return an archiver client as opposed to starting a new one.',
46
49
  },
50
+ l1ConsensusClientUrl: {
51
+ env: 'L1_CONSENSUS_CLIENT_URL',
52
+ description: 'URL for an L1 consensus client.',
53
+ parseEnv: (val: string) => (val ? val : 'http://localhost:5052'),
54
+ },
47
55
  archiverPollingIntervalMS: {
48
56
  env: 'ARCHIVER_POLLING_INTERVAL_MS',
49
57
  description: 'The polling interval in ms for retrieving new L2 blocks and encrypted logs.',
@@ -1,6 +1,7 @@
1
1
  import { Body, InboxLeaf, L2Block } from '@aztec/circuit-types';
2
2
  import { AppendOnlyTreeSnapshot, BlockHeader, Fr, Proof } from '@aztec/circuits.js';
3
3
  import { asyncPool } from '@aztec/foundation/async-pool';
4
+ import { Blob } from '@aztec/foundation/blob';
4
5
  import { type EthAddress } from '@aztec/foundation/eth-address';
5
6
  import { type ViemSignature } from '@aztec/foundation/eth-signature';
6
7
  import { type Logger, createLogger } from '@aztec/foundation/log';
@@ -43,13 +44,15 @@ export async function retrieveBlocksFromRollup(
43
44
  if (searchStartBlock > searchEndBlock) {
44
45
  break;
45
46
  }
46
- const l2BlockProposedLogs = await rollup.getEvents.L2BlockProposed(
47
- {},
48
- {
49
- fromBlock: searchStartBlock,
50
- toBlock: searchEndBlock + 1n,
51
- },
52
- );
47
+ const l2BlockProposedLogs = (
48
+ await rollup.getEvents.L2BlockProposed(
49
+ {},
50
+ {
51
+ fromBlock: searchStartBlock,
52
+ toBlock: searchEndBlock,
53
+ },
54
+ )
55
+ ).filter(log => log.blockNumber! >= searchStartBlock && log.blockNumber! <= searchEndBlock);
53
56
 
54
57
  if (l2BlockProposedLogs.length === 0) {
55
58
  break;
@@ -135,7 +138,8 @@ async function getBlockFromRollupTx(
135
138
  if (!allowedMethods.includes(functionName)) {
136
139
  throw new Error(`Unexpected method called ${functionName}`);
137
140
  }
138
- const [decodedArgs, , bodyHex] = args! as readonly [
141
+ // TODO(#9101): 'bodyHex' will be removed from below
142
+ const [decodedArgs, , bodyHex, blobInputs] = args! as readonly [
139
143
  {
140
144
  header: Hex;
141
145
  archive: Hex;
@@ -148,11 +152,38 @@ async function getBlockFromRollupTx(
148
152
  },
149
153
  ViemSignature[],
150
154
  Hex,
155
+ Hex,
151
156
  ];
152
157
 
153
158
  const header = BlockHeader.fromBuffer(Buffer.from(hexToBytes(decodedArgs.header)));
159
+ // TODO(#9101): Retreiving the block body from calldata is a temporary soln before we have
160
+ // either a beacon chain client or link to some blob store. Web2 is ok because we will
161
+ // verify the block body vs the blob as below.
154
162
  const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
155
163
 
164
+ const blockFields = blockBody.toBlobFields();
165
+ // TODO(#9101): The below reconstruction is currently redundant, but once we extract blobs will be the way to construct blocks.
166
+ // The blob source will give us blockFields, and we must construct the body from them:
167
+ // TODO(#8954): When logs are refactored into fields, we won't need to inject them here.
168
+ const reconstructedBlock = Body.fromBlobFields(blockFields, blockBody.unencryptedLogs, blockBody.contractClassLogs);
169
+
170
+ if (!reconstructedBlock.toBuffer().equals(blockBody.toBuffer())) {
171
+ // TODO(#9101): Remove below check (without calldata there will be nothing to check against)
172
+ throw new Error(`Block reconstructed from blob fields does not match`);
173
+ }
174
+
175
+ // TODO(#9101): Once we stop publishing calldata, we will still need the blobCheck below to ensure that the block we are building does correspond to the blob fields
176
+ const blobCheck = Blob.getBlobs(blockFields);
177
+ if (Blob.getEthBlobEvaluationInputs(blobCheck) !== blobInputs) {
178
+ // NB: We can just check the blobhash here, which is the first 32 bytes of blobInputs
179
+ // A mismatch means that the fields published in the blob in propose() do NOT match those in the extracted block.
180
+ throw new Error(
181
+ `Block body mismatched with blob for block number ${l2BlockNum}. \nExpected: ${Blob.getEthBlobEvaluationInputs(
182
+ blobCheck,
183
+ )} \nGot: ${blobInputs}`,
184
+ );
185
+ }
186
+
156
187
  const blockNumberFromHeader = header.globalVariables.blockNumber.toBigInt();
157
188
 
158
189
  if (blockNumberFromHeader !== l2BlockNum) {
@@ -189,13 +220,15 @@ export async function retrieveL1ToL2Messages(
189
220
  break;
190
221
  }
191
222
 
192
- const messageSentLogs = await inbox.getEvents.MessageSent(
193
- {},
194
- {
195
- fromBlock: searchStartBlock,
196
- toBlock: searchEndBlock + 1n,
197
- },
198
- );
223
+ const messageSentLogs = (
224
+ await inbox.getEvents.MessageSent(
225
+ {},
226
+ {
227
+ fromBlock: searchStartBlock,
228
+ toBlock: searchEndBlock,
229
+ },
230
+ )
231
+ ).filter(log => log.blockNumber! >= searchStartBlock && log.blockNumber! <= searchEndBlock);
199
232
 
200
233
  if (messageSentLogs.length === 0) {
201
234
  break;
@@ -222,7 +255,7 @@ export async function retrieveL2ProofVerifiedEvents(
222
255
  const logs = await publicClient.getLogs({
223
256
  address: rollupAddress.toString(),
224
257
  fromBlock: searchStartBlock,
225
- toBlock: searchEndBlock ? searchEndBlock + 1n : undefined,
258
+ toBlock: searchEndBlock ? searchEndBlock : undefined,
226
259
  strict: true,
227
260
  event: getAbiItem({ abi: RollupAbi, name: 'L2ProofVerified' }),
228
261
  });
@@ -8,11 +8,14 @@ import {
8
8
  type LmdbStatsCallback,
9
9
  Metrics,
10
10
  type TelemetryClient,
11
+ type Tracer,
11
12
  type UpDownCounter,
12
13
  ValueType,
13
14
  } from '@aztec/telemetry-client';
14
15
 
15
16
  export class ArchiverInstrumentation {
17
+ public readonly tracer: Tracer;
18
+
16
19
  private blockHeight: Gauge;
17
20
  private blockSize: Gauge;
18
21
  private syncDuration: Histogram;
@@ -24,6 +27,7 @@ export class ArchiverInstrumentation {
24
27
  private log = createLogger('archiver:instrumentation');
25
28
 
26
29
  private constructor(private telemetry: TelemetryClient, lmdbStats?: LmdbStatsCallback) {
30
+ this.tracer = telemetry.getTracer('Archiver');
27
31
  const meter = telemetry.getMeter('Archiver');
28
32
  this.blockHeight = meter.createGauge(Metrics.ARCHIVER_BLOCK_HEIGHT, {
29
33
  description: 'The height of the latest block processed by the archiver',
package/src/factory.ts CHANGED
@@ -8,8 +8,10 @@ import { createLogger } from '@aztec/foundation/log';
8
8
  import { type Maybe } from '@aztec/foundation/types';
9
9
  import { type DataStoreConfig } from '@aztec/kv-store/config';
10
10
  import { createStore } from '@aztec/kv-store/lmdb';
11
- import { TokenBridgeContractArtifact, TokenContractArtifact } from '@aztec/noir-contracts.js';
12
- import { getCanonicalProtocolContract, protocolContractNames } from '@aztec/protocol-contracts';
11
+ import { TokenContractArtifact } from '@aztec/noir-contracts.js/Token';
12
+ import { TokenBridgeContractArtifact } from '@aztec/noir-contracts.js/TokenBridge';
13
+ import { protocolContractNames } from '@aztec/protocol-contracts';
14
+ import { getCanonicalProtocolContract } from '@aztec/protocol-contracts/bundle';
13
15
  import { type TelemetryClient } from '@aztec/telemetry-client';
14
16
  import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
15
17