@aztec/simulator 0.35.1 → 0.37.0
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/acvm/oracle/oracle.d.ts +7 -5
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +50 -23
- package/dest/acvm/oracle/typed_oracle.d.ts +17 -22
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +13 -10
- package/dest/avm/avm_execution_environment.d.ts +1 -5
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +5 -8
- package/dest/avm/avm_gas.d.ts +1 -9
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +6 -13
- package/dest/avm/avm_machine_state.d.ts +1 -3
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +8 -9
- package/dest/avm/avm_simulator.js +2 -2
- package/dest/avm/fixtures/index.d.ts +2 -6
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +3 -12
- package/dest/avm/journal/journal.d.ts +2 -1
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +8 -17
- package/dest/avm/journal/trace.d.ts +3 -1
- package/dest/avm/journal/trace.d.ts.map +1 -1
- package/dest/avm/journal/trace.js +11 -1
- package/dest/avm/journal/trace_types.d.ts +4 -0
- package/dest/avm/journal/trace_types.d.ts.map +1 -1
- package/dest/avm/journal/trace_types.js +1 -1
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +1 -1
- package/dest/avm/opcodes/context_getters.d.ts +0 -5
- package/dest/avm/opcodes/context_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/context_getters.js +1 -8
- package/dest/avm/opcodes/contract.d.ts.map +1 -1
- package/dest/avm/opcodes/contract.js +1 -3
- package/dest/avm/opcodes/environment_getters.d.ts +0 -15
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +1 -35
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +5 -6
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +3 -3
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +1 -1
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +3 -8
- package/dest/avm/serialization/instruction_serialization.d.ts +42 -47
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +43 -48
- package/dest/client/client_execution_context.d.ts +13 -16
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +36 -34
- package/dest/client/db_oracle.d.ts +13 -17
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/execution_note_cache.d.ts +6 -2
- package/dest/client/execution_note_cache.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +10 -7
- package/dest/client/execution_result.d.ts +10 -5
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +7 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +4 -10
- package/dest/client/simulator.d.ts +1 -3
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +5 -9
- package/dest/client/view_data_oracle.d.ts +14 -11
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +17 -14
- package/dest/mocks/fixtures.d.ts +1 -1
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +9 -5
- package/dest/public/abstract_phase_manager.d.ts +4 -4
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +28 -43
- package/dest/public/app_logic_phase_manager.d.ts +1 -7
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +1 -7
- package/dest/public/db.d.ts +6 -7
- package/dest/public/db.d.ts.map +1 -1
- package/dest/public/execution.d.ts +15 -6
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +7 -9
- package/dest/public/executor.d.ts +2 -2
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +19 -10
- package/dest/public/hints_builder.d.ts +10 -8
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +29 -35
- package/dest/public/public_execution_context.d.ts +8 -13
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +12 -29
- package/dest/public/public_executor.d.ts +2 -2
- package/dest/public/public_executor.d.ts.map +1 -1
- package/dest/public/public_executor.js +4 -5
- package/dest/public/public_processor.d.ts +1 -2
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +1 -1
- package/dest/public/setup_phase_manager.d.ts +0 -6
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +1 -7
- package/dest/public/state_actions.d.ts.map +1 -1
- package/dest/public/state_actions.js +3 -1
- package/dest/public/tail_phase_manager.d.ts +3 -6
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +47 -16
- package/dest/public/teardown_phase_manager.d.ts +3 -7
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +14 -7
- package/dest/public/transitional_adaptors.d.ts +2 -2
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +19 -21
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +4 -2
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +3 -5
- package/package.json +16 -8
- package/src/acvm/oracle/oracle.ts +63 -22
- package/src/acvm/oracle/typed_oracle.ts +23 -27
- package/src/avm/avm_execution_environment.ts +0 -13
- package/src/avm/avm_gas.ts +6 -14
- package/src/avm/avm_machine_state.ts +8 -11
- package/src/avm/avm_simulator.ts +1 -1
- package/src/avm/fixtures/index.ts +2 -24
- package/src/avm/journal/journal.ts +14 -25
- package/src/avm/journal/trace.ts +12 -0
- package/src/avm/journal/trace_types.ts +7 -0
- package/src/avm/opcodes/arithmetic.ts +2 -2
- package/src/avm/opcodes/context_getters.ts +0 -9
- package/src/avm/opcodes/contract.ts +0 -2
- package/src/avm/opcodes/environment_getters.ts +0 -45
- package/src/avm/opcodes/external_calls.ts +5 -6
- package/src/avm/opcodes/memory.ts +5 -5
- package/src/avm/opcodes/storage.ts +1 -1
- package/src/avm/serialization/bytecode_serialization.ts +2 -10
- package/src/avm/serialization/instruction_serialization.ts +1 -6
- package/src/client/client_execution_context.ts +79 -54
- package/src/client/db_oracle.ts +14 -18
- package/src/client/execution_note_cache.ts +16 -7
- package/src/client/execution_result.ts +17 -6
- package/src/client/private_execution.ts +4 -9
- package/src/client/simulator.ts +3 -15
- package/src/client/view_data_oracle.ts +35 -29
- package/src/mocks/fixtures.ts +7 -16
- package/src/public/abstract_phase_manager.ts +45 -56
- package/src/public/app_logic_phase_manager.ts +6 -6
- package/src/public/db.ts +7 -8
- package/src/public/execution.ts +22 -18
- package/src/public/executor.ts +31 -5
- package/src/public/hints_builder.ts +62 -62
- package/src/public/public_execution_context.ts +30 -36
- package/src/public/public_executor.ts +4 -6
- package/src/public/public_processor.ts +1 -1
- package/src/public/setup_phase_manager.ts +6 -6
- package/src/public/state_actions.ts +2 -0
- package/src/public/tail_phase_manager.ts +98 -23
- package/src/public/teardown_phase_manager.ts +24 -6
- package/src/public/transitional_adaptors.ts +25 -19
- package/src/public/utils.ts +3 -1
- package/src/test/utils.ts +2 -4
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { type NoteData } from '../acvm/index.js';
|
|
4
|
+
export interface PendingNote {
|
|
5
|
+
note: NoteData;
|
|
6
|
+
counter: number;
|
|
7
|
+
}
|
|
4
8
|
/**
|
|
5
9
|
* Data that's accessible by all the function calls in an execution.
|
|
6
10
|
*/
|
|
@@ -21,7 +25,7 @@ export declare class ExecutionNoteCache {
|
|
|
21
25
|
* Add a new note to cache.
|
|
22
26
|
* @param note - New note created during execution.
|
|
23
27
|
*/
|
|
24
|
-
addNewNote(note: NoteData): void;
|
|
28
|
+
addNewNote(note: NoteData, counter: number): void;
|
|
25
29
|
/**
|
|
26
30
|
* Add a nullifier to cache. It could be for a db note or a new note created during execution.
|
|
27
31
|
* @param contractAddress - Contract address of the note.
|
|
@@ -30,7 +34,7 @@ export declare class ExecutionNoteCache {
|
|
|
30
34
|
* @param innerNoteHash - Inner note hash of the note. If this value equals 0, it means the
|
|
31
35
|
* note being nullified is from a previous transaction (and thus not a new note).
|
|
32
36
|
*/
|
|
33
|
-
nullifyNote(contractAddress: AztecAddress, innerNullifier: Fr, innerNoteHash: Fr):
|
|
37
|
+
nullifyNote(contractAddress: AztecAddress, innerNullifier: Fr, innerNoteHash: Fr): number | undefined;
|
|
34
38
|
/**
|
|
35
39
|
* Return notes created up to current point in execution.
|
|
36
40
|
* If a nullifier for a note in this list is emitted, the note will be deleted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/client/execution_note_cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,OAAO,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"execution_note_cache.d.ts","sourceRoot":"","sources":["../../src/client/execution_note_cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAyC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,UAAU,CAAuC;IAEzD;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IAMjD;;;;;;;OAOG;IACI,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;IAsBvF;;;;;QAKI;IACG,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE;IAK9D;;;;;QAKI;IACG,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAKvE;;;OAGG;IACI,aAAa,CAAC,eAAe,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;CAGjE"}
|
|
@@ -22,9 +22,9 @@ export class ExecutionNoteCache {
|
|
|
22
22
|
* Add a new note to cache.
|
|
23
23
|
* @param note - New note created during execution.
|
|
24
24
|
*/
|
|
25
|
-
addNewNote(note) {
|
|
25
|
+
addNewNote(note, counter) {
|
|
26
26
|
const notes = this.newNotes.get(note.contractAddress.toBigInt()) ?? [];
|
|
27
|
-
notes.push(note);
|
|
27
|
+
notes.push({ note, counter });
|
|
28
28
|
this.newNotes.set(note.contractAddress.toBigInt(), notes);
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
@@ -40,16 +40,19 @@ export class ExecutionNoteCache {
|
|
|
40
40
|
const nullifiers = this.getNullifiers(contractAddress);
|
|
41
41
|
nullifiers.add(siloedNullifier.value);
|
|
42
42
|
this.nullifiers.set(contractAddress.toBigInt(), nullifiers);
|
|
43
|
+
let nullifiedNoteHashCounter = undefined;
|
|
43
44
|
// Find and remove the matching new note if the emitted innerNoteHash is not empty.
|
|
44
45
|
if (!innerNoteHash.equals(Fr.ZERO)) {
|
|
45
46
|
const notes = this.newNotes.get(contractAddress.toBigInt()) ?? [];
|
|
46
|
-
const noteIndexToRemove = notes.findIndex(n => n.innerNoteHash.equals(innerNoteHash));
|
|
47
|
+
const noteIndexToRemove = notes.findIndex(n => n.note.innerNoteHash.equals(innerNoteHash));
|
|
47
48
|
if (noteIndexToRemove === -1) {
|
|
48
49
|
throw new Error('Attempt to remove a pending note that does not exist.');
|
|
49
50
|
}
|
|
50
|
-
notes.splice(noteIndexToRemove, 1);
|
|
51
|
+
const note = notes.splice(noteIndexToRemove, 1)[0];
|
|
52
|
+
nullifiedNoteHashCounter = note.counter;
|
|
51
53
|
this.newNotes.set(contractAddress.toBigInt(), notes);
|
|
52
54
|
}
|
|
55
|
+
return nullifiedNoteHashCounter;
|
|
53
56
|
}
|
|
54
57
|
/**
|
|
55
58
|
* Return notes created up to current point in execution.
|
|
@@ -59,7 +62,7 @@ export class ExecutionNoteCache {
|
|
|
59
62
|
**/
|
|
60
63
|
getNotes(contractAddress, storageSlot) {
|
|
61
64
|
const notes = this.newNotes.get(contractAddress.toBigInt()) ?? [];
|
|
62
|
-
return notes.filter(n => n.storageSlot.equals(storageSlot));
|
|
65
|
+
return notes.filter(n => n.note.storageSlot.equals(storageSlot)).map(n => n.note);
|
|
63
66
|
}
|
|
64
67
|
/**
|
|
65
68
|
* Check if a note exists in the newNotes array.
|
|
@@ -69,7 +72,7 @@ export class ExecutionNoteCache {
|
|
|
69
72
|
**/
|
|
70
73
|
checkNoteExists(contractAddress, innerNoteHash) {
|
|
71
74
|
const notes = this.newNotes.get(contractAddress.toBigInt()) ?? [];
|
|
72
|
-
return notes.some(n => n.innerNoteHash.equals(innerNoteHash));
|
|
75
|
+
return notes.some(n => n.note.innerNoteHash.equals(innerNoteHash));
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
* Return all nullifiers emitted from a contract.
|
|
@@ -79,4 +82,4 @@ export class ExecutionNoteCache {
|
|
|
79
82
|
return this.nullifiers.get(contractAddress.toBigInt()) ?? new Set();
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX25vdGVfY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2V4ZWN1dGlvbl9ub3RlX2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ0U7OztXQUdHO1FBQ0ssYUFBUSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXpEOzs7OztXQUtHO1FBQ0ssZUFBVSxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUUzRCxDQUFDO0lBckVDOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFjLEVBQUUsT0FBZTtRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksV0FBVyxDQUFDLGVBQTZCLEVBQUUsY0FBa0IsRUFBRSxhQUFpQjtRQUNyRixNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTVELElBQUksd0JBQXdCLEdBQXVCLFNBQVMsQ0FBQztRQUM3RCxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzNGLElBQUksaUJBQWlCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELHdCQUF3QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLHdCQUF3QixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7UUFLSTtJQUNHLFFBQVEsQ0FBQyxlQUE2QixFQUFFLFdBQWU7UUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O1FBS0k7SUFDRyxlQUFlLENBQUMsZUFBNkIsRUFBRSxhQUFpQjtRQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxlQUE2QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEUsQ0FBQztDQUNGIn0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { type EncryptedFunctionL2Logs, type Note, type UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
3
3
|
import { type NoteHashReadRequestMembershipWitness, type PrivateCallStackItem, type PublicCallRequest } from '@aztec/circuits.js';
|
|
4
|
-
import { type DecodedReturn } from '@aztec/foundation/abi';
|
|
5
4
|
import { type Fr } from '@aztec/foundation/fields';
|
|
6
5
|
import { type ACVMField } from '../acvm/index.js';
|
|
7
6
|
/**
|
|
@@ -15,6 +14,10 @@ export interface NoteAndSlot {
|
|
|
15
14
|
/** The note type identifier. */
|
|
16
15
|
noteTypeId: Fr;
|
|
17
16
|
}
|
|
17
|
+
export interface NullifiedNoteHashCounter {
|
|
18
|
+
noteHashCounter: number;
|
|
19
|
+
nullifierCounter: number;
|
|
20
|
+
}
|
|
18
21
|
/**
|
|
19
22
|
* The result of executing a private function.
|
|
20
23
|
*/
|
|
@@ -31,23 +34,25 @@ export interface ExecutionResult {
|
|
|
31
34
|
noteHashReadRequestPartialWitnesses: NoteHashReadRequestMembershipWitness[];
|
|
32
35
|
/** The notes created in the executed function. */
|
|
33
36
|
newNotes: NoteAndSlot[];
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
nullifiedNoteHashCounters: NullifiedNoteHashCounter[];
|
|
38
|
+
/** The raw return values of the executed function. */
|
|
39
|
+
returnValues: Fr[];
|
|
36
40
|
/** The nested executions. */
|
|
37
41
|
nestedExecutions: this[];
|
|
38
42
|
/** Enqueued public function execution requests to be picked up by the sequencer. */
|
|
39
43
|
enqueuedPublicFunctionCalls: PublicCallRequest[];
|
|
40
44
|
/**
|
|
41
45
|
* Encrypted logs emitted during execution of this function call.
|
|
42
|
-
* Note: These are preimages to `
|
|
46
|
+
* Note: These are preimages to `encryptedLogsHashes`.
|
|
43
47
|
*/
|
|
44
48
|
encryptedLogs: EncryptedFunctionL2Logs;
|
|
45
49
|
/**
|
|
46
50
|
* Unencrypted logs emitted during execution of this function call.
|
|
47
|
-
* Note: These are preimages to `
|
|
51
|
+
* Note: These are preimages to `unencryptedLogsHashes`.
|
|
48
52
|
*/
|
|
49
53
|
unencryptedLogs: UnencryptedFunctionL2Logs;
|
|
50
54
|
}
|
|
55
|
+
export declare function collectNullifiedNoteHashCounters(execResult: ExecutionResult): NullifiedNoteHashCounter[];
|
|
51
56
|
/**
|
|
52
57
|
* Collect all encrypted logs across all nested executions.
|
|
53
58
|
* @param execResult - The topmost execution result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_result.d.ts","sourceRoot":"","sources":["../../src/client/execution_result.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,IAAI,EAAE,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EACL,KAAK,oCAAoC,EACzC,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"execution_result.d.ts","sourceRoot":"","sources":["../../src/client/execution_result.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,IAAI,EAAE,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EACL,KAAK,oCAAoC,EACzC,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,oCAAoC;IACpC,WAAW,EAAE,EAAE,CAAC;IAChB,gCAAgC;IAChC,UAAU,EAAE,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,aAAa,EAAE,oBAAoB,CAAC;IACpC,4FAA4F;IAC5F,mCAAmC,EAAE,oCAAoC,EAAE,CAAC;IAC5E,kDAAkD;IAClD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,yBAAyB,EAAE,wBAAwB,EAAE,CAAC;IACtD,sDAAsD;IACtD,YAAY,EAAE,EAAE,EAAE,CAAC;IACnB,6BAA6B;IAC7B,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,oFAAoF;IACpF,2BAA2B,EAAE,iBAAiB,EAAE,CAAC;IACjD;;;OAGG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,eAAe,EAAE,yBAAyB,CAAC;CAC5C;AAED,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,eAAe,GAAG,wBAAwB,EAAE,CAKxG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,eAAe,GAAG,uBAAuB,EAAE,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,eAAe,GAAG,yBAAyB,EAAE,CAG/F;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,eAAe,GAAG,iBAAiB,EAAE,CAOnG"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
export function collectNullifiedNoteHashCounters(execResult) {
|
|
2
|
+
return [
|
|
3
|
+
execResult.nullifiedNoteHashCounters,
|
|
4
|
+
...execResult.nestedExecutions.flatMap(collectNullifiedNoteHashCounters),
|
|
5
|
+
].flat();
|
|
6
|
+
}
|
|
1
7
|
/**
|
|
2
8
|
* Collect all encrypted logs across all nested executions.
|
|
3
9
|
* @param execResult - The topmost execution result.
|
|
@@ -29,4 +35,4 @@ export function collectEnqueuedPublicFunctionCalls(execResult) {
|
|
|
29
35
|
...[...execResult.nestedExecutions].flatMap(collectEnqueuedPublicFunctionCalls),
|
|
30
36
|
].sort((a, b) => b.callContext.sideEffectCounter - a.callContext.sideEffectCounter);
|
|
31
37
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvZXhlY3V0aW9uX3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnRUEsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLFVBQTJCO0lBQzFFLE9BQU87UUFDTCxVQUFVLENBQUMseUJBQXlCO1FBQ3BDLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztLQUN6RSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBMkI7SUFDOUQsMkhBQTJIO0lBQzNILE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7QUFDakgsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsVUFBMkI7SUFDaEUsMkhBQTJIO0lBQzNILE9BQU8sQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7QUFDckgsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsVUFBMkI7SUFDNUUsb0ZBQW9GO0lBQ3BGLHdGQUF3RjtJQUN4RixPQUFPO1FBQ0wsR0FBRyxVQUFVLENBQUMsMkJBQTJCO1FBQ3pDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQztLQUNoRixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3RGLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAoD,MAAM,oBAAoB,CAAC;AACzG,OAAO,
|
|
1
|
+
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAoD,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAOpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,GAAG,yCAAwD,GAC1D,OAAO,CAAC,eAAe,CAAC,CAyD1B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { PrivateCallStackItem, PrivateCircuitPublicInputs } from '@aztec/circuits.js';
|
|
2
|
-
import { decodeReturnValues } from '@aztec/foundation/abi';
|
|
3
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
4
|
import { witnessMapToFields } from '../acvm/deserialize.js';
|
|
@@ -27,19 +26,13 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
27
26
|
const encryptedLogs = context.getEncryptedLogs();
|
|
28
27
|
const unencryptedLogs = context.getUnencryptedLogs();
|
|
29
28
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165) --> set this in Noir
|
|
30
|
-
publicInputs.encryptedLogsHash = Fr.fromBuffer(encryptedLogs.hash());
|
|
31
29
|
publicInputs.encryptedLogPreimagesLength = new Fr(encryptedLogs.getSerializedLength());
|
|
32
|
-
publicInputs.unencryptedLogsHash = Fr.fromBuffer(unencryptedLogs.hash());
|
|
33
30
|
publicInputs.unencryptedLogPreimagesLength = new Fr(unencryptedLogs.getSerializedLength());
|
|
34
31
|
const callStackItem = new PrivateCallStackItem(contractAddress, functionData, publicInputs);
|
|
35
|
-
// Mocking the return type to be an array of 4 fields
|
|
36
|
-
// TODO: @LHerskind must be updated as we are progressing with the macros to get the information
|
|
37
32
|
const rawReturnValues = await context.unpackReturns(publicInputs.returnsHash);
|
|
38
|
-
const returnTypes = [{ kind: 'array', length: rawReturnValues.length, type: { kind: 'field' } }];
|
|
39
|
-
const mockArtifact = { ...artifact, returnTypes };
|
|
40
|
-
const returnValues = decodeReturnValues(mockArtifact, rawReturnValues);
|
|
41
33
|
const noteHashReadRequestPartialWitnesses = context.getNoteHashReadRequestPartialWitnesses(publicInputs.noteHashReadRequests);
|
|
42
34
|
const newNotes = context.getNewNotes();
|
|
35
|
+
const nullifiedNoteHashCounters = context.getNullifiedNoteHashCounters();
|
|
43
36
|
const nestedExecutions = context.getNestedExecutions();
|
|
44
37
|
const enqueuedPublicFunctionCalls = context.getEnqueuedPublicFunctionCalls();
|
|
45
38
|
log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
|
|
@@ -47,9 +40,10 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
47
40
|
acir,
|
|
48
41
|
partialWitness,
|
|
49
42
|
callStackItem,
|
|
50
|
-
returnValues,
|
|
43
|
+
returnValues: rawReturnValues,
|
|
51
44
|
noteHashReadRequestPartialWitnesses,
|
|
52
45
|
newNotes,
|
|
46
|
+
nullifiedNoteHashCounters,
|
|
53
47
|
vk: Buffer.from(artifact.verificationKey, 'hex'),
|
|
54
48
|
nestedExecutions,
|
|
55
49
|
enqueuedPublicFunctionCalls,
|
|
@@ -57,4 +51,4 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
57
51
|
unencryptedLogs,
|
|
58
52
|
};
|
|
59
53
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBK0IsRUFDL0IsUUFBMkMsRUFDM0MsZUFBNkIsRUFDN0IsWUFBMEIsRUFDMUIsR0FBRyxHQUFHLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDO0lBRTNELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxHQUFHLENBQUMsT0FBTyxDQUFDLCtCQUErQixlQUFlLElBQUksZ0JBQWdCLElBQUksUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDcEcsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMvQixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FDL0csQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUNiLE1BQU0sSUFBSSxjQUFjLENBQ3RCLEdBQUcsQ0FBQyxPQUFPLEVBQ1g7WUFDRSxlQUFlO1lBQ2YsZ0JBQWdCO1NBQ2pCLEVBQ0QsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDckMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ2YsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxDQUFDO0lBQzFELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sWUFBWSxHQUFHLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUxRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNqRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNyRCx5RkFBeUY7SUFDekYsWUFBWSxDQUFDLDJCQUEyQixHQUFHLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDdkYsWUFBWSxDQUFDLDZCQUE2QixHQUFHLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFFM0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTVGLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFOUUsTUFBTSxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsc0NBQXNDLENBQ3hGLFlBQVksQ0FBQyxvQkFBb0IsQ0FDbEMsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDdkQsTUFBTSwyQkFBMkIsR0FBRyxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUU3RSxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRGLE9BQU87UUFDTCxJQUFJO1FBQ0osY0FBYztRQUNkLGFBQWE7UUFDYixZQUFZLEVBQUUsZUFBZTtRQUM3QixtQ0FBbUM7UUFDbkMsUUFBUTtRQUNSLHlCQUF5QjtRQUN6QixFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZ0IsRUFBRSxLQUFLLENBQUM7UUFDakQsZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixhQUFhO1FBQ2IsZUFBZTtLQUNoQixDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type AztecNode, type FunctionCall, type Note, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
2
|
import { type FunctionArtifactWithDebugMetadata } from '@aztec/foundation/abi';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
|
-
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
5
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
5
|
import { type WasmBlackBoxFunctionSolver } from '@noir-lang/acvm_js';
|
|
7
6
|
import { type DBOracle } from './db_oracle.js';
|
|
@@ -34,11 +33,10 @@ export declare class AcirSimulator {
|
|
|
34
33
|
* @param request - The transaction request.
|
|
35
34
|
* @param entryPointArtifact - The artifact of the entry point function.
|
|
36
35
|
* @param contractAddress - The address of the contract (should match request.origin)
|
|
37
|
-
* @param portalContractAddress - The address of the portal contract.
|
|
38
36
|
* @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract or a specific account.
|
|
39
37
|
* @returns The result of the execution.
|
|
40
38
|
*/
|
|
41
|
-
run(request: TxExecutionRequest, entryPointArtifact: FunctionArtifactWithDebugMetadata, contractAddress: AztecAddress,
|
|
39
|
+
run(request: TxExecutionRequest, entryPointArtifact: FunctionArtifactWithDebugMetadata, contractAddress: AztecAddress, msgSender?: AztecAddress): Promise<ExecutionResult>;
|
|
42
40
|
/**
|
|
43
41
|
* Runs an unconstrained function.
|
|
44
42
|
* @param request - The transaction request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../../src/client/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAEL,KAAK,iCAAiC,EAIvC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,oBAAoB,CAAC;AAK3F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;GAEG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAH9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAsC;IAC3D,OAAO,CAAC,GAAG,CAAc;gBAEL,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAIzD;;;;;;;;;;;;OAYG;WACW,SAAS,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAO9D;;;;;;;OAOG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,iCAAiC,EACrD,eAAe,EAAE,YAAY,EAC7B,SAAS,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;IAmD3B;;;;;;OAMG;IACU,gBAAgB,CAC3B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,iCAAiC,EACrD,eAAe,EAAE,YAAY;IAqB/B;;;;;;;;OAQG;IACU,2BAA2B,CACtC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;;;;;;IAiDZ;;;;;;;OAOG;IACU,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI;IAW5G;;;;;;;;OAQG;IACU,2BAA2B,CACtC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;IAYZ;;;;;;;;OAQG;IACU,qBAAqB,CAChC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;IAYZ;;;;;;;;OAQG;IACU,qBAAqB,CAChC,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,EAAE,EACT,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,IAAI;CAWb"}
|
package/dest/client/simulator.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CallContext, FunctionData } from '@aztec/circuits.js';
|
|
2
|
-
import { Grumpkin } from '@aztec/circuits.js/barretenberg';
|
|
3
2
|
import { FunctionSelector, FunctionType, encodeArguments, } from '@aztec/foundation/abi';
|
|
4
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -45,24 +44,21 @@ export class AcirSimulator {
|
|
|
45
44
|
* @param request - The transaction request.
|
|
46
45
|
* @param entryPointArtifact - The artifact of the entry point function.
|
|
47
46
|
* @param contractAddress - The address of the contract (should match request.origin)
|
|
48
|
-
* @param portalContractAddress - The address of the portal contract.
|
|
49
47
|
* @param msgSender - The address calling the function. This can be replaced to simulate a call from another contract or a specific account.
|
|
50
48
|
* @returns The result of the execution.
|
|
51
49
|
*/
|
|
52
|
-
async run(request, entryPointArtifact, contractAddress,
|
|
50
|
+
async run(request, entryPointArtifact, contractAddress, msgSender = AztecAddress.ZERO) {
|
|
53
51
|
if (entryPointArtifact.functionType !== FunctionType.SECRET) {
|
|
54
52
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as secret`);
|
|
55
53
|
}
|
|
56
54
|
if (request.origin !== contractAddress) {
|
|
57
55
|
this.log.warn(`Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`);
|
|
58
56
|
}
|
|
59
|
-
const curve = new Grumpkin();
|
|
60
57
|
const header = await this.db.getHeader();
|
|
61
58
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
62
59
|
const startSideEffectCounter = 1;
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
const context = new ClientExecutionContext(contractAddress, request.argsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.packedArguments), new ExecutionNoteCache(), this.db, curve, this.node, startSideEffectCounter);
|
|
60
|
+
const callContext = new CallContext(msgSender, contractAddress, FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), false, false, startSideEffectCounter);
|
|
61
|
+
const context = new ClientExecutionContext(contractAddress, request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.argsOfCalls), new ExecutionNoteCache(), this.db, this.node, startSideEffectCounter);
|
|
66
62
|
try {
|
|
67
63
|
const executionResult = await executePrivateFunction(context, entryPointArtifact, contractAddress, request.functionData);
|
|
68
64
|
return executionResult;
|
|
@@ -80,7 +76,7 @@ export class AcirSimulator {
|
|
|
80
76
|
*/
|
|
81
77
|
async runUnconstrained(request, entryPointArtifact, contractAddress) {
|
|
82
78
|
if (entryPointArtifact.functionType !== FunctionType.UNCONSTRAINED) {
|
|
83
|
-
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as
|
|
79
|
+
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as unconstrained`);
|
|
84
80
|
}
|
|
85
81
|
const context = new ViewDataOracle(contractAddress, [], this.db, this.node);
|
|
86
82
|
try {
|
|
@@ -177,4 +173,4 @@ export class AcirSimulator {
|
|
|
177
173
|
return innerNullifier;
|
|
178
174
|
}
|
|
179
175
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFtQyxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQW9CLEVBQVksRUFBVSxJQUFlO1FBQXJDLE9BQUUsR0FBRixFQUFFLENBQVU7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ3ZELElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksTUFBTSxDQUFDLFNBQVM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixFQUFFLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLEtBQUssQ0FBQyxHQUFHLENBQ2QsT0FBMkIsRUFDM0Isa0JBQXFELEVBQ3JELGVBQTZCLEVBQzdCLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSTtRQUU3QixJQUFJLGtCQUFrQixDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLGtCQUFrQixDQUFDLFlBQVkscUJBQXFCLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNYLGlGQUFpRixPQUFPLENBQUMsTUFBTSx1QkFBdUIsZUFBZSxFQUFFLENBQ3hJLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXpDLGlGQUFpRjtRQUNqRixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztRQUVqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FDakMsU0FBUyxFQUNULGVBQWUsRUFDZixnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQzlGLEtBQUssRUFDTCxLQUFLLEVBQ0wsc0JBQXNCLENBQ3ZCLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUN4QyxlQUFlLEVBQ2YsT0FBTyxDQUFDLGlCQUFpQixFQUN6QixPQUFPLENBQUMsU0FBUyxFQUNqQixXQUFXLEVBQ1gsTUFBTSxFQUNOLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQzdDLElBQUksa0JBQWtCLEVBQUUsRUFDeEIsSUFBSSxDQUFDLEVBQUUsRUFDUCxJQUFJLENBQUMsSUFBSSxFQUNULHNCQUFzQixDQUN2QixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxlQUFlLEdBQUcsTUFBTSxzQkFBc0IsQ0FDbEQsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsT0FBTyxDQUFDLFlBQVksQ0FDckIsQ0FBQztZQUNGLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxxQkFBcUIsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUMsQ0FBQztRQUNoSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsT0FBcUIsRUFDckIsa0JBQXFELEVBQ3JELGVBQTZCO1FBRTdCLElBQUksa0JBQWtCLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsa0JBQWtCLENBQUMsWUFBWSw0QkFBNEIsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSw0QkFBNEIsQ0FDdkMsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsT0FBTyxDQUFDLFlBQVksRUFDcEIsT0FBTyxDQUFDLElBQUksQ0FDYixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLHFCQUFxQixDQUFDLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsMkJBQTJCLENBQ3RDLGVBQTZCLEVBQzdCLEtBQVMsRUFDVCxXQUFlLEVBQ2YsVUFBYyxFQUNkLElBQVU7UUFFVixNQUFNLFFBQVEsR0FBa0QsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUNyRyxlQUFlLEVBQ2YsaUNBQWlDLENBQ2xDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRixlQUFlLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FDeEgsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IscUdBQ0UsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUN0QixxQkFBcUIsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQ25ELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFrQixDQUFDLE1BQU0sQ0FBQztRQUNyRyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0NBQWdDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxpRkFBaUYsYUFBYSwyREFBMkQsQ0FDM00sQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFcEcsTUFBTSxXQUFXLEdBQWlCO1lBQ2hDLEVBQUUsRUFBRSxlQUFlO1lBQ25CLFlBQVksRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQ2xDLElBQUksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDdEcsQ0FBQztRQUVGLE1BQU0sQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQ3hHLFdBQVcsRUFDWCxRQUFRLEVBQ1IsZUFBZSxDQUNoQixDQUFhLENBQUM7UUFFZixPQUFPO1lBQ0wsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUNwQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3RDLG9CQUFvQixFQUFFLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFDLG9CQUFvQixDQUFDLGVBQTZCLEVBQUUsV0FBZSxFQUFFLFVBQWMsRUFBRSxJQUFVO1FBQzFHLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FDOUQsZUFBZSxFQUNmLEVBQUUsQ0FBQyxJQUFJLEVBQ1AsV0FBVyxFQUNYLFVBQVUsRUFDVixJQUFJLENBQ0wsQ0FBQztRQUNGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQywyQkFBMkIsQ0FDdEMsZUFBNkIsRUFDN0IsS0FBUyxFQUNULFdBQWUsRUFDZixVQUFjLEVBQ2QsSUFBVTtRQUVWLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLDJCQUEyQixDQUNyRSxlQUFlLEVBQ2YsS0FBSyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxxQkFBcUIsQ0FDaEMsZUFBNkIsRUFDN0IsS0FBUyxFQUNULFdBQWUsRUFDZixVQUFjLEVBQ2QsSUFBVTtRQUVWLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FDL0QsZUFBZSxFQUNmLEtBQUssRUFDTCxXQUFXLEVBQ1gsVUFBVSxFQUNWLElBQUksQ0FDTCxDQUFDO1FBQ0YsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUNoQyxlQUE2QixFQUM3QixLQUFTLEVBQ1QsV0FBZSxFQUNmLFVBQWMsRUFDZCxJQUFVO1FBRVYsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLDJCQUEyQixDQUMvRCxlQUFlLEVBQ2YsS0FBSyxFQUNMLFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxDQUNMLENBQUM7UUFDRixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0NBQ0YifQ==
|
|
@@ -3,7 +3,7 @@ import { type Header } from '@aztec/circuits.js';
|
|
|
3
3
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { type ContractInstance } from '@aztec/types/contracts';
|
|
6
|
-
import { type NoteData, TypedOracle } from '../acvm/index.js';
|
|
6
|
+
import { type NoteData, type NullifierKeys, TypedOracle } from '../acvm/index.js';
|
|
7
7
|
import { type DBOracle } from './db_oracle.js';
|
|
8
8
|
/**
|
|
9
9
|
* The execution context for a client view tx simulation.
|
|
@@ -20,10 +20,13 @@ export declare class ViewDataOracle extends TypedOracle {
|
|
|
20
20
|
/** List of transient auth witnesses to be used during this simulation */
|
|
21
21
|
authWitnesses: AuthWitness[], db: DBOracle, aztecNode: AztecNode, log?: import("@aztec/foundation/log").Logger);
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* Retrieve nullifier keys associated with a specific account and app/contract address.
|
|
24
|
+
*
|
|
25
|
+
* @param accountAddress - The account address.
|
|
26
|
+
* @returns A Promise that resolves to nullifier keys of a requested account and contract.
|
|
27
|
+
* @throws An error if the account is not registered in the database.
|
|
25
28
|
*/
|
|
26
|
-
|
|
29
|
+
getNullifierKeys(account: AztecAddress): Promise<NullifierKeys>;
|
|
27
30
|
/**
|
|
28
31
|
* Fetches the index and sibling path of a leaf at a given block from a given tree.
|
|
29
32
|
* @param blockNumber - The block number at which to get the membership witness.
|
|
@@ -95,6 +98,13 @@ export declare class ViewDataOracle extends TypedOracle {
|
|
|
95
98
|
* @remarks A capsule is a "blob" of data that is passed to the contract through an oracle.
|
|
96
99
|
*/
|
|
97
100
|
popCapsule(): Promise<Fr[]>;
|
|
101
|
+
/**
|
|
102
|
+
* Gets public keys for an address.
|
|
103
|
+
* @param The address to look up
|
|
104
|
+
* @returns The public keys for a specific address
|
|
105
|
+
* TODO(#5834): Replace with `getCompleteAddress`.
|
|
106
|
+
*/
|
|
107
|
+
getPublicKeysForAddress(address: AztecAddress): Promise<import("@aztec/circuits.js").Point[]>;
|
|
98
108
|
/**
|
|
99
109
|
* Gets some notes for a contract address and storage slot.
|
|
100
110
|
* Returns a flattened array containing filtered notes.
|
|
@@ -132,13 +142,6 @@ export declare class ViewDataOracle extends TypedOracle {
|
|
|
132
142
|
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
133
143
|
*/
|
|
134
144
|
getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("../acvm/index.js").MessageLoadOracleInputs<16>>;
|
|
135
|
-
/**
|
|
136
|
-
* Retrieves the portal contract address associated with the given contract address.
|
|
137
|
-
* Throws an error if the input contract address is not found or invalid.
|
|
138
|
-
* @param contractAddress - The address of the contract whose portal address is to be fetched.
|
|
139
|
-
* @returns The portal contract address.
|
|
140
|
-
*/
|
|
141
|
-
getPortalContractAddress(contractAddress: AztecAddress): Promise<import("@aztec/circuits.js").EthAddress>;
|
|
142
145
|
/**
|
|
143
146
|
* Read the public storage data.
|
|
144
147
|
* @param startStorageSlot - The starting storage slot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view_data_oracle.d.ts","sourceRoot":"","sources":["../../src/client/view_data_oracle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,KAAK,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"view_data_oracle.d.ts","sourceRoot":"","sources":["../../src/client/view_data_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,14 @@ export class ViewDataOracle extends TypedOracle {
|
|
|
20
20
|
this.log = log;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* Retrieve nullifier keys associated with a specific account and app/contract address.
|
|
24
|
+
*
|
|
25
|
+
* @param accountAddress - The account address.
|
|
26
|
+
* @returns A Promise that resolves to nullifier keys of a requested account and contract.
|
|
27
|
+
* @throws An error if the account is not registered in the database.
|
|
25
28
|
*/
|
|
26
|
-
|
|
27
|
-
return this.db.
|
|
29
|
+
getNullifierKeys(account) {
|
|
30
|
+
return this.db.getNullifierKeys(account, this.contractAddress);
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* Fetches the index and sibling path of a leaf at a given block from a given tree.
|
|
@@ -126,6 +129,15 @@ export class ViewDataOracle extends TypedOracle {
|
|
|
126
129
|
popCapsule() {
|
|
127
130
|
return this.db.popCapsule();
|
|
128
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Gets public keys for an address.
|
|
134
|
+
* @param The address to look up
|
|
135
|
+
* @returns The public keys for a specific address
|
|
136
|
+
* TODO(#5834): Replace with `getCompleteAddress`.
|
|
137
|
+
*/
|
|
138
|
+
getPublicKeysForAddress(address) {
|
|
139
|
+
return this.db.getPublicKeysForAddress(address);
|
|
140
|
+
}
|
|
129
141
|
/**
|
|
130
142
|
* Gets some notes for a contract address and storage slot.
|
|
131
143
|
* Returns a flattened array containing filtered notes.
|
|
@@ -184,15 +196,6 @@ export class ViewDataOracle extends TypedOracle {
|
|
|
184
196
|
async getL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
|
|
185
197
|
return await this.db.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
186
198
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Retrieves the portal contract address associated with the given contract address.
|
|
189
|
-
* Throws an error if the input contract address is not found or invalid.
|
|
190
|
-
* @param contractAddress - The address of the contract whose portal address is to be fetched.
|
|
191
|
-
* @returns The portal contract address.
|
|
192
|
-
*/
|
|
193
|
-
getPortalContractAddress(contractAddress) {
|
|
194
|
-
return this.db.getPortalContractAddress(contractAddress);
|
|
195
|
-
}
|
|
196
199
|
/**
|
|
197
200
|
* Read the public storage data.
|
|
198
201
|
* @param startStorageSlot - The starting storage slot.
|
|
@@ -209,4 +212,4 @@ export class ViewDataOracle extends TypedOracle {
|
|
|
209
212
|
return values;
|
|
210
213
|
}
|
|
211
214
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19kYXRhX29yYWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvdmlld19kYXRhX29yYWNsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsWUFBWSxHQUliLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRCxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFDN0MsWUFDcUIsZUFBNkI7SUFDaEQseUVBQXlFO0lBQ3RELGFBQTRCLEVBQzVCLEVBQVksRUFDWixTQUFvQixFQUM3QixNQUFNLGlCQUFpQixDQUFDLHFDQUFxQyxDQUFDO1FBRXhFLEtBQUssRUFBRSxDQUFDO1FBUFcsb0JBQWUsR0FBZixlQUFlLENBQWM7UUFFN0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDN0IsUUFBRyxHQUFILEdBQUcsQ0FBMkQ7SUFHMUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNhLGdCQUFnQixDQUFDLE9BQXFCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDYSxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBbUIsRUFBRSxNQUFvQixFQUFFLFNBQWE7UUFDakcs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
|
package/dest/mocks/fixtures.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export declare class PublicExecutionResultBuilder {
|
|
|
27
27
|
withContractStorageUpdateRequest(...request: ContractStorageUpdateRequest[]): PublicExecutionResultBuilder;
|
|
28
28
|
withReturnValues(...values: Fr[]): PublicExecutionResultBuilder;
|
|
29
29
|
withReverted(reason: SimulationError): PublicExecutionResultBuilder;
|
|
30
|
-
build(): PublicExecutionResult;
|
|
30
|
+
build(overrides?: Partial<PublicExecutionResult>): PublicExecutionResult;
|
|
31
31
|
}
|
|
32
32
|
export declare const makeFunctionCall: (to?: AztecAddress, selector?: import("@aztec/circuits.js").FunctionSelector, args?: any[]) => {
|
|
33
33
|
to: AztecAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,4BAA4B,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/mocks/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,4BAA4B,EACjC,EAAE,EACF,YAAY,EAGZ,KAAK,oCAAoC,EACzC,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE1F,qBAAa,4BAA4B;IACvC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,8BAA8B,CAAsC;IAC5E,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA0C;gBAEnD,SAAS,EAAE,eAAe;IAItC,MAAM,CAAC,qBAAqB,CAAC,EAC3B,OAAO,EACP,YAA2B,EAC3B,gBAAqB,EACrB,6BAAkC,GACnC,EAAE;QACD,OAAO,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC3C,6BAA6B,CAAC,EAAE,4BAA4B,EAAE,CAAC;KAChE,GAAG,4BAA4B;IAUhC,MAAM,CAAC,gBAAgB,CAAC,EACtB,IAAI,EACJ,EAAE,EACF,YAA2B,EAC3B,gBAAqB,EACrB,6BAAkC,EAClC,YAAY,GACb,EAAE;QACD,IAAI,EAAE,YAAY,CAAC;QACnB,EAAE,EAAE,YAAY,CAAC;QACjB,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC3C,6BAA6B,CAAC,EAAE,4BAA4B,EAAE,CAAC;QAC/D,YAAY,CAAC,EAAE,eAAe,CAAC;KAChC;IAkBD,oBAAoB,CAAC,GAAG,MAAM,EAAE,qBAAqB,EAAE,GAAG,4BAA4B;IAKtF,gCAAgC,CAAC,GAAG,OAAO,EAAE,4BAA4B,EAAE,GAAG,4BAA4B;IAK1G,gBAAgB,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,4BAA4B;IAK/D,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,4BAA4B;IAMnE,KAAK,CAAC,SAAS,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAAG,qBAAqB;CAwB7E;AAED,eAAO,MAAM,gBAAgB;;;;CAIuC,CAAC;AAErE,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,oCAAoC,EAClD,KAAK,EAAE;IACL,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,YAAY,EAAE,iBAAiB,CAAC;CACjC,QAiBF"}
|
package/dest/mocks/fixtures.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
|
-
import { ARGS_LENGTH, CallContext, CallRequest,
|
|
2
|
+
import { ARGS_LENGTH, CallContext, CallRequest, Fr, FunctionData, Gas, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, } from '@aztec/circuits.js';
|
|
3
3
|
import { makeAztecAddress, makeSelector } from '@aztec/circuits.js/testing';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
export class PublicExecutionResultBuilder {
|
|
@@ -20,7 +20,7 @@ export class PublicExecutionResultBuilder {
|
|
|
20
20
|
}
|
|
21
21
|
static fromFunctionCall({ from, tx, returnValues = [new Fr(1n)], nestedExecutions = [], contractStorageUpdateRequests = [], revertReason, }) {
|
|
22
22
|
const builder = new PublicExecutionResultBuilder({
|
|
23
|
-
callContext: new CallContext(from, tx.to,
|
|
23
|
+
callContext: new CallContext(from, tx.to, tx.functionData.selector, false, false, 0),
|
|
24
24
|
contractAddress: tx.to,
|
|
25
25
|
functionData: tx.functionData,
|
|
26
26
|
args: tx.args,
|
|
@@ -50,7 +50,7 @@ export class PublicExecutionResultBuilder {
|
|
|
50
50
|
this._revertReason = reason;
|
|
51
51
|
return this;
|
|
52
52
|
}
|
|
53
|
-
build() {
|
|
53
|
+
build(overrides = {}) {
|
|
54
54
|
return {
|
|
55
55
|
execution: this._execution,
|
|
56
56
|
nestedExecutions: this._nestedExecutions,
|
|
@@ -62,12 +62,16 @@ export class PublicExecutionResultBuilder {
|
|
|
62
62
|
newNullifiers: [],
|
|
63
63
|
newL2ToL1Messages: [],
|
|
64
64
|
contractStorageReads: [],
|
|
65
|
+
unencryptedLogsHashes: [],
|
|
65
66
|
unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
|
|
66
67
|
startSideEffectCounter: Fr.ZERO,
|
|
67
68
|
endSideEffectCounter: Fr.ZERO,
|
|
68
69
|
reverted: this._reverted,
|
|
69
70
|
revertReason: this._revertReason,
|
|
70
|
-
|
|
71
|
+
startGasLeft: Gas.test(),
|
|
72
|
+
endGasLeft: Gas.test(),
|
|
73
|
+
transactionFee: Fr.ZERO,
|
|
74
|
+
...overrides,
|
|
71
75
|
};
|
|
72
76
|
}
|
|
73
77
|
}
|
|
@@ -81,4 +85,4 @@ export function addKernelPublicCallStack(kernelOutput, calls) {
|
|
|
81
85
|
[calls.teardownCall.toCallRequest(), ...calls.setupCalls.map(c => c.toCallRequest())], CallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
82
86
|
kernelOutput.forPublic.end.publicCallStack = padArrayEnd(calls.appLogicCalls.map(c => c.toCallRequest()), CallRequest.empty(), MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX);
|
|
83
87
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQyx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFDTCxXQUFXLEVBRVgsV0FBVyxFQUNYLFdBQVcsRUFFWCxFQUFFLEVBQ0YsWUFBWSxFQUNaLEdBQUcsRUFDSCxtQ0FBbUMsR0FHcEMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSTNELE1BQU0sT0FBTyw0QkFBNEI7SUFRdkMsWUFBWSxTQUEwQjtRQU45QixzQkFBaUIsR0FBNEIsRUFBRSxDQUFDO1FBQ2hELG1DQUE4QixHQUFtQyxFQUFFLENBQUM7UUFDcEUsa0JBQWEsR0FBUyxFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixrQkFBYSxHQUFnQyxTQUFTLENBQUM7UUFHN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxFQUMzQixPQUFPLEVBQ1AsWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDM0IsZ0JBQWdCLEdBQUcsRUFBRSxFQUNyQiw2QkFBNkIsR0FBRyxFQUFFLEdBTW5DO1FBQ0MsTUFBTSxPQUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxRCxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLDZCQUE2QixDQUFDLENBQUM7UUFDM0UsT0FBTyxDQUFDLGdC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
|