@aztec/pxe 0.87.7 → 1.0.0-nightly.20250605
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/event_validation_request.d.ts +22 -0
- package/dest/contract_function_simulator/event_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/event_validation_request.js +43 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +25 -28
- package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -1
- package/dest/contract_function_simulator/note_validation_request.d.ts +21 -0
- package/dest/contract_function_simulator/note_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/note_validation_request.js +42 -0
- package/dest/contract_function_simulator/oracle/oracle.d.ts +3 -3
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +23 -19
- package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +6 -6
- package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/typed_oracle.js +7 -7
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +5 -6
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +8 -8
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +7 -5
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +81 -32
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +30 -30
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +9 -7
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +10 -3
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +4 -2
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +46 -7
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
- package/dest/storage/note_data_provider/note_data_provider.js +14 -14
- package/package.json +16 -16
- package/src/contract_function_simulator/event_validation_request.ts +53 -0
- package/src/contract_function_simulator/execution_data_provider.ts +29 -50
- package/src/contract_function_simulator/note_validation_request.ts +52 -0
- package/src/contract_function_simulator/oracle/oracle.ts +27 -50
- package/src/contract_function_simulator/oracle/typed_oracle.ts +18 -26
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +15 -42
- package/src/contract_function_simulator/pxe_oracle_interface.ts +157 -51
- package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +35 -34
- package/src/private_kernel/private_kernel_execution_prover.ts +11 -10
- package/src/pxe_service/pxe_service.ts +10 -3
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +56 -7
- package/src/storage/note_data_provider/note_data_provider.ts +22 -22
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import { EventSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
6
|
+
/**
|
|
7
|
+
* Intermediate struct used to perform batch event validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
|
|
8
|
+
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
9
|
+
*/
|
|
10
|
+
export declare class EventValidationRequest {
|
|
11
|
+
contractAddress: AztecAddress;
|
|
12
|
+
eventTypeId: EventSelector;
|
|
13
|
+
serializedEvent: Fr[];
|
|
14
|
+
eventCommitment: Fr;
|
|
15
|
+
txHash: TxHash;
|
|
16
|
+
recipient: AztecAddress;
|
|
17
|
+
logIndexInTx: number;
|
|
18
|
+
txIndexInBlock: number;
|
|
19
|
+
constructor(contractAddress: AztecAddress, eventTypeId: EventSelector, serializedEvent: Fr[], eventCommitment: Fr, txHash: TxHash, recipient: AztecAddress, logIndexInTx: number, txIndexInBlock: number);
|
|
20
|
+
static fromFields(fields: Fr[] | FieldReader): EventValidationRequest;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=event_validation_request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event_validation_request.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/event_validation_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C;;;GAGG;AACH,qBAAa,sBAAsB;IAExB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;gBAPtB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,EAAE,EAAE,EACrB,eAAe,EAAE,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM;IAG/B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,sBAAsB;CA2BtE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { FieldReader } from '@aztec/foundation/serialize';
|
|
2
|
+
import { EventSelector } from '@aztec/stdlib/abi';
|
|
3
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
|
+
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
6
|
+
const MAX_EVENT_SERIALIZED_LEN = 12;
|
|
7
|
+
/**
|
|
8
|
+
* Intermediate struct used to perform batch event validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
|
|
9
|
+
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
10
|
+
*/ export class EventValidationRequest {
|
|
11
|
+
contractAddress;
|
|
12
|
+
eventTypeId;
|
|
13
|
+
serializedEvent;
|
|
14
|
+
eventCommitment;
|
|
15
|
+
txHash;
|
|
16
|
+
recipient;
|
|
17
|
+
logIndexInTx;
|
|
18
|
+
txIndexInBlock;
|
|
19
|
+
constructor(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient, logIndexInTx, txIndexInBlock){
|
|
20
|
+
this.contractAddress = contractAddress;
|
|
21
|
+
this.eventTypeId = eventTypeId;
|
|
22
|
+
this.serializedEvent = serializedEvent;
|
|
23
|
+
this.eventCommitment = eventCommitment;
|
|
24
|
+
this.txHash = txHash;
|
|
25
|
+
this.recipient = recipient;
|
|
26
|
+
this.logIndexInTx = logIndexInTx;
|
|
27
|
+
this.txIndexInBlock = txIndexInBlock;
|
|
28
|
+
}
|
|
29
|
+
static fromFields(fields) {
|
|
30
|
+
const reader = FieldReader.asReader(fields);
|
|
31
|
+
const contractAddress = AztecAddress.fromField(reader.readField());
|
|
32
|
+
const eventTypeId = EventSelector.fromField(reader.readField());
|
|
33
|
+
const eventStorage = reader.readFieldArray(MAX_EVENT_SERIALIZED_LEN);
|
|
34
|
+
const eventLen = reader.readField().toNumber();
|
|
35
|
+
const serializedEvent = eventStorage.slice(0, eventLen);
|
|
36
|
+
const eventCommitment = reader.readField();
|
|
37
|
+
const txHash = TxHash.fromField(reader.readField());
|
|
38
|
+
const recipient = AztecAddress.fromField(reader.readField());
|
|
39
|
+
const logIndexInTx = reader.readField().toNumber();
|
|
40
|
+
const txIndexInBlock = reader.readField().toNumber();
|
|
41
|
+
return new EventValidationRequest(contractAddress, eventTypeId, serializedEvent, eventCommitment, txHash, recipient, logIndexInTx, txIndexInBlock);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import type { Fr, Point } from '@aztec/foundation/fields';
|
|
3
|
-
import type {
|
|
3
|
+
import type { FunctionArtifact, FunctionArtifactWithContractName, FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
5
|
import type { L2Block } from '@aztec/stdlib/block';
|
|
6
6
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
7
7
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
8
|
-
import { IndexedTaggingSecret,
|
|
8
|
+
import { IndexedTaggingSecret, PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
9
9
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
10
10
|
import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
11
|
-
import type { BlockHeader, NodeStats
|
|
11
|
+
import type { BlockHeader, NodeStats } from '@aztec/stdlib/tx';
|
|
12
12
|
import type { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
|
|
13
13
|
import type { NoteData } from './oracle/typed_oracle.js';
|
|
14
14
|
/**
|
|
@@ -205,8 +205,8 @@ export interface ExecutionDataProvider {
|
|
|
205
205
|
*/
|
|
206
206
|
incrementAppTaggingSecretIndexAsSender(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
207
207
|
/**
|
|
208
|
-
* Synchronizes the logs tagged with scoped addresses and all the senders in the address book. Stores the found
|
|
209
|
-
* in CapsuleArray ready for a later retrieval in Aztec.nr.
|
|
208
|
+
* Synchronizes the private logs tagged with scoped addresses and all the senders in the address book. Stores the found
|
|
209
|
+
* logs in CapsuleArray ready for a later retrieval in Aztec.nr.
|
|
210
210
|
* @param contractAddress - The address of the contract that the logs are tagged for.
|
|
211
211
|
* @param pendingTaggedLogArrayBaseSlot - The base slot of the pending tagged log capsule array in which found logs will be stored.
|
|
212
212
|
* @param scopes - The scoped addresses to sync logs for. If not provided, all accounts in the address book will be
|
|
@@ -214,26 +214,34 @@ export interface ExecutionDataProvider {
|
|
|
214
214
|
*/
|
|
215
215
|
syncTaggedLogs(contractAddress: AztecAddress, pendingTaggedLogArrayBaseSlot: Fr, scopes?: AztecAddress[]): Promise<void>;
|
|
216
216
|
/**
|
|
217
|
-
*
|
|
218
|
-
*
|
|
217
|
+
* Validates all note and event validation requests enqueued via `enqueue_note_for_validation` and
|
|
218
|
+
* `enqueue_event_for_validation`, inserting them into the note database and event store respectively, making them
|
|
219
|
+
* queryable via `get_notes` and `getPrivateEvents`.
|
|
219
220
|
*
|
|
220
|
-
*
|
|
221
|
-
* @param
|
|
222
|
-
* @param
|
|
223
|
-
* @param
|
|
224
|
-
* @param noteHash - The non-unique non-siloed note hash
|
|
225
|
-
* @param nullifier - The inner (non-siloed) note nullifier
|
|
226
|
-
* @param txHash - The transaction in which the note was added to the note hash tree
|
|
227
|
-
* @param recipient - The account that discovered the note
|
|
221
|
+
* This automatically clears both validation request queues, so no further work needs to be done by the caller.
|
|
222
|
+
* @param contractAddress - The address of the contract that the logs are tagged for.
|
|
223
|
+
* @param noteValidationRequestsArrayBaseSlot - The base slot of capsule array containing note validation requests.
|
|
224
|
+
* @param eventValidationRequestsArrayBaseSlot - The base slot of capsule array containing event validation requests.
|
|
228
225
|
*/
|
|
229
|
-
|
|
226
|
+
validateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
230
227
|
/**
|
|
231
228
|
* Searches for a log with the corresponding `tag` and returns it along with contextual transaction information.
|
|
232
229
|
* Returns null if no such log exists, and throws if more than one exists.
|
|
233
230
|
*
|
|
234
231
|
* @param tag - The log tag to search for.
|
|
232
|
+
* @param contractAddress - The contract address to search for the log in.
|
|
233
|
+
* @returns The public log with transaction data if found, null otherwise.
|
|
234
|
+
* @throws If more than one log with that tag exists.
|
|
235
|
+
*/
|
|
236
|
+
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
237
|
+
/**
|
|
238
|
+
* Searches for a private log with the corresponding `siloedTag` and returns it along with contextual transaction
|
|
239
|
+
* information.
|
|
240
|
+
*
|
|
241
|
+
* @param siloedTag - The siloed log tag to search for.
|
|
242
|
+
* @returns The private log with transaction data if found, null otherwise.
|
|
235
243
|
*/
|
|
236
|
-
|
|
244
|
+
getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
237
245
|
/**
|
|
238
246
|
* Removes all of a contract's notes that have been nullified from the note database.
|
|
239
247
|
*/
|
|
@@ -281,17 +289,6 @@ export interface ExecutionDataProvider {
|
|
|
281
289
|
* @returns The secret for the given address.
|
|
282
290
|
*/
|
|
283
291
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
284
|
-
/**
|
|
285
|
-
* Stores an event log in the database.
|
|
286
|
-
* @param contractAddress - The address of the contract that emitted the log.
|
|
287
|
-
* @param recipient - The address of the recipient.
|
|
288
|
-
* @param eventSelector - The event selector of the event.
|
|
289
|
-
* @param msgContent - The content of the private event message.
|
|
290
|
-
* @param txHash - The hash of the transaction that emitted the log.
|
|
291
|
-
* @param logIndexInTx - The index of the log within the transaction.
|
|
292
|
-
* @param txIndexInBlock - The index of the transaction in which the log was emitted in the block.
|
|
293
|
-
*/
|
|
294
|
-
storePrivateEventLog(contractAddress: AztecAddress, recipient: AztecAddress, eventSelector: EventSelector, msgContent: Fr[], txHash: TxHash, logIndexInTx: number, txIndexInBlock: number): Promise<void>;
|
|
295
292
|
/**
|
|
296
293
|
* Returns the execution statistics collected during the simulator run.
|
|
297
294
|
* @returns The execution statistics.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_data_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"execution_data_provider.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/execution_data_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
|
+
/**
|
|
6
|
+
* Intermediate struct used to perform batch note validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
|
|
7
|
+
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
8
|
+
*/
|
|
9
|
+
export declare class NoteValidationRequest {
|
|
10
|
+
contractAddress: AztecAddress;
|
|
11
|
+
storageSlot: Fr;
|
|
12
|
+
nonce: Fr;
|
|
13
|
+
content: Fr[];
|
|
14
|
+
noteHash: Fr;
|
|
15
|
+
nullifier: Fr;
|
|
16
|
+
txHash: TxHash;
|
|
17
|
+
recipient: AztecAddress;
|
|
18
|
+
constructor(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress);
|
|
19
|
+
static fromFields(fields: Fr[] | FieldReader): NoteValidationRequest;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=note_validation_request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note_validation_request.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/note_validation_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C;;;GAGG;AACH,qBAAa,qBAAqB;IAEvB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;gBAPvB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,EAAE,EAAE,EACb,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAGhC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,qBAAqB;CA2BrE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { FieldReader } from '@aztec/foundation/serialize';
|
|
2
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
4
|
+
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
5
|
+
const MAX_NOTE_PACKED_LEN = 12;
|
|
6
|
+
/**
|
|
7
|
+
* Intermediate struct used to perform batch note validation by PXE. The `validateEnqueuedNotesAndEvents` oracle
|
|
8
|
+
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
9
|
+
*/ export class NoteValidationRequest {
|
|
10
|
+
contractAddress;
|
|
11
|
+
storageSlot;
|
|
12
|
+
nonce;
|
|
13
|
+
content;
|
|
14
|
+
noteHash;
|
|
15
|
+
nullifier;
|
|
16
|
+
txHash;
|
|
17
|
+
recipient;
|
|
18
|
+
constructor(contractAddress, storageSlot, nonce, content, noteHash, nullifier, txHash, recipient){
|
|
19
|
+
this.contractAddress = contractAddress;
|
|
20
|
+
this.storageSlot = storageSlot;
|
|
21
|
+
this.nonce = nonce;
|
|
22
|
+
this.content = content;
|
|
23
|
+
this.noteHash = noteHash;
|
|
24
|
+
this.nullifier = nullifier;
|
|
25
|
+
this.txHash = txHash;
|
|
26
|
+
this.recipient = recipient;
|
|
27
|
+
}
|
|
28
|
+
static fromFields(fields) {
|
|
29
|
+
const reader = FieldReader.asReader(fields);
|
|
30
|
+
const contractAddress = AztecAddress.fromField(reader.readField());
|
|
31
|
+
const storageSlot = reader.readField();
|
|
32
|
+
const nonce = reader.readField();
|
|
33
|
+
const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
|
|
34
|
+
const contentLen = reader.readField().toNumber();
|
|
35
|
+
const content = contentStorage.slice(0, contentLen);
|
|
36
|
+
const noteHash = reader.readField();
|
|
37
|
+
const nullifier = reader.readField();
|
|
38
|
+
const txHash = TxHash.fromField(reader.readField());
|
|
39
|
+
const recipient = AztecAddress.fromField(reader.readField());
|
|
40
|
+
return new NoteValidationRequest(contractAddress, storageSlot, nonce, content, noteHash, nullifier, txHash, recipient);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -40,14 +40,14 @@ export declare class Oracle {
|
|
|
40
40
|
getIndexedTaggingSecretAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
|
|
41
41
|
incrementAppTaggingSecretIndexAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]>;
|
|
42
42
|
fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
validateEnqueuedNotesAndEvents([contractAddress]: ACVMField[], [noteValidationRequestsArrayBaseSlot]: ACVMField[], [eventValidationRequestsArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]>;
|
|
44
|
+
getPublicLogByTag([tag]: ACVMField[], [contractAddress]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
|
|
45
|
+
getPrivateLogByTag([siloedTag]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
|
|
45
46
|
storeCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], capsule: ACVMField[]): Promise<ACVMField[]>;
|
|
46
47
|
loadCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[], [tSize]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
|
|
47
48
|
deleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]>;
|
|
48
49
|
copyCapsule([contractAddress]: ACVMField[], [srcSlot]: ACVMField[], [dstSlot]: ACVMField[], [numEntries]: ACVMField[]): Promise<ACVMField[]>;
|
|
49
50
|
aes128Decrypt(ciphertextBVecStorage: ACVMField[], [ciphertextLength]: ACVMField[], iv: ACVMField[], symKey: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
|
|
50
51
|
getSharedSecret([address]: ACVMField[], [ephPKField0]: ACVMField[], [ephPKField1]: ACVMField[], [ephPKField2]: ACVMField[]): Promise<ACVMField[]>;
|
|
51
|
-
storePrivateEventLog([contractAddress]: ACVMField[], [recipient]: ACVMField[], [eventSelector]: ACVMField[], msgContentBVecStorage: ACVMField[], [msgContentLength]: ACVMField[], [txHash]: ACVMField[], [logIndexInTx]: ACVMField[], [txIndexInBlock]: ACVMField[]): Promise<never[]>;
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/oracle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Fr, Point } from '@aztec/foundation/fields';
|
|
2
|
-
import { arrayOfArraysToBoundedVecOfArrays, bufferToBoundedVec,
|
|
3
|
-
import {
|
|
2
|
+
import { arrayOfArraysToBoundedVecOfArrays, bufferToBoundedVec, fromUintArray, fromUintBoundedVec, toACVMField, toACVMFieldSingleOrArray } from '@aztec/simulator/client';
|
|
3
|
+
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import { ContractClassLog, ContractClassLogFields,
|
|
5
|
+
import { ContractClassLog, ContractClassLogFields, PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
6
6
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
7
|
-
import { TxHash } from '@aztec/stdlib/tx';
|
|
8
7
|
/**
|
|
9
8
|
* A data source that has all the apis required by Aztec.nr.
|
|
10
9
|
*/ export class Oracle {
|
|
@@ -242,21 +241,30 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
242
241
|
await this.typedOracle.fetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
|
|
243
242
|
return [];
|
|
244
243
|
}
|
|
245
|
-
async
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
244
|
+
async validateEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot]) {
|
|
245
|
+
await this.typedOracle.validateEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
async getPublicLogByTag([tag], [contractAddress]) {
|
|
249
|
+
const log = await this.typedOracle.getPublicLogByTag(Fr.fromString(tag), AztecAddress.fromString(contractAddress));
|
|
250
|
+
if (log == null) {
|
|
251
|
+
return [
|
|
252
|
+
toACVMField(0),
|
|
253
|
+
...PublicLogWithTxData.noirSerializationOfEmpty().map(toACVMFieldSingleOrArray)
|
|
254
|
+
];
|
|
255
|
+
} else {
|
|
256
|
+
return [
|
|
257
|
+
toACVMField(1),
|
|
258
|
+
...log.toNoirSerialization().map(toACVMFieldSingleOrArray)
|
|
259
|
+
];
|
|
260
|
+
}
|
|
253
261
|
}
|
|
254
|
-
async
|
|
255
|
-
const log = await this.typedOracle.
|
|
262
|
+
async getPrivateLogByTag([siloedTag]) {
|
|
263
|
+
const log = await this.typedOracle.getPrivateLogByTag(Fr.fromString(siloedTag));
|
|
256
264
|
if (log == null) {
|
|
257
265
|
return [
|
|
258
266
|
toACVMField(0),
|
|
259
|
-
...
|
|
267
|
+
...PrivateLogWithTxData.noirSerializationOfEmpty().map(toACVMFieldSingleOrArray)
|
|
260
268
|
];
|
|
261
269
|
} else {
|
|
262
270
|
return [
|
|
@@ -310,8 +318,4 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
310
318
|
].map(Fr.fromString)));
|
|
311
319
|
return secret.toFields().map(toACVMField);
|
|
312
320
|
}
|
|
313
|
-
async storePrivateEventLog([contractAddress], [recipient], [eventSelector], msgContentBVecStorage, [msgContentLength], [txHash], [logIndexInTx], [txIndexInBlock]) {
|
|
314
|
-
await this.typedOracle.storePrivateEventLog(AztecAddress.fromField(Fr.fromString(contractAddress)), AztecAddress.fromField(Fr.fromString(recipient)), EventSelector.fromField(Fr.fromString(eventSelector)), fromBoundedVec(msgContentBVecStorage, msgContentLength), new TxHash(Fr.fromString(txHash)), Fr.fromString(logIndexInTx).toNumber(), Fr.fromString(txIndexInBlock).toNumber());
|
|
315
|
-
return [];
|
|
316
|
-
}
|
|
317
321
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { Fr, Point } from '@aztec/foundation/fields';
|
|
3
|
-
import type {
|
|
3
|
+
import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
5
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
6
6
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
7
|
-
import type { ContractClassLog, IndexedTaggingSecret,
|
|
7
|
+
import type { ContractClassLog, IndexedTaggingSecret, PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
8
8
|
import type { Note, NoteStatus } from '@aztec/stdlib/note';
|
|
9
9
|
import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
10
|
-
import type { BlockHeader
|
|
10
|
+
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
11
11
|
import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
12
12
|
/**
|
|
13
13
|
* Information about a note needed during execution.
|
|
@@ -70,14 +70,14 @@ export declare abstract class TypedOracle {
|
|
|
70
70
|
getIndexedTaggingSecretAsSender(_sender: AztecAddress, _recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
71
71
|
incrementAppTaggingSecretIndexAsSender(_sender: AztecAddress, _recipient: AztecAddress): Promise<void>;
|
|
72
72
|
fetchTaggedLogs(_pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
validateEnqueuedNotesAndEvents(_contractAddress: AztecAddress, _noteValidationRequestsArrayBaseSlot: Fr, _eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
74
|
+
getPublicLogByTag(_tag: Fr, _contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
75
|
+
getPrivateLogByTag(_siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
75
76
|
storeCapsule(_contractAddress: AztecAddress, _key: Fr, _capsule: Fr[]): Promise<void>;
|
|
76
77
|
loadCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<Fr[] | null>;
|
|
77
78
|
deleteCapsule(_contractAddress: AztecAddress, _key: Fr): Promise<void>;
|
|
78
79
|
copyCapsule(_contractAddress: AztecAddress, _srcKey: Fr, _dstKey: Fr, _numEntries: number): Promise<void>;
|
|
79
80
|
aes128Decrypt(_ciphertext: Buffer, _iv: Buffer, _symKey: Buffer): Promise<Buffer>;
|
|
80
81
|
getSharedSecret(_address: AztecAddress, _ephPk: Point): Promise<Point>;
|
|
81
|
-
storePrivateEventLog(_contractAddress: AztecAddress, _recipient: AztecAddress, _eventSelector: EventSelector, _logContent: Fr[], _txHash: TxHash, _logIndexInTx: number, _txIndexInBlock: number): Promise<void>;
|
|
82
82
|
}
|
|
83
83
|
//# sourceMappingURL=typed_oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/typed_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"typed_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/typed_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,11 +108,14 @@ class OracleMethodNotAvailableError extends Error {
|
|
|
108
108
|
fetchTaggedLogs(_pendingTaggedLogArrayBaseSlot) {
|
|
109
109
|
return Promise.reject(new OracleMethodNotAvailableError('fetchTaggedLogs'));
|
|
110
110
|
}
|
|
111
|
-
|
|
112
|
-
return Promise.reject(new OracleMethodNotAvailableError('
|
|
111
|
+
validateEnqueuedNotesAndEvents(_contractAddress, _noteValidationRequestsArrayBaseSlot, _eventValidationRequestsArrayBaseSlot) {
|
|
112
|
+
return Promise.reject(new OracleMethodNotAvailableError('validateEnqueuedNotesAndEvents'));
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
throw new OracleMethodNotAvailableError('
|
|
114
|
+
getPublicLogByTag(_tag, _contractAddress) {
|
|
115
|
+
throw new OracleMethodNotAvailableError('getPublicLogByTag');
|
|
116
|
+
}
|
|
117
|
+
getPrivateLogByTag(_siloedTag) {
|
|
118
|
+
throw new OracleMethodNotAvailableError('getPrivateLogByTag');
|
|
116
119
|
}
|
|
117
120
|
storeCapsule(_contractAddress, _key, _capsule) {
|
|
118
121
|
return Promise.reject(new OracleMethodNotAvailableError('storeCapsule'));
|
|
@@ -132,7 +135,4 @@ class OracleMethodNotAvailableError extends Error {
|
|
|
132
135
|
getSharedSecret(_address, _ephPk) {
|
|
133
136
|
return Promise.reject(new OracleMethodNotAvailableError('getSharedSecret'));
|
|
134
137
|
}
|
|
135
|
-
storePrivateEventLog(_contractAddress, _recipient, _eventSelector, _logContent, _txHash, _logIndexInTx, _txIndexInBlock) {
|
|
136
|
-
return Promise.reject(new OracleMethodNotAvailableError('storePrivateEventLog'));
|
|
137
|
-
}
|
|
138
138
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Fr, Point } from '@aztec/foundation/fields';
|
|
2
|
-
import type { EventSelector } from '@aztec/stdlib/abi';
|
|
3
2
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
4
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
4
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
6
5
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
7
|
-
import { IndexedTaggingSecret,
|
|
6
|
+
import { IndexedTaggingSecret, PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
8
7
|
import type { NoteStatus } from '@aztec/stdlib/note';
|
|
9
8
|
import { type MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
10
|
-
import type { BlockHeader, Capsule
|
|
9
|
+
import type { BlockHeader, Capsule } from '@aztec/stdlib/tx';
|
|
11
10
|
import type { ExecutionDataProvider } from '../execution_data_provider.js';
|
|
12
11
|
import { type NoteData, TypedOracle } from './typed_oracle.js';
|
|
13
12
|
/**
|
|
@@ -150,14 +149,14 @@ export declare class UtilityExecutionOracle extends TypedOracle {
|
|
|
150
149
|
*/
|
|
151
150
|
getIndexedTaggingSecretAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<IndexedTaggingSecret>;
|
|
152
151
|
fetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
validateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
153
|
+
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
154
|
+
getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
155
155
|
storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
|
|
156
156
|
loadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
|
|
157
157
|
deleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void>;
|
|
158
158
|
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
159
159
|
aes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
|
|
160
160
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
161
|
-
storePrivateEventLog(contractAddress: AztecAddress, recipient: AztecAddress, eventSelector: EventSelector, msgContent: Fr[], txHash: TxHash, logIndexInTx: number, txIndexInBlock: number): Promise<void>;
|
|
162
161
|
}
|
|
163
162
|
//# sourceMappingURL=utility_execution_oracle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/utility_execution_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"utility_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/utility_execution_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -204,15 +204,18 @@ import { TypedOracle } from './typed_oracle.js';
|
|
|
204
204
|
await this.executionDataProvider.syncTaggedLogs(this.contractAddress, pendingTaggedLogArrayBaseSlot, this.scopes);
|
|
205
205
|
await this.executionDataProvider.removeNullifiedNotes(this.contractAddress);
|
|
206
206
|
}
|
|
207
|
-
async
|
|
207
|
+
async validateEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot) {
|
|
208
208
|
// TODO(#10727): allow other contracts to deliver notes
|
|
209
209
|
if (!this.contractAddress.equals(contractAddress)) {
|
|
210
|
-
throw new Error(`Got a note
|
|
210
|
+
throw new Error(`Got a note validation request from ${contractAddress}, expected ${this.contractAddress}`);
|
|
211
211
|
}
|
|
212
|
-
await this.executionDataProvider.
|
|
212
|
+
await this.executionDataProvider.validateEnqueuedNotesAndEvents(contractAddress, noteValidationRequestsArrayBaseSlot, eventValidationRequestsArrayBaseSlot);
|
|
213
213
|
}
|
|
214
|
-
|
|
215
|
-
return this.executionDataProvider.
|
|
214
|
+
getPublicLogByTag(tag, contractAddress) {
|
|
215
|
+
return this.executionDataProvider.getPublicLogByTag(tag, contractAddress);
|
|
216
|
+
}
|
|
217
|
+
getPrivateLogByTag(siloedTag) {
|
|
218
|
+
return this.executionDataProvider.getPrivateLogByTag(siloedTag);
|
|
216
219
|
}
|
|
217
220
|
storeCapsule(contractAddress, slot, capsule) {
|
|
218
221
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
@@ -251,7 +254,4 @@ import { TypedOracle } from './typed_oracle.js';
|
|
|
251
254
|
getSharedSecret(address, ephPk) {
|
|
252
255
|
return this.executionDataProvider.getSharedSecret(address, ephPk);
|
|
253
256
|
}
|
|
254
|
-
storePrivateEventLog(contractAddress, recipient, eventSelector, msgContent, txHash, logIndexInTx, txIndexInBlock) {
|
|
255
|
-
return this.executionDataProvider.storePrivateEventLog(contractAddress, recipient, eventSelector, msgContent, txHash, logIndexInTx, txIndexInBlock);
|
|
256
|
-
}
|
|
257
257
|
}
|
|
@@ -7,7 +7,7 @@ import type { L2Block } from '@aztec/stdlib/block';
|
|
|
7
7
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
8
8
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
9
9
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
10
|
-
import { IndexedTaggingSecret,
|
|
10
|
+
import { IndexedTaggingSecret, PrivateLogWithTxData, PublicLogWithTxData } from '@aztec/stdlib/logs';
|
|
11
11
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
12
12
|
import { MerkleTreeId, type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
13
13
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
@@ -124,8 +124,8 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
124
124
|
*/
|
|
125
125
|
syncTaggedLogsAsSender(contractAddress: AztecAddress, sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
126
126
|
/**
|
|
127
|
-
* Synchronizes the logs tagged with scoped addresses and all the senders in the address book. Stores the found
|
|
128
|
-
* in CapsuleArray ready for a later retrieval in Aztec.nr.
|
|
127
|
+
* Synchronizes the private logs tagged with scoped addresses and all the senders in the address book. Stores the found
|
|
128
|
+
* logs in CapsuleArray ready for a later retrieval in Aztec.nr.
|
|
129
129
|
* @param contractAddress - The address of the contract that the logs are tagged for.
|
|
130
130
|
* @param pendingTaggedLogArrayBaseSlot - The base slot of the pending tagged logs capsule array in which
|
|
131
131
|
* found logs will be stored.
|
|
@@ -133,15 +133,17 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
133
133
|
* synced.
|
|
134
134
|
*/
|
|
135
135
|
syncTaggedLogs(contractAddress: AztecAddress, pendingTaggedLogArrayBaseSlot: Fr, scopes?: AztecAddress[]): Promise<void>;
|
|
136
|
+
validateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
136
137
|
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, nonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
137
|
-
|
|
138
|
+
deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash, logIndexInTx: number, txIndexInBlock: number, recipient: AztecAddress): Promise<void>;
|
|
139
|
+
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
140
|
+
getPrivateLogByTag(siloedTag: Fr): Promise<PrivateLogWithTxData | null>;
|
|
138
141
|
removeNullifiedNotes(contractAddress: AztecAddress): Promise<void>;
|
|
139
142
|
storeCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[]): Promise<void>;
|
|
140
143
|
loadCapsule(contractAddress: AztecAddress, slot: Fr): Promise<Fr[] | null>;
|
|
141
144
|
deleteCapsule(contractAddress: AztecAddress, slot: Fr): Promise<void>;
|
|
142
145
|
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number): Promise<void>;
|
|
143
146
|
getSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
|
|
144
|
-
storePrivateEventLog(contractAddress: AztecAddress, recipient: AztecAddress, eventSelector: EventSelector, msgContent: Fr[], txHash: TxHash, logIndexInTx: number, txIndexInBlock: number): Promise<void>;
|
|
145
147
|
getStats(): ExecutionStats;
|
|
146
148
|
}
|
|
147
149
|
//# sourceMappingURL=pxe_oracle_interface.d.ts.map
|