@aztec/pxe 3.0.0-nightly.20251124 → 3.0.0-nightly.20251126
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/contract_function_simulator.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -2
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +9 -3
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +3 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +3 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +4 -3
- package/dest/contract_function_simulator/oracle/oracle.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +3 -4
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +2 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +10 -2
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +2 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +6 -4
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +2 -10
- package/dest/storage/note_data_provider/note_dao.d.ts +10 -12
- package/dest/storage/note_data_provider/note_dao.d.ts.map +1 -1
- package/dest/storage/note_data_provider/note_dao.js +12 -13
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
- package/dest/storage/note_data_provider/note_data_provider.js +12 -9
- package/package.json +16 -16
- package/src/contract_function_simulator/contract_function_simulator.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +10 -1
- package/src/contract_function_simulator/oracle/interfaces.ts +10 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +5 -3
- package/src/contract_function_simulator/oracle/oracle.ts +3 -2
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +5 -1
- package/src/contract_function_simulator/pxe_oracle_interface.ts +17 -11
- package/src/pxe.ts +2 -12
- package/src/storage/note_data_provider/note_dao.ts +9 -10
- package/src/storage/note_data_provider/note_data_provider.ts +14 -7
|
@@ -57,7 +57,7 @@ import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
|
57
57
|
this.log.warn(`Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`);
|
|
58
58
|
}
|
|
59
59
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
60
|
-
const startSideEffectCounter =
|
|
60
|
+
const startSideEffectCounter = 2;
|
|
61
61
|
const callContext = new CallContext(msgSender, contractAddress, await FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), entryPointArtifact.isStatic);
|
|
62
62
|
const protocolNullifier = await computeProtocolNullifier(await request.toTxRequest().hash());
|
|
63
63
|
const noteCache = new ExecutionNoteCache(protocolNullifier);
|
|
@@ -2,7 +2,7 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
|
-
export declare const MAX_NOTE_PACKED_LEN =
|
|
5
|
+
export declare const MAX_NOTE_PACKED_LEN = 11;
|
|
6
6
|
/**
|
|
7
7
|
* Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
|
|
8
8
|
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
@@ -10,13 +10,14 @@ export declare const MAX_NOTE_PACKED_LEN = 12;
|
|
|
10
10
|
export declare class NoteValidationRequest {
|
|
11
11
|
contractAddress: AztecAddress;
|
|
12
12
|
storageSlot: Fr;
|
|
13
|
+
randomness: Fr;
|
|
13
14
|
noteNonce: Fr;
|
|
14
15
|
content: Fr[];
|
|
15
16
|
noteHash: Fr;
|
|
16
17
|
nullifier: Fr;
|
|
17
18
|
txHash: TxHash;
|
|
18
19
|
recipient: AztecAddress;
|
|
19
|
-
constructor(contractAddress: AztecAddress, storageSlot: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress);
|
|
20
|
+
constructor(contractAddress: AztecAddress, storageSlot: Fr, randomness: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress);
|
|
20
21
|
static fromFields(fields: Fr[] | FieldReader): NoteValidationRequest;
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=note_validation_request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_validation_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/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;AAG1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAqB;IAEvB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"note_validation_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/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;AAG1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAqB;IAEvB,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,YAAY;gBARvB,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,EAAE,EACb,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;CAmCrE"}
|
|
@@ -2,22 +2,24 @@ import { FieldReader } from '@aztec/foundation/serialize';
|
|
|
2
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
4
4
|
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
5
|
-
export const MAX_NOTE_PACKED_LEN =
|
|
5
|
+
export const MAX_NOTE_PACKED_LEN = 11;
|
|
6
6
|
/**
|
|
7
7
|
* Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
|
|
8
8
|
* expects for values of this type to be stored in a `CapsuleArray`.
|
|
9
9
|
*/ export class NoteValidationRequest {
|
|
10
10
|
contractAddress;
|
|
11
11
|
storageSlot;
|
|
12
|
+
randomness;
|
|
12
13
|
noteNonce;
|
|
13
14
|
content;
|
|
14
15
|
noteHash;
|
|
15
16
|
nullifier;
|
|
16
17
|
txHash;
|
|
17
18
|
recipient;
|
|
18
|
-
constructor(contractAddress, storageSlot, noteNonce, content, noteHash, nullifier, txHash, recipient){
|
|
19
|
+
constructor(contractAddress, storageSlot, randomness, noteNonce, content, noteHash, nullifier, txHash, recipient){
|
|
19
20
|
this.contractAddress = contractAddress;
|
|
20
21
|
this.storageSlot = storageSlot;
|
|
22
|
+
this.randomness = randomness;
|
|
21
23
|
this.noteNonce = noteNonce;
|
|
22
24
|
this.content = content;
|
|
23
25
|
this.noteHash = noteHash;
|
|
@@ -29,6 +31,7 @@ export const MAX_NOTE_PACKED_LEN = 12;
|
|
|
29
31
|
const reader = FieldReader.asReader(fields);
|
|
30
32
|
const contractAddress = AztecAddress.fromField(reader.readField());
|
|
31
33
|
const storageSlot = reader.readField();
|
|
34
|
+
const randomness = reader.readField();
|
|
32
35
|
const noteNonce = reader.readField();
|
|
33
36
|
const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
|
|
34
37
|
const contentLen = reader.readField().toNumber();
|
|
@@ -37,6 +40,9 @@ export const MAX_NOTE_PACKED_LEN = 12;
|
|
|
37
40
|
const nullifier = reader.readField();
|
|
38
41
|
const txHash = TxHash.fromField(reader.readField());
|
|
39
42
|
const recipient = AztecAddress.fromField(reader.readField());
|
|
40
|
-
|
|
43
|
+
if (reader.remainingFields() !== 0) {
|
|
44
|
+
throw new Error(`Error converting array of fields to NoteValidationRequest. Hint: check that MAX_NOTE_PACKED_LEN is consistent with private_notes::MAX_NOTE_PACKED_LEN in Aztec-nr.`);
|
|
45
|
+
}
|
|
46
|
+
return new NoteValidationRequest(contractAddress, storageSlot, randomness, noteNonce, content, noteHash, nullifier, txHash, recipient);
|
|
41
47
|
}
|
|
42
48
|
}
|
|
@@ -21,6 +21,8 @@ export interface NoteData {
|
|
|
21
21
|
contractAddress: AztecAddress;
|
|
22
22
|
/** The storage slot of the note. */
|
|
23
23
|
storageSlot: Fr;
|
|
24
|
+
/** The randomness injected to the note */
|
|
25
|
+
randomness: Fr;
|
|
24
26
|
/** The nonce injected into the note hash preimage by kernels. */
|
|
25
27
|
noteNonce: Fr;
|
|
26
28
|
/** A hash of the note as it gets stored in the note hash tree. */
|
|
@@ -78,7 +80,7 @@ export interface IPrivateExecutionOracle {
|
|
|
78
80
|
isPrivate: true;
|
|
79
81
|
privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
|
|
80
82
|
privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
|
|
81
|
-
privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, note: Fr[], noteHash: Fr, counter: number): void;
|
|
83
|
+
privateNotifyCreatedNote(storageSlot: Fr, randomness: Fr, noteTypeId: NoteSelector, note: Fr[], noteHash: Fr, counter: number): void;
|
|
82
84
|
privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
|
|
83
85
|
privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
|
|
84
86
|
privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/interfaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,15 @@ import type { Note } from '@aztec/stdlib/note';
|
|
|
8
8
|
* and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
|
|
9
9
|
*
|
|
10
10
|
* @param contractAddress - The address of the contract that owns the note
|
|
11
|
+
* @param randomness - The randomness injected into the note to get the hiding property of commitments
|
|
11
12
|
* @param noteNonce - The nonce injected into the note hash preimage by kernels.
|
|
12
13
|
* @param index - Optional index in the note hash tree. If undefined, indicates a transient note
|
|
13
14
|
* @param note - The note content containing the actual note data
|
|
14
15
|
* @returns The packed note as an array of field elements
|
|
15
16
|
*/
|
|
16
|
-
export declare function packAsRetrievedNote({ contractAddress, noteNonce, index, note, }: {
|
|
17
|
+
export declare function packAsRetrievedNote({ contractAddress, randomness, noteNonce, index, note, }: {
|
|
17
18
|
contractAddress: AztecAddress;
|
|
19
|
+
randomness: Fr;
|
|
18
20
|
noteNonce: Fr;
|
|
19
21
|
index?: bigint;
|
|
20
22
|
note: Note;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_packing_utils.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/note_packing_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiB/C
|
|
1
|
+
{"version":3,"file":"note_packing_utils.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/note_packing_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAiB/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,EACf,UAAU,EACV,SAAS,EACT,KAAK,EACL,IAAI,GACL,EAAE;IACD,eAAe,EAAE,YAAY,CAAC;IAC9B,UAAU,EAAE,EAAE,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,yBASA"}
|
|
@@ -29,20 +29,21 @@ function fromRawData(nonzeroNoteHashCounter, maybeNoteNonce) {
|
|
|
29
29
|
* and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
|
|
30
30
|
*
|
|
31
31
|
* @param contractAddress - The address of the contract that owns the note
|
|
32
|
+
* @param randomness - The randomness injected into the note to get the hiding property of commitments
|
|
32
33
|
* @param noteNonce - The nonce injected into the note hash preimage by kernels.
|
|
33
34
|
* @param index - Optional index in the note hash tree. If undefined, indicates a transient note
|
|
34
35
|
* @param note - The note content containing the actual note data
|
|
35
36
|
* @returns The packed note as an array of field elements
|
|
36
|
-
*/ export function packAsRetrievedNote({ contractAddress, noteNonce, index, note }) {
|
|
37
|
+
*/ export function packAsRetrievedNote({ contractAddress, randomness, noteNonce, index, note }) {
|
|
37
38
|
// If index is undefined, the note is transient which implies that the nonzero_note_hash_counter has to be true
|
|
38
|
-
const
|
|
39
|
-
const nonzeroNoteHashCounter = noteIsTransient ? true : false;
|
|
39
|
+
const nonzeroNoteHashCounter = index === undefined;
|
|
40
40
|
// To pack the note as retrieved note we first need to reconstruct the note metadata.
|
|
41
41
|
const noteMetadata = fromRawData(nonzeroNoteHashCounter, noteNonce);
|
|
42
42
|
// Pack metadata first (stage and maybe_note_nonce), followed by the rest
|
|
43
43
|
return [
|
|
44
44
|
...note.items,
|
|
45
45
|
contractAddress,
|
|
46
|
+
randomness,
|
|
46
47
|
new Fr(noteMetadata.stage),
|
|
47
48
|
noteMetadata.maybeNoteNonce
|
|
48
49
|
];
|
|
@@ -15,7 +15,7 @@ export declare class Oracle {
|
|
|
15
15
|
toACIRCallback(): ACIRCallback;
|
|
16
16
|
utilityAssertCompatibleOracleVersion([version]: ACVMField[]): Promise<never[]>;
|
|
17
17
|
utilityGetRandomField(): Promise<ACVMField[]>;
|
|
18
|
-
privateStoreInExecutionCache(
|
|
18
|
+
privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]>;
|
|
19
19
|
privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]>;
|
|
20
20
|
utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]>;
|
|
21
21
|
utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]>;
|
|
@@ -28,7 +28,7 @@ export declare class Oracle {
|
|
|
28
28
|
utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]>;
|
|
29
29
|
utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]>;
|
|
30
30
|
utilityGetNotes([storageSlot]: ACVMField[], [numSelects]: ACVMField[], selectByIndexes: ACVMField[], selectByOffsets: ACVMField[], selectByLengths: ACVMField[], selectValues: ACVMField[], selectComparators: ACVMField[], sortByIndexes: ACVMField[], sortByOffsets: ACVMField[], sortByLengths: ACVMField[], sortOrder: ACVMField[], [limit]: ACVMField[], [offset]: ACVMField[], [status]: ACVMField[], [maxNotes]: ACVMField[], [packedRetrievedNoteLength]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]>;
|
|
31
|
-
privateNotifyCreatedNote([storageSlot]: ACVMField[], [noteTypeId]: ACVMField[], note: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
|
|
31
|
+
privateNotifyCreatedNote([storageSlot]: ACVMField[], [randomness]: ACVMField[], [noteTypeId]: ACVMField[], note: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
|
|
32
32
|
privateNotifyNullifiedNote([innerNullifier]: ACVMField[], [noteHash]: ACVMField[], [counter]: ACVMField[]): Promise<ACVMField[]>;
|
|
33
33
|
privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
|
|
34
34
|
utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]>;
|
|
@@ -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,EAMf,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAGrG,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,UAAU,EAAE,MAAM;CAG/B;AAED;;GAEG;AACH,qBAAa,MAAM;IACL,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW,GAAG,uBAAuB,GAAG,uBAAuB;IAE5F,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAQxB,cAAc,IAAI,YAAY;IAsC9B,oCAAoC,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE;IAK3D,qBAAqB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,7 @@ export class UnavailableOracleError extends Error {
|
|
|
74
74
|
toACVMField(val)
|
|
75
75
|
]);
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
privateStoreInExecutionCache(_length, values, [hash]) {
|
|
77
|
+
privateStoreInExecutionCache(values, [hash]) {
|
|
79
78
|
this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
|
|
80
79
|
return Promise.resolve([]);
|
|
81
80
|
}
|
|
@@ -179,8 +178,8 @@ export class UnavailableOracleError extends Error {
|
|
|
179
178
|
// At last we convert the array of arrays to a bounded vec of arrays
|
|
180
179
|
return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
|
|
181
180
|
}
|
|
182
|
-
privateNotifyCreatedNote([storageSlot], [noteTypeId], note, [noteHash], [counter]) {
|
|
183
|
-
this.handlerAsPrivate().privateNotifyCreatedNote(Fr.fromString(storageSlot), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
|
|
181
|
+
privateNotifyCreatedNote([storageSlot], [randomness], [noteTypeId], note, [noteHash], [counter]) {
|
|
182
|
+
this.handlerAsPrivate().privateNotifyCreatedNote(Fr.fromString(storageSlot), Fr.fromString(randomness), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
|
|
184
183
|
return Promise.resolve([]);
|
|
185
184
|
}
|
|
186
185
|
async privateNotifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
|
|
@@ -164,12 +164,13 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
164
164
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
165
165
|
* @param contractAddress - The contract address.
|
|
166
166
|
* @param storageSlot - The storage slot.
|
|
167
|
+
* @param randomness - The randomness injected into the note.
|
|
167
168
|
* @param noteTypeId - The type ID of the note.
|
|
168
169
|
* @param noteItems - The items to be included in a Note.
|
|
169
170
|
* @param noteHash - A hash of the new note.
|
|
170
171
|
* @returns
|
|
171
172
|
*/
|
|
172
|
-
privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
|
|
173
|
+
privateNotifyCreatedNote(storageSlot: Fr, randomness: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
|
|
173
174
|
/**
|
|
174
175
|
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
175
176
|
* within the current transaction/execution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,KAAK,WAAW,EAEhB,gBAAgB,EAChB,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAA+B,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,KAAK,WAAW,EAChB,WAAW,EACX,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,sBAAuB,YAAW,uBAAuB;;IA4BjG,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,qHAAqH;IACrH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW;IAIjD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,wBAAwB;IAChC,SAAS,CAAC,iBAAiB,EAAE,MAAM;IAGnC,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,SAAS,CAAC;IA5CpB,SAAS,EAAG,IAAI,CAAU;IAE1B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAqB;IACrC;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,2BAA2B,CAAkC;IACrE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,sBAAsB,CAAoC;gBAG/C,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;IACzC,qHAAqH;IAClG,iBAAiB,EAAE,WAAW;IACjD,yEAAyE;IACzE,aAAa,EAAE,WAAW,EAAE,EAC5B,QAAQ,EAAE,OAAO,EAAE,EACF,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,kBAAkB,EAC7B,iBAAiB,EAAE,0BAA0B,EAC9D,qBAAqB,EAAE,qBAAqB,EACpC,wBAAwB,GAAE,MAAU,EAClC,iBAAiB,GAAE,MAAU,EACvC,GAAG,yCAAqD,EACxD,MAAM,CAAC,EAAE,YAAY,EAAE,EACf,aAAa,CAAC,EAAE,YAAY,YAAA,EAC5B,SAAS,CAAC,EAAE,gBAAgB,YAAA;IAK/B,uBAAuB,IAAI,oBAAoB;IAMtD;;;;OAIG;IACI,iBAAiB,CAAC,GAAG,EAAE,WAAW;IAkBzC;;;OAGG;IACI,uBAAuB;IAI9B;;OAEG;IACI,WAAW,IAAI,WAAW,EAAE;IAI5B,8BAA8B;IAIrC;;OAEG;IACI,oBAAoB;IAI3B;;OAEG;IACI,kBAAkB;cApFQ,EAAE,EAAE;;IAwFrC;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACI,yBAAyB;IAIhC;;;;;;;;;OASG;IACI,uBAAuB,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAInE;;;;;;;;;;OAUG;IACI,uBAAuB,CAAC,aAAa,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1E;;;;;OAKG;IACU,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;IAkCtG;;;;OAIG;IACI,4BAA4B,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IAI1D;;;;OAIG;IACI,6BAA6B,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAQ9C,2BAA2B,CAAC,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBhF;;;;;;;;;;;;;;;;;;;OAmBG;IACmB,eAAe,CACnC,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,EACzB,YAAY,EAAE,EAAE,EAAE,EAClB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqDtB;;;;;;;;;;OAUG;IACI,wBAAwB,CAC7B,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,YAAY,EACxB,SAAS,EAAE,EAAE,EAAE,EACf,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,MAAM;IA0BjB;;;;;OAKG;IACU,0BAA0B,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM;IAWzF;;;;;OAKG;IACI,6BAA6B,CAAC,cAAc,EAAE,EAAE;IAKvD;;;;;;OAMG;IACI,oCAAoC,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;IAoBlF;;;;;;;;OAQG;IACG,0BAA0B,CAC9B,qBAAqB,EAAE,YAAY,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,EAAE,EACZ,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,OAAO;;;;IAsFvB;;;;;;OAMG;IACI,uCAAuC,CAC5C,sBAAsB,EAAE,YAAY,EACpC,YAAY,EAAE,EAAE,EAChB,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,OAAO;IAMxB;;;;;;OAMG;IACI,0CAA0C,CAC/C,sBAAsB,EAAE,YAAY,EACpC,YAAY,EAAE,EAAE,EAChB,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,OAAO;IAMjB,8CAA8C,CAAC,8BAA8B,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrG,oCAAoC,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxF;;;;;;OAMG;YACW,iBAAiB;IAaxB,oBAAoB;IAIpB,yBAAyB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5D"}
|
|
@@ -265,14 +265,16 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
265
265
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
266
266
|
* @param contractAddress - The contract address.
|
|
267
267
|
* @param storageSlot - The storage slot.
|
|
268
|
+
* @param randomness - The randomness injected into the note.
|
|
268
269
|
* @param noteTypeId - The type ID of the note.
|
|
269
270
|
* @param noteItems - The items to be included in a Note.
|
|
270
271
|
* @param noteHash - A hash of the new note.
|
|
271
272
|
* @returns
|
|
272
|
-
*/ privateNotifyCreatedNote(storageSlot, noteTypeId, noteItems, noteHash, counter) {
|
|
273
|
+
*/ privateNotifyCreatedNote(storageSlot, randomness, noteTypeId, noteItems, noteHash, counter) {
|
|
273
274
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
274
275
|
contractAddress: this.callContext.contractAddress,
|
|
275
276
|
storageSlot,
|
|
277
|
+
randomness,
|
|
276
278
|
noteTypeId,
|
|
277
279
|
counter
|
|
278
280
|
});
|
|
@@ -280,12 +282,18 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
280
282
|
this.noteCache.addNewNote({
|
|
281
283
|
contractAddress: this.callContext.contractAddress,
|
|
282
284
|
storageSlot,
|
|
285
|
+
randomness,
|
|
283
286
|
noteNonce: Fr.ZERO,
|
|
284
287
|
note,
|
|
285
288
|
siloedNullifier: undefined,
|
|
286
289
|
noteHash
|
|
287
290
|
}, counter);
|
|
288
|
-
this.newNotes.push(
|
|
291
|
+
this.newNotes.push(NoteAndSlot.from({
|
|
292
|
+
note,
|
|
293
|
+
storageSlot,
|
|
294
|
+
randomness,
|
|
295
|
+
noteTypeId
|
|
296
|
+
}));
|
|
289
297
|
}
|
|
290
298
|
/**
|
|
291
299
|
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
@@ -45,6 +45,7 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
45
45
|
getNotes(contractAddress: AztecAddress, storageSlot: Fr, status: NoteStatus, scopes?: AztecAddress[]): Promise<{
|
|
46
46
|
contractAddress: AztecAddress;
|
|
47
47
|
storageSlot: Fr;
|
|
48
|
+
randomness: Fr;
|
|
48
49
|
noteNonce: Fr;
|
|
49
50
|
note: Note;
|
|
50
51
|
noteHash: Fr;
|
|
@@ -93,7 +94,7 @@ export declare class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
93
94
|
*/
|
|
94
95
|
syncTaggedLogs(contractAddress: AztecAddress, pendingTaggedLogArrayBaseSlot: Fr, scopes?: AztecAddress[]): Promise<void>;
|
|
95
96
|
validateEnqueuedNotesAndEvents(contractAddress: AztecAddress, noteValidationRequestsArrayBaseSlot: Fr, eventValidationRequestsArrayBaseSlot: Fr): Promise<void>;
|
|
96
|
-
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
97
|
+
deliverNote(contractAddress: AztecAddress, storageSlot: Fr, randomness: Fr, noteNonce: Fr, content: Fr[], noteHash: Fr, nullifier: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
97
98
|
bulkRetrieveLogs(contractAddress: AztecAddress, logRetrievalRequestsArrayBaseSlot: Fr, logRetrievalResponsesArrayBaseSlot: Fr): Promise<void>;
|
|
98
99
|
deliverEvent(contractAddress: AztecAddress, selector: EventSelector, content: Fr[], eventCommitment: Fr, txHash: TxHash, recipient: AztecAddress): Promise<void>;
|
|
99
100
|
getPublicLogByTag(tag: Fr, contractAddress: AztecAddress): Promise<PublicLogWithTxData | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_oracle_interface.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/pxe_oracle_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,gCAAgC,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAW,OAAO,EAAiB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAEL,oBAAoB,EAEpB,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,KAAK,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,2DAA2D,CAAC;AACvH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qEAAqE,CAAC;AAE9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAExG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AACrG,OAAO,EACL,2BAA2B,EAM5B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,kBAAmB,YAAW,qBAAqB;;IAE5D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,wBAAwB;IAChC,OAAO,CAAC,GAAG;gBATH,SAAS,EAAE,SAAS,GAAG,WAAW,EAClC,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,mBAAmB,EACxC,wBAAwB,EAAE,wBAAwB,EAClD,GAAG,yCAA2C;IAGxD,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI5F,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAWnE,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQrE,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE
|
|
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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"}
|
|
@@ -65,9 +65,10 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
65
65
|
status,
|
|
66
66
|
scopes
|
|
67
67
|
});
|
|
68
|
-
return noteDaos.map(({ contractAddress, storageSlot, noteNonce, note, noteHash, siloedNullifier, index })=>({
|
|
68
|
+
return noteDaos.map(({ contractAddress, storageSlot, randomness, noteNonce, note, noteHash, siloedNullifier, index })=>({
|
|
69
69
|
contractAddress,
|
|
70
70
|
storageSlot,
|
|
71
|
+
randomness,
|
|
71
72
|
noteNonce,
|
|
72
73
|
note,
|
|
73
74
|
noteHash,
|
|
@@ -421,7 +422,7 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
421
422
|
// faster as we don't need to wait for the network round-trip.
|
|
422
423
|
const noteValidationRequests = (await this.capsuleDataProvider.readCapsuleArray(contractAddress, noteValidationRequestsArrayBaseSlot)).map(NoteValidationRequest.fromFields);
|
|
423
424
|
const eventValidationRequests = (await this.capsuleDataProvider.readCapsuleArray(contractAddress, eventValidationRequestsArrayBaseSlot)).map(EventValidationRequest.fromFields);
|
|
424
|
-
const noteDeliveries = noteValidationRequests.map((request)=>this.deliverNote(request.contractAddress, request.storageSlot, request.noteNonce, request.content, request.noteHash, request.nullifier, request.txHash, request.recipient));
|
|
425
|
+
const noteDeliveries = noteValidationRequests.map((request)=>this.deliverNote(request.contractAddress, request.storageSlot, request.randomness, request.noteNonce, request.content, request.noteHash, request.nullifier, request.txHash, request.recipient));
|
|
425
426
|
const eventDeliveries = eventValidationRequests.map((request)=>this.deliverEvent(request.contractAddress, request.eventTypeId, request.serializedEvent, request.eventCommitment, request.txHash, request.recipient));
|
|
426
427
|
await Promise.all([
|
|
427
428
|
...noteDeliveries,
|
|
@@ -431,7 +432,7 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
431
432
|
await this.capsuleDataProvider.setCapsuleArray(contractAddress, noteValidationRequestsArrayBaseSlot, []);
|
|
432
433
|
await this.capsuleDataProvider.setCapsuleArray(contractAddress, eventValidationRequestsArrayBaseSlot, []);
|
|
433
434
|
}
|
|
434
|
-
async deliverNote(contractAddress, storageSlot, noteNonce, content, noteHash, nullifier, txHash, recipient) {
|
|
435
|
+
async deliverNote(contractAddress, storageSlot, randomness, noteNonce, content, noteHash, nullifier, txHash, recipient) {
|
|
435
436
|
// We are going to store the new note in the NoteDataProvider, which will let us later return it via `getNotes`.
|
|
436
437
|
// There's two things we need to check before we do this however:
|
|
437
438
|
// - we must make sure the note does actually exist in the note hash tree
|
|
@@ -469,7 +470,8 @@ import { NoteValidationRequest } from './noir-structs/note_validation_request.js
|
|
|
469
470
|
if (uniqueNoteHashTreeIndexInBlock === undefined) {
|
|
470
471
|
throw new Error(`Note hash ${noteHash} (uniqued as ${uniqueNoteHash}) is not present on the tree at block ${syncedBlockNumber} (from tx ${txHash})`);
|
|
471
472
|
}
|
|
472
|
-
const noteDao = new NoteDao(new Note(content), contractAddress, storageSlot, noteNonce, noteHash, siloedNullifier, txHash, uniqueNoteHashTreeIndexInBlock?.l2BlockNumber, uniqueNoteHashTreeIndexInBlock?.l2BlockHash.toString(), uniqueNoteHashTreeIndexInBlock?.data
|
|
473
|
+
const noteDao = new NoteDao(new Note(content), contractAddress, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, uniqueNoteHashTreeIndexInBlock?.l2BlockNumber, uniqueNoteHashTreeIndexInBlock?.l2BlockHash.toString(), uniqueNoteHashTreeIndexInBlock?.data);
|
|
474
|
+
// The note was found by `recipient`, so we use that as the scope when storing the note.
|
|
473
475
|
await this.noteDataProvider.addNotes([
|
|
474
476
|
noteDao
|
|
475
477
|
], recipient);
|
package/dest/pxe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
|
package/dest/pxe.js
CHANGED
|
@@ -457,17 +457,9 @@ import { Synchronizer } from './synchronizer/index.js';
|
|
|
457
457
|
const call = await this.#getFunctionCall('sync_private_state', [], filter.contractAddress);
|
|
458
458
|
await this.simulateUtility(call);
|
|
459
459
|
const noteDaos = await this.noteDataProvider.getNotes(filter);
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
const completeAddressIndex = completeAddresses.findIndex((completeAddress)=>completeAddress.address.equals(dao.recipient));
|
|
463
|
-
const completeAddress = completeAddresses[completeAddressIndex];
|
|
464
|
-
if (completeAddress === undefined) {
|
|
465
|
-
throw new Error(`Cannot find complete address for recipient ${dao.recipient.toString()}`);
|
|
466
|
-
}
|
|
467
|
-
const recipient = completeAddress.address;
|
|
468
|
-
return new UniqueNote(dao.note, recipient, dao.contractAddress, dao.storageSlot, dao.txHash, dao.noteNonce);
|
|
460
|
+
return noteDaos.map((dao)=>{
|
|
461
|
+
return new UniqueNote(dao.note, dao.contractAddress, dao.storageSlot, dao.txHash, dao.noteNonce);
|
|
469
462
|
});
|
|
470
|
-
return Promise.all(uniqueNotes);
|
|
471
463
|
}
|
|
472
464
|
/**
|
|
473
465
|
* Proves the private portion of a simulated transaction, ready to send to the network
|
|
@@ -18,6 +18,10 @@ export declare class NoteDao implements NoteData {
|
|
|
18
18
|
* since contracts typically make queries based on it.
|
|
19
19
|
*/
|
|
20
20
|
storageSlot: Fr;
|
|
21
|
+
/**
|
|
22
|
+
* The randomness injected to the note.
|
|
23
|
+
*/
|
|
24
|
+
randomness: Fr;
|
|
21
25
|
/** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
|
|
22
26
|
noteNonce: Fr;
|
|
23
27
|
/**
|
|
@@ -42,11 +46,6 @@ export declare class NoteDao implements NoteData {
|
|
|
42
46
|
l2BlockHash: string;
|
|
43
47
|
/** The index of the leaf in the global note hash tree the note is stored at */
|
|
44
48
|
index: bigint;
|
|
45
|
-
/**
|
|
46
|
-
* The address whose public key was used to encrypt the note log during delivery.
|
|
47
|
-
* (This is the x-coordinate of the public key.)
|
|
48
|
-
*/
|
|
49
|
-
recipient: AztecAddress;
|
|
50
49
|
constructor(
|
|
51
50
|
/** The packed content of the note, as will be returned in the getNotes oracle. */
|
|
52
51
|
note: Note,
|
|
@@ -57,6 +56,10 @@ export declare class NoteDao implements NoteData {
|
|
|
57
56
|
* since contracts typically make queries based on it.
|
|
58
57
|
*/
|
|
59
58
|
storageSlot: Fr,
|
|
59
|
+
/**
|
|
60
|
+
* The randomness injected to the note.
|
|
61
|
+
*/
|
|
62
|
+
randomness: Fr,
|
|
60
63
|
/** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
|
|
61
64
|
noteNonce: Fr,
|
|
62
65
|
/**
|
|
@@ -80,12 +83,7 @@ export declare class NoteDao implements NoteData {
|
|
|
80
83
|
* reorgs.*/
|
|
81
84
|
l2BlockHash: string,
|
|
82
85
|
/** The index of the leaf in the global note hash tree the note is stored at */
|
|
83
|
-
index: bigint
|
|
84
|
-
/**
|
|
85
|
-
* The address whose public key was used to encrypt the note log during delivery.
|
|
86
|
-
* (This is the x-coordinate of the public key.)
|
|
87
|
-
*/
|
|
88
|
-
recipient: AztecAddress);
|
|
86
|
+
index: bigint);
|
|
89
87
|
toBuffer(): Buffer;
|
|
90
88
|
static fromBuffer(buffer: Buffer | BufferReader): NoteDao;
|
|
91
89
|
toString(): string;
|
|
@@ -95,6 +93,6 @@ export declare class NoteDao implements NoteData {
|
|
|
95
93
|
* @returns - Its size in bytes.
|
|
96
94
|
*/
|
|
97
95
|
getSize(): number;
|
|
98
|
-
static random({ note, contractAddress, storageSlot, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index,
|
|
96
|
+
static random({ note, contractAddress, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index, }?: Partial<NoteDao>): Promise<NoteDao>;
|
|
99
97
|
}
|
|
100
98
|
//# sourceMappingURL=note_dao.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_dao.d.ts","sourceRoot":"","sources":["../../../src/storage/note_data_provider/note_dao.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wDAAwD,CAAC;AAEvF;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAIpC,kFAAkF;IAC3E,IAAI,EAAE,IAAI;IACjB,8GAA8G;IACvG,eAAe,EAAE,YAAY;IACpC;;;OAGG;IACI,WAAW,EAAE,EAAE;IACtB,gGAAgG;IACzF,SAAS,EAAE,EAAE;IAGpB;;;OAGG;IACI,QAAQ,EAAE,EAAE;IACnB;;;OAGG;IACI,eAAe,EAAE,EAAE;IAG1B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;gBACY;IACL,aAAa,EAAE,MAAM;IAC5B;gBACY;IACL,WAAW,EAAE,MAAM;IAC1B,+EAA+E;IACxE,KAAK,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"note_dao.d.ts","sourceRoot":"","sources":["../../../src/storage/note_data_provider/note_dao.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wDAAwD,CAAC;AAEvF;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IAIpC,kFAAkF;IAC3E,IAAI,EAAE,IAAI;IACjB,8GAA8G;IACvG,eAAe,EAAE,YAAY;IACpC;;;OAGG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB,gGAAgG;IACzF,SAAS,EAAE,EAAE;IAGpB;;;OAGG;IACI,QAAQ,EAAE,EAAE;IACnB;;;OAGG;IACI,eAAe,EAAE,EAAE;IAG1B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;gBACY;IACL,aAAa,EAAE,MAAM;IAC5B;gBACY;IACL,WAAW,EAAE,MAAM;IAC1B,+EAA+E;IACxE,KAAK,EAAE,MAAM;;IAxCpB,kFAAkF;IAC3E,IAAI,EAAE,IAAI;IACjB,8GAA8G;IACvG,eAAe,EAAE,YAAY;IACpC;;;OAGG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB,gGAAgG;IACzF,SAAS,EAAE,EAAE;IAGpB;;;OAGG;IACI,QAAQ,EAAE,EAAE;IACnB;;;OAGG;IACI,eAAe,EAAE,EAAE;IAG1B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;gBACY;IACL,aAAa,EAAE,MAAM;IAC5B;gBACY;IACL,WAAW,EAAE,MAAM;IAC1B,+EAA+E;IACxE,KAAK,EAAE,MAAM;IAGtB,QAAQ,IAAI,MAAM;IAgBlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IA8B/C,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAK7B;;;OAGG;IACI,OAAO;WAMD,MAAM,CAAC,EAClB,IAAoB,EACpB,eAA2B,EAC3B,WAAyB,EACzB,UAAwB,EACxB,SAAuB,EACvB,QAAsB,EACtB,eAA6B,EAC7B,MAAwB,EACxB,aAAgD,EAChD,WAAoC,EACpC,KAA8B,GAC/B,GAAE,OAAO,CAAC,OAAO,CAAM;CAezB"}
|
|
@@ -11,6 +11,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
11
11
|
note;
|
|
12
12
|
contractAddress;
|
|
13
13
|
storageSlot;
|
|
14
|
+
randomness;
|
|
14
15
|
noteNonce;
|
|
15
16
|
noteHash;
|
|
16
17
|
siloedNullifier;
|
|
@@ -18,12 +19,13 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
18
19
|
l2BlockNumber;
|
|
19
20
|
l2BlockHash;
|
|
20
21
|
index;
|
|
21
|
-
recipient;
|
|
22
22
|
constructor(// Note information
|
|
23
23
|
/** The packed content of the note, as will be returned in the getNotes oracle. */ note, /** The address of the contract that created the note (i.e. the address used by the kernel during siloing). */ contractAddress, /**
|
|
24
24
|
* The storage location of the note. This value is not used for anything in PXE, but we do index by storage slot
|
|
25
25
|
* since contracts typically make queries based on it.
|
|
26
|
-
*/ storageSlot, /**
|
|
26
|
+
*/ storageSlot, /**
|
|
27
|
+
* The randomness injected to the note.
|
|
28
|
+
*/ randomness, /** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */ noteNonce, // Computed values
|
|
27
29
|
/**
|
|
28
30
|
* The inner hash (non-unique, non-siloed) of the note. Each contract determines how the note is hashed. Can
|
|
29
31
|
* be used alongside contractAddress and nonce to compute the uniqueNoteHash and the siloedNoteHash.
|
|
@@ -35,13 +37,11 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
35
37
|
* when searching for txEffects.
|
|
36
38
|
*/ txHash, /** The L2 block number in which the tx with this note was included. Used for note management while processing
|
|
37
39
|
* reorgs.*/ l2BlockNumber, /** The L2 block hash in which the tx with this note was included. Used for note management while processing
|
|
38
|
-
* reorgs.*/ l2BlockHash, /** The index of the leaf in the global note hash tree the note is stored at */ index
|
|
39
|
-
* The address whose public key was used to encrypt the note log during delivery.
|
|
40
|
-
* (This is the x-coordinate of the public key.)
|
|
41
|
-
*/ recipient){
|
|
40
|
+
* reorgs.*/ l2BlockHash, /** The index of the leaf in the global note hash tree the note is stored at */ index){
|
|
42
41
|
this.note = note;
|
|
43
42
|
this.contractAddress = contractAddress;
|
|
44
43
|
this.storageSlot = storageSlot;
|
|
44
|
+
this.randomness = randomness;
|
|
45
45
|
this.noteNonce = noteNonce;
|
|
46
46
|
this.noteHash = noteHash;
|
|
47
47
|
this.siloedNullifier = siloedNullifier;
|
|
@@ -49,21 +49,20 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
49
49
|
this.l2BlockNumber = l2BlockNumber;
|
|
50
50
|
this.l2BlockHash = l2BlockHash;
|
|
51
51
|
this.index = index;
|
|
52
|
-
this.recipient = recipient;
|
|
53
52
|
}
|
|
54
53
|
toBuffer() {
|
|
55
54
|
return serializeToBuffer([
|
|
56
55
|
this.note,
|
|
57
56
|
this.contractAddress,
|
|
58
57
|
this.storageSlot,
|
|
58
|
+
this.randomness,
|
|
59
59
|
this.noteNonce,
|
|
60
60
|
this.noteHash,
|
|
61
61
|
this.siloedNullifier,
|
|
62
62
|
this.txHash,
|
|
63
63
|
this.l2BlockNumber,
|
|
64
64
|
Fr.fromHexString(this.l2BlockHash),
|
|
65
|
-
this.index
|
|
66
|
-
this.recipient
|
|
65
|
+
this.index
|
|
67
66
|
]);
|
|
68
67
|
}
|
|
69
68
|
static fromBuffer(buffer) {
|
|
@@ -71,6 +70,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
71
70
|
const note = Note.fromBuffer(reader);
|
|
72
71
|
const contractAddress = AztecAddress.fromBuffer(reader);
|
|
73
72
|
const storageSlot = Fr.fromBuffer(reader);
|
|
73
|
+
const randomness = Fr.fromBuffer(reader);
|
|
74
74
|
const noteNonce = Fr.fromBuffer(reader);
|
|
75
75
|
const noteHash = Fr.fromBuffer(reader);
|
|
76
76
|
const siloedNullifier = Fr.fromBuffer(reader);
|
|
@@ -78,8 +78,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
78
78
|
const l2BlockNumber = reader.readNumber();
|
|
79
79
|
const l2BlockHash = Fr.fromBuffer(reader).toString();
|
|
80
80
|
const index = toBigIntBE(reader.readBytes(32));
|
|
81
|
-
|
|
82
|
-
return new NoteDao(note, contractAddress, storageSlot, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index, recipient);
|
|
81
|
+
return new NoteDao(note, contractAddress, storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index);
|
|
83
82
|
}
|
|
84
83
|
toString() {
|
|
85
84
|
return '0x' + this.toBuffer().toString('hex');
|
|
@@ -96,7 +95,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
96
95
|
const noteSize = 4 + this.note.items.length * Fr.SIZE_IN_BYTES;
|
|
97
96
|
return noteSize + AztecAddress.SIZE_IN_BYTES + Fr.SIZE_IN_BYTES * 4 + TxHash.SIZE + Point.SIZE_IN_BYTES + indexSize;
|
|
98
97
|
}
|
|
99
|
-
static async random({ note = Note.random(), contractAddress = undefined, storageSlot = Fr.random(), noteNonce = Fr.random(), noteHash = Fr.random(), siloedNullifier = Fr.random(), txHash = TxHash.random(), l2BlockNumber = Math.floor(Math.random() * 1000), l2BlockHash = Fr.random().toString(), index = Fr.random().toBigInt()
|
|
100
|
-
return new NoteDao(note, contractAddress ?? await AztecAddress.random(), storageSlot, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index
|
|
98
|
+
static async random({ note = Note.random(), contractAddress = undefined, storageSlot = Fr.random(), randomness = Fr.random(), noteNonce = Fr.random(), noteHash = Fr.random(), siloedNullifier = Fr.random(), txHash = TxHash.random(), l2BlockNumber = Math.floor(Math.random() * 1000), l2BlockHash = Fr.random().toString(), index = Fr.random().toBigInt() } = {}) {
|
|
99
|
+
return new NoteDao(note, contractAddress ?? await AztecAddress.random(), storageSlot, randomness, noteNonce, noteHash, siloedNullifier, txHash, l2BlockNumber, l2BlockHash, index);
|
|
101
100
|
}
|
|
102
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_data_provider.d.ts","sourceRoot":"","sources":["../../../src/storage/note_data_provider/note_data_provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;IAKI;AACJ,qBAAa,gBAAgB;;IAiB3B,OAAO;IAkBP;;;;;;;;OAQG;WACiB,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS/E;;;;;;;;OAQG;IACU,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5D;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D;;;;;;;;;OASG;IACU,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"note_data_provider.d.ts","sourceRoot":"","sources":["../../../src/storage/note_data_provider/note_data_provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;IAKI;AACJ,qBAAa,gBAAgB;;IAiB3B,OAAO;IAkBP;;;;;;;;OAQG;WACiB,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAS/E;;;;;;;;OAQG;IACU,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5D;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D;;;;;;;;;OASG;IACU,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0FvG;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA8FvD;;;;;;;;;;OAUG;IACH,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA+D/D"}
|
|
@@ -158,11 +158,11 @@ import { NoteDao } from './note_dao.js';
|
|
|
158
158
|
const noteIndex = toBufferBE(dao.index, 32).toString('hex');
|
|
159
159
|
await this.#notes.set(noteIndex, dao.toBuffer());
|
|
160
160
|
await this.#nullifierToNoteId.set(dao.siloedNullifier.toString(), noteIndex);
|
|
161
|
-
|
|
161
|
+
const scopes = await toArray(this.#nullifiedNotesToScope.getValuesAsync(noteIndex));
|
|
162
162
|
if (scopes.length === 0) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
// We should never run into this error because notes always have a scope assigned to them - either on initial
|
|
164
|
+
// insertion via `addNotes` or when removing their nullifiers.
|
|
165
|
+
throw new Error(`No scopes found for nullified note with index ${noteIndex}`);
|
|
166
166
|
}
|
|
167
167
|
for (const scope of scopes){
|
|
168
168
|
await this.#notesByContractAndScope.get(scope.toString()).set(dao.contractAddress.toString(), noteIndex);
|
|
@@ -280,7 +280,12 @@ import { NoteDao } from './note_dao.js';
|
|
|
280
280
|
if (!noteBuffer) {
|
|
281
281
|
throw new Error('Note not found in applyNullifiers');
|
|
282
282
|
}
|
|
283
|
-
const noteScopes = await toArray(this.#notesToScope.getValuesAsync(noteIndex))
|
|
283
|
+
const noteScopes = await toArray(this.#notesToScope.getValuesAsync(noteIndex));
|
|
284
|
+
if (noteScopes.length === 0) {
|
|
285
|
+
// We should never run into this error because notes always have a scope assigned to them - either on initial
|
|
286
|
+
// insertion via `addNotes` or when removing their nullifiers.
|
|
287
|
+
throw new Error('Note scopes are missing in applyNullifiers');
|
|
288
|
+
}
|
|
284
289
|
const note = NoteDao.fromBuffer(noteBuffer);
|
|
285
290
|
nullifiedNotes.push(note);
|
|
286
291
|
await this.#notes.delete(noteIndex);
|
|
@@ -290,10 +295,8 @@ import { NoteDao } from './note_dao.js';
|
|
|
290
295
|
await this.#notesByContractAndScope.get(scope).deleteValue(note.contractAddress.toString(), noteIndex);
|
|
291
296
|
await this.#notesByStorageSlotAndScope.get(scope).deleteValue(note.storageSlot.toString(), noteIndex);
|
|
292
297
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
await this.#nullifiedNotesToScope.set(noteIndex, scope);
|
|
296
|
-
}
|
|
298
|
+
for (const scope of noteScopes){
|
|
299
|
+
await this.#nullifiedNotesToScope.set(noteIndex, scope);
|
|
297
300
|
}
|
|
298
301
|
await this.#nullifiedNotes.set(noteIndex, note.toBuffer());
|
|
299
302
|
await this.#nullifiersByBlockNumber.set(blockNumber, nullifier.toString());
|
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.20251126",
|
|
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.20251126",
|
|
65
|
+
"@aztec/bb.js": "3.0.0-nightly.20251126",
|
|
66
|
+
"@aztec/builder": "3.0.0-nightly.20251126",
|
|
67
|
+
"@aztec/constants": "3.0.0-nightly.20251126",
|
|
68
|
+
"@aztec/ethereum": "3.0.0-nightly.20251126",
|
|
69
|
+
"@aztec/foundation": "3.0.0-nightly.20251126",
|
|
70
|
+
"@aztec/key-store": "3.0.0-nightly.20251126",
|
|
71
|
+
"@aztec/kv-store": "3.0.0-nightly.20251126",
|
|
72
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251126",
|
|
73
|
+
"@aztec/noir-types": "3.0.0-nightly.20251126",
|
|
74
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251126",
|
|
75
|
+
"@aztec/simulator": "3.0.0-nightly.20251126",
|
|
76
|
+
"@aztec/stdlib": "3.0.0-nightly.20251126",
|
|
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:@spalladino/viem@2.38.2-eip7594.0"
|
|
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.20251126",
|
|
86
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20251126",
|
|
87
87
|
"@jest/globals": "^30.0.0",
|
|
88
88
|
"@types/jest": "^30.0.0",
|
|
89
89
|
"@types/lodash.omit": "^4.5.7",
|
|
@@ -129,7 +129,7 @@ export class ContractFunctionSimulator {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
132
|
-
const startSideEffectCounter =
|
|
132
|
+
const startSideEffectCounter = 2;
|
|
133
133
|
|
|
134
134
|
const callContext = new CallContext(
|
|
135
135
|
msgSender,
|
|
@@ -4,7 +4,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
4
4
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
5
|
|
|
6
6
|
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
7
|
-
export const MAX_NOTE_PACKED_LEN =
|
|
7
|
+
export const MAX_NOTE_PACKED_LEN = 11;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Intermediate struct used to perform batch note validation by PXE. The `utilityValidateEnqueuedNotesAndEvents` oracle
|
|
@@ -14,6 +14,7 @@ export class NoteValidationRequest {
|
|
|
14
14
|
constructor(
|
|
15
15
|
public contractAddress: AztecAddress,
|
|
16
16
|
public storageSlot: Fr,
|
|
17
|
+
public randomness: Fr,
|
|
17
18
|
public noteNonce: Fr,
|
|
18
19
|
public content: Fr[],
|
|
19
20
|
public noteHash: Fr,
|
|
@@ -27,6 +28,7 @@ export class NoteValidationRequest {
|
|
|
27
28
|
|
|
28
29
|
const contractAddress = AztecAddress.fromField(reader.readField());
|
|
29
30
|
const storageSlot = reader.readField();
|
|
31
|
+
const randomness = reader.readField();
|
|
30
32
|
const noteNonce = reader.readField();
|
|
31
33
|
|
|
32
34
|
const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
|
|
@@ -38,9 +40,16 @@ export class NoteValidationRequest {
|
|
|
38
40
|
const txHash = TxHash.fromField(reader.readField());
|
|
39
41
|
const recipient = AztecAddress.fromField(reader.readField());
|
|
40
42
|
|
|
43
|
+
if (reader.remainingFields() !== 0) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
`Error converting array of fields to NoteValidationRequest. Hint: check that MAX_NOTE_PACKED_LEN is consistent with private_notes::MAX_NOTE_PACKED_LEN in Aztec-nr.`,
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
41
49
|
return new NoteValidationRequest(
|
|
42
50
|
contractAddress,
|
|
43
51
|
storageSlot,
|
|
52
|
+
randomness,
|
|
44
53
|
noteNonce,
|
|
45
54
|
content,
|
|
46
55
|
noteHash,
|
|
@@ -23,6 +23,8 @@ export interface NoteData {
|
|
|
23
23
|
contractAddress: AztecAddress;
|
|
24
24
|
/** The storage slot of the note. */
|
|
25
25
|
storageSlot: Fr;
|
|
26
|
+
/** The randomness injected to the note */
|
|
27
|
+
randomness: Fr;
|
|
26
28
|
/** The nonce injected into the note hash preimage by kernels. */
|
|
27
29
|
noteNonce: Fr;
|
|
28
30
|
/** A hash of the note as it gets stored in the note hash tree. */
|
|
@@ -129,7 +131,14 @@ export interface IPrivateExecutionOracle {
|
|
|
129
131
|
|
|
130
132
|
privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
|
|
131
133
|
privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
|
|
132
|
-
privateNotifyCreatedNote(
|
|
134
|
+
privateNotifyCreatedNote(
|
|
135
|
+
storageSlot: Fr,
|
|
136
|
+
randomness: Fr,
|
|
137
|
+
noteTypeId: NoteSelector,
|
|
138
|
+
note: Fr[],
|
|
139
|
+
noteHash: Fr,
|
|
140
|
+
counter: number,
|
|
141
|
+
): void;
|
|
133
142
|
privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
|
|
134
143
|
privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
|
|
135
144
|
privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
|
|
@@ -24,6 +24,7 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
|
|
|
24
24
|
* and only after that it packs the retrieved note. Hence it doesn't map one to one with `RetrievedNote::pack()`.
|
|
25
25
|
*
|
|
26
26
|
* @param contractAddress - The address of the contract that owns the note
|
|
27
|
+
* @param randomness - The randomness injected into the note to get the hiding property of commitments
|
|
27
28
|
* @param noteNonce - The nonce injected into the note hash preimage by kernels.
|
|
28
29
|
* @param index - Optional index in the note hash tree. If undefined, indicates a transient note
|
|
29
30
|
* @param note - The note content containing the actual note data
|
|
@@ -31,22 +32,23 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
|
|
|
31
32
|
*/
|
|
32
33
|
export function packAsRetrievedNote({
|
|
33
34
|
contractAddress,
|
|
35
|
+
randomness,
|
|
34
36
|
noteNonce,
|
|
35
37
|
index,
|
|
36
38
|
note,
|
|
37
39
|
}: {
|
|
38
40
|
contractAddress: AztecAddress;
|
|
41
|
+
randomness: Fr;
|
|
39
42
|
noteNonce: Fr;
|
|
40
43
|
index?: bigint;
|
|
41
44
|
note: Note;
|
|
42
45
|
}) {
|
|
43
46
|
// If index is undefined, the note is transient which implies that the nonzero_note_hash_counter has to be true
|
|
44
|
-
const
|
|
45
|
-
const nonzeroNoteHashCounter = noteIsTransient ? true : false;
|
|
47
|
+
const nonzeroNoteHashCounter = index === undefined;
|
|
46
48
|
|
|
47
49
|
// To pack the note as retrieved note we first need to reconstruct the note metadata.
|
|
48
50
|
const noteMetadata = fromRawData(nonzeroNoteHashCounter, noteNonce);
|
|
49
51
|
|
|
50
52
|
// Pack metadata first (stage and maybe_note_nonce), followed by the rest
|
|
51
|
-
return [...note.items, contractAddress, new Fr(noteMetadata.stage), noteMetadata.maybeNoteNonce];
|
|
53
|
+
return [...note.items, contractAddress, randomness, new Fr(noteMetadata.stage), noteMetadata.maybeNoteNonce];
|
|
52
54
|
}
|
|
@@ -100,8 +100,7 @@ export class Oracle {
|
|
|
100
100
|
return Promise.resolve([toACVMField(val)]);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
privateStoreInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
|
|
103
|
+
privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
|
|
105
104
|
this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
|
|
106
105
|
return Promise.resolve([]);
|
|
107
106
|
}
|
|
@@ -283,6 +282,7 @@ export class Oracle {
|
|
|
283
282
|
|
|
284
283
|
privateNotifyCreatedNote(
|
|
285
284
|
[storageSlot]: ACVMField[],
|
|
285
|
+
[randomness]: ACVMField[],
|
|
286
286
|
[noteTypeId]: ACVMField[],
|
|
287
287
|
note: ACVMField[],
|
|
288
288
|
[noteHash]: ACVMField[],
|
|
@@ -290,6 +290,7 @@ export class Oracle {
|
|
|
290
290
|
): Promise<ACVMField[]> {
|
|
291
291
|
this.handlerAsPrivate().privateNotifyCreatedNote(
|
|
292
292
|
Fr.fromString(storageSlot),
|
|
293
|
+
Fr.fromString(randomness),
|
|
293
294
|
NoteSelector.fromField(Fr.fromString(noteTypeId)),
|
|
294
295
|
note.map(Fr.fromString),
|
|
295
296
|
Fr.fromString(noteHash),
|
|
@@ -367,6 +367,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
367
367
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
368
368
|
* @param contractAddress - The contract address.
|
|
369
369
|
* @param storageSlot - The storage slot.
|
|
370
|
+
* @param randomness - The randomness injected into the note.
|
|
370
371
|
* @param noteTypeId - The type ID of the note.
|
|
371
372
|
* @param noteItems - The items to be included in a Note.
|
|
372
373
|
* @param noteHash - A hash of the new note.
|
|
@@ -374,6 +375,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
374
375
|
*/
|
|
375
376
|
public privateNotifyCreatedNote(
|
|
376
377
|
storageSlot: Fr,
|
|
378
|
+
randomness: Fr,
|
|
377
379
|
noteTypeId: NoteSelector,
|
|
378
380
|
noteItems: Fr[],
|
|
379
381
|
noteHash: Fr,
|
|
@@ -382,6 +384,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
382
384
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
383
385
|
contractAddress: this.callContext.contractAddress,
|
|
384
386
|
storageSlot,
|
|
387
|
+
randomness,
|
|
385
388
|
noteTypeId,
|
|
386
389
|
counter,
|
|
387
390
|
});
|
|
@@ -391,6 +394,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
391
394
|
{
|
|
392
395
|
contractAddress: this.callContext.contractAddress,
|
|
393
396
|
storageSlot,
|
|
397
|
+
randomness,
|
|
394
398
|
noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
|
|
395
399
|
note,
|
|
396
400
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
@@ -398,7 +402,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
398
402
|
},
|
|
399
403
|
counter,
|
|
400
404
|
);
|
|
401
|
-
this.newNotes.push(
|
|
405
|
+
this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
|
|
402
406
|
}
|
|
403
407
|
|
|
404
408
|
/**
|
|
@@ -97,16 +97,19 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
97
97
|
status,
|
|
98
98
|
scopes,
|
|
99
99
|
});
|
|
100
|
-
return noteDaos.map(
|
|
101
|
-
contractAddress,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
100
|
+
return noteDaos.map(
|
|
101
|
+
({ contractAddress, storageSlot, randomness, noteNonce, note, noteHash, siloedNullifier, index }) => ({
|
|
102
|
+
contractAddress,
|
|
103
|
+
storageSlot,
|
|
104
|
+
randomness,
|
|
105
|
+
noteNonce,
|
|
106
|
+
note,
|
|
107
|
+
noteHash,
|
|
108
|
+
siloedNullifier,
|
|
109
|
+
// PXE can use this index to get full MembershipWitness
|
|
110
|
+
index,
|
|
111
|
+
}),
|
|
112
|
+
);
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
async getFunctionArtifact(
|
|
@@ -597,6 +600,7 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
597
600
|
this.deliverNote(
|
|
598
601
|
request.contractAddress,
|
|
599
602
|
request.storageSlot,
|
|
603
|
+
request.randomness,
|
|
600
604
|
request.noteNonce,
|
|
601
605
|
request.content,
|
|
602
606
|
request.noteHash,
|
|
@@ -627,6 +631,7 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
627
631
|
async deliverNote(
|
|
628
632
|
contractAddress: AztecAddress,
|
|
629
633
|
storageSlot: Fr,
|
|
634
|
+
randomness: Fr,
|
|
630
635
|
noteNonce: Fr,
|
|
631
636
|
content: Fr[],
|
|
632
637
|
noteHash: Fr,
|
|
@@ -678,6 +683,7 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
678
683
|
new Note(content),
|
|
679
684
|
contractAddress,
|
|
680
685
|
storageSlot,
|
|
686
|
+
randomness,
|
|
681
687
|
noteNonce,
|
|
682
688
|
noteHash,
|
|
683
689
|
siloedNullifier,
|
|
@@ -685,9 +691,9 @@ export class PXEOracleInterface implements ExecutionDataProvider {
|
|
|
685
691
|
uniqueNoteHashTreeIndexInBlock?.l2BlockNumber,
|
|
686
692
|
uniqueNoteHashTreeIndexInBlock?.l2BlockHash.toString(),
|
|
687
693
|
uniqueNoteHashTreeIndexInBlock?.data,
|
|
688
|
-
recipient,
|
|
689
694
|
);
|
|
690
695
|
|
|
696
|
+
// The note was found by `recipient`, so we use that as the scope when storing the note.
|
|
691
697
|
await this.noteDataProvider.addNotes([noteDao], recipient);
|
|
692
698
|
this.log.verbose('Added note', {
|
|
693
699
|
index: noteDao.index,
|
package/src/pxe.ts
CHANGED
|
@@ -679,19 +679,9 @@ export class PXE {
|
|
|
679
679
|
|
|
680
680
|
const noteDaos = await this.noteDataProvider.getNotes(filter);
|
|
681
681
|
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
const completeAddressIndex = completeAddresses.findIndex(completeAddress =>
|
|
685
|
-
completeAddress.address.equals(dao.recipient),
|
|
686
|
-
);
|
|
687
|
-
const completeAddress = completeAddresses[completeAddressIndex];
|
|
688
|
-
if (completeAddress === undefined) {
|
|
689
|
-
throw new Error(`Cannot find complete address for recipient ${dao.recipient.toString()}`);
|
|
690
|
-
}
|
|
691
|
-
const recipient = completeAddress.address;
|
|
692
|
-
return new UniqueNote(dao.note, recipient, dao.contractAddress, dao.storageSlot, dao.txHash, dao.noteNonce);
|
|
682
|
+
return noteDaos.map(dao => {
|
|
683
|
+
return new UniqueNote(dao.note, dao.contractAddress, dao.storageSlot, dao.txHash, dao.noteNonce);
|
|
693
684
|
});
|
|
694
|
-
return Promise.all(uniqueNotes);
|
|
695
685
|
}
|
|
696
686
|
|
|
697
687
|
/**
|
|
@@ -24,6 +24,10 @@ export class NoteDao implements NoteData {
|
|
|
24
24
|
* since contracts typically make queries based on it.
|
|
25
25
|
*/
|
|
26
26
|
public storageSlot: Fr,
|
|
27
|
+
/**
|
|
28
|
+
* The randomness injected to the note.
|
|
29
|
+
*/
|
|
30
|
+
public randomness: Fr,
|
|
27
31
|
/** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
|
|
28
32
|
public noteNonce: Fr,
|
|
29
33
|
|
|
@@ -52,11 +56,6 @@ export class NoteDao implements NoteData {
|
|
|
52
56
|
public l2BlockHash: string,
|
|
53
57
|
/** The index of the leaf in the global note hash tree the note is stored at */
|
|
54
58
|
public index: bigint,
|
|
55
|
-
/**
|
|
56
|
-
* The address whose public key was used to encrypt the note log during delivery.
|
|
57
|
-
* (This is the x-coordinate of the public key.)
|
|
58
|
-
*/
|
|
59
|
-
public recipient: AztecAddress,
|
|
60
59
|
) {}
|
|
61
60
|
|
|
62
61
|
toBuffer(): Buffer {
|
|
@@ -64,6 +63,7 @@ export class NoteDao implements NoteData {
|
|
|
64
63
|
this.note,
|
|
65
64
|
this.contractAddress,
|
|
66
65
|
this.storageSlot,
|
|
66
|
+
this.randomness,
|
|
67
67
|
this.noteNonce,
|
|
68
68
|
this.noteHash,
|
|
69
69
|
this.siloedNullifier,
|
|
@@ -71,7 +71,6 @@ export class NoteDao implements NoteData {
|
|
|
71
71
|
this.l2BlockNumber,
|
|
72
72
|
Fr.fromHexString(this.l2BlockHash),
|
|
73
73
|
this.index,
|
|
74
|
-
this.recipient,
|
|
75
74
|
]);
|
|
76
75
|
}
|
|
77
76
|
|
|
@@ -81,6 +80,7 @@ export class NoteDao implements NoteData {
|
|
|
81
80
|
const note = Note.fromBuffer(reader);
|
|
82
81
|
const contractAddress = AztecAddress.fromBuffer(reader);
|
|
83
82
|
const storageSlot = Fr.fromBuffer(reader);
|
|
83
|
+
const randomness = Fr.fromBuffer(reader);
|
|
84
84
|
const noteNonce = Fr.fromBuffer(reader);
|
|
85
85
|
const noteHash = Fr.fromBuffer(reader);
|
|
86
86
|
const siloedNullifier = Fr.fromBuffer(reader);
|
|
@@ -88,12 +88,12 @@ export class NoteDao implements NoteData {
|
|
|
88
88
|
const l2BlockNumber = reader.readNumber();
|
|
89
89
|
const l2BlockHash = Fr.fromBuffer(reader).toString();
|
|
90
90
|
const index = toBigIntBE(reader.readBytes(32));
|
|
91
|
-
const recipient = AztecAddress.fromBuffer(reader);
|
|
92
91
|
|
|
93
92
|
return new NoteDao(
|
|
94
93
|
note,
|
|
95
94
|
contractAddress,
|
|
96
95
|
storageSlot,
|
|
96
|
+
randomness,
|
|
97
97
|
noteNonce,
|
|
98
98
|
noteHash,
|
|
99
99
|
siloedNullifier,
|
|
@@ -101,7 +101,6 @@ export class NoteDao implements NoteData {
|
|
|
101
101
|
l2BlockNumber,
|
|
102
102
|
l2BlockHash,
|
|
103
103
|
index,
|
|
104
|
-
recipient,
|
|
105
104
|
);
|
|
106
105
|
}
|
|
107
106
|
|
|
@@ -128,6 +127,7 @@ export class NoteDao implements NoteData {
|
|
|
128
127
|
note = Note.random(),
|
|
129
128
|
contractAddress = undefined,
|
|
130
129
|
storageSlot = Fr.random(),
|
|
130
|
+
randomness = Fr.random(),
|
|
131
131
|
noteNonce = Fr.random(),
|
|
132
132
|
noteHash = Fr.random(),
|
|
133
133
|
siloedNullifier = Fr.random(),
|
|
@@ -135,12 +135,12 @@ export class NoteDao implements NoteData {
|
|
|
135
135
|
l2BlockNumber = Math.floor(Math.random() * 1000),
|
|
136
136
|
l2BlockHash = Fr.random().toString(),
|
|
137
137
|
index = Fr.random().toBigInt(),
|
|
138
|
-
recipient = undefined,
|
|
139
138
|
}: Partial<NoteDao> = {}) {
|
|
140
139
|
return new NoteDao(
|
|
141
140
|
note,
|
|
142
141
|
contractAddress ?? (await AztecAddress.random()),
|
|
143
142
|
storageSlot,
|
|
143
|
+
randomness,
|
|
144
144
|
noteNonce,
|
|
145
145
|
noteHash,
|
|
146
146
|
siloedNullifier,
|
|
@@ -148,7 +148,6 @@ export class NoteDao implements NoteData {
|
|
|
148
148
|
l2BlockNumber,
|
|
149
149
|
l2BlockHash,
|
|
150
150
|
index,
|
|
151
|
-
recipient ?? (await AztecAddress.random()),
|
|
152
151
|
);
|
|
153
152
|
}
|
|
154
153
|
}
|
|
@@ -194,10 +194,12 @@ export class NoteDataProvider {
|
|
|
194
194
|
await this.#notes.set(noteIndex, dao.toBuffer());
|
|
195
195
|
await this.#nullifierToNoteId.set(dao.siloedNullifier.toString(), noteIndex);
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
const scopes = await toArray(this.#nullifiedNotesToScope.getValuesAsync(noteIndex));
|
|
198
198
|
|
|
199
199
|
if (scopes.length === 0) {
|
|
200
|
-
|
|
200
|
+
// We should never run into this error because notes always have a scope assigned to them - either on initial
|
|
201
|
+
// insertion via `addNotes` or when removing their nullifiers.
|
|
202
|
+
throw new Error(`No scopes found for nullified note with index ${noteIndex}`);
|
|
201
203
|
}
|
|
202
204
|
|
|
203
205
|
for (const scope of scopes) {
|
|
@@ -359,7 +361,14 @@ export class NoteDataProvider {
|
|
|
359
361
|
if (!noteBuffer) {
|
|
360
362
|
throw new Error('Note not found in applyNullifiers');
|
|
361
363
|
}
|
|
362
|
-
|
|
364
|
+
|
|
365
|
+
const noteScopes = await toArray(this.#notesToScope.getValuesAsync(noteIndex));
|
|
366
|
+
if (noteScopes.length === 0) {
|
|
367
|
+
// We should never run into this error because notes always have a scope assigned to them - either on initial
|
|
368
|
+
// insertion via `addNotes` or when removing their nullifiers.
|
|
369
|
+
throw new Error('Note scopes are missing in applyNullifiers');
|
|
370
|
+
}
|
|
371
|
+
|
|
363
372
|
const note = NoteDao.fromBuffer(noteBuffer);
|
|
364
373
|
|
|
365
374
|
nullifiedNotes.push(note);
|
|
@@ -374,10 +383,8 @@ export class NoteDataProvider {
|
|
|
374
383
|
await this.#notesByStorageSlotAndScope.get(scope)!.deleteValue(note.storageSlot.toString(), noteIndex);
|
|
375
384
|
}
|
|
376
385
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
await this.#nullifiedNotesToScope.set(noteIndex, scope);
|
|
380
|
-
}
|
|
386
|
+
for (const scope of noteScopes) {
|
|
387
|
+
await this.#nullifiedNotesToScope.set(noteIndex, scope);
|
|
381
388
|
}
|
|
382
389
|
await this.#nullifiedNotes.set(noteIndex, note.toBuffer());
|
|
383
390
|
await this.#nullifiersByBlockNumber.set(blockNumber, nullifier.toString());
|