@aztec/pxe 3.0.0-nightly.20251208 → 3.0.0-nightly.20251209
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/contract_function_simulator/pxe_oracle_interface.d.ts +2 -2
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +8 -2
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +8 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +39 -0
- package/dest/private_kernel/private_kernel_execution_prover.js +2 -2
- package/dest/pxe.d.ts +13 -13
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +14 -11
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +29 -15
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -1
- package/dest/storage/private_event_data_provider/private_event_data_provider.js +34 -24
- package/package.json +16 -16
- package/src/contract_function_simulator/pxe_oracle_interface.ts +8 -6
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +47 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +2 -2
- package/src/pxe.ts +22 -24
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +57 -38
|
@@ -97,7 +97,7 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
97
97
|
validateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
98
98
|
deliverNote(contractAddress: AztecAddress, owner: AztecAddress, storageSlot: Fr, randomness: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
99
99
|
bulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
|
|
100
|
-
deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash,
|
|
100
|
+
deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash, scope: AztecAddress): Promise<void>;
|
|
101
101
|
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
102
102
|
getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
103
103
|
/**
|
|
@@ -120,4 +120,4 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
120
120
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
121
121
|
getStats(): ExecutionStats;
|
|
122
122
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX29yYWNsZV9pbnRlcmZhY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3IvcHhlX29yYWNsZV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxnQ0FBZ0MsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEYsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEYsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFlLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxPQUFPLEVBRUwsb0JBQW9CLEVBRXBCLG1CQUFtQixFQUdwQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_oracle_interface.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/pxe_oracle_interface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pxe_oracle_interface.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/pxe_oracle_interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -526,7 +526,7 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
526
526
|
// The responses are stored as Option<LogRetrievalResponse> in a second CapsuleArray.
|
|
527
527
|
await this.capsuleDataProvider.setCapsuleArray(contractAddress, logRetrievalResponsesArrayBaseSlot, maybeLogRetrievalResponses.map(LogRetrievalResponse.toSerializedOption));
|
|
528
528
|
}
|
|
529
|
-
async deliverEvent(contractAddress, selector, content, eventCommitment, txHash,
|
|
529
|
+
async deliverEvent(contractAddress, selector, content, eventCommitment, txHash, scope) {
|
|
530
530
|
// While using 'latest' block number would be fine for private events since they cannot be accessed from Aztec.nr
|
|
531
531
|
// (and thus we're less concerned about being ahead of the synced block), we use the synced block number to
|
|
532
532
|
// maintain consistent behavior in the PXE. Additionally, events should never be ahead of the synced block here
|
|
@@ -552,7 +552,13 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
552
552
|
if (nullifierIndex === undefined) {
|
|
553
553
|
throw new Error(`Event commitment ${eventCommitment} (siloed as ${siloedEventCommitment}) is not present on the nullifier tree at block ${syncedBlockNumber} (from tx ${txHash})`);
|
|
554
554
|
}
|
|
555
|
-
return this.privateEventDataProvider.storePrivateEventLog(
|
|
555
|
+
return this.privateEventDataProvider.storePrivateEventLog(selector, content, Number(nullifierIndex.data), {
|
|
556
|
+
contractAddress,
|
|
557
|
+
scope,
|
|
558
|
+
txHash,
|
|
559
|
+
l2BlockNumber: nullifierIndex.l2BlockNumber,
|
|
560
|
+
l2BlockHash: nullifierIndex.l2BlockHash
|
|
561
|
+
});
|
|
556
562
|
}
|
|
557
563
|
// TODO(#14555): delete this function and implement this behavior in the node instead
|
|
558
564
|
async getPublicLogByTag(tag, contractAddress) {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './private_event_filter_validator.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './private_event_filter_validator.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
|
|
2
|
+
import type { PrivateEventDataProviderFilter, SyncDataProvider } from '../storage/index.js';
|
|
3
|
+
export declare class PrivateEventFilterValidator {
|
|
4
|
+
private syncDataProvider;
|
|
5
|
+
constructor(syncDataProvider: SyncDataProvider);
|
|
6
|
+
validate(filter: PrivateEventFilter): Promise<PrivateEventDataProviderFilter>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9maWx0ZXJfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXZlbnRzL3ByaXZhdGVfZXZlbnRfZmlsdGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWpFLE9BQU8sS0FBSyxFQUFFLDhCQUE4QixFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUYscUJBQWEsMkJBQTJCO0lBQzFCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFBcEMsWUFBb0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUk7SUFFcEQsUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FvQ2xGO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private_event_filter_validator.d.ts","sourceRoot":"","sources":["../../src/events/private_event_filter_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,gBAAgB;IAApC,YAAoB,gBAAgB,EAAE,gBAAgB,EAAI;IAEpD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAoClF;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
2
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
export class PrivateEventFilterValidator {
|
|
4
|
+
syncDataProvider;
|
|
5
|
+
constructor(syncDataProvider){
|
|
6
|
+
this.syncDataProvider = syncDataProvider;
|
|
7
|
+
}
|
|
8
|
+
async validate(filter) {
|
|
9
|
+
let { fromBlock, toBlock } = filter;
|
|
10
|
+
// Block range filters in Aztec Node are defined as closed-open intervals [fromBlock, toBlock), so
|
|
11
|
+
// we respect that convention here for consistency.
|
|
12
|
+
// We then default to [INITIAL_L2_BLOCK_NUM, latestKnownBlock + 1), ie: by default return events from
|
|
13
|
+
// the first block to the latest known block.
|
|
14
|
+
if (!fromBlock || !toBlock) {
|
|
15
|
+
const lastKnownBlock = await this.syncDataProvider.getBlockNumber();
|
|
16
|
+
fromBlock = fromBlock ?? BlockNumber(INITIAL_L2_BLOCK_NUM);
|
|
17
|
+
toBlock = toBlock ?? BlockNumber(lastKnownBlock + 1);
|
|
18
|
+
}
|
|
19
|
+
if (filter.scopes.length === 0) {
|
|
20
|
+
throw new Error('At least one scope is required to get private events');
|
|
21
|
+
}
|
|
22
|
+
if (fromBlock < 1) {
|
|
23
|
+
throw new Error('fromBlock must be greater than or equal to 1');
|
|
24
|
+
}
|
|
25
|
+
if (toBlock < 1) {
|
|
26
|
+
throw new Error('toBlock must be greater than or equal to 1');
|
|
27
|
+
}
|
|
28
|
+
if (fromBlock >= toBlock) {
|
|
29
|
+
throw new Error('toBlock must be strictly greater than fromBlock');
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
contractAddress: filter.contractAddress,
|
|
33
|
+
scopes: filter.scopes,
|
|
34
|
+
txHash: filter.txHash,
|
|
35
|
+
toBlock,
|
|
36
|
+
fromBlock
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -181,8 +181,8 @@ const NULL_SIMULATE_OUTPUT = {
|
|
|
181
181
|
witgen: witgenTimer.ms()
|
|
182
182
|
}
|
|
183
183
|
});
|
|
184
|
-
// Hiding
|
|
185
|
-
// For simulation, we can end with the tail, since the
|
|
184
|
+
// Hiding kernel is only executed if we are generating witnesses.
|
|
185
|
+
// For simulation, we can end with the tail, since the Hiding kernel will simply return the same tail output.
|
|
186
186
|
if (generateWitnesses) {
|
|
187
187
|
const previousKernelVkData = await this.getVkData(tailOutput.verificationKey);
|
|
188
188
|
const witgenTimer = new Timer();
|
package/dest/pxe.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
4
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
@@ -6,19 +7,14 @@ import type { CircuitSimulator } from '@aztec/simulator/client';
|
|
|
6
7
|
import { type ContractArtifact, EventSelector, FunctionCall } from '@aztec/stdlib/abi';
|
|
7
8
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
8
9
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
-
import type { L2BlockHash } from '@aztec/stdlib/block';
|
|
10
10
|
import { CompleteAddress, type ContractClassWithId, type ContractInstanceWithAddress, type PartialAddress } from '@aztec/stdlib/contract';
|
|
11
11
|
import type { AztecNode, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
12
12
|
import type { NotesFilter } from '@aztec/stdlib/note';
|
|
13
13
|
import { NoteDao } from '@aztec/stdlib/note';
|
|
14
|
-
import { SimulationOverrides, TxExecutionRequest,
|
|
14
|
+
import { type InTx, SimulationOverrides, TxExecutionRequest, TxProfileResult, TxProvingResult, TxSimulationResult, UtilitySimulationResult } from '@aztec/stdlib/tx';
|
|
15
15
|
import type { PXEConfig } from './config/index.js';
|
|
16
|
-
export type
|
|
16
|
+
export type PackedPrivateEvent = InTx & {
|
|
17
17
|
packedEvent: Fr[];
|
|
18
|
-
blockNumber: number;
|
|
19
|
-
blockHash: L2BlockHash;
|
|
20
|
-
txHash: TxHash;
|
|
21
|
-
recipient: AztecAddress;
|
|
22
18
|
eventSelector: EventSelector;
|
|
23
19
|
};
|
|
24
20
|
/**
|
|
@@ -224,17 +220,21 @@ export declare class PXE {
|
|
|
224
220
|
simulateUtility(call: FunctionCall, authwits?: AuthWitness[], scopes?: AztecAddress[]): Promise<UtilitySimulationResult>;
|
|
225
221
|
/**
|
|
226
222
|
* Returns the private events given search parameters.
|
|
227
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
228
223
|
* @param eventSelector - Event selector to search for.
|
|
229
|
-
* @param
|
|
230
|
-
*
|
|
231
|
-
*
|
|
224
|
+
* @param filter
|
|
225
|
+
* contractAddress - The address of the contract to get events from. Required.
|
|
226
|
+
* scopes - One or more event scope addresses to filter by. Required.
|
|
227
|
+
* fromBlock - The block number to search from (inclusive). Optional. If provided, it must be >= 0.
|
|
228
|
+
* Defaults to 0.
|
|
229
|
+
* If toBlock is defined but fromBlock is not, fromBlock defaults to toBlock - 1.
|
|
230
|
+
* toBlock - The block number to search up to (exclusive). Optional. If provided, it must be > 0.
|
|
231
|
+
* Defaults to the latest known block to PXE + 1.
|
|
232
232
|
* @returns - The packed events with block and tx metadata.
|
|
233
233
|
*/
|
|
234
|
-
getPrivateEvents(
|
|
234
|
+
getPrivateEvents(eventSelector: EventSelector, filter: PrivateEventFilter): Promise<PackedPrivateEvent[]>;
|
|
235
235
|
/**
|
|
236
236
|
* Stops the PXE's job queue.
|
|
237
237
|
*/
|
|
238
238
|
stop(): Promise<void>;
|
|
239
239
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBS2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUdwQixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXRGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBRUwsS0FBSyxJQUFJLEVBS1QsbUJBQW1CLEVBR25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix1QkFBdUIs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
|
package/dest/pxe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,KAAK,yBAAyB,EAAyB,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,aAAa,EACb,YAAY,EAKb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
|
package/dest/pxe.js
CHANGED
|
@@ -17,6 +17,7 @@ import { ProxiedContractDataProviderFactory } from './contract_function_simulato
|
|
|
17
17
|
import { ProxiedNodeFactory } from './contract_function_simulator/proxied_node.js';
|
|
18
18
|
import { PXEOracleInterface } from './contract_function_simulator/pxe_oracle_interface.js';
|
|
19
19
|
import { enrichPublicSimulationError, enrichSimulationError } from './error_enriching.js';
|
|
20
|
+
import { PrivateEventFilterValidator } from './events/private_event_filter_validator.js';
|
|
20
21
|
import { PrivateKernelExecutionProver } from './private_kernel/private_kernel_execution_prover.js';
|
|
21
22
|
import { PrivateKernelOracleImpl } from './private_kernel/private_kernel_oracle_impl.js';
|
|
22
23
|
import { AddressDataProvider } from './storage/address_data_provider/address_data_provider.js';
|
|
@@ -747,21 +748,23 @@ import { Synchronizer } from './synchronizer/index.js';
|
|
|
747
748
|
}
|
|
748
749
|
/**
|
|
749
750
|
* Returns the private events given search parameters.
|
|
750
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
751
751
|
* @param eventSelector - Event selector to search for.
|
|
752
|
-
* @param
|
|
753
|
-
*
|
|
754
|
-
*
|
|
752
|
+
* @param filter
|
|
753
|
+
* contractAddress - The address of the contract to get events from. Required.
|
|
754
|
+
* scopes - One or more event scope addresses to filter by. Required.
|
|
755
|
+
* fromBlock - The block number to search from (inclusive). Optional. If provided, it must be >= 0.
|
|
756
|
+
* Defaults to 0.
|
|
757
|
+
* If toBlock is defined but fromBlock is not, fromBlock defaults to toBlock - 1.
|
|
758
|
+
* toBlock - The block number to search up to (exclusive). Optional. If provided, it must be > 0.
|
|
759
|
+
* Defaults to the latest known block to PXE + 1.
|
|
755
760
|
* @returns - The packed events with block and tx metadata.
|
|
756
|
-
*/ async getPrivateEvents(
|
|
757
|
-
if (recipients.length === 0) {
|
|
758
|
-
throw new Error('Recipients are required to get private events');
|
|
759
|
-
}
|
|
760
|
-
this.log.verbose(`Getting private events for ${contractAddress.toString()} from ${from} to ${from + numBlocks}`);
|
|
761
|
+
*/ async getPrivateEvents(eventSelector, filter) {
|
|
761
762
|
// We need to manually trigger private state sync to have a guarantee that all the events are available.
|
|
762
|
-
const call = await this.#getFunctionCall('sync_private_state', [], contractAddress);
|
|
763
|
+
const call = await this.#getFunctionCall('sync_private_state', [], filter.contractAddress);
|
|
763
764
|
await this.simulateUtility(call);
|
|
764
|
-
|
|
765
|
+
const sanitizedFilter = await new PrivateEventFilterValidator(this.syncDataProvider).validate(filter);
|
|
766
|
+
this.log.error(`Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`);
|
|
767
|
+
return this.privateEventDataProvider.getPrivateEvents(eventSelector, sanitizedFilter);
|
|
765
768
|
}
|
|
766
769
|
/**
|
|
767
770
|
* Stops the PXE's job queue.
|
|
@@ -2,9 +2,19 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
3
|
import type { EventSelector } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
5
|
+
import { type InTx, TxHash } from '@aztec/stdlib/tx';
|
|
6
|
+
import type { PackedPrivateEvent } from '../../pxe.js';
|
|
7
|
+
export type PrivateEventDataProviderFilter = {
|
|
8
|
+
contractAddress: AztecAddress;
|
|
9
|
+
fromBlock: number;
|
|
10
|
+
toBlock: number;
|
|
11
|
+
scopes: AztecAddress[];
|
|
12
|
+
txHash?: TxHash;
|
|
13
|
+
};
|
|
14
|
+
type PrivateEventMetadata = InTx & {
|
|
15
|
+
contractAddress: AztecAddress;
|
|
16
|
+
scope: AztecAddress;
|
|
17
|
+
};
|
|
8
18
|
/**
|
|
9
19
|
* Stores decrypted private event logs.
|
|
10
20
|
*/
|
|
@@ -14,24 +24,28 @@ export declare class PrivateEventDataProvider {
|
|
|
14
24
|
constructor(store: AztecAsyncKVStore);
|
|
15
25
|
/**
|
|
16
26
|
* Store a private event log.
|
|
17
|
-
* @param contractAddress - The address of the contract that emitted the event.
|
|
18
|
-
* @param recipient - The recipient of the event.
|
|
19
27
|
* @param eventSelector - The event selector of the event.
|
|
20
28
|
* @param msgContent - The content of the event.
|
|
21
|
-
* @param txHash - The transaction hash of the event log.
|
|
22
29
|
* @param eventCommitmentIndex - The index of the event commitment in the nullifier tree.
|
|
23
|
-
* @param
|
|
30
|
+
* @param metadata
|
|
31
|
+
* contractAddress - The address of the contract that emitted the event.
|
|
32
|
+
* scope - The address to which the event is scoped.
|
|
33
|
+
* txHash - The transaction hash of the event log.
|
|
34
|
+
* blockNumber - The block number in which the event was emitted.
|
|
24
35
|
*/
|
|
25
|
-
storePrivateEventLog(
|
|
36
|
+
storePrivateEventLog(eventSelector: EventSelector, msgContent: Fr[], eventCommitmentIndex: number, metadata: PrivateEventMetadata): Promise<void>;
|
|
26
37
|
/**
|
|
27
38
|
* Returns the private events given search parameters.
|
|
28
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
29
|
-
* @param from - The block number to search from.
|
|
30
|
-
* @param numBlocks - The amount of blocks to search.
|
|
31
|
-
* @param recipients - The addresses that decrypted the logs.
|
|
32
39
|
* @param eventSelector - The event selector to filter by.
|
|
33
|
-
* @
|
|
40
|
+
* @param filter - Filtering criteria:
|
|
41
|
+
* contractAddress: The address of the contract to get events from.
|
|
42
|
+
* fromBlock: The block number to search from (inclusive).
|
|
43
|
+
* toBlock: The block number to search upto (exclusive).
|
|
44
|
+
* scope: - The addresses that decrypted the logs.
|
|
45
|
+
* @returns - The event log contents, augmented with metadata about
|
|
46
|
+
* the transaction and block it the event was included in .
|
|
34
47
|
*/
|
|
35
|
-
getPrivateEvents(
|
|
48
|
+
getPrivateEvents(eventSelector: EventSelector, filter: PrivateEventDataProviderFilter): Promise<PackedPrivateEvent[]>;
|
|
36
49
|
}
|
|
37
|
-
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9ldmVudF9kYXRhX3Byb3ZpZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9wcml2YXRlX2V2ZW50X2RhdGFfcHJvdmlkZXIvcHJpdmF0ZV9ldmVudF9kYXRhX3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5QyxPQUFPLEtBQUssRUFBbUIsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE1BQU0sTUFBTSw4QkFBOEIsR0FBRztJQUMzQyxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDdkIsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFVRixLQUFLLG9CQUFvQixHQUFHLElBQUksR0FBRztJQUNqQyxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCLEtBQUssRUFBRSxZQUFZLENBQUM7Q0FDckIsQ0FBQztBQUVGOztHQUVHO0FBQ0gscUJBQWEsd0JBQXdCOztJQVNuQyxNQUFNLHlDQUErQztJQUVyRCxZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFLbkM7SUFNRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsb0JBQW9CLENBQ2xCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFDaEIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixRQUFRLEVBQUUsb0JBQW9CLEdBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4QmY7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ1UsZ0JBQWdCLENBQzNCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLE1BQU0sRUFBRSw4QkFBOEIsR0FDckMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0F3Qy9CO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_event_data_provider.d.ts","sourceRoot":"","sources":["../../../src/storage/private_event_data_provider/private_event_data_provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"private_event_data_provider.d.ts","sourceRoot":"","sources":["../../../src/storage/private_event_data_provider/private_event_data_provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EAAmB,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,MAAM,8BAA8B,GAAG;IAC3C,eAAe,EAAE,YAAY,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,KAAK,oBAAoB,GAAG,IAAI,GAAG;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,wBAAwB;;IASnC,MAAM,yCAA+C;IAErD,YAAY,KAAK,EAAE,iBAAiB,EAKnC;IAMD;;;;;;;;;;OAUG;IACH,oBAAoB,CAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,EAAE,EAAE,EAChB,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Bf;IAED;;;;;;;;;;OAUG;IACU,gBAAgB,CAC3B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwC/B;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -8,7 +9,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
8
9
|
*/ export class PrivateEventDataProvider {
|
|
9
10
|
#store;
|
|
10
11
|
/** Array storing the actual private event log entries containing the log content and block number */ #eventLogs;
|
|
11
|
-
/** Map from
|
|
12
|
+
/** Map from contract_address_scope_eventSelector to array of indices into #eventLogs for efficient lookup */ #eventLogIndex;
|
|
12
13
|
/** Map from eventCommitmentIndex to boolean indicating if log has been seen. */ #seenLogs;
|
|
13
14
|
logger = createLogger('private_event_data_provider');
|
|
14
15
|
constructor(store){
|
|
@@ -17,18 +18,23 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
17
18
|
this.#eventLogIndex = this.#store.openMap('private_event_log_index');
|
|
18
19
|
this.#seenLogs = this.#store.openMap('seen_logs');
|
|
19
20
|
}
|
|
21
|
+
#keyFor(contractAddress, scope, eventSelector) {
|
|
22
|
+
return `${contractAddress.toString()}_${scope.toString()}_${eventSelector.toString()}`;
|
|
23
|
+
}
|
|
20
24
|
/**
|
|
21
25
|
* Store a private event log.
|
|
22
|
-
* @param contractAddress - The address of the contract that emitted the event.
|
|
23
|
-
* @param recipient - The recipient of the event.
|
|
24
26
|
* @param eventSelector - The event selector of the event.
|
|
25
27
|
* @param msgContent - The content of the event.
|
|
26
|
-
* @param txHash - The transaction hash of the event log.
|
|
27
28
|
* @param eventCommitmentIndex - The index of the event commitment in the nullifier tree.
|
|
28
|
-
* @param
|
|
29
|
-
|
|
29
|
+
* @param metadata
|
|
30
|
+
* contractAddress - The address of the contract that emitted the event.
|
|
31
|
+
* scope - The address to which the event is scoped.
|
|
32
|
+
* txHash - The transaction hash of the event log.
|
|
33
|
+
* blockNumber - The block number in which the event was emitted.
|
|
34
|
+
*/ storePrivateEventLog(eventSelector, msgContent, eventCommitmentIndex, metadata) {
|
|
35
|
+
const { contractAddress, scope, txHash, l2BlockNumber, l2BlockHash } = metadata;
|
|
30
36
|
return this.#store.transactionAsync(async ()=>{
|
|
31
|
-
const key =
|
|
37
|
+
const key = this.#keyFor(contractAddress, scope, eventSelector);
|
|
32
38
|
// Check if this exact log has already been stored using eventCommitmentIndex as unique identifier
|
|
33
39
|
const hasBeenSeen = await this.#seenLogs.getAsync(eventCommitmentIndex);
|
|
34
40
|
if (hasBeenSeen) {
|
|
@@ -40,15 +46,15 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
40
46
|
}
|
|
41
47
|
this.logger.verbose('storing private event log', {
|
|
42
48
|
contractAddress,
|
|
43
|
-
|
|
49
|
+
scope,
|
|
44
50
|
msgContent,
|
|
45
|
-
|
|
51
|
+
l2BlockNumber
|
|
46
52
|
});
|
|
47
53
|
const index = await this.#eventLogs.lengthAsync();
|
|
48
54
|
await this.#eventLogs.push({
|
|
49
55
|
msgContent: serializeToBuffer(msgContent),
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
l2BlockNumber,
|
|
57
|
+
l2BlockHash: l2BlockHash.toBuffer(),
|
|
52
58
|
eventCommitmentIndex,
|
|
53
59
|
txHash: txHash.toBuffer()
|
|
54
60
|
});
|
|
@@ -63,20 +69,22 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
63
69
|
}
|
|
64
70
|
/**
|
|
65
71
|
* Returns the private events given search parameters.
|
|
66
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
67
|
-
* @param from - The block number to search from.
|
|
68
|
-
* @param numBlocks - The amount of blocks to search.
|
|
69
|
-
* @param recipients - The addresses that decrypted the logs.
|
|
70
72
|
* @param eventSelector - The event selector to filter by.
|
|
71
|
-
* @
|
|
72
|
-
|
|
73
|
+
* @param filter - Filtering criteria:
|
|
74
|
+
* contractAddress: The address of the contract to get events from.
|
|
75
|
+
* fromBlock: The block number to search from (inclusive).
|
|
76
|
+
* toBlock: The block number to search upto (exclusive).
|
|
77
|
+
* scope: - The addresses that decrypted the logs.
|
|
78
|
+
* @returns - The event log contents, augmented with metadata about
|
|
79
|
+
* the transaction and block it the event was included in .
|
|
80
|
+
*/ async getPrivateEvents(eventSelector, filter) {
|
|
73
81
|
const events = [];
|
|
74
|
-
for (const
|
|
75
|
-
const key =
|
|
82
|
+
for (const scope of filter.scopes){
|
|
83
|
+
const key = this.#keyFor(filter.contractAddress, scope, eventSelector);
|
|
76
84
|
const indices = await this.#eventLogIndex.getAsync(key) || [];
|
|
77
85
|
for (const index of indices){
|
|
78
86
|
const entry = await this.#eventLogs.atAsync(index);
|
|
79
|
-
if (!entry || entry.
|
|
87
|
+
if (!entry || entry.l2BlockNumber < filter.fromBlock || entry.l2BlockNumber >= filter.toBlock) {
|
|
80
88
|
continue;
|
|
81
89
|
}
|
|
82
90
|
// Convert buffer back to Fr array
|
|
@@ -84,15 +92,17 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
84
92
|
const numFields = entry.msgContent.length / Fr.SIZE_IN_BYTES;
|
|
85
93
|
const msgContent = reader.readArray(numFields, Fr);
|
|
86
94
|
const txHash = TxHash.fromBuffer(entry.txHash);
|
|
87
|
-
const
|
|
95
|
+
const l2BlockHash = L2BlockHash.fromBuffer(entry.l2BlockHash);
|
|
96
|
+
if (filter.txHash && !txHash.equals(filter.txHash)) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
88
99
|
events.push({
|
|
89
100
|
eventCommitmentIndex: entry.eventCommitmentIndex,
|
|
90
101
|
event: {
|
|
91
102
|
packedEvent: msgContent,
|
|
92
|
-
|
|
93
|
-
recipient,
|
|
103
|
+
l2BlockNumber: BlockNumber(entry.l2BlockNumber),
|
|
94
104
|
txHash,
|
|
95
|
-
|
|
105
|
+
l2BlockHash,
|
|
96
106
|
eventSelector
|
|
97
107
|
}
|
|
98
108
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/pxe",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251209",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": "./dest/entrypoints/server/index.js",
|
|
@@ -61,19 +61,19 @@
|
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
65
|
-
"@aztec/bb.js": "3.0.0-nightly.
|
|
66
|
-
"@aztec/builder": "3.0.0-nightly.
|
|
67
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
68
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
69
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
70
|
-
"@aztec/key-store": "3.0.0-nightly.
|
|
71
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
72
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
73
|
-
"@aztec/noir-types": "3.0.0-nightly.
|
|
74
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
75
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
76
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
64
|
+
"@aztec/bb-prover": "3.0.0-nightly.20251209",
|
|
65
|
+
"@aztec/bb.js": "3.0.0-nightly.20251209",
|
|
66
|
+
"@aztec/builder": "3.0.0-nightly.20251209",
|
|
67
|
+
"@aztec/constants": "3.0.0-nightly.20251209",
|
|
68
|
+
"@aztec/ethereum": "3.0.0-nightly.20251209",
|
|
69
|
+
"@aztec/foundation": "3.0.0-nightly.20251209",
|
|
70
|
+
"@aztec/key-store": "3.0.0-nightly.20251209",
|
|
71
|
+
"@aztec/kv-store": "3.0.0-nightly.20251209",
|
|
72
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251209",
|
|
73
|
+
"@aztec/noir-types": "3.0.0-nightly.20251209",
|
|
74
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251209",
|
|
75
|
+
"@aztec/simulator": "3.0.0-nightly.20251209",
|
|
76
|
+
"@aztec/stdlib": "3.0.0-nightly.20251209",
|
|
77
77
|
"koa": "^2.16.1",
|
|
78
78
|
"koa-router": "^13.1.1",
|
|
79
79
|
"lodash.omit": "^4.5.0",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
86
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
85
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20251209",
|
|
86
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20251209",
|
|
87
87
|
"@jest/globals": "^30.0.0",
|
|
88
88
|
"@types/jest": "^30.0.0",
|
|
89
89
|
"@types/lodash.omit": "^4.5.7",
|
|
@@ -793,7 +793,7 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
793
793
|
content: Fr[],
|
|
794
794
|
eventCommitment: Fr,
|
|
795
795
|
txHash: TxHash,
|
|
796
|
-
|
|
796
|
+
scope: AztecAddress,
|
|
797
797
|
): Promise<void> {
|
|
798
798
|
// While using 'latest' block number would be fine for private events since they cannot be accessed from Aztec.nr
|
|
799
799
|
// (and thus we're less concerned about being ahead of the synced block), we use the synced block number to
|
|
@@ -831,14 +831,16 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
831
831
|
}
|
|
832
832
|
|
|
833
833
|
return this.privateEventDataProvider.storePrivateEventLog(
|
|
834
|
-
contractAddress,
|
|
835
|
-
recipient,
|
|
836
834
|
selector,
|
|
837
835
|
content,
|
|
838
|
-
txHash,
|
|
839
836
|
Number(nullifierIndex.data), // Index of the event commitment in the nullifier tree
|
|
840
|
-
|
|
841
|
-
|
|
837
|
+
{
|
|
838
|
+
contractAddress,
|
|
839
|
+
scope,
|
|
840
|
+
txHash,
|
|
841
|
+
l2BlockNumber: nullifierIndex.l2BlockNumber, // Block number in which the event was emitted
|
|
842
|
+
l2BlockHash: nullifierIndex.l2BlockHash, // Block hash in which the event was emitted
|
|
843
|
+
},
|
|
842
844
|
);
|
|
843
845
|
}
|
|
844
846
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './private_event_filter_validator.js';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
|
|
2
|
+
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
3
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
|
|
5
|
+
import type { PrivateEventDataProviderFilter, SyncDataProvider } from '../storage/index.js';
|
|
6
|
+
|
|
7
|
+
export class PrivateEventFilterValidator {
|
|
8
|
+
constructor(private syncDataProvider: SyncDataProvider) {}
|
|
9
|
+
|
|
10
|
+
async validate(filter: PrivateEventFilter): Promise<PrivateEventDataProviderFilter> {
|
|
11
|
+
let { fromBlock, toBlock } = filter;
|
|
12
|
+
|
|
13
|
+
// Block range filters in Aztec Node are defined as closed-open intervals [fromBlock, toBlock), so
|
|
14
|
+
// we respect that convention here for consistency.
|
|
15
|
+
// We then default to [INITIAL_L2_BLOCK_NUM, latestKnownBlock + 1), ie: by default return events from
|
|
16
|
+
// the first block to the latest known block.
|
|
17
|
+
if (!fromBlock || !toBlock) {
|
|
18
|
+
const lastKnownBlock = await this.syncDataProvider.getBlockNumber();
|
|
19
|
+
fromBlock = fromBlock ?? BlockNumber(INITIAL_L2_BLOCK_NUM);
|
|
20
|
+
toBlock = toBlock ?? BlockNumber(lastKnownBlock + 1);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (filter.scopes.length === 0) {
|
|
24
|
+
throw new Error('At least one scope is required to get private events');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (fromBlock < 1) {
|
|
28
|
+
throw new Error('fromBlock must be greater than or equal to 1');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (toBlock < 1) {
|
|
32
|
+
throw new Error('toBlock must be greater than or equal to 1');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (fromBlock >= toBlock) {
|
|
36
|
+
throw new Error('toBlock must be strictly greater than fromBlock');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
contractAddress: filter.contractAddress,
|
|
41
|
+
scopes: filter.scopes,
|
|
42
|
+
txHash: filter.txHash,
|
|
43
|
+
toBlock,
|
|
44
|
+
fromBlock,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -290,8 +290,8 @@ export class PrivateKernelExecutionProver {
|
|
|
290
290
|
},
|
|
291
291
|
});
|
|
292
292
|
|
|
293
|
-
// Hiding
|
|
294
|
-
// For simulation, we can end with the tail, since the
|
|
293
|
+
// Hiding kernel is only executed if we are generating witnesses.
|
|
294
|
+
// For simulation, we can end with the tail, since the Hiding kernel will simply return the same tail output.
|
|
295
295
|
if (generateWitnesses) {
|
|
296
296
|
const previousKernelVkData = await this.getVkData(tailOutput.verificationKey);
|
|
297
297
|
|
package/src/pxe.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { SerialQueue } from '@aztec/foundation/queue';
|
|
@@ -18,7 +19,6 @@ import {
|
|
|
18
19
|
} from '@aztec/stdlib/abi';
|
|
19
20
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
20
21
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
|
-
import type { L2BlockHash } from '@aztec/stdlib/block';
|
|
22
22
|
import {
|
|
23
23
|
CompleteAddress,
|
|
24
24
|
type ContractClassWithId,
|
|
@@ -39,6 +39,7 @@ import type { NotesFilter } from '@aztec/stdlib/note';
|
|
|
39
39
|
import { NoteDao } from '@aztec/stdlib/note';
|
|
40
40
|
import {
|
|
41
41
|
type ContractOverrides,
|
|
42
|
+
type InTx,
|
|
42
43
|
PrivateExecutionResult,
|
|
43
44
|
PrivateSimulationResult,
|
|
44
45
|
type ProvingTimings,
|
|
@@ -47,7 +48,6 @@ import {
|
|
|
47
48
|
type SimulationTimings,
|
|
48
49
|
Tx,
|
|
49
50
|
TxExecutionRequest,
|
|
50
|
-
TxHash,
|
|
51
51
|
TxProfileResult,
|
|
52
52
|
TxProvingResult,
|
|
53
53
|
TxSimulationResult,
|
|
@@ -66,6 +66,7 @@ import { ProxiedContractDataProviderFactory } from './contract_function_simulato
|
|
|
66
66
|
import { ProxiedNodeFactory } from './contract_function_simulator/proxied_node.js';
|
|
67
67
|
import { PXEOracleInterface } from './contract_function_simulator/pxe_oracle_interface.js';
|
|
68
68
|
import { enrichPublicSimulationError, enrichSimulationError } from './error_enriching.js';
|
|
69
|
+
import { PrivateEventFilterValidator } from './events/private_event_filter_validator.js';
|
|
69
70
|
import {
|
|
70
71
|
PrivateKernelExecutionProver,
|
|
71
72
|
type PrivateKernelExecutionProverConfig,
|
|
@@ -80,12 +81,8 @@ import { SyncDataProvider } from './storage/sync_data_provider/sync_data_provide
|
|
|
80
81
|
import { TaggingDataProvider } from './storage/tagging_data_provider/tagging_data_provider.js';
|
|
81
82
|
import { Synchronizer } from './synchronizer/index.js';
|
|
82
83
|
|
|
83
|
-
export type
|
|
84
|
+
export type PackedPrivateEvent = InTx & {
|
|
84
85
|
packedEvent: Fr[];
|
|
85
|
-
blockNumber: number;
|
|
86
|
-
blockHash: L2BlockHash;
|
|
87
|
-
txHash: TxHash;
|
|
88
|
-
recipient: AztecAddress;
|
|
89
86
|
eventSelector: EventSelector;
|
|
90
87
|
};
|
|
91
88
|
|
|
@@ -1049,31 +1046,32 @@ export class PXE {
|
|
|
1049
1046
|
|
|
1050
1047
|
/**
|
|
1051
1048
|
* Returns the private events given search parameters.
|
|
1052
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
1053
1049
|
* @param eventSelector - Event selector to search for.
|
|
1054
|
-
* @param
|
|
1055
|
-
*
|
|
1056
|
-
*
|
|
1050
|
+
* @param filter
|
|
1051
|
+
* contractAddress - The address of the contract to get events from. Required.
|
|
1052
|
+
* scopes - One or more event scope addresses to filter by. Required.
|
|
1053
|
+
* fromBlock - The block number to search from (inclusive). Optional. If provided, it must be >= 0.
|
|
1054
|
+
* Defaults to 0.
|
|
1055
|
+
* If toBlock is defined but fromBlock is not, fromBlock defaults to toBlock - 1.
|
|
1056
|
+
* toBlock - The block number to search up to (exclusive). Optional. If provided, it must be > 0.
|
|
1057
|
+
* Defaults to the latest known block to PXE + 1.
|
|
1057
1058
|
* @returns - The packed events with block and tx metadata.
|
|
1058
1059
|
*/
|
|
1059
1060
|
public async getPrivateEvents(
|
|
1060
|
-
contractAddress: AztecAddress,
|
|
1061
1061
|
eventSelector: EventSelector,
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
recipients: AztecAddress[],
|
|
1065
|
-
): Promise<PrivateEvent[]> {
|
|
1066
|
-
if (recipients.length === 0) {
|
|
1067
|
-
throw new Error('Recipients are required to get private events');
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
this.log.verbose(`Getting private events for ${contractAddress.toString()} from ${from} to ${from + numBlocks}`);
|
|
1071
|
-
|
|
1062
|
+
filter: PrivateEventFilter,
|
|
1063
|
+
): Promise<PackedPrivateEvent[]> {
|
|
1072
1064
|
// We need to manually trigger private state sync to have a guarantee that all the events are available.
|
|
1073
|
-
const call = await this.#getFunctionCall('sync_private_state', [], contractAddress);
|
|
1065
|
+
const call = await this.#getFunctionCall('sync_private_state', [], filter.contractAddress);
|
|
1074
1066
|
await this.simulateUtility(call);
|
|
1075
1067
|
|
|
1076
|
-
|
|
1068
|
+
const sanitizedFilter = await new PrivateEventFilterValidator(this.syncDataProvider).validate(filter);
|
|
1069
|
+
|
|
1070
|
+
this.log.error(
|
|
1071
|
+
`Getting private events for ${sanitizedFilter.contractAddress.toString()} from ${sanitizedFilter.fromBlock} to ${sanitizedFilter.toBlock}`,
|
|
1072
|
+
);
|
|
1073
|
+
|
|
1074
|
+
return this.privateEventDataProvider.getPrivateEvents(eventSelector, sanitizedFilter);
|
|
1077
1075
|
}
|
|
1078
1076
|
|
|
1079
1077
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -5,17 +6,30 @@ import type { AztecAsyncArray, AztecAsyncKVStore, AztecAsyncMap } from '@aztec/k
|
|
|
5
6
|
import type { EventSelector } from '@aztec/stdlib/abi';
|
|
6
7
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
8
|
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
8
|
-
import { TxHash } from '@aztec/stdlib/tx';
|
|
9
|
+
import { type InTx, TxHash } from '@aztec/stdlib/tx';
|
|
9
10
|
|
|
10
|
-
import type {
|
|
11
|
+
import type { PackedPrivateEvent } from '../../pxe.js';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
export type PrivateEventDataProviderFilter = {
|
|
14
|
+
contractAddress: AztecAddress;
|
|
15
|
+
fromBlock: number;
|
|
16
|
+
toBlock: number;
|
|
17
|
+
scopes: AztecAddress[];
|
|
18
|
+
txHash?: TxHash;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
type PrivateEventEntry = {
|
|
13
22
|
msgContent: Buffer;
|
|
14
|
-
blockNumber: number;
|
|
15
|
-
blockHash: Buffer;
|
|
16
23
|
eventCommitmentIndex: number;
|
|
24
|
+
l2BlockNumber: number;
|
|
25
|
+
l2BlockHash: Buffer;
|
|
17
26
|
txHash: Buffer;
|
|
18
|
-
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
type PrivateEventMetadata = InTx & {
|
|
30
|
+
contractAddress: AztecAddress;
|
|
31
|
+
scope: AztecAddress;
|
|
32
|
+
};
|
|
19
33
|
|
|
20
34
|
/**
|
|
21
35
|
* Stores decrypted private event logs.
|
|
@@ -24,7 +38,7 @@ export class PrivateEventDataProvider {
|
|
|
24
38
|
#store: AztecAsyncKVStore;
|
|
25
39
|
/** Array storing the actual private event log entries containing the log content and block number */
|
|
26
40
|
#eventLogs: AztecAsyncArray<PrivateEventEntry>;
|
|
27
|
-
/** Map from
|
|
41
|
+
/** Map from contract_address_scope_eventSelector to array of indices into #eventLogs for efficient lookup */
|
|
28
42
|
#eventLogIndex: AztecAsyncMap<string, number[]>;
|
|
29
43
|
/** Map from eventCommitmentIndex to boolean indicating if log has been seen. */
|
|
30
44
|
#seenLogs: AztecAsyncMap<number, boolean>;
|
|
@@ -38,28 +52,31 @@ export class PrivateEventDataProvider {
|
|
|
38
52
|
this.#seenLogs = this.#store.openMap('seen_logs');
|
|
39
53
|
}
|
|
40
54
|
|
|
55
|
+
#keyFor(contractAddress: AztecAddress, scope: AztecAddress, eventSelector: EventSelector): string {
|
|
56
|
+
return `${contractAddress.toString()}_${scope.toString()}_${eventSelector.toString()}`;
|
|
57
|
+
}
|
|
58
|
+
|
|
41
59
|
/**
|
|
42
60
|
* Store a private event log.
|
|
43
|
-
* @param contractAddress - The address of the contract that emitted the event.
|
|
44
|
-
* @param recipient - The recipient of the event.
|
|
45
61
|
* @param eventSelector - The event selector of the event.
|
|
46
62
|
* @param msgContent - The content of the event.
|
|
47
|
-
* @param txHash - The transaction hash of the event log.
|
|
48
63
|
* @param eventCommitmentIndex - The index of the event commitment in the nullifier tree.
|
|
49
|
-
* @param
|
|
64
|
+
* @param metadata
|
|
65
|
+
* contractAddress - The address of the contract that emitted the event.
|
|
66
|
+
* scope - The address to which the event is scoped.
|
|
67
|
+
* txHash - The transaction hash of the event log.
|
|
68
|
+
* blockNumber - The block number in which the event was emitted.
|
|
50
69
|
*/
|
|
51
70
|
storePrivateEventLog(
|
|
52
|
-
contractAddress: AztecAddress,
|
|
53
|
-
recipient: AztecAddress,
|
|
54
71
|
eventSelector: EventSelector,
|
|
55
72
|
msgContent: Fr[],
|
|
56
|
-
txHash: TxHash,
|
|
57
73
|
eventCommitmentIndex: number,
|
|
58
|
-
|
|
59
|
-
blockHash: L2BlockHash,
|
|
74
|
+
metadata: PrivateEventMetadata,
|
|
60
75
|
): Promise<void> {
|
|
76
|
+
const { contractAddress, scope, txHash, l2BlockNumber, l2BlockHash } = metadata;
|
|
77
|
+
|
|
61
78
|
return this.#store.transactionAsync(async () => {
|
|
62
|
-
const key =
|
|
79
|
+
const key = this.#keyFor(contractAddress, scope, eventSelector);
|
|
63
80
|
|
|
64
81
|
// Check if this exact log has already been stored using eventCommitmentIndex as unique identifier
|
|
65
82
|
const hasBeenSeen = await this.#seenLogs.getAsync(eventCommitmentIndex);
|
|
@@ -68,13 +85,13 @@ export class PrivateEventDataProvider {
|
|
|
68
85
|
return;
|
|
69
86
|
}
|
|
70
87
|
|
|
71
|
-
this.logger.verbose('storing private event log', { contractAddress,
|
|
88
|
+
this.logger.verbose('storing private event log', { contractAddress, scope, msgContent, l2BlockNumber });
|
|
72
89
|
|
|
73
90
|
const index = await this.#eventLogs.lengthAsync();
|
|
74
91
|
await this.#eventLogs.push({
|
|
75
92
|
msgContent: serializeToBuffer(msgContent),
|
|
76
|
-
|
|
77
|
-
|
|
93
|
+
l2BlockNumber,
|
|
94
|
+
l2BlockHash: l2BlockHash.toBuffer(),
|
|
78
95
|
eventCommitmentIndex,
|
|
79
96
|
txHash: txHash.toBuffer(),
|
|
80
97
|
});
|
|
@@ -89,29 +106,28 @@ export class PrivateEventDataProvider {
|
|
|
89
106
|
|
|
90
107
|
/**
|
|
91
108
|
* Returns the private events given search parameters.
|
|
92
|
-
* @param contractAddress - The address of the contract to get events from.
|
|
93
|
-
* @param from - The block number to search from.
|
|
94
|
-
* @param numBlocks - The amount of blocks to search.
|
|
95
|
-
* @param recipients - The addresses that decrypted the logs.
|
|
96
109
|
* @param eventSelector - The event selector to filter by.
|
|
97
|
-
* @
|
|
110
|
+
* @param filter - Filtering criteria:
|
|
111
|
+
* contractAddress: The address of the contract to get events from.
|
|
112
|
+
* fromBlock: The block number to search from (inclusive).
|
|
113
|
+
* toBlock: The block number to search upto (exclusive).
|
|
114
|
+
* scope: - The addresses that decrypted the logs.
|
|
115
|
+
* @returns - The event log contents, augmented with metadata about
|
|
116
|
+
* the transaction and block it the event was included in .
|
|
98
117
|
*/
|
|
99
118
|
public async getPrivateEvents(
|
|
100
|
-
contractAddress: AztecAddress,
|
|
101
|
-
from: number,
|
|
102
|
-
numBlocks: number,
|
|
103
|
-
recipients: AztecAddress[],
|
|
104
119
|
eventSelector: EventSelector,
|
|
105
|
-
|
|
106
|
-
|
|
120
|
+
filter: PrivateEventDataProviderFilter,
|
|
121
|
+
): Promise<PackedPrivateEvent[]> {
|
|
122
|
+
const events: Array<{ eventCommitmentIndex: number; event: PackedPrivateEvent }> = [];
|
|
107
123
|
|
|
108
|
-
for (const
|
|
109
|
-
const key =
|
|
124
|
+
for (const scope of filter.scopes) {
|
|
125
|
+
const key = this.#keyFor(filter.contractAddress, scope, eventSelector);
|
|
110
126
|
const indices = (await this.#eventLogIndex.getAsync(key)) || [];
|
|
111
127
|
|
|
112
128
|
for (const index of indices) {
|
|
113
129
|
const entry = await this.#eventLogs.atAsync(index);
|
|
114
|
-
if (!entry || entry.
|
|
130
|
+
if (!entry || entry.l2BlockNumber < filter.fromBlock || entry.l2BlockNumber >= filter.toBlock) {
|
|
115
131
|
continue;
|
|
116
132
|
}
|
|
117
133
|
|
|
@@ -120,16 +136,19 @@ export class PrivateEventDataProvider {
|
|
|
120
136
|
const numFields = entry.msgContent.length / Fr.SIZE_IN_BYTES;
|
|
121
137
|
const msgContent = reader.readArray(numFields, Fr);
|
|
122
138
|
const txHash = TxHash.fromBuffer(entry.txHash);
|
|
123
|
-
const
|
|
139
|
+
const l2BlockHash = L2BlockHash.fromBuffer(entry.l2BlockHash);
|
|
140
|
+
|
|
141
|
+
if (filter.txHash && !txHash.equals(filter.txHash)) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
124
144
|
|
|
125
145
|
events.push({
|
|
126
146
|
eventCommitmentIndex: entry.eventCommitmentIndex,
|
|
127
147
|
event: {
|
|
128
148
|
packedEvent: msgContent,
|
|
129
|
-
|
|
130
|
-
recipient,
|
|
149
|
+
l2BlockNumber: BlockNumber(entry.l2BlockNumber),
|
|
131
150
|
txHash,
|
|
132
|
-
|
|
151
|
+
l2BlockHash,
|
|
133
152
|
eventSelector,
|
|
134
153
|
},
|
|
135
154
|
});
|