@aztec/simulator 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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.js +18 -21
- package/dest/acvm/acvm_types.js +3 -2
- package/dest/acvm/deserialize.js +9 -13
- package/dest/acvm/index.js +0 -1
- package/dest/acvm/oracle/index.js +0 -1
- package/dest/acvm/oracle/oracle.js +42 -23
- package/dest/acvm/oracle/typed_oracle.js +36 -38
- package/dest/acvm/serialize.js +7 -14
- package/dest/avm/avm_context.js +24 -27
- package/dest/avm/avm_contract_call_result.js +12 -7
- package/dest/avm/avm_execution_environment.js +10 -7
- package/dest/avm/avm_gas.js +93 -56
- package/dest/avm/avm_machine_state.js +60 -61
- package/dest/avm/avm_memory_types.js +166 -255
- package/dest/avm/avm_simulator.js +68 -47
- package/dest/avm/avm_tree.js +282 -276
- package/dest/avm/bytecode_utils.js +8 -6
- package/dest/avm/errors.js +46 -63
- package/dest/avm/fixtures/avm_simulation_tester.js +18 -17
- package/dest/avm/fixtures/base_avm_simulation_tester.js +21 -16
- package/dest/avm/fixtures/index.js +27 -26
- package/dest/avm/fixtures/simple_contract_data_source.js +9 -13
- package/dest/avm/index.js +0 -1
- package/dest/avm/journal/index.js +0 -1
- package/dest/avm/journal/journal.js +147 -200
- package/dest/avm/journal/nullifiers.js +43 -46
- package/dest/avm/journal/public_storage.js +73 -87
- package/dest/avm/opcodes/accrued_substate.js +140 -110
- package/dest/avm/opcodes/addressing_mode.js +29 -31
- package/dest/avm/opcodes/arithmetic.js +17 -15
- package/dest/avm/opcodes/bitwise.js +40 -26
- package/dest/avm/opcodes/comparators.js +12 -10
- package/dest/avm/opcodes/contract.js +31 -29
- package/dest/avm/opcodes/control_flow.js +47 -43
- package/dest/avm/opcodes/conversion.js +30 -26
- package/dest/avm/opcodes/ec_add.js +35 -34
- package/dest/avm/opcodes/environment_getters.js +33 -33
- package/dest/avm/opcodes/external_calls.js +83 -74
- package/dest/avm/opcodes/hashing.js +69 -61
- package/dest/avm/opcodes/index.js +0 -1
- package/dest/avm/opcodes/instruction.js +31 -40
- package/dest/avm/opcodes/instruction_impl.js +12 -15
- package/dest/avm/opcodes/memory.js +177 -156
- package/dest/avm/opcodes/misc.js +27 -25
- package/dest/avm/opcodes/multi_scalar_mul.js +43 -41
- package/dest/avm/opcodes/storage.js +28 -25
- package/dest/avm/serialization/buffer_cursor.js +4 -4
- package/dest/avm/serialization/bytecode_serialization.js +292 -89
- package/dest/avm/serialization/instruction_serialization.js +67 -28
- package/dest/avm/test_utils.js +6 -9
- package/dest/client/client_execution_context.js +197 -219
- package/dest/client/db_oracle.js +4 -7
- package/dest/client/execution_note_cache.js +80 -81
- package/dest/client/index.js +0 -1
- package/dest/client/pick_notes.js +27 -30
- package/dest/client/private_execution.js +13 -14
- package/dest/client/simulator.js +44 -48
- package/dest/client/unconstrained_execution.js +8 -11
- package/dest/client/view_data_oracle.js +130 -139
- package/dest/common/debug_fn_name.js +1 -4
- package/dest/common/errors.js +30 -39
- package/dest/common/hashed_values_cache.js +16 -20
- package/dest/common/index.js +0 -1
- package/dest/common/message_load_oracle_inputs.js +7 -7
- package/dest/common/simulation_provider.js +3 -6
- package/dest/common.js +0 -1
- package/dest/providers/acvm_native.js +46 -32
- package/dest/providers/acvm_wasm.js +18 -10
- package/dest/providers/acvm_wasm_with_blobs.js +2 -5
- package/dest/providers/factory.js +5 -5
- package/dest/providers/index.js +0 -1
- package/dest/public/bytecode_errors.js +1 -2
- package/dest/public/db_interfaces.js +1 -2
- package/dest/public/execution.js +2 -4
- package/dest/public/executor_metrics.js +16 -12
- package/dest/public/fee_payment.js +2 -5
- package/dest/public/fixtures/index.js +0 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +13 -17
- package/dest/public/fixtures/utils.js +11 -14
- package/dest/public/index.js +0 -1
- package/dest/public/public_db_sources.js +79 -87
- package/dest/public/public_processor.js +310 -306
- package/dest/public/public_processor_metrics.js +46 -27
- package/dest/public/public_tx_context.js +97 -118
- package/dest/public/public_tx_simulator.js +299 -314
- package/dest/public/side_effect_errors.js +1 -2
- package/dest/public/side_effect_trace.js +44 -71
- package/dest/public/side_effect_trace_interface.js +1 -2
- package/dest/public/unique_class_ids.js +22 -27
- package/dest/public/utils.js +16 -11
- package/dest/server.js +0 -1
- package/dest/stats/index.js +0 -1
- package/dest/stats/stats.js +1 -2
- package/dest/test/utils.js +5 -4
- package/package.json +11 -11
- package/src/acvm/oracle/typed_oracle.ts +34 -34
- package/src/avm/avm_machine_state.ts +18 -14
- package/src/avm/avm_memory_types.ts +43 -183
- package/src/avm/avm_simulator.ts +37 -11
- package/src/avm/opcodes/accrued_substate.ts +7 -21
- package/src/avm/opcodes/addressing_mode.ts +9 -2
- package/src/avm/opcodes/arithmetic.ts +1 -3
- package/src/avm/opcodes/bitwise.ts +2 -6
- package/src/avm/opcodes/comparators.ts +1 -3
- package/src/avm/opcodes/contract.ts +1 -3
- package/src/avm/opcodes/control_flow.ts +1 -9
- package/src/avm/opcodes/conversion.ts +1 -3
- package/src/avm/opcodes/ec_add.ts +1 -3
- package/src/avm/opcodes/environment_getters.ts +1 -3
- package/src/avm/opcodes/external_calls.ts +3 -6
- package/src/avm/opcodes/hashing.ts +3 -9
- package/src/avm/opcodes/memory.ts +6 -20
- package/src/avm/opcodes/misc.ts +1 -3
- package/src/avm/opcodes/multi_scalar_mul.ts +1 -7
- package/src/avm/opcodes/storage.ts +2 -6
- package/src/client/index.ts +2 -2
- package/dest/acvm/acvm.d.ts +0 -35
- package/dest/acvm/acvm.d.ts.map +0 -1
- package/dest/acvm/acvm_types.d.ts +0 -10
- package/dest/acvm/acvm_types.d.ts.map +0 -1
- package/dest/acvm/deserialize.d.ts +0 -36
- package/dest/acvm/deserialize.d.ts.map +0 -1
- package/dest/acvm/index.d.ts +0 -6
- package/dest/acvm/index.d.ts.map +0 -1
- package/dest/acvm/oracle/index.d.ts +0 -14
- package/dest/acvm/oracle/index.d.ts.map +0 -1
- package/dest/acvm/oracle/oracle.d.ts +0 -49
- package/dest/acvm/oracle/oracle.d.ts.map +0 -1
- package/dest/acvm/oracle/typed_oracle.d.ts +0 -75
- package/dest/acvm/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/acvm/serialize.d.ts +0 -20
- package/dest/acvm/serialize.d.ts.map +0 -1
- package/dest/avm/avm_context.d.ts +0 -39
- package/dest/avm/avm_context.d.ts.map +0 -1
- package/dest/avm/avm_contract_call_result.d.ts +0 -30
- package/dest/avm/avm_contract_call_result.d.ts.map +0 -1
- package/dest/avm/avm_execution_environment.d.ts +0 -21
- package/dest/avm/avm_execution_environment.d.ts.map +0 -1
- package/dest/avm/avm_gas.d.ts +0 -60
- package/dest/avm/avm_gas.d.ts.map +0 -1
- package/dest/avm/avm_machine_state.d.ts +0 -93
- package/dest/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/avm/avm_memory_types.d.ts +0 -310
- package/dest/avm/avm_memory_types.d.ts.map +0 -1
- package/dest/avm/avm_simulator.d.ts +0 -37
- package/dest/avm/avm_simulator.d.ts.map +0 -1
- package/dest/avm/avm_tree.d.ts +0 -281
- package/dest/avm/avm_tree.d.ts.map +0 -1
- package/dest/avm/bytecode_utils.d.ts +0 -5
- package/dest/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/avm/errors.d.ts +0 -121
- package/dest/avm/errors.d.ts.map +0 -1
- package/dest/avm/fixtures/avm_simulation_tester.d.ts +0 -21
- package/dest/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts +0 -35
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/index.d.ts +0 -67
- package/dest/avm/fixtures/index.d.ts.map +0 -1
- package/dest/avm/fixtures/simple_contract_data_source.d.ts +0 -31
- package/dest/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
- package/dest/avm/index.d.ts +0 -4
- package/dest/avm/index.d.ts.map +0 -1
- package/dest/avm/journal/index.d.ts +0 -2
- package/dest/avm/journal/index.d.ts.map +0 -1
- package/dest/avm/journal/journal.d.ts +0 -176
- package/dest/avm/journal/journal.d.ts.map +0 -1
- package/dest/avm/journal/nullifiers.d.ts +0 -62
- package/dest/avm/journal/nullifiers.d.ts.map +0 -1
- package/dest/avm/journal/public_storage.d.ts +0 -66
- package/dest/avm/journal/public_storage.d.ts.map +0 -1
- package/dest/avm/opcodes/accrued_substate.d.ts +0 -75
- package/dest/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/avm/opcodes/addressing_mode.d.ts +0 -27
- package/dest/avm/opcodes/addressing_mode.d.ts.map +0 -1
- package/dest/avm/opcodes/arithmetic.d.ts +0 -37
- package/dest/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/avm/opcodes/bitwise.d.ts +0 -50
- package/dest/avm/opcodes/bitwise.d.ts.map +0 -1
- package/dest/avm/opcodes/comparators.d.ts +0 -25
- package/dest/avm/opcodes/comparators.d.ts.map +0 -1
- package/dest/avm/opcodes/contract.d.ts +0 -21
- package/dest/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/avm/opcodes/control_flow.d.ts +0 -41
- package/dest/avm/opcodes/control_flow.d.ts.map +0 -1
- package/dest/avm/opcodes/conversion.d.ts +0 -17
- package/dest/avm/opcodes/conversion.d.ts.map +0 -1
- package/dest/avm/opcodes/ec_add.d.ts +0 -19
- package/dest/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/avm/opcodes/environment_getters.d.ts +0 -28
- package/dest/avm/opcodes/environment_getters.d.ts.map +0 -1
- package/dest/avm/opcodes/external_calls.d.ts +0 -50
- package/dest/avm/opcodes/external_calls.d.ts.map +0 -1
- package/dest/avm/opcodes/hashing.d.ts +0 -36
- package/dest/avm/opcodes/hashing.d.ts.map +0 -1
- package/dest/avm/opcodes/index.d.ts +0 -16
- package/dest/avm/opcodes/index.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction.d.ts +0 -70
- package/dest/avm/opcodes/instruction.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction_impl.d.ts +0 -19
- package/dest/avm/opcodes/instruction_impl.d.ts.map +0 -1
- package/dest/avm/opcodes/memory.d.ts +0 -74
- package/dest/avm/opcodes/memory.d.ts.map +0 -1
- package/dest/avm/opcodes/misc.d.ts +0 -17
- package/dest/avm/opcodes/misc.d.ts.map +0 -1
- package/dest/avm/opcodes/multi_scalar_mul.d.ts +0 -16
- package/dest/avm/opcodes/multi_scalar_mul.d.ts.map +0 -1
- package/dest/avm/opcodes/storage.d.ts +0 -24
- package/dest/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/avm/serialization/buffer_cursor.d.ts +0 -28
- package/dest/avm/serialization/buffer_cursor.d.ts.map +0 -1
- package/dest/avm/serialization/bytecode_serialization.d.ts +0 -21
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +0 -1
- package/dest/avm/serialization/instruction_serialization.d.ts +0 -105
- package/dest/avm/serialization/instruction_serialization.d.ts.map +0 -1
- package/dest/avm/test_utils.d.ts +0 -16
- package/dest/avm/test_utils.d.ts.map +0 -1
- package/dest/client/client_execution_context.d.ts +0 -214
- package/dest/client/client_execution_context.d.ts.map +0 -1
- package/dest/client/db_oracle.d.ts +0 -229
- package/dest/client/db_oracle.d.ts.map +0 -1
- package/dest/client/execution_note_cache.d.ts +0 -93
- package/dest/client/execution_note_cache.d.ts.map +0 -1
- package/dest/client/index.d.ts +0 -15
- package/dest/client/index.d.ts.map +0 -1
- package/dest/client/pick_notes.d.ts +0 -85
- package/dest/client/pick_notes.d.ts.map +0 -1
- package/dest/client/private_execution.d.ts +0 -19
- package/dest/client/private_execution.d.ts.map +0 -1
- package/dest/client/simulator.d.ts +0 -60
- package/dest/client/simulator.d.ts.map +0 -1
- package/dest/client/unconstrained_execution.d.ts +0 -10
- package/dest/client/unconstrained_execution.d.ts.map +0 -1
- package/dest/client/view_data_oracle.d.ts +0 -159
- package/dest/client/view_data_oracle.d.ts.map +0 -1
- package/dest/common/debug_fn_name.d.ts +0 -4
- package/dest/common/debug_fn_name.d.ts.map +0 -1
- package/dest/common/errors.d.ts +0 -54
- package/dest/common/errors.d.ts.map +0 -1
- package/dest/common/hashed_values_cache.d.ts +0 -28
- package/dest/common/hashed_values_cache.d.ts.map +0 -1
- package/dest/common/index.d.ts +0 -3
- package/dest/common/index.d.ts.map +0 -1
- package/dest/common/message_load_oracle_inputs.d.ts +0 -15
- package/dest/common/message_load_oracle_inputs.d.ts.map +0 -1
- package/dest/common/simulation_provider.d.ts +0 -19
- package/dest/common/simulation_provider.d.ts.map +0 -1
- package/dest/common.d.ts +0 -2
- package/dest/common.d.ts.map +0 -1
- package/dest/providers/acvm_native.d.ts +0 -40
- package/dest/providers/acvm_native.d.ts.map +0 -1
- package/dest/providers/acvm_wasm.d.ts +0 -15
- package/dest/providers/acvm_wasm.d.ts.map +0 -1
- package/dest/providers/acvm_wasm_with_blobs.d.ts +0 -19
- package/dest/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
- package/dest/providers/factory.d.ts +0 -12
- package/dest/providers/factory.d.ts.map +0 -1
- package/dest/providers/index.d.ts +0 -5
- package/dest/providers/index.d.ts.map +0 -1
- package/dest/public/bytecode_errors.d.ts +0 -4
- package/dest/public/bytecode_errors.d.ts.map +0 -1
- package/dest/public/db_interfaces.d.ts +0 -105
- package/dest/public/db_interfaces.d.ts.map +0 -1
- package/dest/public/execution.d.ts +0 -102
- package/dest/public/execution.d.ts.map +0 -1
- package/dest/public/executor_metrics.d.ts +0 -13
- package/dest/public/executor_metrics.d.ts.map +0 -1
- package/dest/public/fee_payment.d.ts +0 -11
- package/dest/public/fee_payment.d.ts.map +0 -1
- package/dest/public/fixtures/index.d.ts +0 -3
- package/dest/public/fixtures/index.d.ts.map +0 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +0 -21
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +0 -1
- package/dest/public/fixtures/utils.d.ts +0 -17
- package/dest/public/fixtures/utils.d.ts.map +0 -1
- package/dest/public/index.d.ts +0 -9
- package/dest/public/index.d.ts.map +0 -1
- package/dest/public/public_db_sources.d.ts +0 -81
- package/dest/public/public_db_sources.d.ts.map +0 -1
- package/dest/public/public_processor.d.ts +0 -72
- package/dest/public/public_processor.d.ts.map +0 -1
- package/dest/public/public_processor_metrics.d.ts +0 -27
- package/dest/public/public_processor_metrics.d.ts.map +0 -1
- package/dest/public/public_tx_context.d.ts +0 -131
- package/dest/public/public_tx_context.d.ts.map +0 -1
- package/dest/public/public_tx_simulator.d.ts +0 -99
- package/dest/public/public_tx_simulator.d.ts.map +0 -1
- package/dest/public/side_effect_errors.d.ts +0 -4
- package/dest/public/side_effect_errors.d.ts.map +0 -1
- package/dest/public/side_effect_trace.d.ts +0 -126
- package/dest/public/side_effect_trace.d.ts.map +0 -1
- package/dest/public/side_effect_trace_interface.d.ts +0 -32
- package/dest/public/side_effect_trace_interface.d.ts.map +0 -1
- package/dest/public/unique_class_ids.d.ts +0 -37
- package/dest/public/unique_class_ids.d.ts.map +0 -1
- package/dest/public/utils.d.ts +0 -5
- package/dest/public/utils.d.ts.map +0 -1
- package/dest/server.d.ts +0 -6
- package/dest/server.d.ts.map +0 -1
- package/dest/stats/index.d.ts +0 -2
- package/dest/stats/index.d.ts.map +0 -1
- package/dest/stats/stats.d.ts +0 -4
- package/dest/stats/stats.d.ts.map +0 -1
- package/dest/test/utils.d.ts +0 -12
- package/dest/test/utils.d.ts.map +0 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { CountedContractClassLog, CountedPublicExecutionRequest, Note, NoteAndSlot, PublicExecutionRequest, } from '@aztec/circuit-types';
|
|
4
|
-
import { CallContext, FunctionSelector, PRIVATE_CONTEXT_INPUTS_LENGTH, PUBLIC_DISPATCH_SELECTOR, PrivateContextInputs, } from '@aztec/circuits.js';
|
|
1
|
+
import { CountedContractClassLog, CountedPublicExecutionRequest, Note, NoteAndSlot, PublicExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
+
import { CallContext, FunctionSelector, PRIVATE_CONTEXT_INPUTS_LENGTH, PUBLIC_DISPATCH_SELECTOR, PrivateContextInputs } from '@aztec/circuits.js';
|
|
5
3
|
import { computeUniqueNoteHash, siloNoteHash } from '@aztec/circuits.js/hash';
|
|
6
4
|
import { countArgumentsSize } from '@aztec/foundation/abi';
|
|
7
5
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
@@ -13,56 +11,47 @@ import { executePrivateFunction } from './private_execution.js';
|
|
|
13
11
|
import { ViewDataOracle } from './view_data_oracle.js';
|
|
14
12
|
/**
|
|
15
13
|
* The execution context for a client tx simulation.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
historicalHeader
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
50
|
-
*/
|
|
51
|
-
this.noteHashLeafIndexMap = new Map();
|
|
52
|
-
this.noteHashNullifierCounterMap = new Map();
|
|
53
|
-
this.contractClassLogs = [];
|
|
54
|
-
this.nestedExecutions = [];
|
|
55
|
-
this.enqueuedPublicFunctionCalls = [];
|
|
56
|
-
this.publicTeardownFunctionCall = PublicExecutionRequest.empty();
|
|
14
|
+
*/ export class ClientExecutionContext extends ViewDataOracle {
|
|
15
|
+
argsHash;
|
|
16
|
+
txContext;
|
|
17
|
+
callContext;
|
|
18
|
+
historicalHeader;
|
|
19
|
+
executionCache;
|
|
20
|
+
noteCache;
|
|
21
|
+
node;
|
|
22
|
+
provider;
|
|
23
|
+
sideEffectCounter;
|
|
24
|
+
/**
|
|
25
|
+
* New notes created during this execution.
|
|
26
|
+
* It's possible that a note in this list has been nullified (in the same or other executions) and doesn't exist in the ExecutionNoteCache and the final proof data.
|
|
27
|
+
* But we still include those notes in the execution result because their commitments are still in the public inputs of this execution.
|
|
28
|
+
* This information is only for references (currently used for tests), and is not used for any sort of constrains.
|
|
29
|
+
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
30
|
+
*/ newNotes;
|
|
31
|
+
/**
|
|
32
|
+
* Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
|
|
33
|
+
* The mapping maps from the unique siloed note hash to the index for notes created in private executions.
|
|
34
|
+
* It maps from siloed note hash to the index for notes created by public functions.
|
|
35
|
+
*
|
|
36
|
+
* They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
|
|
37
|
+
* because these notes are meant to be maintained on a per-call basis
|
|
38
|
+
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
39
|
+
*/ noteHashLeafIndexMap;
|
|
40
|
+
noteHashNullifierCounterMap;
|
|
41
|
+
contractClassLogs;
|
|
42
|
+
nestedExecutions;
|
|
43
|
+
enqueuedPublicFunctionCalls;
|
|
44
|
+
publicTeardownFunctionCall;
|
|
45
|
+
constructor(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ historicalHeader, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, executionCache, noteCache, db, node, provider, sideEffectCounter = 0, log = createLogger('simulator:client_execution_context'), scopes){
|
|
46
|
+
super(callContext.contractAddress, authWitnesses, db, node, log, scopes), this.argsHash = argsHash, this.txContext = txContext, this.callContext = callContext, this.historicalHeader = historicalHeader, this.executionCache = executionCache, this.noteCache = noteCache, this.node = node, this.provider = provider, this.sideEffectCounter = sideEffectCounter, this.newNotes = [], this.noteHashLeafIndexMap = new Map(), this.noteHashNullifierCounterMap = new Map(), this.contractClassLogs = [], this.nestedExecutions = [], this.enqueuedPublicFunctionCalls = [], this.publicTeardownFunctionCall = PublicExecutionRequest.empty();
|
|
57
47
|
}
|
|
58
48
|
// We still need this function until we can get user-defined ordering of structs for fn arguments
|
|
59
49
|
// TODO When that is sorted out on noir side, we can use instead the utilities in serialize.ts
|
|
60
50
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
getInitialWitness(abi) {
|
|
51
|
+
* Writes the function inputs to the initial witness.
|
|
52
|
+
* @param abi - The function ABI.
|
|
53
|
+
* @returns The initial witness.
|
|
54
|
+
*/ getInitialWitness(abi) {
|
|
66
55
|
const argumentsSize = countArgumentsSize(abi);
|
|
67
56
|
const args = this.executionCache.getPreimage(this.argsHash);
|
|
68
57
|
if (args.length !== argumentsSize) {
|
|
@@ -73,188 +62,192 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
73
62
|
if (privateContextInputsAsFields.length !== PRIVATE_CONTEXT_INPUTS_LENGTH) {
|
|
74
63
|
throw new Error('Invalid private context inputs size');
|
|
75
64
|
}
|
|
76
|
-
const fields = [
|
|
65
|
+
const fields = [
|
|
66
|
+
...privateContextInputsAsFields,
|
|
67
|
+
...args
|
|
68
|
+
];
|
|
77
69
|
return toACVMWitness(0, fields);
|
|
78
70
|
}
|
|
79
71
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
getNoteHashLeafIndexMap() {
|
|
72
|
+
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
73
|
+
* regarding which note hash each settled read request corresponds to.
|
|
74
|
+
*/ getNoteHashLeafIndexMap() {
|
|
84
75
|
return this.noteHashLeafIndexMap;
|
|
85
76
|
}
|
|
86
77
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
getNewNotes() {
|
|
78
|
+
* Get the data for the newly created notes.
|
|
79
|
+
*/ getNewNotes() {
|
|
90
80
|
return this.newNotes;
|
|
91
81
|
}
|
|
92
82
|
getNoteHashNullifierCounterMap() {
|
|
93
83
|
return this.noteHashNullifierCounterMap;
|
|
94
84
|
}
|
|
95
85
|
/**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
getContractClassLogs() {
|
|
86
|
+
* Return the contract class logs emitted during this execution.
|
|
87
|
+
*/ getContractClassLogs() {
|
|
99
88
|
return this.contractClassLogs;
|
|
100
89
|
}
|
|
101
90
|
/**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
getNestedExecutions() {
|
|
91
|
+
* Return the nested execution results during this execution.
|
|
92
|
+
*/ getNestedExecutions() {
|
|
105
93
|
return this.nestedExecutions;
|
|
106
94
|
}
|
|
107
95
|
/**
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
getEnqueuedPublicFunctionCalls() {
|
|
96
|
+
* Return the enqueued public function calls during this execution.
|
|
97
|
+
*/ getEnqueuedPublicFunctionCalls() {
|
|
111
98
|
return this.enqueuedPublicFunctionCalls;
|
|
112
99
|
}
|
|
113
100
|
/**
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
getPublicTeardownFunctionCall() {
|
|
101
|
+
* Return the public teardown function call set during this execution.
|
|
102
|
+
*/ getPublicTeardownFunctionCall() {
|
|
117
103
|
return this.publicTeardownFunctionCall;
|
|
118
104
|
}
|
|
119
105
|
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
storeInExecutionCache(values) {
|
|
106
|
+
* Store values in the execution cache.
|
|
107
|
+
* @param values - Values to store.
|
|
108
|
+
* @returns The hash of the values.
|
|
109
|
+
*/ storeInExecutionCache(values) {
|
|
125
110
|
return this.executionCache.store(values);
|
|
126
111
|
}
|
|
127
112
|
/**
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
loadFromExecutionCache(hash) {
|
|
113
|
+
* Gets values from the execution cache.
|
|
114
|
+
* @param hash - Hash of the values.
|
|
115
|
+
* @returns The values.
|
|
116
|
+
*/ loadFromExecutionCache(hash) {
|
|
133
117
|
return Promise.resolve(this.executionCache.getPreimage(hash));
|
|
134
118
|
}
|
|
135
119
|
/**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
async getNotes(storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
120
|
+
* Gets some notes for a storage slot.
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
* Check for pending notes with matching slot.
|
|
124
|
+
* Real notes coming from DB will have a leafIndex which
|
|
125
|
+
* represents their index in the note hash tree.
|
|
126
|
+
*
|
|
127
|
+
* @param storageSlot - The storage slot.
|
|
128
|
+
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
129
|
+
* @param selectBy - An array of indices of the fields to selects.
|
|
130
|
+
* @param selectValues - The values to match.
|
|
131
|
+
* @param selectComparators - The comparators to match by.
|
|
132
|
+
* @param sortBy - An array of indices of the fields to sort.
|
|
133
|
+
* @param sortOrder - The order of the corresponding index in sortBy. (1: DESC, 2: ASC, 0: Do nothing)
|
|
134
|
+
* @param limit - The number of notes to retrieve per query.
|
|
135
|
+
* @param offset - The starting index for pagination.
|
|
136
|
+
* @param status - The status of notes to fetch.
|
|
137
|
+
* @returns Array of note data.
|
|
138
|
+
*/ async getNotes(storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
156
139
|
// Nullified pending notes are already removed from the list.
|
|
157
140
|
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
158
141
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
159
142
|
const dbNotes = await this.db.getNotes(this.callContext.contractAddress, storageSlot, status, this.scopes);
|
|
160
|
-
const dbNotesFiltered = dbNotes.filter(n
|
|
161
|
-
const notes = pickNotes([
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
143
|
+
const dbNotesFiltered = dbNotes.filter((n)=>!pendingNullifiers.has(n.siloedNullifier.value));
|
|
144
|
+
const notes = pickNotes([
|
|
145
|
+
...dbNotesFiltered,
|
|
146
|
+
...pendingNotes
|
|
147
|
+
], {
|
|
148
|
+
selects: selectByIndexes.slice(0, numSelects).map((index, i)=>({
|
|
149
|
+
selector: {
|
|
150
|
+
index,
|
|
151
|
+
offset: selectByOffsets[i],
|
|
152
|
+
length: selectByLengths[i]
|
|
153
|
+
},
|
|
154
|
+
value: selectValues[i],
|
|
155
|
+
comparator: selectComparators[i]
|
|
156
|
+
})),
|
|
157
|
+
sorts: sortByIndexes.map((index, i)=>({
|
|
158
|
+
selector: {
|
|
159
|
+
index,
|
|
160
|
+
offset: sortByOffsets[i],
|
|
161
|
+
length: sortByLengths[i]
|
|
162
|
+
},
|
|
163
|
+
order: sortOrder[i]
|
|
164
|
+
})),
|
|
171
165
|
limit,
|
|
172
|
-
offset
|
|
166
|
+
offset
|
|
173
167
|
});
|
|
174
|
-
this.log.debug(`Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
|
|
175
|
-
|
|
176
|
-
.join(', ')}`);
|
|
177
|
-
const noteHashesAndIndexes = await Promise.all(notes.map(async (n) => {
|
|
168
|
+
this.log.debug(`Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes.map((n)=>`${n.nonce.toString()}:[${n.note.items.map((i)=>i.toString()).join(',')}]`).join(', ')}`);
|
|
169
|
+
const noteHashesAndIndexes = await Promise.all(notes.map(async (n)=>{
|
|
178
170
|
if (n.index !== undefined) {
|
|
179
171
|
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
180
172
|
const uniqueNoteHash = await computeUniqueNoteHash(n.nonce, siloedNoteHash);
|
|
181
|
-
return {
|
|
173
|
+
return {
|
|
174
|
+
hash: uniqueNoteHash,
|
|
175
|
+
index: n.index
|
|
176
|
+
};
|
|
182
177
|
}
|
|
183
178
|
}));
|
|
184
|
-
noteHashesAndIndexes
|
|
185
|
-
.filter(n => n !== undefined)
|
|
186
|
-
.forEach(n => {
|
|
179
|
+
noteHashesAndIndexes.filter((n)=>n !== undefined).forEach((n)=>{
|
|
187
180
|
this.noteHashLeafIndexMap.set(n.hash.toBigInt(), n.index);
|
|
188
181
|
});
|
|
189
182
|
return notes;
|
|
190
183
|
}
|
|
191
184
|
/**
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
notifyCreatedNote(storageSlot, noteTypeId, noteItems, noteHash, counter) {
|
|
185
|
+
* Keep track of the new note created during execution.
|
|
186
|
+
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
187
|
+
* @param contractAddress - The contract address.
|
|
188
|
+
* @param storageSlot - The storage slot.
|
|
189
|
+
* @param noteTypeId - The type ID of the note.
|
|
190
|
+
* @param noteItems - The items to be included in a Note.
|
|
191
|
+
* @param noteHash - A hash of the new note.
|
|
192
|
+
* @returns
|
|
193
|
+
*/ notifyCreatedNote(storageSlot, noteTypeId, noteItems, noteHash, counter) {
|
|
202
194
|
const note = new Note(noteItems);
|
|
203
195
|
this.noteCache.addNewNote({
|
|
204
196
|
contractAddress: this.callContext.contractAddress,
|
|
205
197
|
storageSlot,
|
|
206
|
-
nonce: Fr.ZERO,
|
|
198
|
+
nonce: Fr.ZERO,
|
|
207
199
|
note,
|
|
208
|
-
siloedNullifier: undefined,
|
|
209
|
-
noteHash
|
|
200
|
+
siloedNullifier: undefined,
|
|
201
|
+
noteHash
|
|
210
202
|
}, counter);
|
|
211
203
|
this.newNotes.push(new NoteAndSlot(note, storageSlot, noteTypeId));
|
|
212
204
|
}
|
|
213
205
|
/**
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
async notifyNullifiedNote(innerNullifier, noteHash, counter) {
|
|
206
|
+
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
207
|
+
* within the current transaction/execution.
|
|
208
|
+
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
209
|
+
* @param noteHash - A hash of the new note.
|
|
210
|
+
*/ async notifyNullifiedNote(innerNullifier, noteHash, counter) {
|
|
220
211
|
const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(this.callContext.contractAddress, innerNullifier, noteHash);
|
|
221
212
|
if (nullifiedNoteHashCounter !== undefined) {
|
|
222
213
|
this.noteHashNullifierCounterMap.set(nullifiedNoteHashCounter, counter);
|
|
223
214
|
}
|
|
224
215
|
}
|
|
225
216
|
/**
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
notifyCreatedNullifier(innerNullifier) {
|
|
217
|
+
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
218
|
+
* within the current transaction/execution.
|
|
219
|
+
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
220
|
+
* @param noteHash - A hash of the new note.
|
|
221
|
+
*/ notifyCreatedNullifier(innerNullifier) {
|
|
232
222
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
233
223
|
}
|
|
234
224
|
/**
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
emitContractClassLog(log, counter) {
|
|
225
|
+
* Emit a contract class unencrypted log.
|
|
226
|
+
* This fn exists because sha hashing the preimage
|
|
227
|
+
* is too large to compile (16,200 fields, 518,400 bytes) => the oracle hashes it.
|
|
228
|
+
* See private_context.nr
|
|
229
|
+
* TODO(#8945): Contract class logs are currently sha hashes. When these are fields, delete this.
|
|
230
|
+
* @param log - The unencrypted log to be emitted.
|
|
231
|
+
*/ emitContractClassLog(log, counter) {
|
|
243
232
|
this.contractClassLogs.push(new CountedContractClassLog(log, counter));
|
|
244
233
|
const text = log.toHumanReadable();
|
|
245
234
|
this.log.verbose(`Emitted log from ContractClassRegisterer: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`);
|
|
246
235
|
return Fr.fromBuffer(log.hash());
|
|
247
236
|
}
|
|
237
|
+
#checkValidStaticCall(childExecutionResult) {
|
|
238
|
+
if (childExecutionResult.publicInputs.noteHashes.some((item)=>!item.isEmpty()) || childExecutionResult.publicInputs.nullifiers.some((item)=>!item.isEmpty()) || childExecutionResult.publicInputs.l2ToL1Msgs.some((item)=>!item.isEmpty()) || childExecutionResult.publicInputs.privateLogs.some((item)=>!item.isEmpty()) || childExecutionResult.publicInputs.contractClassLogsHashes.some((item)=>!item.isEmpty())) {
|
|
239
|
+
throw new Error(`Static call cannot update the state, emit L2->L1 messages or generate logs`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
248
242
|
/**
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
async callPrivateFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
243
|
+
* Calls a private function as a nested execution.
|
|
244
|
+
* @param targetContractAddress - The address of the contract to call.
|
|
245
|
+
* @param functionSelector - The function selector of the function to call.
|
|
246
|
+
* @param argsHash - The arguments hash to pass to the function.
|
|
247
|
+
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
248
|
+
* @param isStaticCall - Whether the call is a static call.
|
|
249
|
+
* @returns The execution result.
|
|
250
|
+
*/ async callPrivateFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
258
251
|
this.log.debug(`Calling private function ${this.contractAddress}:${functionSelector} from ${this.callContext.contractAddress}`);
|
|
259
252
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
260
253
|
const targetArtifact = await this.db.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
@@ -263,25 +256,24 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
263
256
|
const context = new ClientExecutionContext(argsHash, derivedTxContext, derivedCallContext, this.historicalHeader, this.authWitnesses, this.executionCache, this.noteCache, this.db, this.node, this.provider, sideEffectCounter, this.log, this.scopes);
|
|
264
257
|
const childExecutionResult = await executePrivateFunction(this.provider, context, targetArtifact, targetContractAddress, functionSelector);
|
|
265
258
|
if (isStaticCall) {
|
|
266
|
-
|
|
259
|
+
this.#checkValidStaticCall(childExecutionResult);
|
|
267
260
|
}
|
|
268
261
|
this.nestedExecutions.push(childExecutionResult);
|
|
269
262
|
const publicInputs = childExecutionResult.publicInputs;
|
|
270
263
|
return {
|
|
271
264
|
endSideEffectCounter: publicInputs.endSideEffectCounter,
|
|
272
|
-
returnsHash: publicInputs.returnsHash
|
|
265
|
+
returnsHash: publicInputs.returnsHash
|
|
273
266
|
};
|
|
274
267
|
}
|
|
275
268
|
/**
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
async createPublicExecutionRequest(callType, targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
269
|
+
* Creates a PublicExecutionRequest object representing the request to call a public function.
|
|
270
|
+
* @param targetContractAddress - The address of the contract to call.
|
|
271
|
+
* @param functionSelector - The function selector of the function to call.
|
|
272
|
+
* @param argsHash - The arguments hash to pass to the function.
|
|
273
|
+
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
274
|
+
* @param isStaticCall - Whether the call is a static call.
|
|
275
|
+
* @returns The public call stack item with the request information.
|
|
276
|
+
*/ async createPublicExecutionRequest(callType, targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
285
277
|
const targetArtifact = await this.db.getFunctionArtifact(targetContractAddress, functionSelector);
|
|
286
278
|
const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
|
|
287
279
|
const args = this.executionCache.getPreimage(argsHash);
|
|
@@ -290,31 +282,29 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
290
282
|
isStaticCall,
|
|
291
283
|
functionSelector,
|
|
292
284
|
targetContractAddress,
|
|
293
|
-
callType
|
|
285
|
+
callType
|
|
294
286
|
});
|
|
295
287
|
const request = PublicExecutionRequest.from({
|
|
296
288
|
args,
|
|
297
|
-
callContext: derivedCallContext
|
|
289
|
+
callContext: derivedCallContext
|
|
298
290
|
});
|
|
299
291
|
if (callType === 'enqueued') {
|
|
300
292
|
this.enqueuedPublicFunctionCalls.push(new CountedPublicExecutionRequest(request, sideEffectCounter));
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
293
|
+
} else {
|
|
303
294
|
this.publicTeardownFunctionCall = request;
|
|
304
295
|
}
|
|
305
296
|
}
|
|
306
297
|
/**
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
async enqueuePublicFunctionCall(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
298
|
+
* Creates and enqueues a PublicExecutionRequest object representing the request to call a public function. No function
|
|
299
|
+
* is actually called, since that must happen on the sequencer side. All the fields related to the result
|
|
300
|
+
* of the execution are empty.
|
|
301
|
+
* @param targetContractAddress - The address of the contract to call.
|
|
302
|
+
* @param functionSelector - The function selector of the function to call.
|
|
303
|
+
* @param argsHash - The arguments hash to pass to the function.
|
|
304
|
+
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
305
|
+
* @param isStaticCall - Whether the call is a static call.
|
|
306
|
+
* @returns The public call stack item with the request information.
|
|
307
|
+
*/ async enqueuePublicFunctionCall(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
318
308
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.
|
|
319
309
|
// WARNING: This is insecure and should be temporary!
|
|
320
310
|
// The oracle re-hashes the arguments and returns a new args_hash.
|
|
@@ -323,23 +313,22 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
323
313
|
// b) this is only temporary.
|
|
324
314
|
const newArgsHash = await this.executionCache.store([
|
|
325
315
|
functionSelector.toField(),
|
|
326
|
-
...this.executionCache.getPreimage(argsHash)
|
|
316
|
+
...this.executionCache.getPreimage(argsHash)
|
|
327
317
|
]);
|
|
328
318
|
await this.createPublicExecutionRequest('enqueued', targetContractAddress, FunctionSelector.fromField(new Fr(PUBLIC_DISPATCH_SELECTOR)), newArgsHash, sideEffectCounter, isStaticCall);
|
|
329
319
|
return newArgsHash;
|
|
330
320
|
}
|
|
331
321
|
/**
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
async setPublicTeardownFunctionCall(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
322
|
+
* Creates a PublicExecutionRequest and sets it as the public teardown function. No function
|
|
323
|
+
* is actually called, since that must happen on the sequencer side. All the fields related to the result
|
|
324
|
+
* of the execution are empty.
|
|
325
|
+
* @param targetContractAddress - The address of the contract to call.
|
|
326
|
+
* @param functionSelector - The function selector of the function to call.
|
|
327
|
+
* @param argsHash - The arguments hash to pass to the function.
|
|
328
|
+
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
329
|
+
* @param isStaticCall - Whether the call is a static call.
|
|
330
|
+
* @returns The public call stack item with the request information.
|
|
331
|
+
*/ async setPublicTeardownFunctionCall(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
343
332
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.
|
|
344
333
|
// WARNING: This is insecure and should be temporary!
|
|
345
334
|
// The oracle rehashes the arguments and returns a new args_hash.
|
|
@@ -348,7 +337,7 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
348
337
|
// b) this is only temporary.
|
|
349
338
|
const newArgsHash = await this.executionCache.store([
|
|
350
339
|
functionSelector.toField(),
|
|
351
|
-
...this.executionCache.getPreimage(argsHash)
|
|
340
|
+
...this.executionCache.getPreimage(argsHash)
|
|
352
341
|
]);
|
|
353
342
|
await this.createPublicExecutionRequest('teardown', targetContractAddress, FunctionSelector.fromField(new Fr(PUBLIC_DISPATCH_SELECTOR)), newArgsHash, sideEffectCounter, isStaticCall);
|
|
354
343
|
return newArgsHash;
|
|
@@ -357,13 +346,12 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
357
346
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
358
347
|
}
|
|
359
348
|
/**
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
async deriveCallContext(targetContractAddress, targetArtifact, isStaticCall = false) {
|
|
349
|
+
* Derives the call context for a nested execution.
|
|
350
|
+
* @param targetContractAddress - The address of the contract being called.
|
|
351
|
+
* @param targetArtifact - The artifact of the function being called.
|
|
352
|
+
* @param isStaticCall - Whether the call is a static call.
|
|
353
|
+
* @returns The derived call context.
|
|
354
|
+
*/ async deriveCallContext(targetContractAddress, targetArtifact, isStaticCall = false) {
|
|
367
355
|
return new CallContext(this.contractAddress, targetContractAddress, await FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters), isStaticCall);
|
|
368
356
|
}
|
|
369
357
|
getDebugFunctionName() {
|
|
@@ -374,19 +362,9 @@ export class ClientExecutionContext extends ViewDataOracle {
|
|
|
374
362
|
}
|
|
375
363
|
async syncNotes() {
|
|
376
364
|
const taggedLogsByRecipient = await this.db.syncTaggedLogs(this.contractAddress, this.historicalHeader.globalVariables.blockNumber.toNumber(), this.scopes);
|
|
377
|
-
for (const [recipient, taggedLogs] of taggedLogsByRecipient.entries())
|
|
365
|
+
for (const [recipient, taggedLogs] of taggedLogsByRecipient.entries()){
|
|
378
366
|
await this.db.processTaggedLogs(taggedLogs, AztecAddress.fromString(recipient));
|
|
379
367
|
}
|
|
380
368
|
await this.db.removeNullifiedNotes(this.contractAddress);
|
|
381
369
|
}
|
|
382
370
|
}
|
|
383
|
-
_ClientExecutionContext_instances = new WeakSet(), _ClientExecutionContext_checkValidStaticCall = function _ClientExecutionContext_checkValidStaticCall(childExecutionResult) {
|
|
384
|
-
if (childExecutionResult.publicInputs.noteHashes.some(item => !item.isEmpty()) ||
|
|
385
|
-
childExecutionResult.publicInputs.nullifiers.some(item => !item.isEmpty()) ||
|
|
386
|
-
childExecutionResult.publicInputs.l2ToL1Msgs.some(item => !item.isEmpty()) ||
|
|
387
|
-
childExecutionResult.publicInputs.privateLogs.some(item => !item.isEmpty()) ||
|
|
388
|
-
childExecutionResult.publicInputs.contractClassLogsHashes.some(item => !item.isEmpty())) {
|
|
389
|
-
throw new Error(`Static call cannot update the state, emit L2->L1 messages or generate logs`);
|
|
390
|
-
}
|
|
391
|
-
};
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X2V4ZWN1dGlvbl9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9jbGllbnRfZXhlY3V0aW9uX2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osV0FBVyxFQUdYLHNCQUFzQixHQUV2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFFTCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsb0JBQW9CLEdBRXJCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBOEQsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsY0FBYztJQXlCeEQsWUFDbUIsUUFBWSxFQUNaLFNBQW9CLEVBQ3BCLFdBQXdCO0lBQ3pDLHFIQUFxSDtJQUNsRyxnQkFBNkI7SUFDaEQseUVBQXlFO0lBQ3pFLGFBQTRCLEVBQ1gsY0FBaUMsRUFDakMsU0FBNkIs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
|
package/dest/client/db_oracle.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Error thrown when a contract is not found in the database.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
constructor(contractAddress) {
|
|
3
|
+
*/ export class ContractNotFoundError extends Error {
|
|
4
|
+
constructor(contractAddress){
|
|
6
5
|
super(`DB has no contract with address ${contractAddress}`);
|
|
7
6
|
}
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* Error thrown when a contract class is not found in the database.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
constructor(contractClassId) {
|
|
10
|
+
*/ export class ContractClassNotFoundError extends Error {
|
|
11
|
+
constructor(contractClassId){
|
|
14
12
|
super(`DB has no contract class with id ${contractClassId}`);
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJfb3JhY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9kYl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLEtBQUs7SUFDOUMsWUFBWSxlQUF1QjtRQUNqQyxLQUFLLENBQUMsbUNBQW1DLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsS0FBSztJQUNuRCxZQUFZLGVBQXVCO1FBQ2pDLEtBQUssQ0FBQyxvQ0FBb0MsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YifQ==
|