@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,6 @@
|
|
|
1
1
|
export class SideEffectLimitReachedError extends Error {
|
|
2
|
-
constructor(sideEffectType, limit)
|
|
2
|
+
constructor(sideEffectType, limit){
|
|
3
3
|
super(`Reached the limit (${limit}) on number of '${sideEffectType}' per tx`);
|
|
4
4
|
this.name = 'SideEffectLimitReachedError';
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9zaWRlX2VmZmVjdF9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQsWUFBWSxjQUFzQixFQUFFLEtBQWE7UUFDL0MsS0FBSyxDQUFDLHNCQUFzQixLQUFLLG1CQUFtQixjQUFjLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxJQUFJLEdBQUcsNkJBQTZCLENBQUM7SUFDNUMsQ0FBQztDQUNGIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AvmAccumulatedData, AvmAppendTreeHint, AvmCircuitPublicInputs, AvmContractBytecodeHints, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmNullifierReadTreeHint, AvmNullifierWriteTreeHint, AvmPublicDataReadTreeHint, AvmPublicDataWriteTreeHint, EthAddress, L1_TO_L2_MSG_TREE_HEIGHT, L2ToL1Message, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_PUBLIC_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, NULLIFIER_TREE_HEIGHT, NoteHash, Nullifier, NullifierLeafPreimage, PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PUBLIC_DATA_TREE_HEIGHT, PUBLIC_LOG_DATA_SIZE_IN_FIELDS, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicDataTreeLeafPreimage, PublicDataUpdateRequest, PublicDataWrite, PublicLog, ScopedL2ToL1Message, SerializableContractInstance
|
|
1
|
+
import { AvmAccumulatedData, AvmAppendTreeHint, AvmCircuitPublicInputs, AvmContractBytecodeHints, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmNullifierReadTreeHint, AvmNullifierWriteTreeHint, AvmPublicDataReadTreeHint, AvmPublicDataWriteTreeHint, EthAddress, L1_TO_L2_MSG_TREE_HEIGHT, L2ToL1Message, MAX_ENQUEUED_CALLS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_PUBLIC_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, NULLIFIER_TREE_HEIGHT, NoteHash, Nullifier, NullifierLeafPreimage, PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PUBLIC_DATA_TREE_HEIGHT, PUBLIC_LOG_DATA_SIZE_IN_FIELDS, PrivateToAvmAccumulatedData, PrivateToAvmAccumulatedDataArrayLengths, PublicCallRequest, PublicDataTreeLeafPreimage, PublicDataUpdateRequest, PublicDataWrite, PublicLog, ScopedL2ToL1Message, SerializableContractInstance } from '@aztec/circuits.js';
|
|
2
2
|
import { computePublicDataTreeLeafSlot } from '@aztec/circuits.js/hash';
|
|
3
3
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -7,12 +7,18 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
7
7
|
import { strict as assert } from 'assert';
|
|
8
8
|
import { SideEffectLimitReachedError } from './side_effect_errors.js';
|
|
9
9
|
import { UniqueClassIds } from './unique_class_ids.js';
|
|
10
|
-
const emptyPublicDataPath = ()
|
|
11
|
-
const emptyNoteHashPath = ()
|
|
12
|
-
const emptyNullifierPath = ()
|
|
13
|
-
const emptyL1ToL2MessagePath = ()
|
|
10
|
+
const emptyPublicDataPath = ()=>new Array(PUBLIC_DATA_TREE_HEIGHT).fill(Fr.zero());
|
|
11
|
+
const emptyNoteHashPath = ()=>new Array(NOTE_HASH_TREE_HEIGHT).fill(Fr.zero());
|
|
12
|
+
const emptyNullifierPath = ()=>new Array(NULLIFIER_TREE_HEIGHT).fill(Fr.zero());
|
|
13
|
+
const emptyL1ToL2MessagePath = ()=>new Array(L1_TO_L2_MSG_TREE_HEIGHT).fill(Fr.zero());
|
|
14
14
|
export class SideEffectArrayLengths {
|
|
15
|
-
|
|
15
|
+
publicDataWrites;
|
|
16
|
+
protocolPublicDataWrites;
|
|
17
|
+
noteHashes;
|
|
18
|
+
nullifiers;
|
|
19
|
+
l2ToL1Msgs;
|
|
20
|
+
publicLogs;
|
|
21
|
+
constructor(publicDataWrites, protocolPublicDataWrites, noteHashes, nullifiers, l2ToL1Msgs, publicLogs){
|
|
16
22
|
this.publicDataWrites = publicDataWrites;
|
|
17
23
|
this.protocolPublicDataWrites = protocolPublicDataWrites;
|
|
18
24
|
this.noteHashes = noteHashes;
|
|
@@ -26,17 +32,25 @@ export class SideEffectArrayLengths {
|
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
28
34
|
* Trace side effects for an enqueued public call's execution.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
+
*/ export class SideEffectTrace {
|
|
36
|
+
startSideEffectCounter;
|
|
37
|
+
previousSideEffectArrayLengths;
|
|
38
|
+
gotBytecodeFromClassIds;
|
|
39
|
+
log;
|
|
40
|
+
/** The side effect counter increments with every call to the trace. */ sideEffectCounter;
|
|
41
|
+
enqueuedCalls;
|
|
42
|
+
publicDataWrites;
|
|
43
|
+
protocolPublicDataWritesLength;
|
|
44
|
+
userPublicDataWritesLength;
|
|
45
|
+
noteHashes;
|
|
46
|
+
nullifiers;
|
|
47
|
+
l2ToL1Messages;
|
|
48
|
+
publicLogs;
|
|
49
|
+
avmCircuitHints;
|
|
50
|
+
/** Make sure a forked trace is never merged twice. */ alreadyMergedIntoParent;
|
|
51
|
+
constructor(/** The counter of this trace's first side effect. */ startSideEffectCounter = 0, /** Track parent's (or previous kernel's) lengths so the AVM can properly enforce TX-wide limits,
|
|
35
52
|
* otherwise the public kernel can fail to prove because TX limits are breached.
|
|
36
|
-
*/
|
|
37
|
-
previousSideEffectArrayLengths = SideEffectArrayLengths.empty(),
|
|
38
|
-
/** We need to track the set of class IDs used for bytecode retrieval to deduplicate and enforce limits. */
|
|
39
|
-
gotBytecodeFromClassIds = new UniqueClassIds()) {
|
|
53
|
+
*/ previousSideEffectArrayLengths = SideEffectArrayLengths.empty(), /** We need to track the set of class IDs used for bytecode retrieval to deduplicate and enforce limits. */ gotBytecodeFromClassIds = new UniqueClassIds()){
|
|
40
54
|
this.startSideEffectCounter = startSideEffectCounter;
|
|
41
55
|
this.previousSideEffectArrayLengths = previousSideEffectArrayLengths;
|
|
42
56
|
this.gotBytecodeFromClassIds = gotBytecodeFromClassIds;
|
|
@@ -49,7 +63,6 @@ export class SideEffectTrace {
|
|
|
49
63
|
this.nullifiers = [];
|
|
50
64
|
this.l2ToL1Messages = [];
|
|
51
65
|
this.publicLogs = [];
|
|
52
|
-
/** Make sure a forked trace is never merged twice. */
|
|
53
66
|
this.alreadyMergedIntoParent = false;
|
|
54
67
|
this.log.debug(`Creating trace instance with startSideEffectCounter: ${startSideEffectCounter}`);
|
|
55
68
|
this.sideEffectCounter = startSideEffectCounter;
|
|
@@ -79,7 +92,7 @@ export class SideEffectTrace {
|
|
|
79
92
|
this.avmCircuitHints.contractInstances.items.push(...forkedTrace.avmCircuitHints.contractInstances.items);
|
|
80
93
|
// merge in contract bytecode hints
|
|
81
94
|
// UniqueClassIds should prevent duplication
|
|
82
|
-
for (const [contractClassId, bytecodeHint] of forkedTrace.avmCircuitHints.contractBytecodeHints)
|
|
95
|
+
for (const [contractClassId, bytecodeHint] of forkedTrace.avmCircuitHints.contractBytecodeHints){
|
|
83
96
|
assert(!this.avmCircuitHints.contractBytecodeHints.has(contractClassId), 'Bug preventing duplication of contract bytecode hints');
|
|
84
97
|
this.avmCircuitHints.contractBytecodeHints.set(contractClassId, bytecodeHint);
|
|
85
98
|
}
|
|
@@ -107,15 +120,12 @@ export class SideEffectTrace {
|
|
|
107
120
|
}
|
|
108
121
|
async tracePublicStorageWrite(contractAddress, slot, value, protocolWrite, lowLeafPreimage = PublicDataTreeLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyPublicDataPath(), newLeafPreimage = PublicDataTreeLeafPreimage.empty(), insertionPath = emptyPublicDataPath()) {
|
|
109
122
|
if (protocolWrite) {
|
|
110
|
-
if (this.protocolPublicDataWritesLength + this.previousSideEffectArrayLengths.protocolPublicDataWrites >=
|
|
111
|
-
PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
123
|
+
if (this.protocolPublicDataWritesLength + this.previousSideEffectArrayLengths.protocolPublicDataWrites >= PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
112
124
|
throw new SideEffectLimitReachedError('protocol public data (contract storage) write', PROTOCOL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
113
125
|
}
|
|
114
126
|
this.protocolPublicDataWritesLength++;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (this.userPublicDataWritesLength + this.previousSideEffectArrayLengths.publicDataWrites >=
|
|
118
|
-
MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
127
|
+
} else {
|
|
128
|
+
if (this.userPublicDataWritesLength + this.previousSideEffectArrayLengths.publicDataWrites >= MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX) {
|
|
119
129
|
throw new SideEffectLimitReachedError('public data (contract storage) write', MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
120
130
|
}
|
|
121
131
|
this.userPublicDataWritesLength++;
|
|
@@ -132,7 +142,7 @@ export class SideEffectTrace {
|
|
|
132
142
|
traceNoteHashCheck(_contractAddress, noteHash, leafIndex, _exists, path = emptyNoteHashPath()) {
|
|
133
143
|
// New Hinting
|
|
134
144
|
this.avmCircuitHints.noteHashReads.items.push(new AvmAppendTreeHint(leafIndex, noteHash, path));
|
|
135
|
-
|
|
145
|
+
// NOTE: counter does not increment for note hash checks (because it doesn't rely on pending note hashes)
|
|
136
146
|
}
|
|
137
147
|
traceNewNoteHash(noteHash, leafIndex = Fr.zero(), path = emptyNoteHashPath()) {
|
|
138
148
|
if (this.noteHashes.length + this.previousSideEffectArrayLengths.noteHashes >= MAX_NOTE_HASHES_PER_TX) {
|
|
@@ -195,7 +205,7 @@ export class SideEffectTrace {
|
|
|
195
205
|
traceGetBytecode(contractAddress, exists, bytecode = Buffer.alloc(0), contractInstance = SerializableContractInstance.default(), contractClass = {
|
|
196
206
|
artifactHash: Fr.zero(),
|
|
197
207
|
privateFunctionsRoot: Fr.zero(),
|
|
198
|
-
publicBytecodeCommitment: Fr.zero()
|
|
208
|
+
publicBytecodeCommitment: Fr.zero()
|
|
199
209
|
}, lowLeafPreimage = NullifierLeafPreimage.empty(), lowLeafIndex = Fr.zero(), lowLeafPath = emptyNullifierPath()) {
|
|
200
210
|
// FIXME: The way we are hinting contract bytecodes is fundamentally broken.
|
|
201
211
|
// We are mapping contract class ID to a bytecode hint
|
|
@@ -243,16 +253,9 @@ export class SideEffectTrace {
|
|
|
243
253
|
this.gotBytecodeFromClassIds.add(contractInstance.contractClassId.toString());
|
|
244
254
|
}
|
|
245
255
|
/**
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
traceEnqueuedCall(
|
|
250
|
-
/** The call request from private that enqueued this call. */
|
|
251
|
-
publicCallRequest,
|
|
252
|
-
/** The call's calldata */
|
|
253
|
-
calldata,
|
|
254
|
-
/** Did the call revert? */
|
|
255
|
-
_reverted) {
|
|
256
|
+
* Trace an enqueued call.
|
|
257
|
+
* Accept some results from a finished call's trace into this one.
|
|
258
|
+
*/ traceEnqueuedCall(/** The call request from private that enqueued this call. */ publicCallRequest, /** The call's calldata */ calldata, /** Did the call revert? */ _reverted) {
|
|
256
259
|
this.log.debug(`Tracing enqueued call`);
|
|
257
260
|
// TODO(4805): check if some threshold is reached for max enqueued or nested calls (to unique contracts?)
|
|
258
261
|
this.enqueuedCalls.push(publicCallRequest);
|
|
@@ -265,43 +268,14 @@ export class SideEffectTrace {
|
|
|
265
268
|
noteHashes: this.noteHashes,
|
|
266
269
|
nullifiers: this.nullifiers,
|
|
267
270
|
l2ToL1Msgs: this.l2ToL1Messages,
|
|
268
|
-
publicLogs: this.publicLogs
|
|
271
|
+
publicLogs: this.publicLogs
|
|
269
272
|
};
|
|
270
273
|
}
|
|
271
|
-
toAvmCircuitPublicInputs(
|
|
272
|
-
/** Globals. */
|
|
273
|
-
globalVariables,
|
|
274
|
-
/** Start tree snapshots. */
|
|
275
|
-
startTreeSnapshots,
|
|
276
|
-
/** Gas used at start of TX. */
|
|
277
|
-
startGasUsed,
|
|
278
|
-
/** How much gas was available for this public execution. */
|
|
279
|
-
gasLimits,
|
|
280
|
-
/** Address of the fee payer. */
|
|
281
|
-
feePayer,
|
|
282
|
-
/** Call requests for setup phase. */
|
|
283
|
-
publicSetupCallRequests,
|
|
284
|
-
/** Call requests for app logic phase. */
|
|
285
|
-
publicAppLogicCallRequests,
|
|
286
|
-
/** Call request for teardown phase. */
|
|
287
|
-
publicTeardownCallRequest,
|
|
288
|
-
/** End tree snapshots. */
|
|
289
|
-
endTreeSnapshots,
|
|
290
|
-
/**
|
|
274
|
+
toAvmCircuitPublicInputs(/** Globals. */ globalVariables, /** Start tree snapshots. */ startTreeSnapshots, /** Gas used at start of TX. */ startGasUsed, /** How much gas was available for this public execution. */ gasLimits, /** Address of the fee payer. */ feePayer, /** Call requests for setup phase. */ publicSetupCallRequests, /** Call requests for app logic phase. */ publicAppLogicCallRequests, /** Call request for teardown phase. */ publicTeardownCallRequest, /** End tree snapshots. */ endTreeSnapshots, /**
|
|
291
275
|
* Gas used by the whole transaction, assuming entire teardown limit is used.
|
|
292
276
|
* This is the gas used when computing transaction fee.
|
|
293
|
-
*/
|
|
294
|
-
|
|
295
|
-
/** Transaction fee. */
|
|
296
|
-
transactionFee,
|
|
297
|
-
/** The call's results */
|
|
298
|
-
reverted) {
|
|
299
|
-
return new AvmCircuitPublicInputs(globalVariables, startTreeSnapshots, startGasUsed, gasLimits, feePayer, padArrayEnd(publicSetupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), padArrayEnd(publicAppLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), publicTeardownCallRequest,
|
|
300
|
-
/*previousNonRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
301
|
-
/*previousRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(),
|
|
302
|
-
/*previousNonRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(),
|
|
303
|
-
/*previousRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(), endTreeSnapshots, endGasUsed,
|
|
304
|
-
/*accumulatedData=*/ this.getAvmAccumulatedData(), transactionFee, reverted);
|
|
277
|
+
*/ endGasUsed, /** Transaction fee. */ transactionFee, /** The call's results */ reverted) {
|
|
278
|
+
return new AvmCircuitPublicInputs(globalVariables, startTreeSnapshots, startGasUsed, gasLimits, feePayer, padArrayEnd(publicSetupCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), padArrayEnd(publicAppLogicCallRequests, PublicCallRequest.empty(), MAX_ENQUEUED_CALLS_PER_TX), publicTeardownCallRequest, /*previousNonRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(), /*previousRevertibleAccumulatedDataArrayLengths=*/ PrivateToAvmAccumulatedDataArrayLengths.empty(), /*previousNonRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(), /*previousRevertibleAccumulatedDataArray=*/ PrivateToAvmAccumulatedData.empty(), endTreeSnapshots, endGasUsed, /*accumulatedData=*/ this.getAvmAccumulatedData(), transactionFee, reverted);
|
|
305
279
|
}
|
|
306
280
|
getPublicLogs() {
|
|
307
281
|
return this.publicLogs;
|
|
@@ -310,7 +284,6 @@ export class SideEffectTrace {
|
|
|
310
284
|
return this.avmCircuitHints;
|
|
311
285
|
}
|
|
312
286
|
getAvmAccumulatedData() {
|
|
313
|
-
return new AvmAccumulatedData(padArrayEnd(this.noteHashes.map(n
|
|
287
|
+
return new AvmAccumulatedData(padArrayEnd(this.noteHashes.map((n)=>n.value), Fr.zero(), MAX_NOTE_HASHES_PER_TX), padArrayEnd(this.nullifiers.map((n)=>n.value), Fr.zero(), MAX_NULLIFIERS_PER_TX), padArrayEnd(this.l2ToL1Messages, ScopedL2ToL1Message.empty(), MAX_L2_TO_L1_MSGS_PER_TX), padArrayEnd(this.publicLogs, PublicLog.empty(), MAX_PUBLIC_LOGS_PER_TX), padArrayEnd(this.publicDataWrites.map((w)=>new PublicDataWrite(w.leafSlot, w.newValue)), PublicDataWrite.empty(), MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX));
|
|
314
288
|
}
|
|
315
289
|
}
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBRzFCLFVBQVUsRUFJVix3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQiw2Q0FBNkMsRUFDN0Msc0NBQXNDLEVBQ3RDLHNCQUFzQixFQUN0Qiw0Q0FBNEMsRUFDNUMscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixRQUFRLEVBQ1IsU0FBUyxFQUNULHFCQUFxQixFQUNyQiwyQ0FBMkMsRUFDM0MsdUJBQXVCLEVBQ3ZCLDhCQUE4QixFQUM5QiwyQkFBMkIsRUFDM0IsdUNBQXVDLEVBQ3ZDLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLDRCQUE0QixHQUU3QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxJQUFJLE1B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
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2VfaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9zaWRlX2VmZmVjdF90cmFjZV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
1
|
+
export { };
|
|
@@ -3,25 +3,24 @@ import { strict as assert } from 'assert';
|
|
|
3
3
|
/**
|
|
4
4
|
* A class manage a de-duplicated set of class IDs that errors if you try to add a duplicate.
|
|
5
5
|
* Useful for bytecode retrieval hints to avoid duplicates in parent trace & grandparent trace....
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
*/ export class UniqueClassIds {
|
|
7
|
+
parent;
|
|
8
|
+
classIds;
|
|
9
|
+
constructor(parent){
|
|
9
10
|
this.parent = parent;
|
|
10
11
|
this.classIds = new Set();
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
fork() {
|
|
14
|
+
* Create a fork that references this one as its parent
|
|
15
|
+
*/ fork() {
|
|
16
16
|
return new UniqueClassIds(/*parent=*/ this);
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
has(classId) {
|
|
19
|
+
* Check for a class ID here or in parent's (recursively).
|
|
20
|
+
*
|
|
21
|
+
* @param classId - the contract class ID (as a string) to check
|
|
22
|
+
* @returns boolean: whether the class ID is here
|
|
23
|
+
*/ has(classId) {
|
|
25
24
|
// First try check this' classIds
|
|
26
25
|
let here = this.classIds.has(classId);
|
|
27
26
|
// Then try parent's
|
|
@@ -32,17 +31,15 @@ export class UniqueClassIds {
|
|
|
32
31
|
return here;
|
|
33
32
|
}
|
|
34
33
|
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
size() {
|
|
34
|
+
* Get the total number of classIds
|
|
35
|
+
*/ size() {
|
|
38
36
|
return this.classIds.size + (this.parent ? this.parent.size() : 0);
|
|
39
37
|
}
|
|
40
38
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
add(classId) {
|
|
39
|
+
* Add a class ID (if not already present) to the set.
|
|
40
|
+
*
|
|
41
|
+
* @param classId - the contract class ID (as a string)
|
|
42
|
+
*/ add(classId) {
|
|
46
43
|
assert(!this.has(classId), `Bug! Tried to add duplicate classId ${classId} to set of unique classIds.`);
|
|
47
44
|
if (!this.has(classId)) {
|
|
48
45
|
this.classIds.add(classId);
|
|
@@ -50,12 +47,11 @@ export class UniqueClassIds {
|
|
|
50
47
|
}
|
|
51
48
|
}
|
|
52
49
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
for (const classId of incoming.classIds.keys()) {
|
|
50
|
+
* Merge in another set of unique class IDs into this one, but fail on duplicates.
|
|
51
|
+
*
|
|
52
|
+
* @param incoming: other unique class IDs
|
|
53
|
+
*/ acceptAndMerge(incoming) {
|
|
54
|
+
for (const classId of incoming.classIds.keys()){
|
|
59
55
|
assert(!this.has(classId), `Bug! Cannot merge classId ${classId} into set of unique classIds as it already exists.`);
|
|
60
56
|
this.classIds.add(classId);
|
|
61
57
|
}
|
|
@@ -63,4 +59,3 @@ export class UniqueClassIds {
|
|
|
63
59
|
assert(this.size() <= MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS, `Bug! Merging unique class Ids should never exceed the limit of ${MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS}.`);
|
|
64
60
|
}
|
|
65
61
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlX2NsYXNzX2lkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMvdW5pcXVlX2NsYXNzX2lkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRixPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUxQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUZuQyxhQUFRLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFSSxDQUFDO0lBRXhEOztPQUVHO0lBQ0ksSUFBSTtRQUNULE9BQU8sSUFBSSxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEdBQUcsQ0FBQyxPQUFlO1FBQ3hCLGlDQUFpQztRQUNqQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsMkVBQTJFO1lBQzNFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLE9BQWU7UUFDeEIsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSx1Q0FBdUMsT0FBTyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSw2Q0FBNkMsRUFDNUQseUJBQXlCLDZDQUE2Qyw4REFBOEQsQ0FDckksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGNBQWMsQ0FBQyxRQUF3QjtRQUM1QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQ0osQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUNsQiw2QkFBNkIsT0FBTyxvREFBb0QsQ0FDekYsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCwyRkFBMkY7UUFDM0YsTUFBTSxDQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSw2Q0FBNkMsRUFDNUQsa0VBQWtFLDZDQUE2QyxHQUFHLENBQ25ILENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
package/dest/public/utils.js
CHANGED
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import { TxExecutionPhase } from '@aztec/circuit-types';
|
|
2
2
|
export function getExecutionRequestsByPhase(tx, phase) {
|
|
3
|
-
switch
|
|
3
|
+
switch(phase){
|
|
4
4
|
case TxExecutionPhase.SETUP:
|
|
5
5
|
return tx.getNonRevertiblePublicExecutionRequests();
|
|
6
6
|
case TxExecutionPhase.APP_LOGIC:
|
|
7
7
|
return tx.getRevertiblePublicExecutionRequests();
|
|
8
|
-
case TxExecutionPhase.TEARDOWN:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
case TxExecutionPhase.TEARDOWN:
|
|
9
|
+
{
|
|
10
|
+
const request = tx.getPublicTeardownExecutionRequest();
|
|
11
|
+
return request ? [
|
|
12
|
+
request
|
|
13
|
+
] : [];
|
|
14
|
+
}
|
|
12
15
|
default:
|
|
13
16
|
throw new Error(`Unknown phase: ${phase}`);
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
19
|
export function getCallRequestsByPhase(tx, phase) {
|
|
17
|
-
switch
|
|
20
|
+
switch(phase){
|
|
18
21
|
case TxExecutionPhase.SETUP:
|
|
19
22
|
return tx.data.getNonRevertiblePublicCallRequests();
|
|
20
23
|
case TxExecutionPhase.APP_LOGIC:
|
|
21
24
|
return tx.data.getRevertiblePublicCallRequests();
|
|
22
|
-
case TxExecutionPhase.TEARDOWN:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
case TxExecutionPhase.TEARDOWN:
|
|
26
|
+
{
|
|
27
|
+
const request = tx.data.getTeardownPublicCallRequest();
|
|
28
|
+
return request ? [
|
|
29
|
+
request
|
|
30
|
+
] : [];
|
|
31
|
+
}
|
|
26
32
|
default:
|
|
27
33
|
throw new Error(`Unknown phase: ${phase}`);
|
|
28
34
|
}
|
|
29
35
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RixNQUFNLFVBQVUsMkJBQTJCLENBQUMsRUFBTSxFQUFFLEtBQXVCO0lBQ3pFLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLGdCQUFnQixDQUFDLEtBQUs7WUFDekIsT0FBTyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsQ0FBQztRQUN0RCxLQUFLLGdCQUFnQixDQUFDLFNBQVM7WUFDN0IsT0FBTyxFQUFFLENBQUMsb0NBQW9DLEVBQUUsQ0FBQztRQUNuRCxLQUFLLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLENBQUM7WUFDdkQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0Q7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEVBQU0sRUFBRSxLQUF1QjtJQUNwRSxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLO1lBQ3pCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3RELEtBQUssZ0JBQWdCLENBQUMsU0FBUztZQUM3QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUNuRCxLQUFLLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUNEO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/dest/server.js
CHANGED
|
@@ -3,4 +3,3 @@ export * from './common/index.js';
|
|
|
3
3
|
export * from './public/index.js';
|
|
4
4
|
export * from './providers/index.js';
|
|
5
5
|
export * from './stats/index.js';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUMifQ==
|
package/dest/stats/index.js
CHANGED
package/dest/stats/stats.js
CHANGED
|
@@ -4,8 +4,7 @@ export function emitCircuitSimulationStats(circuitName, duration, inputSize, out
|
|
|
4
4
|
circuitName,
|
|
5
5
|
inputSize,
|
|
6
6
|
outputSize,
|
|
7
|
-
duration
|
|
7
|
+
duration
|
|
8
8
|
};
|
|
9
9
|
logger.debug('Circuit simulation stats', stats);
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHMvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxXQUF3QixFQUN4QixRQUFnQixFQUNoQixTQUFpQixFQUNqQixVQUFrQixFQUNsQixNQUFjO0lBRWQsTUFBTSxLQUFLLEdBQTJCO1FBQ3BDLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsV0FBVztRQUNYLFNBQVM7UUFDVCxVQUFVO1FBQ1YsUUFBUTtLQUNULENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUMifQ==
|
package/dest/test/utils.js
CHANGED
|
@@ -9,12 +9,13 @@ import { sha256ToField } from '@aztec/foundation/crypto';
|
|
|
9
9
|
* @param targetContract - The contract to consume the message.
|
|
10
10
|
* @param secret - The secret to unlock the message.
|
|
11
11
|
* @returns The L1 to L2 message.
|
|
12
|
-
*/
|
|
13
|
-
export const buildL1ToL2Message = async (selector, contentPreimage, targetContract, secret, msgIndex) => {
|
|
12
|
+
*/ export const buildL1ToL2Message = async (selector, contentPreimage, targetContract, secret, msgIndex)=>{
|
|
14
13
|
// Write the selector into a buffer.
|
|
15
14
|
const selectorBuf = Buffer.from(selector, 'hex');
|
|
16
|
-
const content = sha256ToField([
|
|
15
|
+
const content = sha256ToField([
|
|
16
|
+
selectorBuf,
|
|
17
|
+
...contentPreimage
|
|
18
|
+
]);
|
|
17
19
|
const secretHash = await computeSecretHash(secret);
|
|
18
20
|
return new L1ToL2Message(new L1Actor(EthAddress.random(), 1), new L2Actor(targetContract, 1), content, secretHash, new Fr(msgIndex));
|
|
19
21
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDckMsUUFBZ0IsRUFDaEIsZUFBcUIsRUFDckIsY0FBNEIsRUFDNUIsTUFBVSxFQUNWLFFBQXFCLEVBQ3JCLEVBQUU7SUFDRixvQ0FBb0M7SUFDcEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFakQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5ELE9BQU8sSUFBSSxhQUFhLENBQ3RCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDbkMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUM5QixPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./common": "./dest/common.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
22
22
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
23
23
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
24
|
-
"test": "
|
|
24
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
25
25
|
},
|
|
26
26
|
"inherits": [
|
|
27
27
|
"../package.common.json"
|
|
@@ -60,19 +60,20 @@
|
|
|
60
60
|
]
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@aztec/circuit-types": "0.
|
|
64
|
-
"@aztec/circuits.js": "0.
|
|
65
|
-
"@aztec/foundation": "0.
|
|
66
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
67
|
-
"@aztec/protocol-contracts": "0.
|
|
68
|
-
"@aztec/telemetry-client": "0.
|
|
69
|
-
"@aztec/types": "0.
|
|
70
|
-
"@aztec/world-state": "0.
|
|
63
|
+
"@aztec/circuit-types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
64
|
+
"@aztec/circuits.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
65
|
+
"@aztec/foundation": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
66
|
+
"@aztec/noir-protocol-circuits-types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
67
|
+
"@aztec/protocol-contracts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
68
|
+
"@aztec/telemetry-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
69
|
+
"@aztec/types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
70
|
+
"@aztec/world-state": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
|
|
71
71
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
72
72
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
73
73
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
74
74
|
"levelup": "^5.1.1",
|
|
75
75
|
"lodash.clonedeep": "^4.5.0",
|
|
76
|
+
"lodash.merge": "^4.6.2",
|
|
76
77
|
"memdown": "^6.1.1",
|
|
77
78
|
"tslib": "^2.4.0"
|
|
78
79
|
},
|
|
@@ -89,7 +90,6 @@
|
|
|
89
90
|
"@types/node": "^18.7.23",
|
|
90
91
|
"jest": "^29.5.0",
|
|
91
92
|
"jest-mock-extended": "^3.0.4",
|
|
92
|
-
"lodash.merge": "^4.6.2",
|
|
93
93
|
"ts-node": "^10.9.1",
|
|
94
94
|
"typescript": "^5.0.4",
|
|
95
95
|
"viem": "2.22.8"
|