@aztec/aztec-node 0.0.1-commit.e6bd8901 → 0.0.1-commit.ee80a48

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.
@@ -9,4 +9,4 @@ export declare class NodeMetrics {
9
9
  recordSnapshot(durationMs: number): void;
10
10
  recordSnapshotError(): void;
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9ub2RlX21ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUV4SCxxQkFBYSxXQUFXO0lBQ3RCLE9BQU8sQ0FBQyxjQUFjLENBQWdCO0lBQ3RDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBWTtJQUVyQyxPQUFPLENBQUMsa0JBQWtCLENBQWdCO0lBQzFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBWTtJQUVwQyxZQUFZLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxTQUFjLEVBVXREO0lBRUQsVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sUUFPakQ7SUFFRCxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sUUFNaEM7SUFFRCxtQkFBbUIsU0FFbEI7Q0FDRiJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9tZXRyaWNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9ub2RlX21ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLEtBQUssZUFBZSxFQUdyQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLHFCQUFhLFdBQVc7SUFDdEIsT0FBTyxDQUFDLGNBQWMsQ0FBZ0I7SUFDdEMsT0FBTyxDQUFDLGlCQUFpQixDQUFZO0lBRXJDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBZ0I7SUFDMUMsT0FBTyxDQUFDLGdCQUFnQixDQUFZO0lBRXBDLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQWMsRUFVdEQ7SUFFRCxVQUFVLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxRQU9qRDtJQUVELGNBQWMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxRQU1oQztJQUVELG1CQUFtQixTQUVsQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"node_metrics.d.ts","sourceRoot":"","sources":["../../src/aztec-node/node_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAExH,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAY;IAErC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,gBAAgB,CAAY;IAEpC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAc,EAUtD;IAED,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,QAOjD;IAED,cAAc,CAAC,UAAU,EAAE,MAAM,QAMhC;IAED,mBAAmB,SAElB;CACF"}
1
+ {"version":3,"file":"node_metrics.d.ts","sourceRoot":"","sources":["../../src/aztec-node/node_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAY;IAErC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,gBAAgB,CAAY;IAEpC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAc,EAUtD;IAED,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,QAOjD;IAED,cAAc,CAAC,UAAU,EAAE,MAAM,QAMhC;IAED,mBAAmB,SAElB;CACF"}
@@ -1,4 +1,4 @@
1
- import { Attributes, Metrics } from '@aztec/telemetry-client';
1
+ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
2
2
  export class NodeMetrics {
3
3
  receiveTxCount;
4
4
  receiveTxDuration;
@@ -6,11 +6,15 @@ export class NodeMetrics {
6
6
  snapshotDuration;
7
7
  constructor(client, name = 'AztecNode'){
8
8
  const meter = client.getMeter(name);
9
- this.receiveTxCount = meter.createUpDownCounter(Metrics.NODE_RECEIVE_TX_COUNT);
9
+ this.receiveTxCount = createUpDownCounterWithDefault(meter, Metrics.NODE_RECEIVE_TX_COUNT, {
10
+ [Attributes.OK]: [
11
+ true,
12
+ false
13
+ ]
14
+ });
10
15
  this.receiveTxDuration = meter.createHistogram(Metrics.NODE_RECEIVE_TX_DURATION);
11
16
  this.snapshotDuration = meter.createHistogram(Metrics.NODE_SNAPSHOT_DURATION);
12
- this.snapshotErrorCount = meter.createUpDownCounter(Metrics.NODE_SNAPSHOT_ERROR_COUNT);
13
- this.snapshotErrorCount.add(0);
17
+ this.snapshotErrorCount = createUpDownCounterWithDefault(meter, Metrics.NODE_SNAPSHOT_ERROR_COUNT);
14
18
  }
15
19
  receivedTx(durationMs, isAccepted) {
16
20
  this.receiveTxDuration.record(Math.ceil(durationMs), {
@@ -1,5 +1,5 @@
1
1
  import { type BlobClientInterface } from '@aztec/blob-client/client';
2
- import { ARCHIVE_HEIGHT, type L1_TO_L2_MSG_TREE_HEIGHT, type NOTE_HASH_TREE_HEIGHT, type NULLIFIER_TREE_HEIGHT, type PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, type L1_TO_L2_MSG_TREE_HEIGHT, type NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { type EpochCacheInterface } from '@aztec/epoch-cache';
4
4
  import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
5
5
  import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
@@ -12,7 +12,7 @@ import { type P2P, type P2PClientDeps } from '@aztec/p2p';
12
12
  import { SequencerClient, type SequencerPublisher } from '@aztec/sequencer-client';
13
13
  import { EpochPruneWatcher, type SlasherClientInterface } from '@aztec/slasher';
14
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { type BlockParameter, type DataInBlock, L2Block, L2BlockHash, type L2BlockSource } from '@aztec/stdlib/block';
15
+ import { BlockHash, type BlockParameter, type DataInBlock, L2Block, type L2BlockSource } from '@aztec/stdlib/block';
16
16
  import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
17
17
  import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress, NodeInfo, ProtocolContractAddresses } from '@aztec/stdlib/contract';
18
18
  import { GasFees } from '@aztec/stdlib/gas';
@@ -108,7 +108,7 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
108
108
  * @param blockHash - The block hash being requested.
109
109
  * @returns The requested block.
110
110
  */
111
- getBlockByHash(blockHash: Fr): Promise<L2Block | undefined>;
111
+ getBlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
112
112
  private buildInitialBlock;
113
113
  /**
114
114
  * Get a block specified by its archive root.
@@ -155,8 +155,8 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
155
155
  getChainId(): Promise<number>;
156
156
  getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
157
157
  getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
158
- getPrivateLogsByTags(tags: SiloedTag[], page?: number, referenceBlock?: L2BlockHash): Promise<TxScopedL2Log[][]>;
159
- getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[], page?: number, referenceBlock?: L2BlockHash): Promise<TxScopedL2Log[][]>;
158
+ getPrivateLogsByTags(tags: SiloedTag[], page?: number, referenceBlock?: BlockHash): Promise<TxScopedL2Log[][]>;
159
+ getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[], page?: number, referenceBlock?: BlockHash): Promise<TxScopedL2Log[][]>;
160
160
  /**
161
161
  * Gets public logs based on the provided filter.
162
162
  * @param filter - The filter to apply to the logs.
@@ -205,12 +205,10 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
205
205
  * @returns - The txs if it exists.
206
206
  */
207
207
  getTxsByHash(txHashes: TxHash[]): Promise<Tx[]>;
208
- findLeavesIndexes(block: BlockParameter, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(DataInBlock<bigint> | undefined)[]>;
209
- getNullifierSiblingPath(block: BlockParameter, leafIndex: bigint): Promise<SiblingPath<typeof NULLIFIER_TREE_HEIGHT>>;
210
- getNoteHashSiblingPath(block: BlockParameter, leafIndex: bigint): Promise<SiblingPath<typeof NOTE_HASH_TREE_HEIGHT>>;
211
- getArchiveMembershipWitness(block: BlockParameter, archive: Fr): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
212
- getNoteHashMembershipWitness(block: BlockParameter, noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
213
- getL1ToL2MessageMembershipWitness(block: BlockParameter, l1ToL2Message: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
208
+ findLeavesIndexes(referenceBlock: BlockParameter, treeId: MerkleTreeId, leafValues: Fr[]): Promise<(DataInBlock<bigint> | undefined)[]>;
209
+ getBlockHashMembershipWitness(referenceBlock: BlockParameter, blockHash: BlockHash): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
210
+ getNoteHashMembershipWitness(referenceBlock: BlockParameter, noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
211
+ getL1ToL2MessageMembershipWitness(referenceBlock: BlockParameter, l1ToL2Message: Fr): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
214
212
  getL1ToL2MessageBlock(l1ToL2Message: Fr): Promise<BlockNumber | undefined>;
215
213
  /**
216
214
  * Returns whether an L1 to L2 message is synced by archiver and if it's ready to be included in a block.
@@ -224,12 +222,11 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
224
222
  * @returns The L2 to L1 messages (empty array if the epoch is not found).
225
223
  */
226
224
  getL2ToL1Messages(epoch: EpochNumber): Promise<Fr[][][][]>;
227
- getArchiveSiblingPath(block: BlockParameter, leafIndex: bigint): Promise<SiblingPath<typeof ARCHIVE_HEIGHT>>;
228
- getPublicDataSiblingPath(block: BlockParameter, leafIndex: bigint): Promise<SiblingPath<typeof PUBLIC_DATA_TREE_HEIGHT>>;
229
- getNullifierMembershipWitness(block: BlockParameter, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
225
+ getNullifierMembershipWitness(referenceBlock: BlockParameter, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
230
226
  /**
231
227
  * Returns a low nullifier membership witness for a given nullifier at a given block.
232
- * @param block - The block parameter (block number, block hash, or 'latest') at which to get the data.
228
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data
229
+ * (which contains the root of the nullifier tree in which we are searching for the nullifier).
233
230
  * @param nullifier - Nullifier we try to find the low nullifier witness for.
234
231
  * @returns The low nullifier membership witness (if found).
235
232
  * @remarks Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked
@@ -241,9 +238,9 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
241
238
  * index of the nullifier itself when it already exists in the tree.
242
239
  * TODO: This is a confusing behavior and we should eventually address that.
243
240
  */
244
- getLowNullifierMembershipWitness(block: BlockParameter, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
245
- getPublicDataWitness(block: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
246
- getPublicStorageAt(block: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr>;
241
+ getLowNullifierMembershipWitness(referenceBlock: BlockParameter, nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
242
+ getPublicDataWitness(referenceBlock: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
243
+ getPublicStorageAt(referenceBlock: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr>;
247
244
  getBlockHeader(block?: BlockParameter): Promise<BlockHeader | undefined>;
248
245
  /**
249
246
  * Get a block header specified by its archive root.
@@ -273,4 +270,4 @@ export declare class AztecNodeService implements AztecNode, AztecNodeAdmin, Trac
273
270
  getSlashPayloads(): Promise<SlashPayloadRound[]>;
274
271
  getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
275
272
  }
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQWtDLE1BQU0sMkJBQTJCLENBQUM7QUFDckcsT0FBTyxFQUNMLGNBQWMsRUFDZCxLQUFLLHdCQUF3QixFQUM3QixLQUFLLHFCQUFxQixFQUMxQixLQUFLLHFCQUFxQixFQUMxQixLQUFLLHVCQUF1QixFQUM3QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBYyxLQUFLLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJMUUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3pFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLGFBQWEsRUFBb0QsTUFBTSxZQUFZLENBQUM7QUFFNUcsT0FBTyxFQUF5QixlQUFlLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFHLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsS0FBSyxzQkFBc0IsRUFHNUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsWUFBWSxF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
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp0ZWMtbm9kZS9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssbUJBQW1CLEVBQWtDLE1BQU0sMkJBQTJCLENBQUM7QUFDckcsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHdCQUF3QixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RyxPQUFPLEVBQWMsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTFFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU96RSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxhQUFhLEVBQW9ELE1BQU0sWUFBWSxDQUFDO0FBRTVHLE9BQU8sRUFBeUIsZUFBZSxFQUFFLEtBQUssa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLEtBQUssc0JBQXNCLEVBRzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxT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
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/aztec-node/server.ts"],"names":[],"mappings":"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"}
@@ -397,7 +397,7 @@ import { PublicProcessorFactory } from '@aztec/simulator/server';
397
397
  import { AttestationsBlockWatcher, EpochPruneWatcher, createSlasher } from '@aztec/slasher';
398
398
  import { CollectionLimitsConfig, PublicSimulatorConfig } from '@aztec/stdlib/avm';
399
399
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
400
- import { L2Block, L2BlockHash } from '@aztec/stdlib/block';
400
+ import { BlockHash, L2Block } from '@aztec/stdlib/block';
401
401
  import { GasFees } from '@aztec/stdlib/gas';
402
402
  import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
403
403
  import { AztecNodeAdminConfigSchema } from '@aztec/stdlib/interfaces/client';
@@ -767,8 +767,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
767
767
  * @param block - The block parameter (block number, block hash, or 'latest').
768
768
  * @returns The requested block.
769
769
  */ async getBlock(block) {
770
- if (L2BlockHash.isL2BlockHash(block)) {
771
- return this.getBlockByHash(Fr.fromBuffer(block.toBuffer()));
770
+ if (BlockHash.isBlockHash(block)) {
771
+ return this.getBlockByHash(block);
772
772
  }
773
773
  const blockNumber = block === 'latest' ? await this.getBlockNumber() : block;
774
774
  if (blockNumber === BlockNumber.ZERO) {
@@ -782,7 +782,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
782
782
  * @returns The requested block.
783
783
  */ async getBlockByHash(blockHash) {
784
784
  const initialBlockHash = await this.#getInitialHeaderHash();
785
- if (blockHash.equals(Fr.fromBuffer(initialBlockHash.toBuffer()))) {
785
+ if (blockHash.equals(initialBlockHash)) {
786
786
  return this.buildInitialBlock();
787
787
  }
788
788
  return await this.blockSource.getL2BlockByHash(blockHash);
@@ -867,8 +867,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
867
867
  if (referenceBlock) {
868
868
  const initialBlockHash = await this.#getInitialHeaderHash();
869
869
  if (!referenceBlock.equals(initialBlockHash)) {
870
- const blockHashFr = Fr.fromBuffer(referenceBlock.toBuffer());
871
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
870
+ const header = await this.blockSource.getBlockHeaderByHash(referenceBlock);
872
871
  if (!header) {
873
872
  throw new Error(`Block ${referenceBlock.toString()} not found in the node. This might indicate a reorg has occurred.`);
874
873
  }
@@ -880,8 +879,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
880
879
  if (referenceBlock) {
881
880
  const initialBlockHash = await this.#getInitialHeaderHash();
882
881
  if (!referenceBlock.equals(initialBlockHash)) {
883
- const blockHashFr = Fr.fromBuffer(referenceBlock.toBuffer());
884
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
882
+ const header = await this.blockSource.getBlockHeaderByHash(referenceBlock);
885
883
  if (!header) {
886
884
  throw new Error(`Block ${referenceBlock.toString()} not found in the node. This might indicate a reorg has occurred.`);
887
885
  }
@@ -997,8 +995,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
997
995
  */ async getTxsByHash(txHashes) {
998
996
  return compactArray(await Promise.all(txHashes.map((txHash)=>this.getTxByHash(txHash))));
999
997
  }
1000
- async findLeavesIndexes(block, treeId, leafValues) {
1001
- const committedDb = await this.#getWorldState(block);
998
+ async findLeavesIndexes(referenceBlock, treeId, leafValues) {
999
+ const committedDb = await this.#getWorldState(referenceBlock);
1002
1000
  const maybeIndices = await committedDb.findLeafIndices(treeId, leafValues.map((x)=>x.toBuffer()));
1003
1001
  // We filter out undefined values
1004
1002
  const indices = maybeIndices.filter((x)=>x !== undefined);
@@ -1041,35 +1039,27 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1041
1039
  }
1042
1040
  return {
1043
1041
  l2BlockNumber: BlockNumber(Number(blockNumber)),
1044
- l2BlockHash: L2BlockHash.fromField(blockHash),
1042
+ l2BlockHash: new BlockHash(blockHash),
1045
1043
  data: index
1046
1044
  };
1047
1045
  });
1048
1046
  }
1049
- async getNullifierSiblingPath(block, leafIndex) {
1050
- const committedDb = await this.#getWorldState(block);
1051
- return committedDb.getSiblingPath(MerkleTreeId.NULLIFIER_TREE, leafIndex);
1052
- }
1053
- async getNoteHashSiblingPath(block, leafIndex) {
1054
- const committedDb = await this.#getWorldState(block);
1055
- return committedDb.getSiblingPath(MerkleTreeId.NOTE_HASH_TREE, leafIndex);
1056
- }
1057
- async getArchiveMembershipWitness(block, archive) {
1058
- const committedDb = await this.#getWorldState(block);
1047
+ async getBlockHashMembershipWitness(referenceBlock, blockHash) {
1048
+ const committedDb = await this.#getWorldState(referenceBlock);
1059
1049
  const [pathAndIndex] = await committedDb.findSiblingPaths(MerkleTreeId.ARCHIVE, [
1060
- archive
1050
+ blockHash
1061
1051
  ]);
1062
1052
  return pathAndIndex === undefined ? undefined : MembershipWitness.fromSiblingPath(pathAndIndex.index, pathAndIndex.path);
1063
1053
  }
1064
- async getNoteHashMembershipWitness(block, noteHash) {
1065
- const committedDb = await this.#getWorldState(block);
1054
+ async getNoteHashMembershipWitness(referenceBlock, noteHash) {
1055
+ const committedDb = await this.#getWorldState(referenceBlock);
1066
1056
  const [pathAndIndex] = await committedDb.findSiblingPaths(MerkleTreeId.NOTE_HASH_TREE, [
1067
1057
  noteHash
1068
1058
  ]);
1069
1059
  return pathAndIndex === undefined ? undefined : MembershipWitness.fromSiblingPath(pathAndIndex.index, pathAndIndex.path);
1070
1060
  }
1071
- async getL1ToL2MessageMembershipWitness(block, l1ToL2Message) {
1072
- const db = await this.#getWorldState(block);
1061
+ async getL1ToL2MessageMembershipWitness(referenceBlock, l1ToL2Message) {
1062
+ const db = await this.#getWorldState(referenceBlock);
1073
1063
  const [witness] = await db.findSiblingPaths(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, [
1074
1064
  l1ToL2Message
1075
1065
  ]);
@@ -1116,16 +1106,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1116
1106
  }
1117
1107
  return blocksInCheckpoints.map((blocks)=>blocks.map((block)=>block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs)));
1118
1108
  }
1119
- async getArchiveSiblingPath(block, leafIndex) {
1120
- const committedDb = await this.#getWorldState(block);
1121
- return committedDb.getSiblingPath(MerkleTreeId.ARCHIVE, leafIndex);
1122
- }
1123
- async getPublicDataSiblingPath(block, leafIndex) {
1124
- const committedDb = await this.#getWorldState(block);
1125
- return committedDb.getSiblingPath(MerkleTreeId.PUBLIC_DATA_TREE, leafIndex);
1126
- }
1127
- async getNullifierMembershipWitness(block, nullifier) {
1128
- const db = await this.#getWorldState(block);
1109
+ async getNullifierMembershipWitness(referenceBlock, nullifier) {
1110
+ const db = await this.#getWorldState(referenceBlock);
1129
1111
  const [witness] = await db.findSiblingPaths(MerkleTreeId.NULLIFIER_TREE, [
1130
1112
  nullifier.toBuffer()
1131
1113
  ]);
@@ -1141,7 +1123,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1141
1123
  }
1142
1124
  /**
1143
1125
  * Returns a low nullifier membership witness for a given nullifier at a given block.
1144
- * @param block - The block parameter (block number, block hash, or 'latest') at which to get the data.
1126
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data
1127
+ * (which contains the root of the nullifier tree in which we are searching for the nullifier).
1145
1128
  * @param nullifier - Nullifier we try to find the low nullifier witness for.
1146
1129
  * @returns The low nullifier membership witness (if found).
1147
1130
  * @remarks Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked
@@ -1152,8 +1135,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1152
1135
  * the nullifier already exists in the tree. This is because the `getPreviousValueIndex` function returns the
1153
1136
  * index of the nullifier itself when it already exists in the tree.
1154
1137
  * TODO: This is a confusing behavior and we should eventually address that.
1155
- */ async getLowNullifierMembershipWitness(block, nullifier) {
1156
- const committedDb = await this.#getWorldState(block);
1138
+ */ async getLowNullifierMembershipWitness(referenceBlock, nullifier) {
1139
+ const committedDb = await this.#getWorldState(referenceBlock);
1157
1140
  const findResult = await committedDb.getPreviousValueIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBigInt());
1158
1141
  if (!findResult) {
1159
1142
  return undefined;
@@ -1166,8 +1149,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1166
1149
  const siblingPath = await committedDb.getSiblingPath(MerkleTreeId.NULLIFIER_TREE, BigInt(index));
1167
1150
  return new NullifierMembershipWitness(BigInt(index), preimageData, siblingPath);
1168
1151
  }
1169
- async getPublicDataWitness(block, leafSlot) {
1170
- const committedDb = await this.#getWorldState(block);
1152
+ async getPublicDataWitness(referenceBlock, leafSlot) {
1153
+ const committedDb = await this.#getWorldState(referenceBlock);
1171
1154
  const lowLeafResult = await committedDb.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
1172
1155
  if (!lowLeafResult) {
1173
1156
  return undefined;
@@ -1177,8 +1160,8 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1177
1160
  return new PublicDataWitness(lowLeafResult.index, preimage, path);
1178
1161
  }
1179
1162
  }
1180
- async getPublicStorageAt(block, contract, slot) {
1181
- const committedDb = await this.#getWorldState(block);
1163
+ async getPublicStorageAt(referenceBlock, contract, slot) {
1164
+ const committedDb = await this.#getWorldState(referenceBlock);
1182
1165
  const leafSlot = await computePublicDataTreeLeafSlot(contract, slot);
1183
1166
  const lowLeafResult = await committedDb.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
1184
1167
  if (!lowLeafResult || !lowLeafResult.alreadyPresent) {
@@ -1188,14 +1171,13 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1188
1171
  return preimage.leaf.value;
1189
1172
  }
1190
1173
  async getBlockHeader(block = 'latest') {
1191
- if (L2BlockHash.isL2BlockHash(block)) {
1174
+ if (BlockHash.isBlockHash(block)) {
1192
1175
  const initialBlockHash = await this.#getInitialHeaderHash();
1193
1176
  if (block.equals(initialBlockHash)) {
1194
1177
  // Block source doesn't handle initial header so we need to handle the case separately.
1195
1178
  return this.worldStateSynchronizer.getCommitted().getInitialHeader();
1196
1179
  }
1197
- const blockHashFr = Fr.fromBuffer(block.toBuffer());
1198
- return this.blockSource.getBlockHeaderByHash(blockHashFr);
1180
+ return this.blockSource.getBlockHeaderByHash(block);
1199
1181
  } else {
1200
1182
  // Block source doesn't handle initial header so we need to handle the case separately.
1201
1183
  const blockNumber = block === 'latest' ? await this.getBlockNumber() : block;
@@ -1229,7 +1211,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1229
1211
  const coinbase = EthAddress.ZERO;
1230
1212
  const feeRecipient = AztecAddress.ZERO;
1231
1213
  const newGlobalVariables = await this.globalVariableBuilder.buildGlobalVariables(blockNumber, coinbase, feeRecipient);
1232
- const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, new DateProvider(), this.telemetry);
1214
+ const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, new DateProvider(), this.telemetry, this.log.getBindings());
1233
1215
  this.log.verbose(`Simulating public calls for tx ${txHash}`, {
1234
1216
  globalVariables: newGlobalVariables.toInspect(),
1235
1217
  txHash,
@@ -1280,7 +1262,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1280
1262
  gasFees: await this.getCurrentMinFees(),
1281
1263
  skipFeeEnforcement,
1282
1264
  txsPermitted: !this.config.disableTransactions
1283
- });
1265
+ }, this.log.getBindings());
1284
1266
  return await validator.validateTx(tx);
1285
1267
  }
1286
1268
  getConfig() {
@@ -1424,7 +1406,7 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1424
1406
  }
1425
1407
  #getInitialHeaderHash() {
1426
1408
  if (!this.initialHeaderHashPromise) {
1427
- this.initialHeaderHashPromise = this.worldStateSynchronizer.getCommitted().getInitialHeader().hash().then((hash)=>L2BlockHash.fromField(hash));
1409
+ this.initialHeaderHashPromise = this.worldStateSynchronizer.getCommitted().getInitialHeader().hash();
1428
1410
  }
1429
1411
  return this.initialHeaderHashPromise;
1430
1412
  }
@@ -1444,14 +1426,13 @@ _dec = trackSpan('AztecNodeService.simulatePublicCalls', (tx)=>({
1444
1426
  this.log.debug(`Using committed db for block 'latest', world state synced upto ${blockSyncedTo}`);
1445
1427
  return this.worldStateSynchronizer.getCommitted();
1446
1428
  }
1447
- if (L2BlockHash.isL2BlockHash(block)) {
1429
+ if (BlockHash.isBlockHash(block)) {
1448
1430
  const initialBlockHash = await this.#getInitialHeaderHash();
1449
1431
  if (block.equals(initialBlockHash)) {
1450
1432
  // Block source doesn't handle initial header so we need to handle the case separately.
1451
1433
  return this.worldStateSynchronizer.getSnapshot(BlockNumber.ZERO);
1452
1434
  }
1453
- const blockHashFr = Fr.fromBuffer(block.toBuffer());
1454
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
1435
+ const header = await this.blockSource.getBlockHeaderByHash(block);
1455
1436
  if (!header) {
1456
1437
  throw new Error(`Block hash ${block.toString()} not found when querying world state. If the node API has been queried with anchor block hash possibly a reorg has occurred.`);
1457
1438
  }
@@ -6,4 +6,4 @@ import type { SlasherConfig } from '@aztec/stdlib/interfaces/server';
6
6
  import type { SentinelConfig } from './config.js';
7
7
  import { Sentinel } from './sentinel.js';
8
8
  export declare function createSentinel(epochCache: EpochCache, archiver: L2BlockSource, p2p: P2PClient, config: SentinelConfig & DataStoreConfig & SlasherConfig, logger?: import("@aztec/foundation/log").Logger): Promise<Sentinel | undefined>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbnRpbmVsL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLHdCQUFzQixjQUFjLENBQ2xDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLEdBQUcsRUFBRSxTQUFTLEVBQ2QsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLEdBQUcsYUFBYSxFQUN4RCxNQUFNLHlDQUFnQyxHQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQWlCL0IifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbnRpbmVsL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLHdCQUFzQixjQUFjLENBQ2xDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLFFBQVEsRUFBRSxhQUFhLEVBQ3ZCLEdBQUcsRUFBRSxTQUFTLEVBQ2QsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLEdBQUcsYUFBYSxFQUN4RCxNQUFNLHlDQUFnQyxHQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQVkvQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/sentinel/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,aAAa,EACxD,MAAM,yCAAgC,GACrC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAiB/B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/sentinel/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,aAAa,EACxD,MAAM,yCAAgC,GACrC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAY/B"}
@@ -6,7 +6,7 @@ export async function createSentinel(epochCache, archiver, p2p, config, logger =
6
6
  if (!config.sentinelEnabled) {
7
7
  return undefined;
8
8
  }
9
- const kvStore = await createStore('sentinel', SentinelStore.SCHEMA_VERSION, config, createLogger('node:sentinel:lmdb'));
9
+ const kvStore = await createStore('sentinel', SentinelStore.SCHEMA_VERSION, config, logger.getBindings());
10
10
  const storeHistoryLength = config.sentinelHistoryLengthInEpochs * epochCache.getL1Constants().epochDuration;
11
11
  const storeHistoricProvenPerformanceLength = config.sentinelHistoricProvenPerformanceLengthInEpochs;
12
12
  const sentinelStore = new SentinelStore(kvStore, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/aztec-node",
3
- "version": "0.0.1-commit.e6bd8901",
3
+ "version": "0.0.1-commit.ee80a48",
4
4
  "main": "dest/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -65,30 +65,30 @@
65
65
  ]
66
66
  },
67
67
  "dependencies": {
68
- "@aztec/archiver": "0.0.1-commit.e6bd8901",
69
- "@aztec/bb-prover": "0.0.1-commit.e6bd8901",
70
- "@aztec/blob-client": "0.0.1-commit.e6bd8901",
71
- "@aztec/constants": "0.0.1-commit.e6bd8901",
72
- "@aztec/epoch-cache": "0.0.1-commit.e6bd8901",
73
- "@aztec/ethereum": "0.0.1-commit.e6bd8901",
74
- "@aztec/foundation": "0.0.1-commit.e6bd8901",
75
- "@aztec/kv-store": "0.0.1-commit.e6bd8901",
76
- "@aztec/l1-artifacts": "0.0.1-commit.e6bd8901",
77
- "@aztec/merkle-tree": "0.0.1-commit.e6bd8901",
78
- "@aztec/node-keystore": "0.0.1-commit.e6bd8901",
79
- "@aztec/node-lib": "0.0.1-commit.e6bd8901",
80
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.e6bd8901",
81
- "@aztec/p2p": "0.0.1-commit.e6bd8901",
82
- "@aztec/protocol-contracts": "0.0.1-commit.e6bd8901",
83
- "@aztec/prover-client": "0.0.1-commit.e6bd8901",
84
- "@aztec/sequencer-client": "0.0.1-commit.e6bd8901",
85
- "@aztec/simulator": "0.0.1-commit.e6bd8901",
86
- "@aztec/slasher": "0.0.1-commit.e6bd8901",
87
- "@aztec/stdlib": "0.0.1-commit.e6bd8901",
88
- "@aztec/telemetry-client": "0.0.1-commit.e6bd8901",
89
- "@aztec/validator-client": "0.0.1-commit.e6bd8901",
90
- "@aztec/validator-ha-signer": "0.0.1-commit.e6bd8901",
91
- "@aztec/world-state": "0.0.1-commit.e6bd8901",
68
+ "@aztec/archiver": "0.0.1-commit.ee80a48",
69
+ "@aztec/bb-prover": "0.0.1-commit.ee80a48",
70
+ "@aztec/blob-client": "0.0.1-commit.ee80a48",
71
+ "@aztec/constants": "0.0.1-commit.ee80a48",
72
+ "@aztec/epoch-cache": "0.0.1-commit.ee80a48",
73
+ "@aztec/ethereum": "0.0.1-commit.ee80a48",
74
+ "@aztec/foundation": "0.0.1-commit.ee80a48",
75
+ "@aztec/kv-store": "0.0.1-commit.ee80a48",
76
+ "@aztec/l1-artifacts": "0.0.1-commit.ee80a48",
77
+ "@aztec/merkle-tree": "0.0.1-commit.ee80a48",
78
+ "@aztec/node-keystore": "0.0.1-commit.ee80a48",
79
+ "@aztec/node-lib": "0.0.1-commit.ee80a48",
80
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.ee80a48",
81
+ "@aztec/p2p": "0.0.1-commit.ee80a48",
82
+ "@aztec/protocol-contracts": "0.0.1-commit.ee80a48",
83
+ "@aztec/prover-client": "0.0.1-commit.ee80a48",
84
+ "@aztec/sequencer-client": "0.0.1-commit.ee80a48",
85
+ "@aztec/simulator": "0.0.1-commit.ee80a48",
86
+ "@aztec/slasher": "0.0.1-commit.ee80a48",
87
+ "@aztec/stdlib": "0.0.1-commit.ee80a48",
88
+ "@aztec/telemetry-client": "0.0.1-commit.ee80a48",
89
+ "@aztec/validator-client": "0.0.1-commit.ee80a48",
90
+ "@aztec/validator-ha-signer": "0.0.1-commit.ee80a48",
91
+ "@aztec/world-state": "0.0.1-commit.ee80a48",
92
92
  "koa": "^2.16.1",
93
93
  "koa-router": "^13.1.1",
94
94
  "tslib": "^2.4.0",
@@ -1,4 +1,11 @@
1
- import { Attributes, type Histogram, Metrics, type TelemetryClient, type UpDownCounter } from '@aztec/telemetry-client';
1
+ import {
2
+ Attributes,
3
+ type Histogram,
4
+ Metrics,
5
+ type TelemetryClient,
6
+ type UpDownCounter,
7
+ createUpDownCounterWithDefault,
8
+ } from '@aztec/telemetry-client';
2
9
 
3
10
  export class NodeMetrics {
4
11
  private receiveTxCount: UpDownCounter;
@@ -9,14 +16,14 @@ export class NodeMetrics {
9
16
 
10
17
  constructor(client: TelemetryClient, name = 'AztecNode') {
11
18
  const meter = client.getMeter(name);
12
- this.receiveTxCount = meter.createUpDownCounter(Metrics.NODE_RECEIVE_TX_COUNT);
19
+ this.receiveTxCount = createUpDownCounterWithDefault(meter, Metrics.NODE_RECEIVE_TX_COUNT, {
20
+ [Attributes.OK]: [true, false],
21
+ });
13
22
  this.receiveTxDuration = meter.createHistogram(Metrics.NODE_RECEIVE_TX_DURATION);
14
23
 
15
24
  this.snapshotDuration = meter.createHistogram(Metrics.NODE_SNAPSHOT_DURATION);
16
25
 
17
- this.snapshotErrorCount = meter.createUpDownCounter(Metrics.NODE_SNAPSHOT_ERROR_COUNT);
18
-
19
- this.snapshotErrorCount.add(0);
26
+ this.snapshotErrorCount = createUpDownCounterWithDefault(meter, Metrics.NODE_SNAPSHOT_ERROR_COUNT);
20
27
  }
21
28
 
22
29
  receivedTx(durationMs: number, isAccepted: boolean) {
@@ -1,13 +1,7 @@
1
1
  import { Archiver, createArchiver } from '@aztec/archiver';
2
2
  import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
3
3
  import { type BlobClientInterface, createBlobClientWithFileStores } from '@aztec/blob-client/client';
4
- import {
5
- ARCHIVE_HEIGHT,
6
- type L1_TO_L2_MSG_TREE_HEIGHT,
7
- type NOTE_HASH_TREE_HEIGHT,
8
- type NULLIFIER_TREE_HEIGHT,
9
- type PUBLIC_DATA_TREE_HEIGHT,
10
- } from '@aztec/constants';
4
+ import { ARCHIVE_HEIGHT, type L1_TO_L2_MSG_TREE_HEIGHT, type NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
11
5
  import { EpochCache, type EpochCacheInterface } from '@aztec/epoch-cache';
12
6
  import { createEthereumChain } from '@aztec/ethereum/chain';
13
7
  import { getPublicClient } from '@aztec/ethereum/client';
@@ -41,7 +35,7 @@ import {
41
35
  } from '@aztec/slasher';
42
36
  import { CollectionLimitsConfig, PublicSimulatorConfig } from '@aztec/stdlib/avm';
43
37
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
44
- import { type BlockParameter, type DataInBlock, L2Block, L2BlockHash, type L2BlockSource } from '@aztec/stdlib/block';
38
+ import { BlockHash, type BlockParameter, type DataInBlock, L2Block, type L2BlockSource } from '@aztec/stdlib/block';
45
39
  import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
46
40
  import type {
47
41
  ContractClassPublic,
@@ -119,7 +113,7 @@ import { NodeMetrics } from './node_metrics.js';
119
113
  */
120
114
  export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
121
115
  private metrics: NodeMetrics;
122
- private initialHeaderHashPromise: Promise<L2BlockHash> | undefined = undefined;
116
+ private initialHeaderHashPromise: Promise<BlockHash> | undefined = undefined;
123
117
 
124
118
  // Prevent two snapshot operations to happen simultaneously
125
119
  private isUploadingSnapshot = false;
@@ -570,8 +564,8 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
570
564
  * @returns The requested block.
571
565
  */
572
566
  public async getBlock(block: BlockParameter): Promise<L2Block | undefined> {
573
- if (L2BlockHash.isL2BlockHash(block)) {
574
- return this.getBlockByHash(Fr.fromBuffer(block.toBuffer()));
567
+ if (BlockHash.isBlockHash(block)) {
568
+ return this.getBlockByHash(block);
575
569
  }
576
570
  const blockNumber = block === 'latest' ? await this.getBlockNumber() : (block as BlockNumber);
577
571
  if (blockNumber === BlockNumber.ZERO) {
@@ -585,9 +579,9 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
585
579
  * @param blockHash - The block hash being requested.
586
580
  * @returns The requested block.
587
581
  */
588
- public async getBlockByHash(blockHash: Fr): Promise<L2Block | undefined> {
582
+ public async getBlockByHash(blockHash: BlockHash): Promise<L2Block | undefined> {
589
583
  const initialBlockHash = await this.#getInitialHeaderHash();
590
- if (blockHash.equals(Fr.fromBuffer(initialBlockHash.toBuffer()))) {
584
+ if (blockHash.equals(initialBlockHash)) {
591
585
  return this.buildInitialBlock();
592
586
  }
593
587
  return await this.blockSource.getL2BlockByHash(blockHash);
@@ -692,13 +686,12 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
692
686
  public async getPrivateLogsByTags(
693
687
  tags: SiloedTag[],
694
688
  page?: number,
695
- referenceBlock?: L2BlockHash,
689
+ referenceBlock?: BlockHash,
696
690
  ): Promise<TxScopedL2Log[][]> {
697
691
  if (referenceBlock) {
698
692
  const initialBlockHash = await this.#getInitialHeaderHash();
699
693
  if (!referenceBlock.equals(initialBlockHash)) {
700
- const blockHashFr = Fr.fromBuffer(referenceBlock.toBuffer());
701
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
694
+ const header = await this.blockSource.getBlockHeaderByHash(referenceBlock);
702
695
  if (!header) {
703
696
  throw new Error(
704
697
  `Block ${referenceBlock.toString()} not found in the node. This might indicate a reorg has occurred.`,
@@ -713,13 +706,12 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
713
706
  contractAddress: AztecAddress,
714
707
  tags: Tag[],
715
708
  page?: number,
716
- referenceBlock?: L2BlockHash,
709
+ referenceBlock?: BlockHash,
717
710
  ): Promise<TxScopedL2Log[][]> {
718
711
  if (referenceBlock) {
719
712
  const initialBlockHash = await this.#getInitialHeaderHash();
720
713
  if (!referenceBlock.equals(initialBlockHash)) {
721
- const blockHashFr = Fr.fromBuffer(referenceBlock.toBuffer());
722
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
714
+ const header = await this.blockSource.getBlockHeaderByHash(referenceBlock);
723
715
  if (!header) {
724
716
  throw new Error(
725
717
  `Block ${referenceBlock.toString()} not found in the node. This might indicate a reorg has occurred.`,
@@ -859,11 +851,11 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
859
851
  }
860
852
 
861
853
  public async findLeavesIndexes(
862
- block: BlockParameter,
854
+ referenceBlock: BlockParameter,
863
855
  treeId: MerkleTreeId,
864
856
  leafValues: Fr[],
865
857
  ): Promise<(DataInBlock<bigint> | undefined)[]> {
866
- const committedDb = await this.#getWorldState(block);
858
+ const committedDb = await this.#getWorldState(referenceBlock);
867
859
  const maybeIndices = await committedDb.findLeafIndices(
868
860
  treeId,
869
861
  leafValues.map(x => x.toBuffer()),
@@ -915,44 +907,28 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
915
907
  }
916
908
  return {
917
909
  l2BlockNumber: BlockNumber(Number(blockNumber)),
918
- l2BlockHash: L2BlockHash.fromField(blockHash),
910
+ l2BlockHash: new BlockHash(blockHash),
919
911
  data: index,
920
912
  };
921
913
  });
922
914
  }
923
915
 
924
- public async getNullifierSiblingPath(
925
- block: BlockParameter,
926
- leafIndex: bigint,
927
- ): Promise<SiblingPath<typeof NULLIFIER_TREE_HEIGHT>> {
928
- const committedDb = await this.#getWorldState(block);
929
- return committedDb.getSiblingPath(MerkleTreeId.NULLIFIER_TREE, leafIndex);
930
- }
931
-
932
- public async getNoteHashSiblingPath(
933
- block: BlockParameter,
934
- leafIndex: bigint,
935
- ): Promise<SiblingPath<typeof NOTE_HASH_TREE_HEIGHT>> {
936
- const committedDb = await this.#getWorldState(block);
937
- return committedDb.getSiblingPath(MerkleTreeId.NOTE_HASH_TREE, leafIndex);
938
- }
939
-
940
- public async getArchiveMembershipWitness(
941
- block: BlockParameter,
942
- archive: Fr,
916
+ public async getBlockHashMembershipWitness(
917
+ referenceBlock: BlockParameter,
918
+ blockHash: BlockHash,
943
919
  ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined> {
944
- const committedDb = await this.#getWorldState(block);
945
- const [pathAndIndex] = await committedDb.findSiblingPaths<MerkleTreeId.ARCHIVE>(MerkleTreeId.ARCHIVE, [archive]);
920
+ const committedDb = await this.#getWorldState(referenceBlock);
921
+ const [pathAndIndex] = await committedDb.findSiblingPaths<MerkleTreeId.ARCHIVE>(MerkleTreeId.ARCHIVE, [blockHash]);
946
922
  return pathAndIndex === undefined
947
923
  ? undefined
948
924
  : MembershipWitness.fromSiblingPath(pathAndIndex.index, pathAndIndex.path);
949
925
  }
950
926
 
951
927
  public async getNoteHashMembershipWitness(
952
- block: BlockParameter,
928
+ referenceBlock: BlockParameter,
953
929
  noteHash: Fr,
954
930
  ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined> {
955
- const committedDb = await this.#getWorldState(block);
931
+ const committedDb = await this.#getWorldState(referenceBlock);
956
932
  const [pathAndIndex] = await committedDb.findSiblingPaths<MerkleTreeId.NOTE_HASH_TREE>(
957
933
  MerkleTreeId.NOTE_HASH_TREE,
958
934
  [noteHash],
@@ -963,10 +939,10 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
963
939
  }
964
940
 
965
941
  public async getL1ToL2MessageMembershipWitness(
966
- block: BlockParameter,
942
+ referenceBlock: BlockParameter,
967
943
  l1ToL2Message: Fr,
968
944
  ): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined> {
969
- const db = await this.#getWorldState(block);
945
+ const db = await this.#getWorldState(referenceBlock);
970
946
  const [witness] = await db.findSiblingPaths(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, [l1ToL2Message]);
971
947
  if (!witness) {
972
948
  return undefined;
@@ -1019,27 +995,11 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1019
995
  );
1020
996
  }
1021
997
 
1022
- public async getArchiveSiblingPath(
1023
- block: BlockParameter,
1024
- leafIndex: bigint,
1025
- ): Promise<SiblingPath<typeof ARCHIVE_HEIGHT>> {
1026
- const committedDb = await this.#getWorldState(block);
1027
- return committedDb.getSiblingPath(MerkleTreeId.ARCHIVE, leafIndex);
1028
- }
1029
-
1030
- public async getPublicDataSiblingPath(
1031
- block: BlockParameter,
1032
- leafIndex: bigint,
1033
- ): Promise<SiblingPath<typeof PUBLIC_DATA_TREE_HEIGHT>> {
1034
- const committedDb = await this.#getWorldState(block);
1035
- return committedDb.getSiblingPath(MerkleTreeId.PUBLIC_DATA_TREE, leafIndex);
1036
- }
1037
-
1038
998
  public async getNullifierMembershipWitness(
1039
- block: BlockParameter,
999
+ referenceBlock: BlockParameter,
1040
1000
  nullifier: Fr,
1041
1001
  ): Promise<NullifierMembershipWitness | undefined> {
1042
- const db = await this.#getWorldState(block);
1002
+ const db = await this.#getWorldState(referenceBlock);
1043
1003
  const [witness] = await db.findSiblingPaths(MerkleTreeId.NULLIFIER_TREE, [nullifier.toBuffer()]);
1044
1004
  if (!witness) {
1045
1005
  return undefined;
@@ -1056,7 +1016,8 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1056
1016
 
1057
1017
  /**
1058
1018
  * Returns a low nullifier membership witness for a given nullifier at a given block.
1059
- * @param block - The block parameter (block number, block hash, or 'latest') at which to get the data.
1019
+ * @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data
1020
+ * (which contains the root of the nullifier tree in which we are searching for the nullifier).
1060
1021
  * @param nullifier - Nullifier we try to find the low nullifier witness for.
1061
1022
  * @returns The low nullifier membership witness (if found).
1062
1023
  * @remarks Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked
@@ -1069,10 +1030,10 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1069
1030
  * TODO: This is a confusing behavior and we should eventually address that.
1070
1031
  */
1071
1032
  public async getLowNullifierMembershipWitness(
1072
- block: BlockParameter,
1033
+ referenceBlock: BlockParameter,
1073
1034
  nullifier: Fr,
1074
1035
  ): Promise<NullifierMembershipWitness | undefined> {
1075
- const committedDb = await this.#getWorldState(block);
1036
+ const committedDb = await this.#getWorldState(referenceBlock);
1076
1037
  const findResult = await committedDb.getPreviousValueIndex(MerkleTreeId.NULLIFIER_TREE, nullifier.toBigInt());
1077
1038
  if (!findResult) {
1078
1039
  return undefined;
@@ -1087,8 +1048,8 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1087
1048
  return new NullifierMembershipWitness(BigInt(index), preimageData as NullifierLeafPreimage, siblingPath);
1088
1049
  }
1089
1050
 
1090
- async getPublicDataWitness(block: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined> {
1091
- const committedDb = await this.#getWorldState(block);
1051
+ async getPublicDataWitness(referenceBlock: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined> {
1052
+ const committedDb = await this.#getWorldState(referenceBlock);
1092
1053
  const lowLeafResult = await committedDb.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
1093
1054
  if (!lowLeafResult) {
1094
1055
  return undefined;
@@ -1102,8 +1063,8 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1102
1063
  }
1103
1064
  }
1104
1065
 
1105
- public async getPublicStorageAt(block: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr> {
1106
- const committedDb = await this.#getWorldState(block);
1066
+ public async getPublicStorageAt(referenceBlock: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr> {
1067
+ const committedDb = await this.#getWorldState(referenceBlock);
1107
1068
  const leafSlot = await computePublicDataTreeLeafSlot(contract, slot);
1108
1069
 
1109
1070
  const lowLeafResult = await committedDb.getPreviousValueIndex(MerkleTreeId.PUBLIC_DATA_TREE, leafSlot.toBigInt());
@@ -1118,14 +1079,13 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1118
1079
  }
1119
1080
 
1120
1081
  public async getBlockHeader(block: BlockParameter = 'latest'): Promise<BlockHeader | undefined> {
1121
- if (L2BlockHash.isL2BlockHash(block)) {
1082
+ if (BlockHash.isBlockHash(block)) {
1122
1083
  const initialBlockHash = await this.#getInitialHeaderHash();
1123
1084
  if (block.equals(initialBlockHash)) {
1124
1085
  // Block source doesn't handle initial header so we need to handle the case separately.
1125
1086
  return this.worldStateSynchronizer.getCommitted().getInitialHeader();
1126
1087
  }
1127
- const blockHashFr = Fr.fromBuffer(block.toBuffer());
1128
- return this.blockSource.getBlockHeaderByHash(blockHashFr);
1088
+ return this.blockSource.getBlockHeaderByHash(block);
1129
1089
  } else {
1130
1090
  // Block source doesn't handle initial header so we need to handle the case separately.
1131
1091
  const blockNumber = block === 'latest' ? await this.getBlockNumber() : (block as BlockNumber);
@@ -1183,6 +1143,7 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1183
1143
  this.contractDataSource,
1184
1144
  new DateProvider(),
1185
1145
  this.telemetry,
1146
+ this.log.getBindings(),
1186
1147
  );
1187
1148
 
1188
1149
  this.log.verbose(`Simulating public calls for tx ${txHash}`, {
@@ -1236,16 +1197,22 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1236
1197
  // We accept transactions if they are not expired by the next slot (checked based on the IncludeByTimestamp field)
1237
1198
  const { ts: nextSlotTimestamp } = this.epochCache.getEpochAndSlotInNextL1Slot();
1238
1199
  const blockNumber = BlockNumber((await this.blockSource.getBlockNumber()) + 1);
1239
- const validator = createValidatorForAcceptingTxs(db, this.contractDataSource, verifier, {
1240
- timestamp: nextSlotTimestamp,
1241
- blockNumber,
1242
- l1ChainId: this.l1ChainId,
1243
- rollupVersion: this.version,
1244
- setupAllowList: this.config.txPublicSetupAllowList ?? (await getDefaultAllowedSetupFunctions()),
1245
- gasFees: await this.getCurrentMinFees(),
1246
- skipFeeEnforcement,
1247
- txsPermitted: !this.config.disableTransactions,
1248
- });
1200
+ const validator = createValidatorForAcceptingTxs(
1201
+ db,
1202
+ this.contractDataSource,
1203
+ verifier,
1204
+ {
1205
+ timestamp: nextSlotTimestamp,
1206
+ blockNumber,
1207
+ l1ChainId: this.l1ChainId,
1208
+ rollupVersion: this.version,
1209
+ setupAllowList: this.config.txPublicSetupAllowList ?? (await getDefaultAllowedSetupFunctions()),
1210
+ gasFees: await this.getCurrentMinFees(),
1211
+ skipFeeEnforcement,
1212
+ txsPermitted: !this.config.disableTransactions,
1213
+ },
1214
+ this.log.getBindings(),
1215
+ );
1249
1216
 
1250
1217
  return await validator.validateTx(tx);
1251
1218
  }
@@ -1409,13 +1376,9 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1409
1376
  }
1410
1377
  }
1411
1378
 
1412
- #getInitialHeaderHash(): Promise<L2BlockHash> {
1379
+ #getInitialHeaderHash(): Promise<BlockHash> {
1413
1380
  if (!this.initialHeaderHashPromise) {
1414
- this.initialHeaderHashPromise = this.worldStateSynchronizer
1415
- .getCommitted()
1416
- .getInitialHeader()
1417
- .hash()
1418
- .then(hash => L2BlockHash.fromField(hash));
1381
+ this.initialHeaderHashPromise = this.worldStateSynchronizer.getCommitted().getInitialHeader().hash();
1419
1382
  }
1420
1383
  return this.initialHeaderHashPromise;
1421
1384
  }
@@ -1439,15 +1402,14 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
1439
1402
  return this.worldStateSynchronizer.getCommitted();
1440
1403
  }
1441
1404
 
1442
- if (L2BlockHash.isL2BlockHash(block)) {
1405
+ if (BlockHash.isBlockHash(block)) {
1443
1406
  const initialBlockHash = await this.#getInitialHeaderHash();
1444
1407
  if (block.equals(initialBlockHash)) {
1445
1408
  // Block source doesn't handle initial header so we need to handle the case separately.
1446
1409
  return this.worldStateSynchronizer.getSnapshot(BlockNumber.ZERO);
1447
1410
  }
1448
1411
 
1449
- const blockHashFr = Fr.fromBuffer(block.toBuffer());
1450
- const header = await this.blockSource.getBlockHeaderByHash(blockHashFr);
1412
+ const header = await this.blockSource.getBlockHeaderByHash(block);
1451
1413
  if (!header) {
1452
1414
  throw new Error(
1453
1415
  `Block hash ${block.toString()} not found when querying world state. If the node API has been queried with anchor block hash possibly a reorg has occurred.`,
@@ -20,12 +20,7 @@ export async function createSentinel(
20
20
  if (!config.sentinelEnabled) {
21
21
  return undefined;
22
22
  }
23
- const kvStore = await createStore(
24
- 'sentinel',
25
- SentinelStore.SCHEMA_VERSION,
26
- config,
27
- createLogger('node:sentinel:lmdb'),
28
- );
23
+ const kvStore = await createStore('sentinel', SentinelStore.SCHEMA_VERSION, config, logger.getBindings());
29
24
  const storeHistoryLength = config.sentinelHistoryLengthInEpochs * epochCache.getL1Constants().epochDuration;
30
25
  const storeHistoricProvenPerformanceLength = config.sentinelHistoricProvenPerformanceLengthInEpochs;
31
26
  const sentinelStore = new SentinelStore(kvStore, {