@aztec/pxe 3.0.0-nightly.20260104 → 3.0.0-nightly.20260106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/block_synchronizer/block_synchronizer.d.ts +6 -6
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +11 -11
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +22 -22
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +31 -28
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +4 -4
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +3 -3
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +17 -13
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +13 -11
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +19 -19
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +44 -44
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
- package/dest/debug/pxe_debug_utils.d.ts +6 -6
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +7 -7
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +10 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +10 -1
- package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +11 -7
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +6 -6
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +7 -7
- package/dest/events/private_event_filter_validator.d.ts +6 -6
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +4 -4
- package/dest/logs/log_service.d.ts +12 -12
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +17 -17
- package/dest/notes/note_service.d.ts +7 -7
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +14 -14
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +4 -4
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
- package/dest/public_storage/public_storage_service.d.ts +4 -4
- package/dest/public_storage/public_storage_service.d.ts.map +1 -1
- package/dest/public_storage/public_storage_service.js +4 -4
- package/dest/pxe.d.ts +10 -10
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +81 -78
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.d.ts → capsule_store/capsule_store.d.ts} +2 -2
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +1 -1
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +4 -3
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +14 -2
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +7 -7
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +6 -6
- package/dest/storage/{private_event_data_provider/private_event_data_provider.d.ts → private_event_store/private_event_store.d.ts} +4 -4
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +2 -2
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/{tagging/recipient_sync/recipient_tagging_data_provider.d.ts → storage/tagging_store/recipient_tagging_store.d.ts} +4 -4
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/{tagging/recipient_sync/recipient_tagging_data_provider.js → storage/tagging_store/recipient_tagging_store.js} +3 -3
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/{tagging_data_provider/sender_address_book.js → tagging_store/sender_address_book_store.js} +1 -1
- package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +3 -3
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +3 -3
- package/dest/tagging/index.d.ts +14 -1
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +22 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +6 -6
- package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +3 -4
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -17
- package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +3 -3
- package/dest/tree_membership/tree_membership_service.d.ts +4 -4
- package/dest/tree_membership/tree_membership_service.d.ts.map +1 -1
- package/dest/tree_membership/tree_membership_service.js +5 -5
- package/package.json +16 -16
- package/src/block_synchronizer/block_synchronizer.ts +10 -10
- package/src/contract_function_simulator/contract_function_simulator.ts +49 -48
- package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +48 -47
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +51 -51
- package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
- package/src/debug/pxe_debug_utils.ts +6 -6
- package/src/entrypoints/client/bundle/utils.ts +7 -1
- package/src/entrypoints/client/lazy/utils.ts +7 -2
- package/src/entrypoints/pxe_creation_options.ts +2 -1
- package/src/entrypoints/server/utils.ts +11 -15
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +6 -6
- package/src/events/private_event_filter_validator.ts +5 -5
- package/src/logs/log_service.ts +16 -16
- package/src/notes/note_service.ts +13 -13
- package/src/private_kernel/private_kernel_oracle_impl.ts +6 -6
- package/src/public_storage/public_storage_service.ts +3 -3
- package/src/pxe.ts +100 -101
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +1 -1
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +22 -2
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/index.ts +7 -7
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +7 -7
- package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +4 -4
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/{tagging/recipient_sync/recipient_tagging_data_provider.ts → storage/tagging_store/recipient_tagging_store.ts} +3 -3
- package/src/storage/{tagging_data_provider/sender_address_book.ts → tagging_store/sender_address_book_store.ts} +1 -1
- package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +3 -3
- package/src/tagging/index.ts +26 -0
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +7 -7
- package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +9 -19
- package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +4 -4
- package/src/tree_membership/tree_membership_service.ts +4 -4
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
- package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
- package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.d.ts +0 -2
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -4
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -3
- package/dest/storage/tagging_data_provider/sender_address_book.d.ts +0 -14
- package/dest/storage/tagging_data_provider/sender_address_book.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/recipient_tagging_data_provider.d.ts.map +0 -1
- package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
- package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
- package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/anchor_block_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/tagging_data_provider/index.ts +0 -3
- /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
- /package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +0 -0
- /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
- /package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +0 -0
package/src/logs/log_service.ts
CHANGED
|
@@ -8,24 +8,24 @@ import { DirectionalAppTaggingSecret, PendingTaggedLog, SiloedTag, Tag, TxScoped
|
|
|
8
8
|
|
|
9
9
|
import type { LogRetrievalRequest } from '../contract_function_simulator/noir-structs/log_retrieval_request.js';
|
|
10
10
|
import { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import type {
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
11
|
+
import { AddressStore } from '../storage/address_store/address_store.js';
|
|
12
|
+
import { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
13
|
+
import { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
|
|
14
|
+
import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
|
|
15
|
+
import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
|
|
16
|
+
import { loadPrivateLogsForSenderRecipientPair } from '../tagging/index.js';
|
|
17
17
|
|
|
18
18
|
export class LogService {
|
|
19
19
|
private log = createLogger('log_service');
|
|
20
20
|
|
|
21
21
|
constructor(
|
|
22
22
|
private readonly aztecNode: AztecNode,
|
|
23
|
-
private readonly
|
|
23
|
+
private readonly anchorBlockStore: AnchorBlockStore,
|
|
24
24
|
private readonly keyStore: KeyStore,
|
|
25
|
-
private readonly
|
|
26
|
-
private readonly
|
|
27
|
-
private readonly
|
|
28
|
-
private readonly
|
|
25
|
+
private readonly capsuleStore: CapsuleStore,
|
|
26
|
+
private readonly recipientTaggingStore: RecipientTaggingStore,
|
|
27
|
+
private readonly senderAddressBookStore: SenderAddressBookStore,
|
|
28
|
+
private readonly addressStore: AddressStore,
|
|
29
29
|
) {}
|
|
30
30
|
|
|
31
31
|
public async bulkRetrieveLogs(logRetrievalRequests: LogRetrievalRequest[]): Promise<(LogRetrievalResponse | null)[]> {
|
|
@@ -101,7 +101,7 @@ export class LogService {
|
|
|
101
101
|
this.log.verbose('Searching for tagged logs', { contract: contractAddress });
|
|
102
102
|
|
|
103
103
|
// We only load logs from block up to and including the anchor block number
|
|
104
|
-
const anchorBlockNumber = (await this.
|
|
104
|
+
const anchorBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
105
105
|
|
|
106
106
|
// Determine recipients: use scopes if provided, otherwise get all accounts
|
|
107
107
|
const recipients = scopes && scopes.length > 0 ? scopes : await this.keyStore.getAccounts();
|
|
@@ -120,7 +120,7 @@ export class LogService {
|
|
|
120
120
|
secret,
|
|
121
121
|
contractAddress,
|
|
122
122
|
this.aztecNode,
|
|
123
|
-
this.
|
|
123
|
+
this.recipientTaggingStore,
|
|
124
124
|
anchorBlockNumber,
|
|
125
125
|
),
|
|
126
126
|
),
|
|
@@ -146,7 +146,7 @@ export class LogService {
|
|
|
146
146
|
|
|
147
147
|
// We implicitly add all PXE accounts as senders, this helps us decrypt tags on notes that we send to ourselves
|
|
148
148
|
// (recipient = us, sender = us)
|
|
149
|
-
const allSenders = [...(await this.
|
|
149
|
+
const allSenders = [...(await this.senderAddressBookStore.getSenders()), ...(await this.keyStore.getAccounts())];
|
|
150
150
|
|
|
151
151
|
// We deduplicate the senders by adding them to a set and then converting the set back to an array
|
|
152
152
|
const deduplicatedSenders = Array.from(new Set(allSenders.map(sender => sender.toString()))).map(sender =>
|
|
@@ -186,11 +186,11 @@ export class LogService {
|
|
|
186
186
|
});
|
|
187
187
|
|
|
188
188
|
// TODO: This looks like it could belong more at the oracle interface level
|
|
189
|
-
return this.
|
|
189
|
+
return this.capsuleStore.appendToCapsuleArray(contractAddress, capsuleArrayBaseSlot, pendingTaggedLogs);
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
async #getCompleteAddress(account: AztecAddress): Promise<CompleteAddress> {
|
|
193
|
-
const completeAddress = await this.
|
|
193
|
+
const completeAddress = await this.addressStore.getCompleteAddress(account);
|
|
194
194
|
if (!completeAddress) {
|
|
195
195
|
throw new Error(
|
|
196
196
|
`No public key registered for address ${account}.
|
|
@@ -7,14 +7,14 @@ import { Note, NoteDao, NoteStatus } from '@aztec/stdlib/note';
|
|
|
7
7
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
8
8
|
import type { TxHash } from '@aztec/stdlib/tx';
|
|
9
9
|
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
10
|
+
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
11
|
+
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
12
12
|
|
|
13
13
|
export class NoteService {
|
|
14
14
|
constructor(
|
|
15
|
-
private readonly
|
|
15
|
+
private readonly noteStore: NoteStore,
|
|
16
16
|
private readonly aztecNode: AztecNode,
|
|
17
|
-
private readonly
|
|
17
|
+
private readonly anchorBlockStore: AnchorBlockStore,
|
|
18
18
|
) {}
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -33,7 +33,7 @@ export class NoteService {
|
|
|
33
33
|
status: NoteStatus,
|
|
34
34
|
scopes?: AztecAddress[],
|
|
35
35
|
) {
|
|
36
|
-
const noteDaos = await this.
|
|
36
|
+
const noteDaos = await this.noteStore.getNotes({
|
|
37
37
|
contractAddress,
|
|
38
38
|
owner,
|
|
39
39
|
storageSlot,
|
|
@@ -59,7 +59,7 @@ export class NoteService {
|
|
|
59
59
|
/**
|
|
60
60
|
* Looks for nullifiers of active contract notes and marks them as nullified if a nullifier is found.
|
|
61
61
|
*
|
|
62
|
-
* Fetches notes from the
|
|
62
|
+
* Fetches notes from the NoteStore and checks which nullifiers are present in the
|
|
63
63
|
* onchain nullifier Merkle tree - up to the latest locally synced block. We use the
|
|
64
64
|
* locally synced block instead of querying the chain's 'latest' block to ensure correctness:
|
|
65
65
|
* notes are only marked nullified once their corresponding nullifier has been included in a
|
|
@@ -69,9 +69,9 @@ export class NoteService {
|
|
|
69
69
|
* @param contractAddress - The contract whose notes should be checked and nullified.
|
|
70
70
|
*/
|
|
71
71
|
public async syncNoteNullifiers(contractAddress: AztecAddress): Promise<void> {
|
|
72
|
-
const syncedBlockNumber = (await this.
|
|
72
|
+
const syncedBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
73
73
|
|
|
74
|
-
const contractNotes = await this.
|
|
74
|
+
const contractNotes = await this.noteStore.getNotes({ contractAddress });
|
|
75
75
|
|
|
76
76
|
if (contractNotes.length === 0) {
|
|
77
77
|
return;
|
|
@@ -105,7 +105,7 @@ export class NoteService {
|
|
|
105
105
|
})
|
|
106
106
|
.filter(nullifier => nullifier !== undefined) as DataInBlock<Fr>[];
|
|
107
107
|
|
|
108
|
-
await this.
|
|
108
|
+
await this.noteStore.applyNullifiers(foundNullifiers);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
public async deliverNote(
|
|
@@ -120,7 +120,7 @@ export class NoteService {
|
|
|
120
120
|
txHash: TxHash,
|
|
121
121
|
recipient: AztecAddress,
|
|
122
122
|
): Promise<void> {
|
|
123
|
-
// We are going to store the new note in the
|
|
123
|
+
// We are going to store the new note in the NoteStore, which will let us later return it via `getNotes`.
|
|
124
124
|
// There's two things we need to check before we do this however:
|
|
125
125
|
// - we must make sure the note does actually exist in the note hash tree
|
|
126
126
|
// - we need to check if the note has already been nullified
|
|
@@ -139,7 +139,7 @@ export class NoteService {
|
|
|
139
139
|
// number which *should* be recent enough to be available, even for non-archive nodes.
|
|
140
140
|
// Also note that the note should never be ahead of the synced block here since `fetchTaggedLogs` only processes
|
|
141
141
|
// logs up to the synced block making this only an additional safety check.
|
|
142
|
-
const syncedBlockNumber = (await this.
|
|
142
|
+
const syncedBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
143
143
|
|
|
144
144
|
// By computing siloed and unique note hashes ourselves we prevent contracts from interfering with the note storage
|
|
145
145
|
// of other contracts, which would constitute a security breach.
|
|
@@ -190,11 +190,11 @@ export class NoteService {
|
|
|
190
190
|
);
|
|
191
191
|
|
|
192
192
|
// The note was found by `recipient`, so we use that as the scope when storing the note.
|
|
193
|
-
await this.
|
|
193
|
+
await this.noteStore.addNotes([noteDao], recipient);
|
|
194
194
|
|
|
195
195
|
if (nullifierIndex !== undefined) {
|
|
196
196
|
const { data: _, ...blockHashAndNum } = nullifierIndex;
|
|
197
|
-
await this.
|
|
197
|
+
await this.noteStore.applyNullifiers([{ data: siloedNullifier, ...blockHashAndNum }]);
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
}
|
|
@@ -18,7 +18,7 @@ import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
|
|
|
18
18
|
import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
|
|
19
19
|
import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
|
|
20
20
|
|
|
21
|
-
import type {
|
|
21
|
+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
22
22
|
import type { PrivateKernelOracle } from './private_kernel_oracle.js';
|
|
23
23
|
|
|
24
24
|
// TODO: Block number should not be "latest".
|
|
@@ -29,7 +29,7 @@ import type { PrivateKernelOracle } from './private_kernel_oracle.js';
|
|
|
29
29
|
*/
|
|
30
30
|
export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
31
31
|
constructor(
|
|
32
|
-
private
|
|
32
|
+
private contractStore: ContractStore,
|
|
33
33
|
private keyStore: KeyStore,
|
|
34
34
|
private node: AztecNode,
|
|
35
35
|
private blockNumber: BlockParameter = 'latest',
|
|
@@ -37,7 +37,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
37
37
|
) {}
|
|
38
38
|
|
|
39
39
|
public async getContractAddressPreimage(address: AztecAddress) {
|
|
40
|
-
const instance = await this.
|
|
40
|
+
const instance = await this.contractStore.getContractInstance(address);
|
|
41
41
|
if (!instance) {
|
|
42
42
|
throw new Error(`Contract instance not found when getting address preimage. Contract address: ${address}.`);
|
|
43
43
|
}
|
|
@@ -48,7 +48,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
public async getContractClassIdPreimage(contractClassId: Fr) {
|
|
51
|
-
const contractClass = await this.
|
|
51
|
+
const contractClass = await this.contractStore.getContractClass(contractClassId);
|
|
52
52
|
if (!contractClass) {
|
|
53
53
|
throw new Error(`Contract class not found when getting class id preimage. Class id: ${contractClassId}.`);
|
|
54
54
|
}
|
|
@@ -56,7 +56,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
public async getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector) {
|
|
59
|
-
const membershipWitness = await this.
|
|
59
|
+
const membershipWitness = await this.contractStore.getFunctionMembershipWitness(contractClassId, selector);
|
|
60
60
|
if (!membershipWitness) {
|
|
61
61
|
throw new Error(
|
|
62
62
|
`Membership witness not found for contract class id ${contractClassId} and selector ${selector}.`,
|
|
@@ -96,7 +96,7 @@ export class PrivateKernelOracleImpl implements PrivateKernelOracle {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
public getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string> {
|
|
99
|
-
return this.
|
|
99
|
+
return this.contractStore.getDebugFunctionName(contractAddress, selector);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
public async getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints> {
|
|
@@ -3,11 +3,11 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
3
3
|
import type { BlockParameter } from '@aztec/stdlib/block';
|
|
4
4
|
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type { AnchorBlockStore } from '../storage/anchor_block_store/anchor_block_store.js';
|
|
7
7
|
|
|
8
8
|
export class PublicStorageService {
|
|
9
9
|
constructor(
|
|
10
|
-
private readonly
|
|
10
|
+
private readonly anchorBlockStore: AnchorBlockStore,
|
|
11
11
|
private readonly aztecNode: AztecNode,
|
|
12
12
|
) {}
|
|
13
13
|
|
|
@@ -24,7 +24,7 @@ export class PublicStorageService {
|
|
|
24
24
|
* @throws If the contract is not deployed.
|
|
25
25
|
*/
|
|
26
26
|
public async getPublicStorageAt(blockNumber: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr> {
|
|
27
|
-
const anchorBlockNumber = (await this.
|
|
27
|
+
const anchorBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
28
28
|
if (blockNumber !== 'latest' && blockNumber > anchorBlockNumber) {
|
|
29
29
|
throw new Error(`Block number ${blockNumber} is higher than current block ${anchorBlockNumber}`);
|
|
30
30
|
}
|