Skip to content

Commit 590b42c

Browse files
committed
refactor: data provider --> store
1 parent 8e0f190 commit 590b42c

File tree

69 files changed

+1122
-1164
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+1122
-1164
lines changed

yarn-project/pxe/src/block_synchronizer/block_synchronizer.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ import { randomPublishedL2Block } from '@aztec/stdlib/testing';
99
import { jest } from '@jest/globals';
1010
import { type MockProxy, mock } from 'jest-mock-extended';
1111

12-
import { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
13-
import { NoteDataProvider } from '../storage/note_data_provider/note_data_provider.js';
12+
import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
13+
import { NoteStore } from '../storage/note_store/note_store.js';
1414
import { BlockSynchronizer } from './block_synchronizer.js';
1515

1616
describe('BlockSynchronizer', () => {
1717
let synchronizer: BlockSynchronizer;
1818
let tipsStore: L2TipsKVStore;
19-
let anchorBlockDataProvider: AnchorBlockDataProvider;
20-
let noteDataProvider: NoteDataProvider;
19+
let anchorBlockStore: AnchorBlockStore;
20+
let noteStore: NoteStore;
2121
let aztecNode: MockProxy<AztecNode>;
2222
let blockStream: MockProxy<L2BlockStream>;
2323

@@ -32,22 +32,22 @@ describe('BlockSynchronizer', () => {
3232
blockStream = mock<L2BlockStream>();
3333
aztecNode = mock<AztecNode>();
3434
tipsStore = new L2TipsKVStore(store, 'pxe');
35-
anchorBlockDataProvider = new AnchorBlockDataProvider(store);
36-
noteDataProvider = await NoteDataProvider.create(store);
37-
synchronizer = new TestSynchronizer(aztecNode, anchorBlockDataProvider, noteDataProvider, tipsStore);
35+
anchorBlockStore = new AnchorBlockStore(store);
36+
noteStore = await NoteStore.create(store);
37+
synchronizer = new TestSynchronizer(aztecNode, anchorBlockStore, noteStore, tipsStore);
3838
});
3939

4040
it('sets header from latest block', async () => {
4141
const block = await randomPublishedL2Block(1);
4242
await synchronizer.handleBlockStreamEvent({ type: 'blocks-added', blocks: [block] });
4343

44-
const obtainedHeader = await anchorBlockDataProvider.getBlockHeader();
44+
const obtainedHeader = await anchorBlockStore.getBlockHeader();
4545
expect(obtainedHeader).toEqual(block.block.getBlockHeader());
4646
});
4747

4848
it('removes notes from db on a reorg', async () => {
4949
const rollbackNotesAndNullifiers = jest
50-
.spyOn(noteDataProvider, 'rollbackNotesAndNullifiers')
50+
.spyOn(noteStore, 'rollbackNotesAndNullifiers')
5151
.mockImplementation(() => Promise.resolve());
5252
aztecNode.getBlockHeader.mockImplementation(async blockNumber =>
5353
(await L2Block.random(BlockNumber(blockNumber as number))).getBlockHeader(),

yarn-project/pxe/src/block_synchronizer/block_synchronizer.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { L2BlockStream, type L2BlockStreamEvent, type L2BlockStreamEventHandler
55
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
66

77
import type { PXEConfig } from '../config/index.js';
8-
import type { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
9-
import type { NoteDataProvider } from '../storage/note_data_provider/note_data_provider.js';
8+
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
9+
import type { NoteStore } from '../storage/note_store/note_store.js';
1010

1111
/**
1212
* The BlockSynchronizer class orchestrates synchronization between PXE and Aztec node, maintaining an up-to-date
@@ -20,8 +20,8 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
2020

2121
constructor(
2222
private node: AztecNode,
23-
private anchorBlockDataProvider: AnchorBlockDataProvider,
24-
private noteDataProvider: NoteDataProvider,
23+
private anchorBlockStore: AnchorBlockStore,
24+
private noteStore: NoteStore,
2525
private l2TipsStore: L2TipsKVStore,
2626
config: Partial<Pick<PXEConfig, 'l2BlockBatchSize'>> = {},
2727
loggerOrSuffix?: string | Logger,
@@ -54,20 +54,20 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
5454
archive: lastBlock.archive.root.toString(),
5555
header: lastBlock.header.toInspect(),
5656
});
57-
await this.anchorBlockDataProvider.setHeader(lastBlock.getBlockHeader());
57+
await this.anchorBlockStore.setHeader(lastBlock.getBlockHeader());
5858
break;
5959
}
6060
case 'chain-pruned': {
6161
this.log.warn(`Pruning data after block ${event.block.number} due to reorg`);
6262
// We first unnullify and then remove so that unnullified notes that were created after the block number end up deleted.
63-
const lastSynchedBlockNumber = (await this.anchorBlockDataProvider.getBlockHeader()).getBlockNumber();
64-
await this.noteDataProvider.rollbackNotesAndNullifiers(event.block.number, lastSynchedBlockNumber);
63+
const lastSynchedBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
64+
await this.noteStore.rollbackNotesAndNullifiers(event.block.number, lastSynchedBlockNumber);
6565
// Update the header to the last block.
6666
const newHeader = await this.node.getBlockHeader(event.block.number);
6767
if (!newHeader) {
6868
this.log.error(`Block header not found for block number ${event.block.number} during chain prune`);
6969
} else {
70-
await this.anchorBlockDataProvider.setHeader(newHeader);
70+
await this.anchorBlockStore.setHeader(newHeader);
7171
}
7272
break;
7373
}
@@ -104,13 +104,13 @@ export class BlockSynchronizer implements L2BlockStreamEventHandler {
104104
let currentHeader;
105105

106106
try {
107-
currentHeader = await this.anchorBlockDataProvider.getBlockHeader();
107+
currentHeader = await this.anchorBlockStore.getBlockHeader();
108108
} catch {
109109
this.log.debug('Header is not set, requesting from the node');
110110
}
111111
if (!currentHeader) {
112112
// REFACTOR: We should know the header of the genesis block without having to request it from the node.
113-
await this.anchorBlockDataProvider.setHeader((await this.node.getBlockHeader(BlockNumber.ZERO))!);
113+
await this.anchorBlockStore.setHeader((await this.node.getBlockHeader(BlockNumber.ZERO))!);
114114
}
115115
await this.blockStream.sync();
116116
}

yarn-project/pxe/src/contract_function_simulator/contract_function_simulator.ts

Lines changed: 42 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ import {
7171
getFinalMinRevertibleSideEffectCounter,
7272
} from '@aztec/stdlib/tx';
7373

74-
import type { AddressDataProvider } from '../storage/address_data_provider/address_data_provider.js';
75-
import type { AnchorBlockDataProvider } from '../storage/anchor_block_data_provider/anchor_block_data_provider.js';
76-
import type { CapsuleDataProvider } from '../storage/capsule_data_provider/capsule_data_provider.js';
77-
import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
78-
import type { NoteDataProvider } from '../storage/note_data_provider/note_data_provider.js';
79-
import type { PrivateEventDataProvider } from '../storage/private_event_data_provider/private_event_data_provider.js';
80-
import type { RecipientTaggingDataProvider } from '../storage/tagging_data_provider/recipient_tagging_data_provider.js';
81-
import type { SenderAddressBook } from '../storage/tagging_data_provider/sender_address_book.js';
82-
import type { SenderTaggingDataProvider } from '../storage/tagging_data_provider/sender_tagging_data_provider.js';
74+
import type { AddressStore } from '../storage/address_store/address_store.js';
75+
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
76+
import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
77+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
78+
import type { NoteStore } from '../storage/note_store/note_store.js';
79+
import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
80+
import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
81+
import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
82+
import type { SenderTaggingStore } from '../storage/tagging_store/sender_tagging_store.js';
8383
import { ExecutionNoteCache } from './execution_note_cache.js';
8484
import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
8585
import { HashedValuesCache } from './hashed_values_cache.js';
@@ -96,17 +96,17 @@ export class ContractFunctionSimulator {
9696
private log: Logger;
9797

9898
constructor(
99-
private contractDataProvider: ContractDataProvider,
100-
private noteDataProvider: NoteDataProvider,
99+
private contractStore: ContractStore,
100+
private noteStore: NoteStore,
101101
private keyStore: KeyStore,
102-
private addressDataProvider: AddressDataProvider,
102+
private addressStore: AddressStore,
103103
private aztecNode: AztecNode,
104-
private anchorBlockDataProvider: AnchorBlockDataProvider,
105-
private senderTaggingDataProvider: SenderTaggingDataProvider,
106-
private recipientTaggingDataProvider: RecipientTaggingDataProvider,
107-
private senderAddressBook: SenderAddressBook,
108-
private capsuleDataProvider: CapsuleDataProvider,
109-
private privateEventDataProvider: PrivateEventDataProvider,
104+
private anchorBlockStore: AnchorBlockStore,
105+
private senderTaggingStore: SenderTaggingStore,
106+
private recipientTaggingStore: RecipientTaggingStore,
107+
private senderAddressBookStore: SenderAddressBookStore,
108+
private capsuleStore: CapsuleStore,
109+
private privateEventStore: PrivateEventStore,
110110
private simulator: CircuitSimulator,
111111
) {
112112
this.log = createLogger('simulator');
@@ -136,12 +136,9 @@ export class ContractFunctionSimulator {
136136
): Promise<PrivateExecutionResult> {
137137
const simulatorSetupTimer = new Timer();
138138

139-
await verifyCurrentClassId(contractAddress, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
139+
await verifyCurrentClassId(contractAddress, this.aztecNode, this.contractStore, anchorBlockHeader);
140140

141-
const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(
142-
contractAddress,
143-
selector,
144-
);
141+
const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(contractAddress, selector);
145142

146143
if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
147144
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
@@ -177,17 +174,17 @@ export class ContractFunctionSimulator {
177174
HashedValuesCache.create(request.argsOfCalls),
178175
noteCache,
179176
taggingIndexCache,
180-
this.contractDataProvider,
181-
this.noteDataProvider,
177+
this.contractStore,
178+
this.noteStore,
182179
this.keyStore,
183-
this.addressDataProvider,
180+
this.addressStore,
184181
this.aztecNode,
185-
this.anchorBlockDataProvider,
186-
this.senderTaggingDataProvider,
187-
this.recipientTaggingDataProvider,
188-
this.senderAddressBook,
189-
this.capsuleDataProvider,
190-
this.privateEventDataProvider,
182+
this.anchorBlockStore,
183+
this.senderTaggingStore,
184+
this.recipientTaggingStore,
185+
this.senderAddressBookStore,
186+
this.capsuleStore,
187+
this.privateEventStore,
191188
0, // totalPublicArgsCount
192189
startSideEffectCounter,
193190
undefined, // log
@@ -259,12 +256,9 @@ export class ContractFunctionSimulator {
259256
anchorBlockHeader: BlockHeader,
260257
scopes?: AztecAddress[],
261258
): Promise<Fr[]> {
262-
await verifyCurrentClassId(call.to, this.aztecNode, this.contractDataProvider, anchorBlockHeader);
259+
await verifyCurrentClassId(call.to, this.aztecNode, this.contractStore, anchorBlockHeader);
263260

264-
const entryPointArtifact = await this.contractDataProvider.getFunctionArtifactWithDebugMetadata(
265-
call.to,
266-
call.selector,
267-
);
261+
const entryPointArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
268262

269263
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
270264
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
@@ -275,16 +269,16 @@ export class ContractFunctionSimulator {
275269
authwits,
276270
[],
277271
anchorBlockHeader,
278-
this.contractDataProvider,
279-
this.noteDataProvider,
272+
this.contractStore,
273+
this.noteStore,
280274
this.keyStore,
281-
this.addressDataProvider,
275+
this.addressStore,
282276
this.aztecNode,
283-
this.anchorBlockDataProvider,
284-
this.recipientTaggingDataProvider,
285-
this.senderAddressBook,
286-
this.capsuleDataProvider,
287-
this.privateEventDataProvider,
277+
this.anchorBlockStore,
278+
this.recipientTaggingStore,
279+
this.senderAddressBookStore,
280+
this.capsuleStore,
281+
this.privateEventStore,
288282
undefined,
289283
scopes,
290284
);
@@ -350,13 +344,13 @@ class OrderedSideEffect<T> {
350344
* @param privateExecutionResult - The result of the private execution.
351345
* @param nonceGenerator - A nonce generator for note hashes. According to the protocol rules,
352346
* it can either be the first nullifier in the tx or the hash of the initial tx request if there are none.
353-
* @param contractDataProvider - A provider for contract data in order to get function names and debug info.
347+
* @param contractStore - A provider for contract data in order to get function names and debug info.
354348
* @returns The simulated proving result.
355349
*/
356350
export async function generateSimulatedProvingResult(
357351
privateExecutionResult: PrivateExecutionResult,
358352
nonceGenerator: Fr,
359-
contractDataProvider: ContractDataProvider,
353+
contractStore: ContractStore,
360354
): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
361355
const siloedNoteHashes: OrderedSideEffect<Fr>[] = [];
362356
const nullifiers: OrderedSideEffect<Fr>[] = [];
@@ -433,7 +427,7 @@ export async function generateSimulatedProvingResult(
433427
: execution.publicInputs.publicTeardownCallRequest;
434428

435429
executionSteps.push({
436-
functionName: await contractDataProvider.getDebugFunctionName(
430+
functionName: await contractStore.getDebugFunctionName(
437431
execution.publicInputs.callContext.contractAddress,
438432
execution.publicInputs.callContext.functionSelector,
439433
),

0 commit comments

Comments
 (0)