@aztec/archiver 0.76.4 → 0.77.0-testnet-ignition.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +1 -1
  2. package/dest/archiver/archiver.d.ts +22 -10
  3. package/dest/archiver/archiver.d.ts.map +1 -1
  4. package/dest/archiver/archiver.js +762 -713
  5. package/dest/archiver/archiver_store.d.ts +20 -7
  6. package/dest/archiver/archiver_store.d.ts.map +1 -1
  7. package/dest/archiver/archiver_store.js +4 -2
  8. package/dest/archiver/archiver_store_test_suite.d.ts +2 -2
  9. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  10. package/dest/archiver/archiver_store_test_suite.js +398 -227
  11. package/dest/archiver/config.d.ts +1 -1
  12. package/dest/archiver/config.d.ts.map +1 -1
  13. package/dest/archiver/config.js +10 -12
  14. package/dest/archiver/data_retrieval.d.ts +17 -14
  15. package/dest/archiver/data_retrieval.d.ts.map +1 -1
  16. package/dest/archiver/data_retrieval.js +90 -88
  17. package/dest/archiver/errors.js +1 -2
  18. package/dest/archiver/index.d.ts +1 -1
  19. package/dest/archiver/index.d.ts.map +1 -1
  20. package/dest/archiver/index.js +0 -1
  21. package/dest/archiver/instrumentation.d.ts +3 -1
  22. package/dest/archiver/instrumentation.d.ts.map +1 -1
  23. package/dest/archiver/instrumentation.js +37 -17
  24. package/dest/archiver/kv_archiver_store/block_store.d.ts +5 -3
  25. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  26. package/dest/archiver/kv_archiver_store/block_store.js +125 -130
  27. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -1
  28. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  29. package/dest/archiver/kv_archiver_store/contract_class_store.js +45 -37
  30. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +10 -2
  31. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  32. package/dest/archiver/kv_archiver_store/contract_instance_store.js +54 -15
  33. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +16 -9
  34. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  35. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +143 -160
  36. package/dest/archiver/kv_archiver_store/log_store.d.ts +5 -3
  37. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  38. package/dest/archiver/kv_archiver_store/log_store.js +296 -255
  39. package/dest/archiver/kv_archiver_store/message_store.d.ts +3 -3
  40. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  41. package/dest/archiver/kv_archiver_store/message_store.js +45 -50
  42. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +2 -2
  43. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +1 -1
  44. package/dest/archiver/kv_archiver_store/nullifier_store.js +36 -43
  45. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +2 -2
  46. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
  47. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +17 -26
  48. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +16 -7
  49. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
  50. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +287 -247
  51. package/dest/archiver/structs/data_retrieval.js +5 -2
  52. package/dest/archiver/structs/published.js +1 -2
  53. package/dest/factory.d.ts +20 -6
  54. package/dest/factory.d.ts.map +1 -1
  55. package/dest/factory.js +54 -30
  56. package/dest/index.js +0 -1
  57. package/dest/rpc/index.d.ts +2 -1
  58. package/dest/rpc/index.d.ts.map +1 -1
  59. package/dest/rpc/index.js +8 -4
  60. package/dest/test/index.js +0 -1
  61. package/dest/test/mock_archiver.d.ts +3 -2
  62. package/dest/test/mock_archiver.d.ts.map +1 -1
  63. package/dest/test/mock_archiver.js +8 -13
  64. package/dest/test/mock_l1_to_l2_message_source.d.ts +2 -2
  65. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  66. package/dest/test/mock_l1_to_l2_message_source.js +4 -4
  67. package/dest/test/mock_l2_block_source.d.ts +5 -3
  68. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  69. package/dest/test/mock_l2_block_source.js +71 -68
  70. package/package.json +15 -16
  71. package/src/archiver/archiver.ts +149 -89
  72. package/src/archiver/archiver_store.ts +27 -27
  73. package/src/archiver/archiver_store_test_suite.ts +22 -15
  74. package/src/archiver/config.ts +1 -1
  75. package/src/archiver/data_retrieval.ts +32 -44
  76. package/src/archiver/index.ts +1 -1
  77. package/src/archiver/instrumentation.ts +11 -1
  78. package/src/archiver/kv_archiver_store/block_store.ts +10 -4
  79. package/src/archiver/kv_archiver_store/contract_class_store.ts +9 -9
  80. package/src/archiver/kv_archiver_store/contract_instance_store.ts +81 -3
  81. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +44 -29
  82. package/src/archiver/kv_archiver_store/log_store.ts +56 -32
  83. package/src/archiver/kv_archiver_store/message_store.ts +4 -3
  84. package/src/archiver/kv_archiver_store/nullifier_store.ts +3 -2
  85. package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +3 -3
  86. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +110 -57
  87. package/src/factory.ts +44 -25
  88. package/src/rpc/index.ts +2 -6
  89. package/src/test/mock_archiver.ts +3 -2
  90. package/src/test/mock_l1_to_l2_message_source.ts +2 -2
  91. package/src/test/mock_l2_block_source.ts +16 -15
@@ -1,7 +1,7 @@
1
1
  import { type BlobSinkConfig } from '@aztec/blob-sink/client';
2
- import { type ChainConfig } from '@aztec/circuit-types/config';
3
2
  import { type L1ContractAddresses, type L1ContractsConfig, type L1ReaderConfig } from '@aztec/ethereum';
4
3
  import { type ConfigMappingsType } from '@aztec/foundation/config';
4
+ import { type ChainConfig } from '@aztec/stdlib/config';
5
5
  /**
6
6
  * There are 2 polling intervals used in this configuration. The first is the archiver polling interval, archiverPollingIntervalMS.
7
7
  * This is the interval between successive calls to eth_blockNumber via viem.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,6BAA6B,CAAC;AACpF,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,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,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,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,GAChB,iBAAiB,GACjB,cAAc,GACd,WAAW,CAAC;AAEd,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAmCrE,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,EAAE,KAAK,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAE7E;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,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,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,GAChB,iBAAiB,GACjB,cAAc,GACd,WAAW,CAAC;AAEd,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAmCrE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
@@ -1,48 +1,46 @@
1
1
  import { blobSinkConfigMapping } from '@aztec/blob-sink/client';
2
- import { chainConfigMappings } from '@aztec/circuit-types/config';
3
- import { l1ContractsConfigMappings, l1ReaderConfigMappings, } from '@aztec/ethereum';
2
+ import { l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
4
3
  import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
4
+ import { chainConfigMappings } from '@aztec/stdlib/config';
5
5
  export const archiverConfigMappings = {
6
6
  ...blobSinkConfigMapping,
7
7
  archiverUrl: {
8
8
  env: 'ARCHIVER_URL',
9
- description: 'URL for an archiver service. If set, will return an archiver client as opposed to starting a new one.',
9
+ description: 'URL for an archiver service. If set, will return an archiver client as opposed to starting a new one.'
10
10
  },
11
11
  l1ConsensusHostUrl: {
12
12
  env: 'L1_CONSENSUS_HOST_URL',
13
13
  description: 'URL for an L1 consensus client.',
14
- parseEnv: (val) => val,
14
+ parseEnv: (val)=>val
15
15
  },
16
16
  archiverPollingIntervalMS: {
17
17
  env: 'ARCHIVER_POLLING_INTERVAL_MS',
18
18
  description: 'The polling interval in ms for retrieving new L2 blocks and encrypted logs.',
19
- ...numberConfigHelper(500),
19
+ ...numberConfigHelper(500)
20
20
  },
21
21
  archiverBatchSize: {
22
22
  env: 'ARCHIVER_BATCH_SIZE',
23
23
  description: 'The number of L2 blocks the archiver will attempt to download at a time.',
24
- ...numberConfigHelper(100),
24
+ ...numberConfigHelper(100)
25
25
  },
26
26
  maxLogs: {
27
27
  env: 'ARCHIVER_MAX_LOGS',
28
28
  description: 'The max number of logs that can be obtained in 1 "getPublicLogs" call.',
29
- ...numberConfigHelper(1000),
29
+ ...numberConfigHelper(1_000)
30
30
  },
31
31
  ...chainConfigMappings,
32
32
  ...l1ReaderConfigMappings,
33
33
  viemPollingIntervalMS: {
34
34
  env: 'ARCHIVER_VIEM_POLLING_INTERVAL_MS',
35
35
  description: 'The polling interval viem uses in ms',
36
- ...numberConfigHelper(1000),
36
+ ...numberConfigHelper(1000)
37
37
  },
38
- ...l1ContractsConfigMappings,
38
+ ...l1ContractsConfigMappings
39
39
  };
40
40
  /**
41
41
  * Returns the archiver configuration from the environment variables.
42
42
  * Note: If an environment variable is not set, the default value is used.
43
43
  * @returns The archiver configuration.
44
- */
45
- export function getArchiverConfigFromEnv() {
44
+ */ export function getArchiverConfigFromEnv() {
46
45
  return getConfigFromMappings(archiverConfigMappings);
47
46
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFvQixtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BGLE9BQU8sRUFJTCx5QkFBeUIsRUFDekIsc0JBQXNCLEdBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUEyQixxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBc0M5RyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBdUM7SUFDeEUsR0FBRyxxQkFBcUI7SUFDeEIsV0FBVyxFQUFFO1FBQ1gsR0FBRyxFQUFFLGNBQWM7UUFDbkIsV0FBVyxFQUNULHVHQUF1RztLQUMxRztJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FBVyxFQUFFLGlDQUFpQztRQUM5QyxRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUc7S0FDL0I7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixHQUFHLEVBQUUsOEJBQThCO1FBQ25DLFdBQVcsRUFBRSw2RUFBNkU7UUFDMUYsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixHQUFHLEVBQUUscUJBQXFCO1FBQzFCLFdBQVcsRUFBRSwwRUFBMEU7UUFDdkYsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0I7SUFDRCxPQUFPLEVBQUU7UUFDUCxHQUFHLEVBQUUsbUJBQW1CO1FBQ3hCLFdBQVcsRUFBRSx3RUFBd0U7UUFDckYsR0FBRyxrQkFBa0IsQ0FBQyxJQUFLLENBQUM7S0FDN0I7SUFDRCxHQUFHLG1CQUFtQjtJQUN0QixHQUFHLHNCQUFzQjtJQUN6QixxQkFBcUIsRUFBRTtRQUNyQixHQUFHLEVBQUUsbUNBQW1DO1FBQ3hDLFdBQVcsRUFBRSxzQ0FBc0M7UUFDbkQsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7S0FDNUI7SUFDRCxHQUFHLHlCQUF5QjtDQUM3QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0I7SUFDdEMsT0FBTyxxQkFBcUIsQ0FBaUIsc0JBQXNCLENBQUMsQ0FBQztBQUN2RSxDQUFDIn0=
@@ -1,14 +1,17 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
4
- import { InboxLeaf, L2Block } from '@aztec/circuit-types';
5
- import { Fr, Proof } from '@aztec/circuits.js';
6
- import { type EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
4
+ import type { ViemPublicClient } from '@aztec/ethereum';
5
+ import type { EthAddress } from '@aztec/foundation/eth-address';
6
+ import { Fr } from '@aztec/foundation/fields';
7
7
  import { type Logger } from '@aztec/foundation/log';
8
8
  import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
9
- import { type Chain, type GetContractEventsReturnType, type GetContractReturnType, type Hex, type HttpTransport, type PublicClient } from 'viem';
10
- import { type DataRetrieval } from './structs/data_retrieval.js';
11
- import { type L1Published } from './structs/published.js';
9
+ import { L2Block } from '@aztec/stdlib/block';
10
+ import { InboxLeaf } from '@aztec/stdlib/messaging';
11
+ import { Proof } from '@aztec/stdlib/proofs';
12
+ import { type GetContractEventsReturnType, type GetContractReturnType, type Hex } from 'viem';
13
+ import type { DataRetrieval } from './structs/data_retrieval.js';
14
+ import type { L1Published } from './structs/published.js';
12
15
  /**
13
16
  * Fetches new L2 blocks.
14
17
  * @param publicClient - The viem public client to use for transaction retrieval.
@@ -18,7 +21,7 @@ import { type L1Published } from './structs/published.js';
18
21
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
19
22
  * @returns An array of block; as well as the next eth block to search from.
20
23
  */
21
- export declare function retrieveBlocksFromRollup(rollup: GetContractReturnType<typeof RollupAbi, PublicClient<HttpTransport, Chain>>, publicClient: PublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<L1Published<L2Block>[]>;
24
+ export declare function retrieveBlocksFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<L1Published<L2Block>[]>;
22
25
  /**
23
26
  * Processes newly received L2BlockProposed logs.
24
27
  * @param rollup - The rollup contract
@@ -26,8 +29,8 @@ export declare function retrieveBlocksFromRollup(rollup: GetContractReturnType<t
26
29
  * @param logs - L2BlockProposed logs.
27
30
  * @returns - An array blocks.
28
31
  */
29
- export declare function processL2BlockProposedLogs(rollup: GetContractReturnType<typeof RollupAbi, PublicClient<HttpTransport, Chain>>, publicClient: PublicClient, blobSinkClient: BlobSinkClientInterface, logs: GetContractEventsReturnType<typeof RollupAbi, 'L2BlockProposed'>, logger: Logger): Promise<L1Published<L2Block>[]>;
30
- export declare function getL1BlockTime(publicClient: PublicClient, blockNumber: bigint): Promise<bigint>;
32
+ export declare function processL2BlockProposedLogs(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, logs: GetContractEventsReturnType<typeof RollupAbi, 'L2BlockProposed'>, logger: Logger): Promise<L1Published<L2Block>[]>;
33
+ export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
31
34
  /**
32
35
  * Fetch L1 to L2 messages.
33
36
  * @param publicClient - The viem public client to use for transaction retrieval.
@@ -37,16 +40,16 @@ export declare function getL1BlockTime(publicClient: PublicClient, blockNumber:
37
40
  * @param searchEndBlock - The highest block number that we should search up to.
38
41
  * @returns An array of InboxLeaf and next eth block to search from.
39
42
  */
40
- export declare function retrieveL1ToL2Messages(inbox: GetContractReturnType<typeof InboxAbi, PublicClient<HttpTransport, Chain>>, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<InboxLeaf>>;
43
+ export declare function retrieveL1ToL2Messages(inbox: GetContractReturnType<typeof InboxAbi, ViemPublicClient>, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<InboxLeaf>>;
41
44
  /** Retrieves L2ProofVerified events from the rollup contract. */
42
- export declare function retrieveL2ProofVerifiedEvents(publicClient: PublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
45
+ export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
43
46
  l1BlockNumber: bigint;
44
47
  l2BlockNumber: bigint;
45
48
  proverId: Fr;
46
49
  txHash: Hex;
47
50
  }[]>;
48
51
  /** Retrieve submitted proofs from the rollup contract */
49
- export declare function retrieveL2ProofsFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
52
+ export declare function retrieveL2ProofsFromRollup(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
50
53
  proof: Proof;
51
54
  proverId: Fr;
52
55
  l2BlockNumber: bigint;
@@ -67,5 +70,5 @@ export type SubmitBlockProof = {
67
70
  * @param l2BlockNum - L2 block number.
68
71
  * @returns L2 block metadata (header and archive) from the calldata, deserialized
69
72
  */
70
- export declare function getProofFromSubmitProofTx(publicClient: PublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitBlockProof>;
73
+ export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitBlockProof>;
71
74
  //# sourceMappingURL=data_retrieval.d.ts.map
@@ -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,11 +1,15 @@
1
1
  import { Blob, BlobDeserializationError } from '@aztec/blob-lib';
2
- import { Body, InboxLeaf, L2Block } from '@aztec/circuit-types';
3
- import { AppendOnlyTreeSnapshot, BlockHeader, Fr, Proof } from '@aztec/circuits.js';
4
2
  import { asyncPool } from '@aztec/foundation/async-pool';
3
+ import { Fr } from '@aztec/foundation/fields';
5
4
  import { createLogger } from '@aztec/foundation/log';
6
5
  import { numToUInt32BE } from '@aztec/foundation/serialize';
7
6
  import { ForwarderAbi, RollupAbi } from '@aztec/l1-artifacts';
8
- import { decodeFunctionData, getAbiItem, hexToBytes, } from 'viem';
7
+ import { Body, L2Block } from '@aztec/stdlib/block';
8
+ import { InboxLeaf } from '@aztec/stdlib/messaging';
9
+ import { Proof } from '@aztec/stdlib/proofs';
10
+ import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
11
+ import { BlockHeader } from '@aztec/stdlib/tx';
12
+ import { decodeFunctionData, getAbiItem, hexToBytes } from 'viem';
9
13
  import { NoBlobBodiesFoundError } from './errors.js';
10
14
  /**
11
15
  * Fetches new L2 blocks.
@@ -15,8 +19,7 @@ import { NoBlobBodiesFoundError } from './errors.js';
15
19
  * @param searchEndBlock - The highest block number that we should search up to.
16
20
  * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
17
21
  * @returns An array of block; as well as the next eth block to search from.
18
- */
19
- export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkClient, searchStartBlock, searchEndBlock, logger = createLogger('archiver')) {
22
+ */ export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkClient, searchStartBlock, searchEndBlock, logger = createLogger('archiver')) {
20
23
  const retrievedBlocks = [];
21
24
  do {
22
25
  if (searchStartBlock > searchEndBlock) {
@@ -24,8 +27,8 @@ export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkCli
24
27
  }
25
28
  const l2BlockProposedLogs = (await rollup.getEvents.L2BlockProposed({}, {
26
29
  fromBlock: searchStartBlock,
27
- toBlock: searchEndBlock,
28
- })).filter(log => log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
30
+ toBlock: searchEndBlock
31
+ })).filter((log)=>log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
29
32
  if (l2BlockProposedLogs.length === 0) {
30
33
  break;
31
34
  }
@@ -34,8 +37,9 @@ export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkCli
34
37
  const newBlocks = await processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, l2BlockProposedLogs, logger);
35
38
  retrievedBlocks.push(...newBlocks);
36
39
  searchStartBlock = lastLog.blockNumber + 1n;
37
- } while (searchStartBlock <= searchEndBlock);
38
- return retrievedBlocks;
40
+ }while (searchStartBlock <= searchEndBlock)
41
+ // The asyncpool from processL2BlockProposedLogs will not necessarily return the blocks in order, so we sort them before returning.
42
+ return retrievedBlocks.sort((a, b)=>Number(a.l1.blockNumber - b.l1.blockNumber));
39
43
  }
40
44
  /**
41
45
  * Processes newly received L2BlockProposed logs.
@@ -43,35 +47,41 @@ export async function retrieveBlocksFromRollup(rollup, publicClient, blobSinkCli
43
47
  * @param publicClient - The viem public client to use for transaction retrieval.
44
48
  * @param logs - L2BlockProposed logs.
45
49
  * @returns - An array blocks.
46
- */
47
- export async function processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, logs, logger) {
50
+ */ export async function processL2BlockProposedLogs(rollup, publicClient, blobSinkClient, logs, logger) {
48
51
  const retrievedBlocks = [];
49
- await asyncPool(10, logs, async (log) => {
52
+ await asyncPool(10, logs, async (log)=>{
50
53
  const l2BlockNumber = log.args.blockNumber;
51
54
  const archive = log.args.archive;
52
- const archiveFromChain = await rollup.read.archiveAt([l2BlockNumber]);
53
- const blobHashes = log.args.versionedBlobHashes.map(blobHash => Buffer.from(blobHash.slice(2), 'hex'));
55
+ const archiveFromChain = await rollup.read.archiveAt([
56
+ l2BlockNumber
57
+ ]);
58
+ const blobHashes = log.args.versionedBlobHashes.map((blobHash)=>Buffer.from(blobHash.slice(2), 'hex'));
54
59
  // The value from the event and contract will match only if the block is in the chain.
55
60
  if (archive === archiveFromChain) {
56
61
  const block = await getBlockFromRollupTx(publicClient, blobSinkClient, log.transactionHash, blobHashes, l2BlockNumber, rollup.address, logger);
57
62
  const l1 = {
58
63
  blockNumber: log.blockNumber,
59
64
  blockHash: log.blockHash,
60
- timestamp: await getL1BlockTime(publicClient, log.blockNumber),
65
+ timestamp: await getL1BlockTime(publicClient, log.blockNumber)
61
66
  };
62
- retrievedBlocks.push({ data: block, l1 });
63
- }
64
- else {
67
+ retrievedBlocks.push({
68
+ data: block,
69
+ l1
70
+ });
71
+ } else {
65
72
  logger.warn(`Ignoring L2 block ${l2BlockNumber} due to archive root mismatch`, {
66
73
  actual: archive,
67
- expected: archiveFromChain,
74
+ expected: archiveFromChain
68
75
  });
69
76
  }
70
77
  });
71
78
  return retrievedBlocks;
72
79
  }
73
80
  export async function getL1BlockTime(publicClient, blockNumber) {
74
- const block = await publicClient.getBlock({ blockNumber, includeTransactions: false });
81
+ const block = await publicClient.getBlock({
82
+ blockNumber,
83
+ includeTransactions: false
84
+ });
75
85
  return block.timestamp;
76
86
  }
77
87
  /**
@@ -79,12 +89,11 @@ export async function getL1BlockTime(publicClient, blockNumber) {
79
89
  * @param forwarderData - The forwarder transaction input data
80
90
  * @param rollupAddress - The address of the rollup contract
81
91
  * @returns The calldata for the first 'propose' method call to the rollup contract
82
- */
83
- function extractRollupProposeCalldata(forwarderData, rollupAddress) {
92
+ */ function extractRollupProposeCalldata(forwarderData, rollupAddress) {
84
93
  // TODO(#11451): custom forwarders
85
94
  const { functionName: forwarderFunctionName, args: forwarderArgs } = decodeFunctionData({
86
95
  abi: ForwarderAbi,
87
- data: forwarderData,
96
+ data: forwarderData
88
97
  });
89
98
  if (forwarderFunctionName !== 'forward') {
90
99
  throw new Error(`Unexpected forwarder method called ${forwarderFunctionName}`);
@@ -95,7 +104,7 @@ function extractRollupProposeCalldata(forwarderData, rollupAddress) {
95
104
  const [to, data] = forwarderArgs;
96
105
  // Find all rollup calls
97
106
  const rollupAddressLower = rollupAddress.toLowerCase();
98
- for (let i = 0; i < to.length; i++) {
107
+ for(let i = 0; i < to.length; i++){
99
108
  const addr = to[i];
100
109
  if (addr.toLowerCase() !== rollupAddressLower) {
101
110
  continue;
@@ -104,14 +113,12 @@ function extractRollupProposeCalldata(forwarderData, rollupAddress) {
104
113
  try {
105
114
  const { functionName: rollupFunctionName } = decodeFunctionData({
106
115
  abi: RollupAbi,
107
- data: callData,
116
+ data: callData
108
117
  });
109
118
  if (rollupFunctionName === 'propose') {
110
119
  return callData;
111
120
  }
112
- }
113
- catch (err) {
114
- // Skip invalid function data
121
+ } catch (err) {
115
122
  continue;
116
123
  }
117
124
  }
@@ -125,53 +132,38 @@ function extractRollupProposeCalldata(forwarderData, rollupAddress) {
125
132
  * @param txHash - Hash of the tx that published it.
126
133
  * @param l2BlockNum - L2 block number.
127
134
  * @returns L2 block from the calldata, deserialized
128
- */
129
- async function getBlockFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, // WORKTODO(md): buffer32?
130
- l2BlockNum, rollupAddress, logger) {
131
- const { input: forwarderData, blockHash } = await publicClient.getTransaction({ hash: txHash });
135
+ */ async function getBlockFromRollupTx(publicClient, blobSinkClient, txHash, blobHashes, l2BlockNum, rollupAddress, logger) {
136
+ const { input: forwarderData, blockHash } = await publicClient.getTransaction({
137
+ hash: txHash
138
+ });
132
139
  const rollupData = extractRollupProposeCalldata(forwarderData, rollupAddress);
133
140
  const { functionName: rollupFunctionName, args: rollupArgs } = decodeFunctionData({
134
141
  abi: RollupAbi,
135
- data: rollupData,
142
+ data: rollupData
136
143
  });
137
144
  if (rollupFunctionName !== 'propose') {
138
145
  throw new Error(`Unexpected rollup method called ${rollupFunctionName}`);
139
146
  }
140
- // TODO(#9101): 'bodyHex' will be removed from below
141
- const [decodedArgs, , bodyHex, blobInputs] = rollupArgs;
147
+ const [decodedArgs, , blobInputs] = rollupArgs;
142
148
  const header = BlockHeader.fromBuffer(Buffer.from(hexToBytes(decodedArgs.header)));
143
149
  const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes);
144
150
  if (blobBodies.length === 0) {
145
151
  throw new NoBlobBodiesFoundError(Number(l2BlockNum));
146
152
  }
147
- // TODO(#9101): Once calldata is removed, we can remove this field encoding and update
148
- // Body.fromBlobFields to accept blob buffers directly
149
153
  let blockFields;
150
154
  try {
151
155
  blockFields = Blob.toEncodedFields(blobBodies);
152
- }
153
- catch (err) {
156
+ } catch (err) {
154
157
  if (err instanceof BlobDeserializationError) {
155
158
  logger.fatal(err.message);
156
- }
157
- else {
159
+ } else {
158
160
  logger.fatal('Unable to sync: failed to decode fetched blob, this blob was likely not created by us');
159
161
  }
160
162
  throw err;
161
163
  }
162
- // TODO(#9101): Retreiving the block body from calldata is a temporary soln before we have
163
- // either a beacon chain client or link to some blob store. Web2 is ok because we will
164
- // verify the block body vs the blob as below.
165
- const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
166
- // TODO(#9101): The below reconstruction is currently redundant, but once we extract blobs will be the way to construct blocks.
167
- // The blob source will give us blockFields, and we must construct the body from them:
168
- // TODO(#8954): When logs are refactored into fields, we won't need to inject them here.
169
- const reconstructedBlock = Body.fromBlobFields(blockFields, blockBody.contractClassLogs);
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
- // 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
164
+ // The blob source gives us blockFields, and we must construct the body from them:
165
+ const blockBody = Body.fromBlobFields(blockFields);
166
+ // TODO: Will this ever throw now that we do not get blocks from calldata at all?
175
167
  const blobCheck = await Blob.getBlobs(blockFields);
176
168
  if (Blob.getEthBlobEvaluationInputs(blobCheck) !== blobInputs) {
177
169
  // NB: We can just check the blobhash here, which is the first 32 bytes of blobInputs
@@ -183,8 +175,8 @@ l2BlockNum, rollupAddress, logger) {
183
175
  throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${blockNumberFromHeader}`);
184
176
  }
185
177
  const archive = AppendOnlyTreeSnapshot.fromBuffer(Buffer.concat([
186
- Buffer.from(hexToBytes(decodedArgs.archive)), // L2Block.archive.root
187
- numToUInt32BE(Number(l2BlockNum + 1n)), // L2Block.archive.nextAvailableLeafIndex
178
+ Buffer.from(hexToBytes(decodedArgs.archive)),
179
+ numToUInt32BE(Number(l2BlockNum + 1n))
188
180
  ]));
189
181
  return new L2Block(archive, header, blockBody);
190
182
  }
@@ -196,8 +188,7 @@ l2BlockNum, rollupAddress, logger) {
196
188
  * @param searchStartBlock - The block number to use for starting the search.
197
189
  * @param searchEndBlock - The highest block number that we should search up to.
198
190
  * @returns An array of InboxLeaf and next eth block to search from.
199
- */
200
- export async function retrieveL1ToL2Messages(inbox, searchStartBlock, searchEndBlock) {
191
+ */ export async function retrieveL1ToL2Messages(inbox, searchStartBlock, searchEndBlock) {
201
192
  const retrievedL1ToL2Messages = [];
202
193
  do {
203
194
  if (searchStartBlock > searchEndBlock) {
@@ -205,48 +196,57 @@ export async function retrieveL1ToL2Messages(inbox, searchStartBlock, searchEndB
205
196
  }
206
197
  const messageSentLogs = (await inbox.getEvents.MessageSent({}, {
207
198
  fromBlock: searchStartBlock,
208
- toBlock: searchEndBlock,
209
- })).filter(log => log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
199
+ toBlock: searchEndBlock
200
+ })).filter((log)=>log.blockNumber >= searchStartBlock && log.blockNumber <= searchEndBlock);
210
201
  if (messageSentLogs.length === 0) {
211
202
  break;
212
203
  }
213
- for (const log of messageSentLogs) {
204
+ for (const log of messageSentLogs){
214
205
  const { index, hash } = log.args;
215
206
  retrievedL1ToL2Messages.push(new InboxLeaf(index, Fr.fromHexString(hash)));
216
207
  }
217
208
  // handles the case when there are no new messages:
218
- searchStartBlock = (messageSentLogs.findLast(msgLog => !!msgLog)?.blockNumber || searchStartBlock) + 1n;
219
- } while (searchStartBlock <= searchEndBlock);
220
- return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedL1ToL2Messages };
209
+ searchStartBlock = (messageSentLogs.findLast((msgLog)=>!!msgLog)?.blockNumber || searchStartBlock) + 1n;
210
+ }while (searchStartBlock <= searchEndBlock)
211
+ return {
212
+ lastProcessedL1BlockNumber: searchStartBlock - 1n,
213
+ retrievedData: retrievedL1ToL2Messages
214
+ };
221
215
  }
222
- /** Retrieves L2ProofVerified events from the rollup contract. */
223
- export async function retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
216
+ /** Retrieves L2ProofVerified events from the rollup contract. */ export async function retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
224
217
  const logs = await publicClient.getLogs({
225
218
  address: rollupAddress.toString(),
226
219
  fromBlock: searchStartBlock,
227
220
  toBlock: searchEndBlock ? searchEndBlock : undefined,
228
221
  strict: true,
229
- event: getAbiItem({ abi: RollupAbi, name: 'L2ProofVerified' }),
222
+ event: getAbiItem({
223
+ abi: RollupAbi,
224
+ name: 'L2ProofVerified'
225
+ })
230
226
  });
231
- return logs.map(log => ({
232
- l1BlockNumber: log.blockNumber,
233
- l2BlockNumber: log.args.blockNumber,
234
- proverId: Fr.fromHexString(log.args.proverId),
235
- txHash: log.transactionHash,
236
- }));
227
+ return logs.map((log)=>({
228
+ l1BlockNumber: log.blockNumber,
229
+ l2BlockNumber: log.args.blockNumber,
230
+ proverId: Fr.fromHexString(log.args.proverId),
231
+ txHash: log.transactionHash
232
+ }));
237
233
  }
238
- /** Retrieve submitted proofs from the rollup contract */
239
- export async function retrieveL2ProofsFromRollup(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
234
+ /** Retrieve submitted proofs from the rollup contract */ export async function retrieveL2ProofsFromRollup(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
240
235
  const logs = await retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock);
241
236
  const retrievedData = [];
242
237
  const lastProcessedL1BlockNumber = logs.length > 0 ? logs.at(-1).l1BlockNumber : searchStartBlock - 1n;
243
- for (const { txHash, proverId, l2BlockNumber } of logs) {
238
+ for (const { txHash, proverId, l2BlockNumber } of logs){
244
239
  const proofData = await getProofFromSubmitProofTx(publicClient, txHash, proverId);
245
- retrievedData.push({ proof: proofData.proof, proverId: proofData.proverId, l2BlockNumber, txHash });
240
+ retrievedData.push({
241
+ proof: proofData.proof,
242
+ proverId: proofData.proverId,
243
+ l2BlockNumber,
244
+ txHash
245
+ });
246
246
  }
247
247
  return {
248
248
  retrievedData,
249
- lastProcessedL1BlockNumber,
249
+ lastProcessedL1BlockNumber
250
250
  };
251
251
  }
252
252
  /**
@@ -257,10 +257,14 @@ export async function retrieveL2ProofsFromRollup(publicClient, rollupAddress, se
257
257
  * @param txHash - Hash of the tx that published it.
258
258
  * @param l2BlockNum - L2 block number.
259
259
  * @returns L2 block metadata (header and archive) from the calldata, deserialized
260
- */
261
- export async function getProofFromSubmitProofTx(publicClient, txHash, expectedProverId) {
262
- const { input: data } = await publicClient.getTransaction({ hash: txHash });
263
- const { functionName, args } = decodeFunctionData({ abi: RollupAbi, data });
260
+ */ export async function getProofFromSubmitProofTx(publicClient, txHash, expectedProverId) {
261
+ const { input: data } = await publicClient.getTransaction({
262
+ hash: txHash
263
+ });
264
+ const { functionName, args } = decodeFunctionData({
265
+ abi: RollupAbi,
266
+ data
267
+ });
264
268
  let proverId;
265
269
  let archiveRoot;
266
270
  let aggregationObject;
@@ -268,11 +272,10 @@ export async function getProofFromSubmitProofTx(publicClient, txHash, expectedPr
268
272
  if (functionName === 'submitEpochRootProof') {
269
273
  const [decodedArgs] = args;
270
274
  aggregationObject = Buffer.from(hexToBytes(decodedArgs.aggregationObject));
271
- proverId = Fr.fromHexString(decodedArgs.args[6]);
272
- archiveRoot = Fr.fromHexString(decodedArgs.args[1]);
275
+ proverId = Fr.fromHexString(decodedArgs.args.proverId);
276
+ archiveRoot = Fr.fromHexString(decodedArgs.args.endArchive);
273
277
  proof = Proof.fromBuffer(Buffer.from(hexToBytes(decodedArgs.proof)));
274
- }
275
- else {
278
+ } else {
276
279
  throw new Error(`Unexpected proof method called ${functionName}`);
277
280
  }
278
281
  if (!proverId.equals(expectedProverId)) {
@@ -282,7 +285,6 @@ export async function getProofFromSubmitProofTx(publicClient, txHash, expectedPr
282
285
  proverId,
283
286
  aggregationObject,
284
287
  archiveRoot,
285
- proof,
288
+ proof
286
289
  };
287
290
  }
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd6RCxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQWlCLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdFLE9BQU8sRUFPTCxrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLFVBQVUsR0FDWCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlyRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLE1BQW1GLEVBQ25GLFlBQTBCLEVBQzFCLGNBQXVDLEVBQ3ZDLGdCQUF3QixFQUN4QixjQUFzQixFQUN0QixTQUFpQixZQUFZLENBQUMsVUFBVSxDQUFDO0lBRXpDLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUM7SUFDbkQsR0FBRyxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsTUFBTSxNQUFNLENB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
@@ -1,6 +1,5 @@
1
1
  export class NoBlobBodiesFoundError extends Error {
2
- constructor(l2BlockNum) {
2
+ constructor(l2BlockNum){
3
3
  super(`No blob bodies found for block ${l2BlockNum}`);
4
4
  }
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsS0FBSztJQUMvQyxZQUFZLFVBQWtCO1FBQzVCLEtBQUssQ0FBQyxrQ0FBa0MsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0YifQ==
@@ -2,7 +2,7 @@ export * from './archiver.js';
2
2
  export * from './config.js';
3
3
  export { type L1Published, type L1PublishedData } from './structs/published.js';
4
4
  export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
5
- export { ArchiverDataStore } from './archiver_store.js';
5
+ export type { ArchiverDataStore } from './archiver_store.js';
6
6
  export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
7
7
  export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC"}
@@ -3,4 +3,3 @@ export * from './config.js';
3
3
  export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
4
4
  export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
5
5
  export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFFNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { type L2Block } from '@aztec/circuit-types';
1
+ import type { L2Block } from '@aztec/stdlib/block';
2
2
  import { type LmdbStatsCallback, type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
3
3
  export declare class ArchiverInstrumentation {
4
4
  private telemetry;
@@ -7,6 +7,7 @@ export declare class ArchiverInstrumentation {
7
7
  private txCount;
8
8
  private syncDuration;
9
9
  private l1BlocksSynced;
10
+ private l1BlockHeight;
10
11
  private proofsSubmittedDelay;
11
12
  private proofsSubmittedCount;
12
13
  private dbMetrics;
@@ -23,5 +24,6 @@ export declare class ArchiverInstrumentation {
23
24
  l2BlockNumber: bigint;
24
25
  delay: bigint;
25
26
  }[]): void;
27
+ updateL1BlockHeight(blockNumber: bigint): void;
26
28
  }
27
29
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -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,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,uBAAuB;IAcd,OAAO,CAAC,SAAS;IAbrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,GAAG,CAA4C;IAEvD,OAAO;WAiDa,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,YAAY;IAIZ,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":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAKL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,uBAAuB;IAed,OAAO,CAAC,SAAS;IAdrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,GAAG,CAA4C;IAEvD,OAAO;WAsDa,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,YAAY;IAIZ,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;IAaxF,mBAAmB,CAAC,WAAW,EAAE,MAAM;CAG/C"}