@aztec/simulator 0.40.1 → 0.42.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/acvm.d.ts +2 -2
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/acvm.js +3 -3
- package/dest/acvm/oracle/oracle.d.ts +6 -2
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +31 -19
- package/dest/acvm/oracle/typed_oracle.d.ts +8 -11
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +17 -5
- package/dest/acvm/serialize.js +2 -2
- package/dest/avm/avm_execution_environment.d.ts +4 -3
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +7 -5
- package/dest/avm/avm_gas.d.ts +1 -5
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +67 -73
- package/dest/avm/avm_simulator.d.ts +5 -0
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +12 -4
- package/dest/avm/errors.d.ts +6 -0
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +10 -1
- package/dest/avm/fixtures/index.d.ts +3 -0
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +15 -3
- package/dest/avm/index.d.ts +2 -0
- package/dest/avm/index.d.ts.map +1 -0
- package/dest/avm/index.js +2 -0
- package/dest/avm/journal/host_storage.d.ts +1 -1
- package/dest/avm/journal/host_storage.d.ts.map +1 -1
- package/dest/avm/journal/journal.d.ts +4 -3
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +10 -11
- package/dest/avm/journal/nullifiers.d.ts +17 -5
- package/dest/avm/journal/nullifiers.d.ts.map +1 -1
- package/dest/avm/journal/nullifiers.js +27 -10
- package/dest/avm/journal/public_storage.d.ts +19 -6
- package/dest/avm/journal/public_storage.d.ts.map +1 -1
- package/dest/avm/journal/public_storage.js +30 -12
- package/dest/avm/journal/trace.d.ts +2 -0
- package/dest/avm/journal/trace.d.ts.map +1 -1
- package/dest/avm/journal/trace.js +7 -1
- package/dest/avm/journal/trace_types.d.ts +1 -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/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +6 -7
- package/dest/avm/opcodes/arithmetic.d.ts +1 -7
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +1 -12
- package/dest/avm/opcodes/conversion.js +2 -2
- package/dest/avm/opcodes/external_calls.d.ts +2 -2
- package/dest/avm/opcodes/external_calls.d.ts.map +1 -1
- package/dest/avm/opcodes/external_calls.js +25 -13
- package/dest/avm/opcodes/instruction.d.ts +1 -1
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +6 -4
- package/dest/avm/opcodes/memory.d.ts +0 -4
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +1 -7
- package/dest/avm/opcodes/storage.d.ts +0 -12
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +3 -18
- package/dest/avm/serialization/bytecode_serialization.js +2 -2
- package/dest/client/client_execution_context.d.ts +30 -20
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +59 -39
- package/dest/client/db_oracle.d.ts +17 -12
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/execution_note_cache.js +2 -2
- package/dest/client/execution_result.d.ts +17 -2
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +32 -4
- package/dest/client/private_execution.d.ts +2 -3
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +22 -8
- package/dest/client/simulator.d.ts +0 -16
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +13 -30
- package/dest/client/unconstrained_execution.d.ts +2 -3
- package/dest/client/unconstrained_execution.d.ts.map +1 -1
- package/dest/client/unconstrained_execution.js +5 -7
- package/dest/client/view_data_oracle.d.ts +12 -10
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +17 -11
- package/dest/common/index.d.ts +1 -0
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +2 -1
- package/dest/common/return_values.d.ts +11 -0
- package/dest/common/return_values.d.ts.map +1 -0
- package/dest/common/return_values.js +13 -0
- package/dest/index.d.ts +3 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +4 -2
- package/dest/mocks/fixtures.d.ts +15 -10
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +22 -17
- package/dest/{simulator → providers}/acvm_native.d.ts.map +1 -1
- package/dest/{simulator → providers}/acvm_native.js +13 -14
- package/dest/providers/acvm_wasm.d.ts.map +1 -0
- package/dest/providers/acvm_wasm.js +15 -0
- package/dest/providers/index.d.ts.map +1 -0
- package/dest/{simulator → providers}/index.js +1 -1
- package/dest/{simulator → providers}/simulation_provider.d.ts.map +1 -1
- package/dest/{simulator → providers}/simulation_provider.js +1 -1
- package/dest/public/abstract_phase_manager.d.ts +43 -42
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +81 -103
- package/dest/public/app_logic_phase_manager.d.ts +7 -8
- package/dest/public/app_logic_phase_manager.d.ts.map +1 -1
- package/dest/public/app_logic_phase_manager.js +14 -14
- package/dest/public/{db.d.ts → db_interfaces.d.ts} +3 -3
- package/dest/public/db_interfaces.d.ts.map +1 -0
- package/dest/public/db_interfaces.js +2 -0
- package/dest/public/execution.d.ts +17 -14
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -1
- package/dest/public/executor.d.ts +3 -30
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +32 -279
- package/dest/public/fee_payment.d.ts +11 -0
- package/dest/public/fee_payment.d.ts.map +1 -0
- package/dest/public/fee_payment.js +24 -0
- package/dest/public/hints_builder.d.ts +3 -2
- package/dest/public/hints_builder.d.ts.map +1 -1
- package/dest/public/hints_builder.js +8 -4
- package/dest/public/index.d.ts +4 -2
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +5 -3
- package/dest/public/phase_manager_factory.d.ts +1 -1
- package/dest/public/phase_manager_factory.d.ts.map +1 -1
- package/dest/public/{public_executor.d.ts → public_db_sources.d.ts} +3 -2
- package/dest/public/public_db_sources.d.ts.map +1 -0
- package/dest/public/public_db_sources.js +198 -0
- package/dest/public/public_kernel.js +14 -14
- package/dest/public/public_processor.d.ts +8 -6
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +48 -29
- package/dest/public/setup_phase_manager.d.ts +7 -9
- package/dest/public/setup_phase_manager.d.ts.map +1 -1
- package/dest/public/setup_phase_manager.js +11 -20
- package/dest/public/tail_phase_manager.d.ts +5 -11
- package/dest/public/tail_phase_manager.d.ts.map +1 -1
- package/dest/public/tail_phase_manager.js +16 -36
- package/dest/public/teardown_phase_manager.d.ts +7 -9
- package/dest/public/teardown_phase_manager.d.ts.map +1 -1
- package/dest/public/teardown_phase_manager.js +15 -21
- package/dest/public/transitional_adaptors.d.ts +3 -2
- package/dest/public/transitional_adaptors.d.ts.map +1 -1
- package/dest/public/transitional_adaptors.js +24 -8
- package/dest/public/utils.d.ts +2 -2
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +21 -14
- package/package.json +12 -9
- package/src/acvm/acvm.ts +0 -3
- package/src/acvm/oracle/oracle.ts +53 -27
- package/src/acvm/oracle/typed_oracle.ts +25 -16
- package/src/acvm/serialize.ts +1 -1
- package/src/avm/avm_execution_environment.ts +9 -5
- package/src/avm/avm_gas.ts +66 -73
- package/src/avm/avm_simulator.ts +14 -3
- package/src/avm/errors.ts +10 -0
- package/src/avm/fixtures/index.ts +22 -2
- package/src/avm/index.ts +1 -0
- package/src/avm/journal/host_storage.ts +1 -1
- package/src/avm/journal/journal.ts +15 -14
- package/src/avm/journal/nullifiers.ts +27 -14
- package/src/avm/journal/public_storage.ts +30 -16
- package/src/avm/journal/trace.ts +12 -0
- package/src/avm/journal/trace_types.ts +1 -0
- package/src/avm/opcodes/accrued_substate.ts +5 -6
- package/src/avm/opcodes/arithmetic.ts +1 -14
- package/src/avm/opcodes/conversion.ts +1 -1
- package/src/avm/opcodes/external_calls.ts +26 -10
- package/src/avm/opcodes/instruction.ts +5 -3
- package/src/avm/opcodes/memory.ts +1 -8
- package/src/avm/opcodes/storage.ts +3 -20
- package/src/avm/serialization/bytecode_serialization.ts +1 -1
- package/src/client/client_execution_context.ts +70 -44
- package/src/client/db_oracle.ts +18 -12
- package/src/client/execution_note_cache.ts +1 -1
- package/src/client/execution_result.ts +41 -3
- package/src/client/private_execution.ts +38 -20
- package/src/client/simulator.ts +11 -32
- package/src/client/unconstrained_execution.ts +9 -12
- package/src/client/view_data_oracle.ts +20 -12
- package/src/common/index.ts +1 -0
- package/src/common/return_values.ts +18 -0
- package/src/index.ts +3 -1
- package/src/mocks/fixtures.ts +31 -33
- package/src/{simulator → providers}/acvm_native.ts +21 -19
- package/src/{simulator → providers}/acvm_wasm.ts +2 -16
- package/src/public/abstract_phase_manager.ts +146 -207
- package/src/public/app_logic_phase_manager.ts +23 -39
- package/src/public/{db.ts → db_interfaces.ts} +2 -2
- package/src/public/execution.ts +17 -14
- package/src/public/executor.ts +51 -391
- package/src/public/fee_payment.ts +26 -0
- package/src/public/hints_builder.ts +17 -3
- package/src/public/index.ts +4 -2
- package/src/public/phase_manager_factory.ts +1 -1
- package/src/public/{public_executor.ts → public_db_sources.ts} +3 -2
- package/src/public/public_kernel.ts +24 -24
- package/src/public/public_processor.ts +82 -38
- package/src/public/setup_phase_manager.ts +20 -45
- package/src/public/tail_phase_manager.ts +18 -68
- package/src/public/teardown_phase_manager.ts +22 -41
- package/src/public/transitional_adaptors.ts +24 -13
- package/src/public/utils.ts +20 -14
- package/dest/client/logs_cache.d.ts +0 -33
- package/dest/client/logs_cache.d.ts.map +0 -1
- package/dest/client/logs_cache.js +0 -59
- package/dest/public/db.d.ts.map +0 -1
- package/dest/public/db.js +0 -2
- package/dest/public/public_execution_context.d.ts +0 -121
- package/dest/public/public_execution_context.d.ts.map +0 -1
- package/dest/public/public_execution_context.js +0 -214
- package/dest/public/public_executor.d.ts.map +0 -1
- package/dest/public/public_executor.js +0 -197
- package/dest/public/state_actions.d.ts +0 -39
- package/dest/public/state_actions.d.ts.map +0 -1
- package/dest/public/state_actions.js +0 -80
- package/dest/simulator/acvm_wasm.d.ts.map +0 -1
- package/dest/simulator/acvm_wasm.js +0 -22
- package/dest/simulator/index.d.ts.map +0 -1
- package/src/client/logs_cache.ts +0 -65
- package/src/public/public_execution_context.ts +0 -289
- package/src/public/state_actions.ts +0 -102
- /package/dest/{simulator → providers}/acvm_native.d.ts +0 -0
- /package/dest/{simulator → providers}/acvm_wasm.d.ts +0 -0
- /package/dest/{simulator → providers}/index.d.ts +0 -0
- /package/dest/{simulator → providers}/simulation_provider.d.ts +0 -0
- /package/src/{simulator → providers}/index.ts +0 -0
- /package/src/{simulator → providers}/simulation_provider.ts +0 -0
|
@@ -41,7 +41,7 @@ export class ExecutionNoteCache {
|
|
|
41
41
|
nullifiers.add(siloedNullifier.value);
|
|
42
42
|
this.nullifiers.set(contractAddress.toBigInt(), nullifiers);
|
|
43
43
|
let nullifiedNoteHashCounter = undefined;
|
|
44
|
-
// Find and remove the matching new note if the emitted innerNoteHash is not empty.
|
|
44
|
+
// Find and remove the matching new note and log(s) if the emitted innerNoteHash is not empty.
|
|
45
45
|
if (!innerNoteHash.equals(Fr.ZERO)) {
|
|
46
46
|
const notes = this.newNotes.get(contractAddress.toBigInt()) ?? [];
|
|
47
47
|
const noteIndexToRemove = notes.findIndex(n => n.note.innerNoteHash.equals(innerNoteHash));
|
|
@@ -82,4 +82,4 @@ export class ExecutionNoteCache {
|
|
|
82
82
|
return this.nullifiers.get(contractAddress.toBigInt()) ?? new Set();
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX25vdGVfY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2V4ZWN1dGlvbl9ub3RlX2NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTOUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ0U7OztXQUdHO1FBQ0ssYUFBUSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXpEOzs7OztXQUtHO1FBQ0ssZUFBVSxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUUzRCxDQUFDO0lBckVDOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFjLEVBQUUsT0FBZTtRQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksV0FBVyxDQUFDLGVBQTZCLEVBQUUsY0FBa0IsRUFBRSxhQUFpQjtRQUNyRixNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTVELElBQUksd0JBQXdCLEdBQXVCLFNBQVMsQ0FBQztRQUM3RCw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzNGLElBQUksaUJBQWlCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELHdCQUF3QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLHdCQUF3QixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7UUFLSTtJQUNHLFFBQVEsQ0FBQyxlQUE2QixFQUFFLFdBQWU7UUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O1FBS0k7SUFDRyxlQUFlLENBQUMsZUFBNkIsRUFBRSxhQUFpQjtRQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxlQUE2QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEUsQ0FBQztDQUNGIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { EncryptedFunctionL2Logs, type EncryptedL2Log, type Note, UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
|
+
import { EncryptedFunctionL2Logs, type EncryptedL2Log, type EncryptedL2NoteLog, EncryptedNoteFunctionL2Logs, type Note, UnencryptedFunctionL2Logs, type UnencryptedL2Log } from '@aztec/circuit-types';
|
|
3
3
|
import { type IsEmpty, type PrivateCallStackItem, PublicCallRequest } from '@aztec/circuits.js';
|
|
4
4
|
import { type Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { type ACVMField } from '../acvm/index.js';
|
|
@@ -14,12 +14,16 @@ export interface NoteAndSlot {
|
|
|
14
14
|
/** The note type identifier. */
|
|
15
15
|
noteTypeId: Fr;
|
|
16
16
|
}
|
|
17
|
-
export declare class CountedLog<TLog extends UnencryptedL2Log | EncryptedL2Log> implements IsEmpty {
|
|
17
|
+
export declare class CountedLog<TLog extends UnencryptedL2Log | EncryptedL2NoteLog | EncryptedL2Log> implements IsEmpty {
|
|
18
18
|
log: TLog;
|
|
19
19
|
counter: number;
|
|
20
20
|
constructor(log: TLog, counter: number);
|
|
21
21
|
isEmpty(): boolean;
|
|
22
22
|
}
|
|
23
|
+
export declare class CountedNoteLog extends CountedLog<EncryptedL2NoteLog> {
|
|
24
|
+
noteHashCounter: number;
|
|
25
|
+
constructor(log: EncryptedL2NoteLog, counter: number, noteHashCounter: number);
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
* The result of executing a private function.
|
|
25
29
|
*/
|
|
@@ -46,6 +50,11 @@ export interface ExecutionResult {
|
|
|
46
50
|
enqueuedPublicFunctionCalls: PublicCallRequest[];
|
|
47
51
|
/** Public function execution requested for teardown */
|
|
48
52
|
publicTeardownFunctionCall: PublicCallRequest;
|
|
53
|
+
/**
|
|
54
|
+
* Encrypted note logs emitted during execution of this function call.
|
|
55
|
+
* Note: These are preimages to `noteEncryptedLogsHashes`.
|
|
56
|
+
*/
|
|
57
|
+
noteEncryptedLogs: CountedNoteLog[];
|
|
49
58
|
/**
|
|
50
59
|
* Encrypted logs emitted during execution of this function call.
|
|
51
60
|
* Note: These are preimages to `encryptedLogsHashes`.
|
|
@@ -59,6 +68,12 @@ export interface ExecutionResult {
|
|
|
59
68
|
}
|
|
60
69
|
export declare function collectNoteHashLeafIndexMap(execResult: ExecutionResult, accum?: Map<bigint, bigint>): Map<bigint, bigint>;
|
|
61
70
|
export declare function collectNullifiedNoteHashCounters(execResult: ExecutionResult, accum?: Map<number, number>): Map<number, number>;
|
|
71
|
+
/**
|
|
72
|
+
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
73
|
+
* @param execResult - The topmost execution result.
|
|
74
|
+
* @returns All encrypted logs.
|
|
75
|
+
*/
|
|
76
|
+
export declare function collectSortedNoteEncryptedLogs(execResult: ExecutionResult): EncryptedNoteFunctionL2Logs;
|
|
62
77
|
/**
|
|
63
78
|
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
64
79
|
* @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,EACL,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,yBAAyB,EACzB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,oBAAoB,EAAE,iBAAiB,EAAiB,MAAM,oBAAoB,CAAC;AAC/G,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,qBAAa,UAAU,CAAC,IAAI,SAAS,gBAAgB,GAAG,cAAc,CAAE,YAAW,OAAO;
|
|
1
|
+
{"version":3,"file":"execution_result.d.ts","sourceRoot":"","sources":["../../src/client/execution_result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EncryptedFunctionL2Logs, UnencryptedFunctionL2Logs, } from '@aztec/circuit-types';
|
|
1
|
+
import { EncryptedFunctionL2Logs, EncryptedNoteFunctionL2Logs, UnencryptedFunctionL2Logs, } from '@aztec/circuit-types';
|
|
2
2
|
import { PublicCallRequest, sortByCounter } from '@aztec/circuits.js';
|
|
3
3
|
export class CountedLog {
|
|
4
4
|
constructor(log, counter) {
|
|
@@ -9,6 +9,12 @@ export class CountedLog {
|
|
|
9
9
|
return !this.log.data.length && !this.counter;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
export class CountedNoteLog extends CountedLog {
|
|
13
|
+
constructor(log, counter, noteHashCounter) {
|
|
14
|
+
super(log, counter);
|
|
15
|
+
this.noteHashCounter = noteHashCounter;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
12
18
|
export function collectNoteHashLeafIndexMap(execResult, accum = new Map()) {
|
|
13
19
|
execResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
|
|
14
20
|
execResult.nestedExecutions.forEach(nested => collectNoteHashLeafIndexMap(nested, accum));
|
|
@@ -19,13 +25,35 @@ export function collectNullifiedNoteHashCounters(execResult, accum = new Map())
|
|
|
19
25
|
execResult.nestedExecutions.forEach(nested => collectNullifiedNoteHashCounters(nested, accum));
|
|
20
26
|
return accum;
|
|
21
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Collect all encrypted logs across all nested executions.
|
|
30
|
+
* @param execResult - The topmost execution result.
|
|
31
|
+
* @returns All encrypted logs.
|
|
32
|
+
*/
|
|
33
|
+
function collectNoteEncryptedLogs(execResult, nullifiedNoteHashCounters) {
|
|
34
|
+
return [
|
|
35
|
+
execResult.noteEncryptedLogs.filter(noteLog => !nullifiedNoteHashCounters.has(noteLog.noteHashCounter)),
|
|
36
|
+
...execResult.nestedExecutions.flatMap(res => collectNoteEncryptedLogs(res, nullifiedNoteHashCounters)),
|
|
37
|
+
].flat();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
41
|
+
* @param execResult - The topmost execution result.
|
|
42
|
+
* @returns All encrypted logs.
|
|
43
|
+
*/
|
|
44
|
+
export function collectSortedNoteEncryptedLogs(execResult) {
|
|
45
|
+
const nullifiedNoteHashCounters = collectNullifiedNoteHashCounters(execResult);
|
|
46
|
+
const allLogs = collectNoteEncryptedLogs(execResult, nullifiedNoteHashCounters);
|
|
47
|
+
const sortedLogs = sortByCounter(allLogs);
|
|
48
|
+
return new EncryptedNoteFunctionL2Logs(sortedLogs.map(l => l.log));
|
|
49
|
+
}
|
|
22
50
|
/**
|
|
23
51
|
* Collect all encrypted logs across all nested executions.
|
|
24
52
|
* @param execResult - The topmost execution result.
|
|
25
53
|
* @returns All encrypted logs.
|
|
26
54
|
*/
|
|
27
55
|
function collectEncryptedLogs(execResult) {
|
|
28
|
-
return [execResult.encryptedLogs, ...
|
|
56
|
+
return [execResult.encryptedLogs, ...execResult.nestedExecutions.flatMap(collectEncryptedLogs)].flat();
|
|
29
57
|
}
|
|
30
58
|
/**
|
|
31
59
|
* Collect all encrypted logs across all nested executions and sorts by counter.
|
|
@@ -43,7 +71,7 @@ export function collectSortedEncryptedLogs(execResult) {
|
|
|
43
71
|
* @returns All unencrypted logs.
|
|
44
72
|
*/
|
|
45
73
|
function collectUnencryptedLogs(execResult) {
|
|
46
|
-
return [execResult.unencryptedLogs, ...
|
|
74
|
+
return [execResult.unencryptedLogs, ...execResult.nestedExecutions.flatMap(collectUnencryptedLogs)].flat();
|
|
47
75
|
}
|
|
48
76
|
/**
|
|
49
77
|
* Collect all unencrypted logs across all nested executions and sorts by counter.
|
|
@@ -81,4 +109,4 @@ export function collectPublicTeardownFunctionCall(execResult) {
|
|
|
81
109
|
}
|
|
82
110
|
return PublicCallRequest.empty();
|
|
83
111
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvZXhlY3V0aW9uX3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLDJCQUEyQixFQUUzQix5QkFBeUIsR0FFMUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQTJDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUIvRyxNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUFtQixHQUFTLEVBQVMsT0FBZTtRQUFqQyxRQUFHLEdBQUgsR0FBRyxDQUFNO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7SUFFeEQsT0FBTztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBOEI7SUFDaEUsWUFBWSxHQUF1QixFQUFFLE9BQWUsRUFBUyxlQUF1QjtRQUNsRixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRHVDLG9CQUFlLEdBQWYsZUFBZSxDQUFRO0lBRXBGLENBQUM7Q0FDRjtBQThDRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsVUFBMkIsRUFBRSxRQUE2QixJQUFJLEdBQUcsRUFBRTtJQUM3RyxVQUFVLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FB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
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type FunctionArtifact } from '@aztec/foundation/abi';
|
|
1
|
+
import type { FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
3
2
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
3
|
import { type ClientExecutionContext } from './client_execution_context.js';
|
|
5
4
|
import { type ExecutionResult } from './execution_result.js';
|
|
6
5
|
/**
|
|
7
6
|
* Execute a private function and return the execution result.
|
|
8
7
|
*/
|
|
9
|
-
export declare function executePrivateFunction(context: ClientExecutionContext, artifact: FunctionArtifact, contractAddress: AztecAddress,
|
|
8
|
+
export declare function executePrivateFunction(context: ClientExecutionContext, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, log?: import("@aztec/foundation/log").Logger): Promise<ExecutionResult>;
|
|
10
9
|
//# sourceMappingURL=private_execution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../src/client/private_execution.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChF,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;AAE7D;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAAwD,GAC1D,OAAO,CAAC,eAAe,CAAC,CAuE1B"}
|
|
@@ -1,30 +1,43 @@
|
|
|
1
|
-
import { PrivateCallStackItem, PrivateCircuitPublicInputs } from '@aztec/circuits.js';
|
|
1
|
+
import { Fr, FunctionData, PrivateCallStackItem, PrivateCircuitPublicInputs } from '@aztec/circuits.js';
|
|
2
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { Timer } from '@aztec/foundation/timer';
|
|
3
4
|
import { witnessMapToFields } from '../acvm/deserialize.js';
|
|
4
5
|
import { Oracle, acvm, extractCallStack } from '../acvm/index.js';
|
|
5
6
|
import { ExecutionError } from '../common/errors.js';
|
|
6
|
-
import { AcirSimulator } from './simulator.js';
|
|
7
7
|
/**
|
|
8
8
|
* Execute a private function and return the execution result.
|
|
9
9
|
*/
|
|
10
|
-
export async function executePrivateFunction(context, artifact, contractAddress,
|
|
11
|
-
const
|
|
12
|
-
log.verbose(`Executing external function ${contractAddress}:${functionSelector}(${
|
|
10
|
+
export async function executePrivateFunction(context, artifact, contractAddress, functionSelector, log = createDebugLogger('aztec:simulator:secret_execution')) {
|
|
11
|
+
const functionName = await context.getDebugFunctionName();
|
|
12
|
+
log.verbose(`Executing external function ${contractAddress}:${functionSelector}(${functionName})`);
|
|
13
13
|
const acir = artifact.bytecode;
|
|
14
14
|
const initialWitness = context.getInitialWitness(artifact);
|
|
15
15
|
const acvmCallback = new Oracle(context);
|
|
16
|
-
const
|
|
16
|
+
const timer = new Timer();
|
|
17
|
+
const acirExecutionResult = await acvm(acir, initialWitness, acvmCallback).catch((err) => {
|
|
17
18
|
throw new ExecutionError(err.message, {
|
|
18
19
|
contractAddress,
|
|
19
20
|
functionSelector,
|
|
20
21
|
}, extractCallStack(err, artifact.debug), { cause: err });
|
|
21
22
|
});
|
|
23
|
+
const duration = timer.ms();
|
|
22
24
|
const partialWitness = acirExecutionResult.partialWitness;
|
|
23
25
|
const returnWitness = witnessMapToFields(acirExecutionResult.returnWitness);
|
|
24
26
|
const publicInputs = PrivateCircuitPublicInputs.fromFields(returnWitness);
|
|
27
|
+
// TODO (alexg) estimate this size
|
|
28
|
+
const initialWitnessSize = witnessMapToFields(initialWitness).length * Fr.SIZE_IN_BYTES;
|
|
29
|
+
log.debug(`Ran external function ${contractAddress.toString()}:${functionSelector}`, {
|
|
30
|
+
circuitName: 'app-circuit',
|
|
31
|
+
duration,
|
|
32
|
+
eventName: 'circuit-witness-generation',
|
|
33
|
+
inputSize: initialWitnessSize,
|
|
34
|
+
outputSize: publicInputs.toBuffer().length,
|
|
35
|
+
appCircuitName: functionName,
|
|
36
|
+
});
|
|
37
|
+
const noteEncryptedLogs = context.getNoteEncryptedLogs();
|
|
25
38
|
const encryptedLogs = context.getEncryptedLogs();
|
|
26
39
|
const unencryptedLogs = context.getUnencryptedLogs();
|
|
27
|
-
const callStackItem = new PrivateCallStackItem(contractAddress,
|
|
40
|
+
const callStackItem = new PrivateCallStackItem(contractAddress, new FunctionData(functionSelector, true), publicInputs);
|
|
28
41
|
const rawReturnValues = await context.unpackReturns(publicInputs.returnsHash);
|
|
29
42
|
const noteHashLeafIndexMap = context.getNoteHashLeafIndexMap();
|
|
30
43
|
const newNotes = context.getNewNotes();
|
|
@@ -44,9 +57,10 @@ export async function executePrivateFunction(context, artifact, contractAddress,
|
|
|
44
57
|
vk: Buffer.from(artifact.verificationKey, 'hex'),
|
|
45
58
|
nestedExecutions,
|
|
46
59
|
enqueuedPublicFunctionCalls,
|
|
60
|
+
noteEncryptedLogs,
|
|
47
61
|
publicTeardownFunctionCall,
|
|
48
62
|
encryptedLogs,
|
|
49
63
|
unencryptedLogs,
|
|
50
64
|
};
|
|
51
65
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXJEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBK0IsRUFDL0IsUUFBMEIsRUFDMUIsZUFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxrQ0FBa0MsQ0FBQztJQUUzRCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzFELEdBQUcsQ0FBQyxPQUFPLENBQUMsK0JBQStCLGVBQWUsSUFBSSxnQkFBZ0IsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ25HLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENB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
|
|
@@ -2,7 +2,6 @@ import { type AztecNode, type FunctionCall, type Note, type TxExecutionRequest }
|
|
|
2
2
|
import { type FunctionArtifact } from '@aztec/foundation/abi';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { type WasmBlackBoxFunctionSolver } from '@noir-lang/acvm_js';
|
|
6
5
|
import { type DBOracle } from './db_oracle.js';
|
|
7
6
|
import { type ExecutionResult } from './execution_result.js';
|
|
8
7
|
/**
|
|
@@ -11,23 +10,8 @@ import { type ExecutionResult } from './execution_result.js';
|
|
|
11
10
|
export declare class AcirSimulator {
|
|
12
11
|
private db;
|
|
13
12
|
private node;
|
|
14
|
-
private static solver;
|
|
15
13
|
private log;
|
|
16
14
|
constructor(db: DBOracle, node: AztecNode);
|
|
17
|
-
/**
|
|
18
|
-
* Gets or initializes the ACVM WasmBlackBoxFunctionSolver.
|
|
19
|
-
*
|
|
20
|
-
* @remarks
|
|
21
|
-
*
|
|
22
|
-
* Occurs only once across all instances of AcirSimulator.
|
|
23
|
-
* Speeds up execution by only performing setup tasks (like pedersen
|
|
24
|
-
* generator initialization) one time.
|
|
25
|
-
* TODO(https://github.com/AztecProtocol/aztec-packages/issues/1627):
|
|
26
|
-
* determine whether this requires a lock
|
|
27
|
-
*
|
|
28
|
-
* @returns ACVM WasmBlackBoxFunctionSolver
|
|
29
|
-
*/
|
|
30
|
-
static getSolver(): Promise<WasmBlackBoxFunctionSolver>;
|
|
31
15
|
/**
|
|
32
16
|
* Runs a private function.
|
|
33
17
|
* @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;AAE7G,OAAO,EAEL,KAAK,gBAAgB,EAItB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,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,gBAAgB,EAItB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAM9C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,EAAE;IAAY,OAAO,CAAC,IAAI;IAF9C,OAAO,CAAC,GAAG,CAAc;gBAEL,EAAE,EAAE,QAAQ,EAAU,IAAI,EAAE,SAAS;IAIzD;;;;;;;OAOG;IACU,GAAG,CACd,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,gBAAgB,EACpC,eAAe,EAAE,YAAY,EAC7B,SAAS,eAAoB,GAC5B,OAAO,CAAC,eAAe,CAAC;IAmD3B;;;;;;OAMG;IACU,gBAAgB,CAC3B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,gBAAgB,EACpC,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;;;;;;IAqDZ;;;;;;;OAOG;IACU,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI;CAU7G"}
|
package/dest/client/simulator.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { CallContext
|
|
1
|
+
import { CallContext } from '@aztec/circuits.js';
|
|
2
2
|
import { FunctionSelector, FunctionType, encodeArguments, } from '@aztec/foundation/abi';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
6
|
-
import { createBlackBoxSolver } from '@noir-lang/acvm_js';
|
|
7
6
|
import { createSimulationError } from '../common/errors.js';
|
|
8
7
|
import { PackedValuesCache } from '../common/packed_values_cache.js';
|
|
9
8
|
import { ClientExecutionContext } from './client_execution_context.js';
|
|
10
9
|
import { ExecutionNoteCache } from './execution_note_cache.js';
|
|
11
|
-
import { LogsCache } from './logs_cache.js';
|
|
12
10
|
import { executePrivateFunction } from './private_execution.js';
|
|
13
11
|
import { executeUnconstrainedFunction } from './unconstrained_execution.js';
|
|
14
12
|
import { ViewDataOracle } from './view_data_oracle.js';
|
|
@@ -21,25 +19,6 @@ export class AcirSimulator {
|
|
|
21
19
|
this.node = node;
|
|
22
20
|
this.log = createDebugLogger('aztec:simulator');
|
|
23
21
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Gets or initializes the ACVM WasmBlackBoxFunctionSolver.
|
|
26
|
-
*
|
|
27
|
-
* @remarks
|
|
28
|
-
*
|
|
29
|
-
* Occurs only once across all instances of AcirSimulator.
|
|
30
|
-
* Speeds up execution by only performing setup tasks (like pedersen
|
|
31
|
-
* generator initialization) one time.
|
|
32
|
-
* TODO(https://github.com/AztecProtocol/aztec-packages/issues/1627):
|
|
33
|
-
* determine whether this requires a lock
|
|
34
|
-
*
|
|
35
|
-
* @returns ACVM WasmBlackBoxFunctionSolver
|
|
36
|
-
*/
|
|
37
|
-
static getSolver() {
|
|
38
|
-
if (!this.solver) {
|
|
39
|
-
this.solver = createBlackBoxSolver();
|
|
40
|
-
}
|
|
41
|
-
return this.solver;
|
|
42
|
-
}
|
|
43
22
|
/**
|
|
44
23
|
* Runs a private function.
|
|
45
24
|
* @param request - The transaction request.
|
|
@@ -49,8 +28,8 @@ export class AcirSimulator {
|
|
|
49
28
|
* @returns The result of the execution.
|
|
50
29
|
*/
|
|
51
30
|
async run(request, entryPointArtifact, contractAddress, msgSender = AztecAddress.ZERO) {
|
|
52
|
-
if (entryPointArtifact.functionType !== FunctionType.
|
|
53
|
-
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as
|
|
31
|
+
if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
|
|
32
|
+
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
|
|
54
33
|
}
|
|
55
34
|
if (request.origin !== contractAddress) {
|
|
56
35
|
this.log.warn(`Request origin does not match contract address in simulation. Request origin: ${request.origin}, contract address: ${contractAddress}`);
|
|
@@ -58,10 +37,10 @@ export class AcirSimulator {
|
|
|
58
37
|
const header = await this.db.getHeader();
|
|
59
38
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
60
39
|
const startSideEffectCounter = 1;
|
|
61
|
-
const callContext = new CallContext(msgSender, contractAddress, FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), false,
|
|
62
|
-
const context = new ClientExecutionContext(contractAddress, request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.argsOfCalls), new ExecutionNoteCache(),
|
|
40
|
+
const callContext = new CallContext(msgSender, contractAddress, FunctionSelector.fromNameAndParameters(entryPointArtifact.name, entryPointArtifact.parameters), false, entryPointArtifact.isStatic, startSideEffectCounter);
|
|
41
|
+
const context = new ClientExecutionContext(contractAddress, request.firstCallArgsHash, request.txContext, callContext, header, request.authWitnesses, PackedValuesCache.create(request.argsOfCalls), new ExecutionNoteCache(), this.db, this.node, startSideEffectCounter);
|
|
63
42
|
try {
|
|
64
|
-
const executionResult = await executePrivateFunction(context, entryPointArtifact, contractAddress, request.
|
|
43
|
+
const executionResult = await executePrivateFunction(context, entryPointArtifact, contractAddress, request.functionSelector);
|
|
65
44
|
return executionResult;
|
|
66
45
|
}
|
|
67
46
|
catch (err) {
|
|
@@ -81,7 +60,7 @@ export class AcirSimulator {
|
|
|
81
60
|
}
|
|
82
61
|
const context = new ViewDataOracle(contractAddress, [], this.db, this.node);
|
|
83
62
|
try {
|
|
84
|
-
return await executeUnconstrainedFunction(context, entryPointArtifact, contractAddress, request.
|
|
63
|
+
return await executeUnconstrainedFunction(context, entryPointArtifact, contractAddress, request.selector, request.args);
|
|
85
64
|
}
|
|
86
65
|
catch (err) {
|
|
87
66
|
throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
|
|
@@ -110,9 +89,13 @@ export class AcirSimulator {
|
|
|
110
89
|
}
|
|
111
90
|
const extendedNoteItems = note.items.concat(Array(maxNoteFields - note.items.length).fill(Fr.ZERO));
|
|
112
91
|
const execRequest = {
|
|
92
|
+
name: artifact.name,
|
|
113
93
|
to: contractAddress,
|
|
114
|
-
|
|
94
|
+
selector: FunctionSelector.empty(),
|
|
95
|
+
type: FunctionType.UNCONSTRAINED,
|
|
96
|
+
isStatic: artifact.isStatic,
|
|
115
97
|
args: encodeArguments(artifact, [contractAddress, nonce, storageSlot, noteTypeId, extendedNoteItems]),
|
|
98
|
+
returnTypes: artifact.returnTypes,
|
|
116
99
|
};
|
|
117
100
|
const [innerNoteHash, uniqueNoteHash, siloedNoteHash, innerNullifier] = (await this.runUnconstrained(execRequest, artifact, contractAddress));
|
|
118
101
|
return {
|
|
@@ -135,4 +118,4 @@ export class AcirSimulator {
|
|
|
135
118
|
return innerNoteHash;
|
|
136
119
|
}
|
|
137
120
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFHTCxnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFvQixFQUFZLEVBQVUsSUFBZTtRQUFyQyxPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBVztRQUN2RCxJQUFJLENBQUMsR0FBRyxHQUFHLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUNkLE9BQTJCLEVBQzNC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
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type DecodedReturn, type FunctionArtifact } from '@aztec/foundation/abi';
|
|
1
|
+
import { type DecodedReturn, type FunctionArtifact, type FunctionSelector } from '@aztec/foundation/abi';
|
|
3
2
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
3
|
import { type Fr } from '@aztec/foundation/fields';
|
|
5
4
|
import { type ViewDataOracle } from './view_data_oracle.js';
|
|
6
5
|
/**
|
|
7
6
|
* Execute an unconstrained function and return the decoded values.
|
|
8
7
|
*/
|
|
9
|
-
export declare function executeUnconstrainedFunction(oracle: ViewDataOracle, artifact: FunctionArtifact, contractAddress: AztecAddress,
|
|
8
|
+
export declare function executeUnconstrainedFunction(oracle: ViewDataOracle, artifact: FunctionArtifact, contractAddress: AztecAddress, functionSelector: FunctionSelector, args: Fr[], log?: import("@aztec/foundation/log").Logger): Promise<DecodedReturn>;
|
|
10
9
|
//# sourceMappingURL=unconstrained_execution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"unconstrained_execution.d.ts","sourceRoot":"","sources":["../../src/client/unconstrained_execution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,EAAE,EAAE,EACV,GAAG,yCAA+D,GACjE,OAAO,CAAC,aAAa,CAAC,CAmBxB"}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import { decodeReturnValues } from '@aztec/foundation/abi';
|
|
1
|
+
import { decodeReturnValues, } from '@aztec/foundation/abi';
|
|
2
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { witnessMapToFields } from '../acvm/deserialize.js';
|
|
4
4
|
import { Oracle, acvm, extractCallStack, toACVMWitness } from '../acvm/index.js';
|
|
5
5
|
import { ExecutionError } from '../common/errors.js';
|
|
6
|
-
import { AcirSimulator } from './simulator.js';
|
|
7
6
|
// docs:start:execute_unconstrained_function
|
|
8
7
|
/**
|
|
9
8
|
* Execute an unconstrained function and return the decoded values.
|
|
10
9
|
*/
|
|
11
|
-
export async function executeUnconstrainedFunction(oracle, artifact, contractAddress,
|
|
12
|
-
const functionSelector = functionData.selector;
|
|
10
|
+
export async function executeUnconstrainedFunction(oracle, artifact, contractAddress, functionSelector, args, log = createDebugLogger('aztec:simulator:unconstrained_execution')) {
|
|
13
11
|
log.verbose(`Executing unconstrained function ${contractAddress}:${functionSelector}(${artifact.name})`);
|
|
14
12
|
const acir = artifact.bytecode;
|
|
15
13
|
const initialWitness = toACVMWitness(0, args);
|
|
16
|
-
const acirExecutionResult = await acvm(
|
|
14
|
+
const acirExecutionResult = await acvm(acir, initialWitness, new Oracle(oracle)).catch((err) => {
|
|
17
15
|
throw new ExecutionError(err.message, {
|
|
18
16
|
contractAddress,
|
|
19
17
|
functionSelector,
|
|
20
18
|
}, extractCallStack(err, artifact.debug), { cause: err });
|
|
21
19
|
});
|
|
22
20
|
const returnWitness = witnessMapToFields(acirExecutionResult.returnWitness);
|
|
23
|
-
return decodeReturnValues(artifact, returnWitness);
|
|
21
|
+
return decodeReturnValues(artifact.returnTypes, returnWitness);
|
|
24
22
|
}
|
|
25
23
|
// docs:end:execute_unconstrained_function
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jb25zdHJhaW5lZF9leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3VuY29uc3RyYWluZWRfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxrQkFBa0IsR0FDbkIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckQsNENBQTRDO0FBQzVDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSw0QkFBNEIsQ0FDaEQsTUFBc0IsRUFDdEIsUUFBMEIsRUFDMUIsZUFBNkIsRUFDN0IsZ0JBQWtDLEVBQ2xDLElBQVUsRUFDVixHQUFHLEdBQUcsaUJBQWlCLENBQUMseUNBQXlDLENBQUM7SUFFbEUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsZUFBZSxJQUFJLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRXpHLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUNwRyxNQUFNLElBQUksY0FBYyxDQUN0QixHQUFHLENBQUMsT0FBTyxFQUNYO1lBQ0UsZUFBZTtZQUNmLGdCQUFnQjtTQUNqQixFQUNELGdCQUFnQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ3JDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUNmLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBQ0QsMENBQTBDIn0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type AuthWitness, type AztecNode, type CompleteAddress, MerkleTreeId, type NoteStatus, type NullifierMembershipWitness, type PublicDataWitness } from '@aztec/circuit-types';
|
|
2
|
-
import { type Header } from '@aztec/circuits.js';
|
|
2
|
+
import { type Header, type KeyValidationRequest } 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,
|
|
6
|
+
import { type NoteData, 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.
|
|
@@ -19,14 +19,15 @@ export declare class ViewDataOracle extends TypedOracle {
|
|
|
19
19
|
constructor(contractAddress: AztecAddress,
|
|
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
|
+
getBlockNumber(): Promise<number>;
|
|
23
|
+
getContractAddress(): Promise<AztecAddress>;
|
|
22
24
|
/**
|
|
23
|
-
* Retrieve
|
|
24
|
-
*
|
|
25
|
-
* @
|
|
26
|
-
* @
|
|
27
|
-
* @throws An error if the account is not registered in the database.
|
|
25
|
+
* Retrieve keys associated with a specific master public key and app address.
|
|
26
|
+
* @param pkMHash - The master public key hash.
|
|
27
|
+
* @returns A Promise that resolves to nullifier keys.
|
|
28
|
+
* @throws If the keys are not registered in the key store.
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
+
getKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
|
|
30
31
|
/**
|
|
31
32
|
* Fetches the index and sibling path of a leaf at a given block from a given tree.
|
|
32
33
|
* @param blockNumber - The block number at which to get the membership witness.
|
|
@@ -75,10 +76,11 @@ export declare class ViewDataOracle extends TypedOracle {
|
|
|
75
76
|
getHeader(blockNumber: number): Promise<Header | undefined>;
|
|
76
77
|
/**
|
|
77
78
|
* Retrieve the complete address associated to a given address.
|
|
78
|
-
* @param
|
|
79
|
+
* @param account - The account address.
|
|
79
80
|
* @returns A complete address associated with the input address.
|
|
81
|
+
* @throws An error if the account is not registered in the database.
|
|
80
82
|
*/
|
|
81
|
-
getCompleteAddress(
|
|
83
|
+
getCompleteAddress(account: AztecAddress): Promise<CompleteAddress>;
|
|
82
84
|
/**
|
|
83
85
|
* Returns a contract instance associated with an address or throws if not found.
|
|
84
86
|
* @param address - Address.
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"view_data_oracle.d.ts","sourceRoot":"","sources":["../../src/client/view_data_oracle.ts"],"names":[],"mappings":"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"}
|