@aztec/simulator 0.76.4 → 0.77.0-testnet-ignition.21
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/README.md +3 -3
- package/dest/client.d.ts +5 -0
- package/dest/client.d.ts.map +1 -0
- package/dest/client.js +3 -0
- package/dest/{public → common}/db_interfaces.d.ts +8 -33
- package/dest/common/db_interfaces.d.ts.map +1 -0
- package/dest/common/db_interfaces.js +1 -0
- package/dest/common/debug_fn_name.d.ts +3 -2
- package/dest/common/debug_fn_name.d.ts.map +1 -1
- package/dest/common/debug_fn_name.js +2 -5
- package/dest/common/errors.d.ts +4 -4
- package/dest/common/errors.d.ts.map +1 -1
- package/dest/common/errors.js +30 -39
- package/dest/common/index.d.ts +2 -1
- package/dest/common/index.d.ts.map +1 -1
- package/dest/common/index.js +2 -2
- package/dest/common/message_load_oracle_inputs.d.ts +2 -2
- package/dest/common/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/common/message_load_oracle_inputs.js +8 -8
- package/dest/common/stats/index.d.ts.map +1 -0
- package/dest/{stats → common/stats}/stats.d.ts +2 -2
- package/dest/common/stats/stats.d.ts.map +1 -0
- package/dest/common/stats/stats.js +10 -0
- package/dest/{acvm → private/acvm}/acvm.d.ts +4 -4
- package/dest/private/acvm/acvm.d.ts.map +1 -0
- package/dest/private/acvm/acvm.js +70 -0
- package/dest/{acvm → private/acvm}/acvm_types.d.ts +1 -1
- package/dest/private/acvm/acvm_types.d.ts.map +1 -0
- package/dest/private/acvm/acvm_types.js +3 -0
- package/dest/{acvm → private/acvm}/deserialize.d.ts +2 -2
- package/dest/private/acvm/deserialize.d.ts.map +1 -0
- package/dest/private/acvm/deserialize.js +42 -0
- package/dest/private/acvm/index.d.ts.map +1 -0
- package/dest/private/acvm/index.js +5 -0
- package/dest/{acvm → private/acvm}/oracle/index.d.ts +1 -1
- package/dest/private/acvm/oracle/index.d.ts.map +1 -0
- package/dest/private/acvm/oracle/index.js +2 -0
- package/dest/{acvm → private/acvm}/oracle/oracle.d.ts +4 -3
- package/dest/private/acvm/oracle/oracle.d.ts.map +1 -0
- package/dest/private/acvm/oracle/oracle.js +263 -0
- package/dest/{acvm → private/acvm}/oracle/typed_oracle.d.ts +12 -6
- package/dest/private/acvm/oracle/typed_oracle.d.ts.map +1 -0
- package/dest/private/acvm/oracle/typed_oracle.js +132 -0
- package/dest/{acvm → private/acvm}/serialize.d.ts +7 -3
- package/dest/private/acvm/serialize.d.ts.map +1 -0
- package/dest/private/acvm/serialize.js +46 -0
- package/dest/{client → private}/client_execution_context.d.ts +20 -17
- package/dest/private/client_execution_context.d.ts.map +1 -0
- package/dest/private/client_execution_context.js +378 -0
- package/dest/{client → private}/db_oracle.d.ts +19 -7
- package/dest/private/db_oracle.d.ts.map +1 -0
- package/dest/private/db_oracle.js +14 -0
- package/dest/{client → private}/execution_note_cache.d.ts +2 -2
- package/dest/private/execution_note_cache.d.ts.map +1 -0
- package/dest/private/execution_note_cache.js +180 -0
- package/dest/{common → private}/hashed_values_cache.d.ts +2 -2
- package/dest/private/hashed_values_cache.d.ts.map +1 -0
- package/dest/private/hashed_values_cache.js +46 -0
- package/dest/private/index.d.ts +13 -0
- package/dest/private/index.d.ts.map +1 -0
- package/dest/private/index.js +12 -0
- package/dest/{client → private}/pick_notes.d.ts +1 -1
- package/dest/private/pick_notes.d.ts.map +1 -0
- package/dest/private/pick_notes.js +51 -0
- package/dest/private/private_execution.d.ts +24 -0
- package/dest/private/private_execution.d.ts.map +1 -0
- package/dest/private/private_execution.js +90 -0
- package/dest/{providers → private/providers}/acvm_native.d.ts +5 -5
- package/dest/private/providers/acvm_native.d.ts.map +1 -0
- package/dest/private/providers/acvm_native.js +139 -0
- package/dest/{providers → private/providers}/acvm_wasm.d.ts +4 -4
- package/dest/private/providers/acvm_wasm.d.ts.map +1 -0
- package/dest/private/providers/acvm_wasm.js +62 -0
- package/dest/{providers → private/providers}/acvm_wasm_with_blobs.d.ts +5 -5
- package/dest/private/providers/acvm_wasm_with_blobs.d.ts.map +1 -0
- package/dest/{providers → private/providers}/acvm_wasm_with_blobs.js +3 -6
- package/dest/{providers → private/providers}/factory.d.ts +1 -1
- package/dest/private/providers/factory.d.ts.map +1 -0
- package/dest/private/providers/factory.js +27 -0
- package/dest/{common → private/providers}/simulation_provider.d.ts +5 -5
- package/dest/private/providers/simulation_provider.d.ts.map +1 -0
- package/dest/private/providers/simulation_provider.js +24 -0
- package/dest/private/simulator.d.ts +36 -0
- package/dest/private/simulator.d.ts.map +1 -0
- package/dest/private/simulator.js +78 -0
- package/dest/{client → private}/unconstrained_execution.d.ts +5 -5
- package/dest/private/unconstrained_execution.d.ts.map +1 -0
- package/dest/private/unconstrained_execution.js +27 -0
- package/dest/{client → private}/view_data_oracle.d.ts +15 -7
- package/dest/private/view_data_oracle.d.ts.map +1 -0
- package/dest/private/view_data_oracle.js +260 -0
- package/dest/{avm → public/avm}/avm_context.d.ts +7 -5
- package/dest/public/avm/avm_context.d.ts.map +1 -0
- package/dest/public/avm/avm_context.js +44 -0
- package/dest/{avm → public/avm}/avm_contract_call_result.d.ts +5 -5
- package/dest/public/avm/avm_contract_call_result.d.ts.map +1 -0
- package/dest/public/avm/avm_contract_call_result.js +50 -0
- package/dest/{avm → public/avm}/avm_execution_environment.d.ts +2 -2
- package/dest/public/avm/avm_execution_environment.d.ts.map +1 -0
- package/dest/public/avm/avm_execution_environment.js +31 -0
- package/dest/public/avm/avm_gas.d.ts.map +1 -0
- package/dest/public/avm/avm_gas.js +202 -0
- package/dest/{avm → public/avm}/avm_machine_state.d.ts +2 -2
- package/dest/public/avm/avm_machine_state.d.ts.map +1 -0
- package/dest/public/avm/avm_machine_state.js +106 -0
- package/dest/{avm → public/avm}/avm_memory_types.d.ts +2 -2
- package/dest/public/avm/avm_memory_types.d.ts.map +1 -0
- package/dest/public/avm/avm_memory_types.js +340 -0
- package/dest/{avm → public/avm}/avm_simulator.d.ts +5 -3
- package/dest/public/avm/avm_simulator.d.ts.map +1 -0
- package/dest/public/avm/avm_simulator.js +202 -0
- package/dest/public/avm/bytecode_utils.d.ts.map +1 -0
- package/dest/public/avm/bytecode_utils.js +17 -0
- package/dest/{avm → public/avm}/errors.d.ts +5 -4
- package/dest/public/avm/errors.d.ts.map +1 -0
- package/dest/public/avm/errors.js +179 -0
- package/dest/{avm → public/avm}/fixtures/avm_simulation_tester.d.ts +6 -6
- package/dest/public/avm/fixtures/avm_simulation_tester.d.ts.map +1 -0
- package/dest/public/avm/fixtures/avm_simulation_tester.js +76 -0
- package/dest/{avm → public/avm}/fixtures/base_avm_simulation_tester.d.ts +13 -12
- package/dest/public/avm/fixtures/base_avm_simulation_tester.d.ts.map +1 -0
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +83 -0
- package/dest/{avm → public/avm}/fixtures/index.d.ts +24 -7
- package/dest/public/avm/fixtures/index.d.ts.map +1 -0
- package/dest/public/avm/fixtures/index.js +175 -0
- package/dest/{avm → public/avm}/fixtures/simple_contract_data_source.d.ts +10 -6
- package/dest/public/avm/fixtures/simple_contract_data_source.d.ts.map +1 -0
- package/dest/public/avm/fixtures/simple_contract_data_source.js +74 -0
- package/dest/public/avm/index.d.ts +4 -0
- package/dest/public/avm/index.d.ts.map +1 -0
- package/dest/{avm/index.d.ts → public/avm/index.js} +1 -2
- package/dest/public/avm/journal/index.d.ts.map +1 -0
- package/dest/{avm → public/avm}/journal/journal.d.ts +51 -18
- package/dest/public/avm/journal/journal.d.ts.map +1 -0
- package/dest/public/avm/journal/journal.js +486 -0
- package/dest/{avm → public/avm}/journal/nullifiers.d.ts +8 -6
- package/dest/public/avm/journal/nullifiers.d.ts.map +1 -0
- package/dest/public/avm/journal/nullifiers.js +97 -0
- package/dest/{avm → public/avm}/journal/public_storage.d.ts +2 -2
- package/dest/public/avm/journal/public_storage.d.ts.map +1 -0
- package/dest/public/avm/journal/public_storage.js +145 -0
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -0
- package/dest/public/avm/opcodes/accrued_substate.js +252 -0
- package/dest/public/avm/opcodes/addressing_mode.d.ts.map +1 -0
- package/dest/public/avm/opcodes/addressing_mode.js +74 -0
- package/dest/public/avm/opcodes/arithmetic.d.ts.map +1 -0
- package/dest/public/avm/opcodes/arithmetic.js +73 -0
- package/dest/public/avm/opcodes/bitwise.d.ts.map +1 -0
- package/dest/public/avm/opcodes/bitwise.js +106 -0
- package/dest/public/avm/opcodes/comparators.d.ts.map +1 -0
- package/dest/public/avm/opcodes/comparators.js +43 -0
- package/dest/public/avm/opcodes/contract.d.ts.map +1 -0
- package/dest/public/avm/opcodes/contract.js +66 -0
- package/dest/public/avm/opcodes/control_flow.d.ts.map +1 -0
- package/dest/public/avm/opcodes/control_flow.js +105 -0
- package/dest/{avm → public/avm}/opcodes/conversion.d.ts +1 -1
- package/dest/public/avm/opcodes/conversion.d.ts.map +1 -0
- package/dest/public/avm/opcodes/conversion.js +69 -0
- package/dest/{avm → public/avm}/opcodes/ec_add.d.ts +1 -1
- package/dest/public/avm/opcodes/ec_add.d.ts.map +1 -0
- package/dest/public/avm/opcodes/ec_add.js +84 -0
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -0
- package/dest/public/avm/opcodes/environment_getters.js +79 -0
- package/dest/public/avm/opcodes/external_calls.d.ts.map +1 -0
- package/dest/public/avm/opcodes/external_calls.js +180 -0
- package/dest/{avm → public/avm}/opcodes/hashing.d.ts +1 -1
- package/dest/public/avm/opcodes/hashing.d.ts.map +1 -0
- package/dest/public/avm/opcodes/hashing.js +114 -0
- package/dest/public/avm/opcodes/index.d.ts.map +1 -0
- package/dest/{avm → public/avm}/opcodes/instruction.d.ts +2 -2
- package/dest/public/avm/opcodes/instruction.d.ts.map +1 -0
- package/dest/public/avm/opcodes/instruction.js +91 -0
- package/dest/public/avm/opcodes/instruction_impl.d.ts.map +1 -0
- package/dest/public/avm/opcodes/instruction_impl.js +30 -0
- package/dest/public/avm/opcodes/memory.d.ts.map +1 -0
- package/dest/public/avm/opcodes/memory.js +253 -0
- package/dest/{avm → public/avm}/opcodes/misc.d.ts +1 -1
- package/dest/public/avm/opcodes/misc.d.ts.map +1 -0
- package/dest/public/avm/opcodes/misc.js +48 -0
- package/dest/public/avm/opcodes/storage.d.ts.map +1 -0
- package/dest/public/avm/opcodes/storage.js +66 -0
- package/dest/public/avm/serialization/buffer_cursor.d.ts.map +1 -0
- package/dest/public/avm/serialization/buffer_cursor.js +99 -0
- package/dest/{avm → public/avm}/serialization/bytecode_serialization.d.ts +1 -1
- package/dest/public/avm/serialization/bytecode_serialization.d.ts.map +1 -0
- package/dest/public/avm/serialization/bytecode_serialization.js +328 -0
- package/dest/{avm → public/avm}/serialization/instruction_serialization.d.ts +1 -2
- package/dest/public/avm/serialization/instruction_serialization.d.ts.map +1 -0
- package/dest/public/avm/serialization/instruction_serialization.js +225 -0
- package/dest/{avm → public/avm}/test_utils.d.ts +6 -4
- package/dest/public/avm/test_utils.d.ts.map +1 -0
- package/dest/public/avm/test_utils.js +52 -0
- package/dest/public/bytecode_errors.js +1 -2
- package/dest/public/execution.d.ts +8 -2
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +4 -5
- package/dest/public/executor_metrics.js +16 -12
- package/dest/public/fixtures/index.js +0 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +15 -9
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +54 -53
- package/dest/public/fixtures/utils.d.ts +7 -11
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +92 -32
- package/dest/public/index.d.ts +5 -4
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +5 -5
- package/dest/public/public_db_sources.d.ts +82 -34
- package/dest/public/public_db_sources.d.ts.map +1 -1
- package/dest/public/public_db_sources.js +171 -196
- package/dest/public/{public_processor.d.ts → public_processor/public_processor.d.ts} +10 -8
- package/dest/public/public_processor/public_processor.d.ts.map +1 -0
- package/dest/public/public_processor/public_processor.js +379 -0
- package/dest/public/{public_processor_metrics.d.ts → public_processor/public_processor_metrics.d.ts} +3 -3
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -0
- package/dest/public/public_processor/public_processor_metrics.js +125 -0
- package/dest/public/{public_tx_context.d.ts → public_tx_simulator/public_tx_context.d.ts} +14 -8
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_context.js +320 -0
- package/dest/public/{public_tx_simulator.d.ts → public_tx_simulator/public_tx_simulator.d.ts} +10 -7
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -0
- package/dest/public/public_tx_simulator/public_tx_simulator.js +325 -0
- package/dest/public/side_effect_errors.js +1 -2
- package/dest/public/side_effect_trace.d.ts +16 -10
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +82 -149
- package/dest/public/side_effect_trace_interface.d.ts +9 -7
- package/dest/public/side_effect_trace_interface.d.ts.map +1 -1
- package/dest/public/side_effect_trace_interface.js +1 -2
- package/dest/public/tx_contract_cache.d.ts +41 -0
- package/dest/public/tx_contract_cache.d.ts.map +1 -0
- package/dest/public/tx_contract_cache.js +49 -0
- package/dest/public/unique_class_ids.js +23 -28
- package/dest/public/utils.d.ts +2 -2
- package/dest/public/utils.d.ts.map +1 -1
- package/dest/public/utils.js +17 -12
- package/dest/server.d.ts +4 -4
- package/dest/server.d.ts.map +1 -1
- package/dest/server.js +3 -5
- package/dest/test/utils.d.ts +3 -2
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +9 -7
- package/package.json +19 -21
- package/src/client.ts +4 -0
- package/src/{public → common}/db_interfaces.ts +8 -40
- package/src/common/debug_fn_name.ts +4 -2
- package/src/common/errors.ts +5 -5
- package/src/common/index.ts +2 -1
- package/src/common/message_load_oracle_inputs.ts +2 -2
- package/src/common/stats/index.ts +1 -0
- package/src/{stats → common/stats}/stats.ts +2 -2
- package/src/{acvm → private/acvm}/acvm.ts +5 -5
- package/src/{acvm → private/acvm}/acvm_types.ts +1 -1
- package/src/{acvm → private/acvm}/deserialize.ts +2 -2
- package/src/{acvm → private/acvm}/oracle/index.ts +1 -1
- package/src/{acvm → private/acvm}/oracle/oracle.ts +22 -12
- package/src/{acvm → private/acvm}/oracle/typed_oracle.ts +50 -55
- package/src/{acvm → private/acvm}/serialize.ts +10 -3
- package/src/{client → private}/client_execution_context.ts +54 -37
- package/src/{client → private}/db_oracle.ts +20 -20
- package/src/{client → private}/execution_note_cache.ts +3 -3
- package/src/{common → private}/hashed_values_cache.ts +2 -2
- package/src/private/index.ts +12 -0
- package/src/{client → private}/pick_notes.ts +1 -1
- package/src/{client → private}/private_execution.ts +46 -14
- package/src/{providers → private/providers}/acvm_native.ts +6 -6
- package/src/{providers → private/providers}/acvm_wasm.ts +4 -4
- package/src/{providers → private/providers}/acvm_wasm_with_blobs.ts +5 -5
- package/src/{providers → private/providers}/factory.ts +1 -1
- package/src/{common → private/providers}/simulation_provider.ts +5 -5
- package/src/{client → private}/simulator.ts +31 -123
- package/src/{client → private}/unconstrained_execution.ts +7 -7
- package/src/{client → private}/view_data_oracle.ts +25 -28
- package/src/{avm → public/avm}/avm_context.ts +12 -7
- package/src/{avm → public/avm}/avm_contract_call_result.ts +6 -6
- package/src/{avm → public/avm}/avm_execution_environment.ts +2 -2
- package/src/{avm → public/avm}/avm_gas.ts +1 -3
- package/src/{avm → public/avm}/avm_machine_state.ts +2 -2
- package/src/{avm → public/avm}/avm_memory_types.ts +4 -4
- package/src/{avm → public/avm}/avm_simulator.ts +12 -6
- package/src/{avm → public/avm}/errors.ts +5 -4
- package/src/{avm → public/avm}/fixtures/avm_simulation_tester.ts +16 -15
- package/src/{avm → public/avm}/fixtures/base_avm_simulation_tester.ts +45 -40
- package/src/{avm → public/avm}/fixtures/index.ts +77 -12
- package/src/{avm → public/avm}/fixtures/simple_contract_data_source.ts +26 -19
- package/src/{avm → public/avm}/index.ts +1 -1
- package/src/public/avm/journal/index.ts +1 -0
- package/src/{avm → public/avm}/journal/journal.ts +330 -305
- package/src/{avm → public/avm}/journal/nullifiers.ts +20 -19
- package/src/{avm → public/avm}/journal/public_storage.ts +2 -2
- package/src/{avm → public/avm}/opcodes/contract.ts +1 -1
- package/src/{avm → public/avm}/opcodes/control_flow.ts +1 -1
- package/src/{avm → public/avm}/opcodes/conversion.ts +1 -1
- package/src/{avm → public/avm}/opcodes/ec_add.ts +2 -2
- package/src/{avm → public/avm}/opcodes/external_calls.ts +5 -6
- package/src/{avm → public/avm}/opcodes/hashing.ts +1 -1
- package/src/public/avm/opcodes/index.ts +15 -0
- package/src/{avm → public/avm}/opcodes/instruction.ts +2 -2
- package/src/{avm → public/avm}/opcodes/misc.ts +1 -1
- package/src/public/avm/serialization/bytecode_serialization.ts +204 -0
- package/src/{avm → public/avm}/serialization/instruction_serialization.ts +0 -1
- package/src/{avm → public/avm}/test_utils.ts +10 -7
- package/src/public/execution.ts +9 -12
- package/src/public/fixtures/public_tx_simulation_tester.ts +66 -72
- package/src/public/fixtures/utils.ts +122 -33
- package/src/public/index.ts +5 -4
- package/src/public/public_db_sources.ts +216 -222
- package/src/public/{public_processor.ts → public_processor/public_processor.ts} +78 -53
- package/src/public/{public_processor_metrics.ts → public_processor/public_processor_metrics.ts} +3 -3
- package/src/public/{public_tx_context.ts → public_tx_simulator/public_tx_context.ts} +70 -75
- package/src/public/{public_tx_simulator.ts → public_tx_simulator/public_tx_simulator.ts} +104 -91
- package/src/public/side_effect_trace.ts +85 -160
- package/src/public/side_effect_trace_interface.ts +10 -23
- package/src/public/tx_contract_cache.ts +69 -0
- package/src/public/unique_class_ids.ts +1 -1
- package/src/public/utils.ts +2 -2
- package/src/server.ts +4 -4
- package/src/test/utils.ts +5 -3
- package/dest/acvm/acvm.d.ts.map +0 -1
- package/dest/acvm/acvm.js +0 -73
- package/dest/acvm/acvm_types.d.ts.map +0 -1
- package/dest/acvm/acvm_types.js +0 -2
- package/dest/acvm/deserialize.d.ts.map +0 -1
- package/dest/acvm/deserialize.js +0 -46
- package/dest/acvm/index.d.ts.map +0 -1
- package/dest/acvm/index.js +0 -6
- package/dest/acvm/oracle/index.d.ts.map +0 -1
- package/dest/acvm/oracle/index.js +0 -3
- package/dest/acvm/oracle/oracle.d.ts.map +0 -1
- package/dest/acvm/oracle/oracle.js +0 -230
- package/dest/acvm/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/acvm/oracle/typed_oracle.js +0 -131
- package/dest/acvm/serialize.d.ts.map +0 -1
- package/dest/acvm/serialize.js +0 -48
- package/dest/avm/avm_context.d.ts.map +0 -1
- package/dest/avm/avm_context.js +0 -44
- package/dest/avm/avm_contract_call_result.d.ts.map +0 -1
- package/dest/avm/avm_contract_call_result.js +0 -45
- package/dest/avm/avm_execution_environment.d.ts.map +0 -1
- package/dest/avm/avm_execution_environment.js +0 -28
- package/dest/avm/avm_gas.d.ts.map +0 -1
- package/dest/avm/avm_gas.js +0 -170
- package/dest/avm/avm_machine_state.d.ts.map +0 -1
- package/dest/avm/avm_machine_state.js +0 -112
- package/dest/avm/avm_memory_types.d.ts.map +0 -1
- package/dest/avm/avm_memory_types.js +0 -327
- package/dest/avm/avm_simulator.d.ts.map +0 -1
- package/dest/avm/avm_simulator.js +0 -193
- package/dest/avm/avm_tree.d.ts +0 -282
- package/dest/avm/avm_tree.d.ts.map +0 -1
- package/dest/avm/avm_tree.js +0 -684
- package/dest/avm/bytecode_utils.d.ts.map +0 -1
- package/dest/avm/bytecode_utils.js +0 -15
- package/dest/avm/errors.d.ts.map +0 -1
- package/dest/avm/errors.js +0 -196
- package/dest/avm/fixtures/avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/avm_simulation_tester.js +0 -73
- package/dest/avm/fixtures/base_avm_simulation_tester.d.ts.map +0 -1
- package/dest/avm/fixtures/base_avm_simulation_tester.js +0 -76
- package/dest/avm/fixtures/index.d.ts.map +0 -1
- package/dest/avm/fixtures/index.js +0 -134
- package/dest/avm/fixtures/simple_contract_data_source.d.ts.map +0 -1
- package/dest/avm/fixtures/simple_contract_data_source.js +0 -75
- package/dest/avm/index.d.ts.map +0 -1
- package/dest/avm/index.js +0 -4
- package/dest/avm/journal/index.d.ts.map +0 -1
- package/dest/avm/journal/index.js +0 -2
- package/dest/avm/journal/journal.d.ts.map +0 -1
- package/dest/avm/journal/journal.js +0 -499
- package/dest/avm/journal/nullifiers.d.ts.map +0 -1
- package/dest/avm/journal/nullifiers.js +0 -99
- package/dest/avm/journal/public_storage.d.ts.map +0 -1
- package/dest/avm/journal/public_storage.js +0 -159
- package/dest/avm/opcodes/accrued_substate.d.ts.map +0 -1
- package/dest/avm/opcodes/accrued_substate.js +0 -215
- package/dest/avm/opcodes/addressing_mode.d.ts.map +0 -1
- package/dest/avm/opcodes/addressing_mode.js +0 -81
- package/dest/avm/opcodes/arithmetic.d.ts.map +0 -1
- package/dest/avm/opcodes/arithmetic.js +0 -70
- package/dest/avm/opcodes/bitwise.d.ts.map +0 -1
- package/dest/avm/opcodes/bitwise.js +0 -90
- package/dest/avm/opcodes/comparators.d.ts.map +0 -1
- package/dest/avm/opcodes/comparators.js +0 -40
- package/dest/avm/opcodes/contract.d.ts.map +0 -1
- package/dest/avm/opcodes/contract.js +0 -63
- package/dest/avm/opcodes/control_flow.d.ts.map +0 -1
- package/dest/avm/opcodes/control_flow.js +0 -97
- package/dest/avm/opcodes/conversion.d.ts.map +0 -1
- package/dest/avm/opcodes/conversion.js +0 -64
- package/dest/avm/opcodes/ec_add.d.ts.map +0 -1
- package/dest/avm/opcodes/ec_add.js +0 -82
- package/dest/avm/opcodes/environment_getters.d.ts.map +0 -1
- package/dest/avm/opcodes/environment_getters.js +0 -78
- package/dest/avm/opcodes/external_calls.d.ts.map +0 -1
- package/dest/avm/opcodes/external_calls.js +0 -169
- package/dest/avm/opcodes/hashing.d.ts.map +0 -1
- package/dest/avm/opcodes/hashing.js +0 -103
- package/dest/avm/opcodes/index.d.ts.map +0 -1
- package/dest/avm/opcodes/index.js +0 -16
- package/dest/avm/opcodes/instruction.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction.js +0 -100
- package/dest/avm/opcodes/instruction_impl.d.ts.map +0 -1
- package/dest/avm/opcodes/instruction_impl.js +0 -33
- package/dest/avm/opcodes/memory.d.ts.map +0 -1
- package/dest/avm/opcodes/memory.js +0 -226
- package/dest/avm/opcodes/misc.d.ts.map +0 -1
- package/dest/avm/opcodes/misc.js +0 -45
- 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/multi_scalar_mul.js +0 -112
- package/dest/avm/opcodes/storage.d.ts.map +0 -1
- package/dest/avm/opcodes/storage.js +0 -61
- package/dest/avm/serialization/buffer_cursor.d.ts.map +0 -1
- package/dest/avm/serialization/buffer_cursor.js +0 -99
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +0 -1
- package/dest/avm/serialization/bytecode_serialization.js +0 -132
- package/dest/avm/serialization/instruction_serialization.d.ts.map +0 -1
- package/dest/avm/serialization/instruction_serialization.js +0 -187
- package/dest/avm/test_utils.d.ts.map +0 -1
- package/dest/avm/test_utils.js +0 -52
- package/dest/client/client_execution_context.d.ts.map +0 -1
- package/dest/client/client_execution_context.js +0 -392
- package/dest/client/db_oracle.d.ts.map +0 -1
- package/dest/client/db_oracle.js +0 -17
- package/dest/client/execution_note_cache.d.ts.map +0 -1
- package/dest/client/execution_note_cache.js +0 -181
- package/dest/client/index.d.ts +0 -16
- package/dest/client/index.d.ts.map +0 -1
- package/dest/client/index.js +0 -15
- package/dest/client/pick_notes.d.ts.map +0 -1
- package/dest/client/pick_notes.js +0 -54
- package/dest/client/private_execution.d.ts +0 -19
- package/dest/client/private_execution.d.ts.map +0 -1
- package/dest/client/private_execution.js +0 -72
- package/dest/client/simulator.d.ts +0 -60
- package/dest/client/simulator.d.ts.map +0 -1
- package/dest/client/simulator.js +0 -136
- package/dest/client/unconstrained_execution.d.ts.map +0 -1
- package/dest/client/unconstrained_execution.js +0 -30
- package/dest/client/view_data_oracle.d.ts.map +0 -1
- package/dest/client/view_data_oracle.js +0 -268
- package/dest/common/hashed_values_cache.d.ts.map +0 -1
- package/dest/common/hashed_values_cache.js +0 -50
- package/dest/common/simulation_provider.d.ts.map +0 -1
- package/dest/common/simulation_provider.js +0 -27
- package/dest/common.d.ts +0 -2
- package/dest/common.d.ts.map +0 -1
- package/dest/common.js +0 -2
- package/dest/providers/acvm_native.d.ts.map +0 -1
- package/dest/providers/acvm_native.js +0 -125
- package/dest/providers/acvm_wasm.d.ts.map +0 -1
- package/dest/providers/acvm_wasm.js +0 -54
- package/dest/providers/acvm_wasm_with_blobs.d.ts.map +0 -1
- package/dest/providers/factory.d.ts.map +0 -1
- package/dest/providers/factory.js +0 -27
- package/dest/providers/index.d.ts +0 -5
- package/dest/providers/index.d.ts.map +0 -1
- package/dest/providers/index.js +0 -5
- package/dest/public/db_interfaces.d.ts.map +0 -1
- package/dest/public/db_interfaces.js +0 -2
- package/dest/public/fee_payment.d.ts +0 -11
- package/dest/public/fee_payment.d.ts.map +0 -1
- package/dest/public/fee_payment.js +0 -21
- package/dest/public/public_processor.d.ts.map +0 -1
- package/dest/public/public_processor.js +0 -352
- package/dest/public/public_processor_metrics.d.ts.map +0 -1
- package/dest/public/public_processor_metrics.js +0 -106
- package/dest/public/public_tx_context.d.ts.map +0 -1
- package/dest/public/public_tx_context.js +0 -341
- package/dest/public/public_tx_simulator.d.ts.map +0 -1
- package/dest/public/public_tx_simulator.js +0 -333
- package/dest/stats/index.d.ts.map +0 -1
- package/dest/stats/index.js +0 -2
- package/dest/stats/stats.d.ts.map +0 -1
- package/dest/stats/stats.js +0 -11
- package/src/avm/avm_tree.ts +0 -887
- package/src/avm/opcodes/multi_scalar_mul.ts +0 -121
- package/src/avm/serialization/bytecode_serialization.ts +0 -212
- package/src/client/index.ts +0 -15
- package/src/common.ts +0 -1
- package/src/providers/index.ts +0 -4
- package/src/public/fee_payment.ts +0 -23
- /package/dest/{stats → common/stats}/index.d.ts +0 -0
- /package/{src/stats/index.ts → dest/common/stats/index.js} +0 -0
- /package/dest/{acvm → private/acvm}/index.d.ts +0 -0
- /package/dest/{avm → public/avm}/avm_gas.d.ts +0 -0
- /package/dest/{avm → public/avm}/bytecode_utils.d.ts +0 -0
- /package/dest/{avm → public/avm}/journal/index.d.ts +0 -0
- /package/{src/avm/journal/index.ts → dest/public/avm/journal/index.js} +0 -0
- /package/dest/{avm → public/avm}/opcodes/accrued_substate.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/addressing_mode.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/arithmetic.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/bitwise.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/comparators.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/contract.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/control_flow.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/environment_getters.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/external_calls.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/index.d.ts +0 -0
- /package/{src/avm/opcodes/index.ts → dest/public/avm/opcodes/index.js} +0 -0
- /package/dest/{avm → public/avm}/opcodes/instruction_impl.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/memory.d.ts +0 -0
- /package/dest/{avm → public/avm}/opcodes/storage.d.ts +0 -0
- /package/dest/{avm → public/avm}/serialization/buffer_cursor.d.ts +0 -0
- /package/src/{acvm → private/acvm}/index.ts +0 -0
- /package/src/{avm → public/avm}/bytecode_utils.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/.eslintrc.cjs +0 -0
- /package/src/{avm → public/avm}/opcodes/accrued_substate.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/addressing_mode.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/arithmetic.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/bitwise.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/comparators.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/environment_getters.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/instruction_impl.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/memory.ts +0 -0
- /package/src/{avm → public/avm}/opcodes/storage.ts +0 -0
- /package/src/{avm → public/avm}/serialization/buffer_cursor.ts +0 -0
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
type ContractClassPublic,
|
|
4
|
-
type ContractInstanceWithAddress,
|
|
5
|
-
DEPLOYER_CONTRACT_ADDRESS,
|
|
6
|
-
PUBLIC_DISPATCH_SELECTOR,
|
|
7
|
-
PublicDataWrite,
|
|
8
|
-
computeInitializationHash,
|
|
9
|
-
} from '@aztec/circuits.js';
|
|
10
|
-
import { computePublicDataTreeLeafSlot, siloNullifier } from '@aztec/circuits.js/hash';
|
|
11
|
-
import { makeContractClassPublic, makeContractInstanceFromClassId } from '@aztec/circuits.js/testing';
|
|
12
|
-
import { type ContractArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
13
|
-
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
14
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import { DEPLOYER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
15
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
16
4
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
5
|
+
import { computeFeePayerBalanceStorageSlot, getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
6
|
+
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
7
|
+
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
8
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
+
import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
10
|
+
import { computePublicDataTreeLeafSlot, siloNullifier } from '@aztec/stdlib/hash';
|
|
11
|
+
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
12
|
+
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
17
13
|
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { type SimpleContractDataSource } from './simple_contract_data_source.js';
|
|
14
|
+
import { createContractClassAndInstance } from './index.js';
|
|
15
|
+
import type { SimpleContractDataSource } from './simple_contract_data_source.js';
|
|
21
16
|
|
|
22
17
|
/**
|
|
23
18
|
* An abstract test class that enables tests of real apps in the AVM without requiring e2e tests.
|
|
@@ -36,11 +31,10 @@ export abstract class BaseAvmSimulationTester {
|
|
|
36
31
|
constructor(
|
|
37
32
|
public contractDataSource: SimpleContractDataSource,
|
|
38
33
|
public merkleTrees: MerkleTreeWriteOperations,
|
|
39
|
-
|
|
40
|
-
private skipContractDeployments = false,
|
|
34
|
+
private initialFeePayerBalance = new Fr(10 ** 10),
|
|
41
35
|
) {}
|
|
42
36
|
|
|
43
|
-
async setFeePayerBalance(feePayer: AztecAddress, balance
|
|
37
|
+
async setFeePayerBalance(feePayer: AztecAddress, balance = this.initialFeePayerBalance) {
|
|
44
38
|
const feeJuiceAddress = ProtocolContractAddress.FeeJuice;
|
|
45
39
|
const balanceSlot = await computeFeePayerBalanceStorageSlot(feePayer);
|
|
46
40
|
await this.setPublicStorage(feeJuiceAddress, balanceSlot, balance);
|
|
@@ -61,28 +55,35 @@ export abstract class BaseAvmSimulationTester {
|
|
|
61
55
|
constructorArgs: any[],
|
|
62
56
|
deployer: AztecAddress,
|
|
63
57
|
contractArtifact: ContractArtifact,
|
|
58
|
+
skipNullifierInsertion = false,
|
|
64
59
|
seed = 0,
|
|
60
|
+
originalContractClassId?: Fr, // if previously upgraded
|
|
65
61
|
): Promise<ContractInstanceWithAddress> {
|
|
66
|
-
const
|
|
67
|
-
|
|
62
|
+
const { contractClass, contractInstance } = await createContractClassAndInstance(
|
|
63
|
+
constructorArgs,
|
|
64
|
+
deployer,
|
|
65
|
+
contractArtifact,
|
|
68
66
|
seed,
|
|
69
|
-
|
|
67
|
+
originalContractClassId,
|
|
70
68
|
);
|
|
71
69
|
|
|
72
|
-
|
|
73
|
-
const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs);
|
|
74
|
-
const contractInstance = await makeContractInstanceFromClassId(contractClass.id, seed, {
|
|
75
|
-
deployer,
|
|
76
|
-
initializationHash,
|
|
77
|
-
});
|
|
70
|
+
await this.contractDataSource.addNewContract(contractArtifact, contractClass, contractInstance);
|
|
78
71
|
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
if (!skipNullifierInsertion) {
|
|
73
|
+
await this.insertContractAddressNullifier(contractInstance.address);
|
|
74
|
+
}
|
|
81
75
|
return contractInstance;
|
|
82
76
|
}
|
|
83
77
|
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
async registerFeeJuiceContract(): Promise<ContractInstanceWithAddress> {
|
|
79
|
+
const feeJuice = await getCanonicalFeeJuice();
|
|
80
|
+
const feeJuiceContractClassPublic = {
|
|
81
|
+
...feeJuice.contractClass,
|
|
82
|
+
privateFunctions: [],
|
|
83
|
+
unconstrainedFunctions: [],
|
|
84
|
+
};
|
|
85
|
+
await this.contractDataSource.addNewContract(feeJuice.artifact, feeJuiceContractClassPublic, feeJuice.instance);
|
|
86
|
+
return feeJuice.instance;
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
addContractClass(contractClass: ContractClassPublic, contractArtifact: ContractArtifact): Promise<void> {
|
|
@@ -91,14 +92,18 @@ export abstract class BaseAvmSimulationTester {
|
|
|
91
92
|
return this.contractDataSource.addContractClass(contractClass);
|
|
92
93
|
}
|
|
93
94
|
|
|
94
|
-
async addContractInstance(contractInstance: ContractInstanceWithAddress) {
|
|
95
|
-
if (!
|
|
96
|
-
|
|
97
|
-
AztecAddress.fromNumber(DEPLOYER_CONTRACT_ADDRESS),
|
|
98
|
-
contractInstance.address.toField(),
|
|
99
|
-
);
|
|
100
|
-
await this.merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, [contractAddressNullifier.toBuffer()], 0);
|
|
95
|
+
async addContractInstance(contractInstance: ContractInstanceWithAddress, skipNullifierInsertion = false) {
|
|
96
|
+
if (!skipNullifierInsertion) {
|
|
97
|
+
await this.insertContractAddressNullifier(contractInstance.address);
|
|
101
98
|
}
|
|
102
99
|
await this.contractDataSource.addContractInstance(contractInstance);
|
|
103
100
|
}
|
|
101
|
+
|
|
102
|
+
private async insertContractAddressNullifier(contractAddress: AztecAddress) {
|
|
103
|
+
const contractAddressNullifier = await siloNullifier(
|
|
104
|
+
AztecAddress.fromNumber(DEPLOYER_CONTRACT_ADDRESS),
|
|
105
|
+
contractAddress.toField(),
|
|
106
|
+
);
|
|
107
|
+
await this.merkleTrees.batchInsert(MerkleTreeId.NULLIFIER_TREE, [contractAddressNullifier.toBuffer()], 0);
|
|
108
|
+
}
|
|
104
109
|
}
|
|
@@ -1,25 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import {
|
|
2
|
+
DEPLOYER_CONTRACT_ADDRESS,
|
|
3
|
+
MAX_L2_GAS_PER_TX_PUBLIC_PORTION,
|
|
4
|
+
PUBLIC_DISPATCH_SELECTOR,
|
|
5
|
+
} from '@aztec/constants';
|
|
5
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
7
|
import { Fr } from '@aztec/foundation/fields';
|
|
7
8
|
import { AvmGadgetsTestContractArtifact } from '@aztec/noir-contracts.js/AvmGadgetsTest';
|
|
8
9
|
import { AvmTestContractArtifact } from '@aztec/noir-contracts.js/AvmTest';
|
|
10
|
+
import { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
11
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
12
|
+
import {
|
|
13
|
+
type ContractClassPublic,
|
|
14
|
+
type ContractInstanceWithAddress,
|
|
15
|
+
computeInitializationHash,
|
|
16
|
+
} from '@aztec/stdlib/contract';
|
|
17
|
+
import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
18
|
+
import { GasFees } from '@aztec/stdlib/gas';
|
|
19
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
20
|
+
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
21
|
+
import { makeContractClassPublic, makeContractInstanceFromClassId } from '@aztec/stdlib/testing';
|
|
22
|
+
import { GlobalVariables } from '@aztec/stdlib/tx';
|
|
9
23
|
|
|
10
24
|
import { strict as assert } from 'assert';
|
|
11
25
|
import { mock } from 'jest-mock-extended';
|
|
12
26
|
import merge from 'lodash.merge';
|
|
13
27
|
|
|
14
|
-
import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
28
|
+
import { resolveAssertionMessageFromRevertData, traverseCauseChain } from '../../../common/index.js';
|
|
29
|
+
import type { WorldStateDB } from '../../public_db_sources.js';
|
|
30
|
+
import type { PublicSideEffectTraceInterface } from '../../side_effect_trace_interface.js';
|
|
17
31
|
import { AvmContext } from '../avm_context.js';
|
|
18
32
|
import { AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
19
33
|
import { AvmMachineState } from '../avm_machine_state.js';
|
|
20
34
|
import { Field, Uint8, Uint32, Uint64 } from '../avm_memory_types.js';
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
35
|
+
import { AvmSimulator } from '../avm_simulator.js';
|
|
36
|
+
import type { AvmRevertReason } from '../errors.js';
|
|
23
37
|
import { AvmPersistableStateManager } from '../journal/journal.js';
|
|
24
38
|
import { NullifierManager } from '../journal/nullifiers.js';
|
|
25
39
|
import { PublicStorage } from '../journal/public_storage.js';
|
|
@@ -34,11 +48,13 @@ export function initContext(overrides?: {
|
|
|
34
48
|
env?: AvmExecutionEnvironment;
|
|
35
49
|
machineState?: AvmMachineState;
|
|
36
50
|
}): AvmContext {
|
|
37
|
-
|
|
51
|
+
const ctx = new AvmContext(
|
|
38
52
|
overrides?.persistableState || initPersistableStateManager(),
|
|
39
53
|
overrides?.env || initExecutionEnvironment(),
|
|
40
54
|
overrides?.machineState || initMachineState(),
|
|
41
55
|
);
|
|
56
|
+
ctx.provideSimulator = AvmSimulator.build;
|
|
57
|
+
return ctx;
|
|
42
58
|
}
|
|
43
59
|
|
|
44
60
|
/** Creates an empty state manager with mocked host storage. */
|
|
@@ -48,7 +64,7 @@ export function initPersistableStateManager(overrides?: {
|
|
|
48
64
|
publicStorage?: PublicStorage;
|
|
49
65
|
nullifiers?: NullifierManager;
|
|
50
66
|
doMerkleOperations?: boolean;
|
|
51
|
-
|
|
67
|
+
db?: MerkleTreeWriteOperations;
|
|
52
68
|
firstNullifier?: Fr;
|
|
53
69
|
}): AvmPersistableStateManager {
|
|
54
70
|
const worldStateDB = overrides?.worldStateDB || mock<WorldStateDB>();
|
|
@@ -58,7 +74,7 @@ export function initPersistableStateManager(overrides?: {
|
|
|
58
74
|
overrides?.publicStorage || new PublicStorage(worldStateDB),
|
|
59
75
|
overrides?.nullifiers || new NullifierManager(worldStateDB),
|
|
60
76
|
overrides?.doMerkleOperations || false,
|
|
61
|
-
overrides?.
|
|
77
|
+
overrides?.db || mock<MerkleTreeWriteOperations>(),
|
|
62
78
|
overrides?.firstNullifier || new Fr(27),
|
|
63
79
|
);
|
|
64
80
|
}
|
|
@@ -229,3 +245,52 @@ export function resolveAvmGadgetsTestContractAssertionMessage(
|
|
|
229
245
|
|
|
230
246
|
return resolveAssertionMessageFromRevertData(output, functionArtifact);
|
|
231
247
|
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Create a contract class and instance given constructor args, artifact, etc.
|
|
251
|
+
* NOTE: This is useful for testing real-ish contract class registration and instance deployment TXs (via logs)
|
|
252
|
+
* @param constructorArgs - The constructor arguments for the contract.
|
|
253
|
+
* @param deployer - The deployer of the contract.
|
|
254
|
+
* @param contractArtifact - The contract artifact for the contract.
|
|
255
|
+
* @param seed - The seed for the contract.
|
|
256
|
+
* @param originalContractClassId - The original contract class ID (if upgraded)
|
|
257
|
+
* @returns The contract class, instance, and contract address nullifier.
|
|
258
|
+
*/
|
|
259
|
+
export async function createContractClassAndInstance(
|
|
260
|
+
constructorArgs: any[],
|
|
261
|
+
deployer: AztecAddress,
|
|
262
|
+
contractArtifact: ContractArtifact,
|
|
263
|
+
seed = 0,
|
|
264
|
+
originalContractClassId?: Fr, // if previously upgraded
|
|
265
|
+
): Promise<{
|
|
266
|
+
contractClass: ContractClassPublic;
|
|
267
|
+
contractInstance: ContractInstanceWithAddress;
|
|
268
|
+
contractAddressNullifier: Fr;
|
|
269
|
+
}> {
|
|
270
|
+
const bytecode = getContractFunctionArtifact(PUBLIC_DISPATCH_FN_NAME, contractArtifact)!.bytecode;
|
|
271
|
+
const contractClass = await makeContractClassPublic(
|
|
272
|
+
seed,
|
|
273
|
+
/*publicDispatchFunction=*/ { bytecode, selector: new FunctionSelector(PUBLIC_DISPATCH_SELECTOR) },
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const constructorAbi = getContractFunctionArtifact('constructor', contractArtifact);
|
|
277
|
+
const initializationHash = await computeInitializationHash(constructorAbi, constructorArgs);
|
|
278
|
+
const contractInstance =
|
|
279
|
+
originalContractClassId === undefined
|
|
280
|
+
? await makeContractInstanceFromClassId(contractClass.id, seed, {
|
|
281
|
+
deployer,
|
|
282
|
+
initializationHash,
|
|
283
|
+
})
|
|
284
|
+
: await makeContractInstanceFromClassId(originalContractClassId, seed, {
|
|
285
|
+
deployer,
|
|
286
|
+
initializationHash,
|
|
287
|
+
currentClassId: contractClass.id,
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
const contractAddressNullifier = await siloNullifier(
|
|
291
|
+
AztecAddress.fromNumber(DEPLOYER_CONTRACT_ADDRESS),
|
|
292
|
+
contractInstance.address.toField(),
|
|
293
|
+
);
|
|
294
|
+
|
|
295
|
+
return { contractClass, contractInstance, contractAddressNullifier };
|
|
296
|
+
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type ContractClassPublic,
|
|
3
|
-
type ContractDataSource,
|
|
4
|
-
type ContractInstanceWithAddress,
|
|
5
|
-
type FunctionSelector,
|
|
6
|
-
type PublicFunction,
|
|
7
|
-
computePublicBytecodeCommitment,
|
|
8
|
-
} from '@aztec/circuits.js';
|
|
9
|
-
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
10
|
-
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
11
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
1
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
12
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { type ContractArtifact, FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
import type {
|
|
6
|
+
ContractClassPublic,
|
|
7
|
+
ContractDataSource,
|
|
8
|
+
ContractInstanceWithAddress,
|
|
9
|
+
PublicFunction,
|
|
10
|
+
} from '@aztec/stdlib/contract';
|
|
13
11
|
|
|
14
12
|
import { PUBLIC_DISPATCH_FN_NAME } from './index.js';
|
|
15
13
|
|
|
@@ -32,8 +30,18 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
32
30
|
|
|
33
31
|
/////////////////////////////////////////////////////////////
|
|
34
32
|
// Helper functions not in the contract data source interface
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Derive the contract class and instance with some seed.
|
|
35
|
+
* Add both to the contract data source along with the contract artifact.
|
|
36
|
+
*/
|
|
37
|
+
async addNewContract(
|
|
38
|
+
contractArtifact: ContractArtifact,
|
|
39
|
+
contractClass: ContractClassPublic,
|
|
40
|
+
contractInstance: ContractInstanceWithAddress,
|
|
41
|
+
) {
|
|
42
|
+
this.addContractArtifact(contractClass.id, contractArtifact);
|
|
43
|
+
await this.addContractClass(contractClass);
|
|
44
|
+
await this.addContractInstance(contractInstance);
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
addContractArtifact(classId: Fr, artifact: ContractArtifact): void {
|
|
@@ -41,7 +49,7 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
41
49
|
}
|
|
42
50
|
|
|
43
51
|
/////////////////////////////////////////////////////////////
|
|
44
|
-
// ContractDataSource function
|
|
52
|
+
// ContractDataSource function implementations
|
|
45
53
|
getPublicFunction(_address: AztecAddress, _selector: FunctionSelector): Promise<PublicFunction> {
|
|
46
54
|
throw new Error('Method not implemented.');
|
|
47
55
|
}
|
|
@@ -54,9 +62,8 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
54
62
|
return Promise.resolve(this.contractClasses.get(id.toString()));
|
|
55
63
|
}
|
|
56
64
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return Promise.resolve(computePublicBytecodeCommitment(contractClass!.packedBytecode));
|
|
65
|
+
getBytecodeCommitment(_id: Fr): Promise<Fr | undefined> {
|
|
66
|
+
return Promise.resolve(undefined);
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined> {
|
|
@@ -74,8 +81,8 @@ export class SimpleContractDataSource implements ContractDataSource {
|
|
|
74
81
|
return undefined;
|
|
75
82
|
}
|
|
76
83
|
this.logger.debug(`Retrieved contract artifact for address: ${address}`);
|
|
77
|
-
this.logger.debug(`Contract class ID: ${contractInstance.
|
|
78
|
-
return Promise.resolve(this.contractArtifacts.get(contractInstance!.
|
|
84
|
+
this.logger.debug(`Contract class ID: ${contractInstance.currentContractClassId}`);
|
|
85
|
+
return Promise.resolve(this.contractArtifacts.get(contractInstance!.currentContractClassId.toString()));
|
|
79
86
|
}
|
|
80
87
|
|
|
81
88
|
getContractFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string> {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './journal.js';
|