@aztec/protocol-contracts 0.59.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/AuthRegistry.json +1 -1
- package/artifacts/ContractClassRegisterer.json +1 -1
- package/artifacts/ContractInstanceDeployer.json +1 -1
- package/artifacts/FeeJuice.json +1 -1
- package/artifacts/MultiCallEntrypoint.json +1 -1
- package/artifacts/Router.json +1 -1
- package/artifacts/keys/AuthRegistry/set_authorized_private.vk.data.json +86 -86
- package/artifacts/keys/ContractClassRegisterer/broadcast_private_function.vk.data.json +86 -86
- package/artifacts/keys/ContractClassRegisterer/broadcast_unconstrained_function.vk.data.json +86 -86
- package/artifacts/keys/ContractClassRegisterer/register.vk.data.json +86 -86
- package/artifacts/keys/ContractInstanceDeployer/deploy.vk.data.json +86 -86
- package/artifacts/keys/FeeJuice/claim.vk.data.json +86 -86
- package/artifacts/keys/FeeJuice/initialize.vk.data.json +86 -86
- package/artifacts/keys/MultiCallEntrypoint/entrypoint.vk.data.json +86 -86
- package/artifacts/keys/Router/check_block_number.vk.data.json +86 -86
- package/artifacts/keys/Router/check_timestamp.vk.data.json +86 -86
- package/dest/protocol_contract_data.js +7 -7
- package/package.json +4 -4
- package/src/protocol_contract_data.ts +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.35.0+df29d315d6b71131ffe0180c97130395edb2e4ba-x8664","name":"ContractInstanceDeployer","functions":[{"name":"deploy","is_unconstrained":false,"custom_attributes":["private"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"salt","type":{"kind":"field"},"visibility":"private"},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"},"visibility":"private"},{"name":"initialization_hash","type":{"kind":"field"},"visibility":"private"},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"},"visibility":"private"},{"name":"universal_deploy","type":{"kind":"boolean"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"databus"}},"bytecode":"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","debug_symbols":"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","brillig_names":["debug_log_oracle_wrapper","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","emit_unencrypted_log_private_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{"14336010898202591232":{"error_kind":"fmtstring","item_types":[],"length":16}},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/9VYzXLaMBAWYDB2AiEmKemNXtuLnRCgN8/0J733CRp+Lj2knckDuDNtn7uoaO2PZctQWB3YGY9krfztt7uS11bNrKW9umqu33Rty2wLzcldmx4nmSJW6pNn7UR41k+EZ+NEeAaKPGsCT9sGrm/3nd1zoVnvxy0lPmwT3QC92QFUY0at/IR+17Wfn7/Mvg6fn56G88XiWzn9t2sj19YBTjGPWWS2Y6OFP01Hs8hsijL/u8hhhn7w7wm/7Qc/Jd7vigoffSG7Ddc+FFUsH+AZKx3XxyVHuKSrg+490zVA94HpcMl/ZDrcJsSJ4tYCXxTX1dR3Xsi3EHyr/aM1poodjlGsY+N1jWaU84jx4fyJT4fmFBWfFtMFoIuYrgk6ir9thzCP5z6EeW9gnK/Jhtlew6SnnGOsfaypwAP+SkZS3HlOgmLTNuow7gHEc+j6/dX1yc0JIGZWwsKLT2V9bTv8JvAmm8i9zubzfpONvTYV77/+wFyy04Axsnnh7lugo2d3YQUCVk+Y32JYoYCFY+S33ROvXP/MrPP3g/DN9ntC7xt4/FZ6Z+rhT8paHPnhvyD82Av+qMQ/A3zNvUL4537iMyb8jh/88luo6wX/tozPBeAbvfhnVJdoP6MNsn3pJfdZts83A9qPGVdf3wyXjA+PD9Ynq0sErj1Bx/doIthJBDuUhz57Plfxe7yUuPYP5CphdRWxIkWsQ32kfFyx53N3nx4lk5HE9UrR744iVlsR69B1Qvm4Zs/n7j49SsZiPq4V/dbMx7kiVqiIpblvNeNFeZRqnZXctemRwrni/xTapDrfZPO/u5ZqzgtTCa/XAxhXrNe3+9brAeOKfIh3LOiOOeOcjZd3j/PlaP44WUwh3gPGlY/hGaK9boT5Uu2nWL80XmKdSv/FNxBXKwHoBkzXBB1xxP/iiGFq898n/mi/J+jwn+N/cpmYzbWWMJ/x/CdX8bc6G2sDNt+XkZdYp/f77kuyHzOuynx2nr1hfPh3dCxw7Qk6XpdiwU4s2DlFLH5+jTG0+4PiFBSVXiuXk2l1lkXvITzLQglAj/N/ufvEyGJ9+ANQAijv/B0AAA==","debug_symbols":"tdnBaoNAEIDhd9lzDq66OzN5lVKCJhoWRIOaQhHfvZs2lEDO/0V2dPxv32k3d+na+/WUxn5a3PFjc8N0btY0jXna9oNr5zQM6Xp6fe2Kx6Ouf/eXWzM+xmVt5tUdq/rguvGSD5b/7tPQ5aPm89umlM9Nkf/NYPvnwdUBK0esLFhZsbJR5VBgZY+VS6xcYWXMYMAMBsxgwAwGzGDADEbMYMQMRsxgxAxGzGDEDEbMYMQMRsxgxAwKZlAwg4IZFMygYAYFMyiYQcEMCmZQMIOKGVTMoGIGFTOomEHFDCpmUDGDihlUzKBhBg0zaJhBwwwaZtAwg4YZNMygYQYNM+iLgkt7Ll1y6YpL11w6cOnIpYVLK5fmNHpOo+c0ekjjnqevZk5NO3TPm4f+Pp5fLiLW79vfl7z8Aw==","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]}],"outputs":{"globals":{},"structs":{"events":[{"fields":[{"name":"DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE","type":{"kind":"field"}},{"name":"address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"version","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"salt","type":{"kind":"field"}},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"}},{"name":"deployer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}}],"kind":"struct","path":"ContractInstanceDeployer::ContractInstanceDeployed"}],"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"salt","type":{"kind":"field"}},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"}},{"name":"universal_deploy","type":{"kind":"boolean"}}],"kind":"struct","path":"ContractInstanceDeployer::deploy_parameters"}}],"kind":"struct","path":"ContractInstanceDeployer::deploy_abi"}]}},"file_map":{"103":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, PUBLIC_DISPATCH_SELECTOR\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\n };\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let call_request = PublicCallRequest { contract_address, call_context, args_hash, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\n };\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.public_teardown_call_request = PublicCallRequest {\n contract_address,\n call_context,\n args_hash,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/to_bytes.nr","source":"pub fn arr_to_be_bytes_arr<let L: u32>(fields: [Field; L]) -> [u8; L * 32] {\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n // Note that bytes.append() results in bound error\n let to_add: [u8; 32] = fields[i].to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n\n// each character of a string is converted into a byte\n// then an ACVM field via the oracle => we recreate here\npub fn str_to_be_bytes_arr<let L: u32>(string: str<L>) -> [u8; L * 32] {\n let chars_bytes: [u8; L] = string.as_bytes();\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n let to_add: [u8; 32] = (chars_bytes[i] as Field).to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n"},"156":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(contract_address: AztecAddress, randomness: Field, encrypted_event: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(contract_address, randomness, encrypted_event, counter)\n }\n}\n\n/// Informs the simulator that an unencrypted log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_unencrypted_log_private<T>(contract_address: AztecAddress, message: T, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_unencrypted_log_private_oracle_wrapper(contract_address, message, counter)\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\nunconstrained fn emit_unencrypted_log_private_oracle_wrapper<T>(contract_address: AztecAddress, message: T, counter: u32) {\n let _ = emit_unencrypted_log_private_oracle(contract_address, message, counter);\n}\n\n/// Temporary substitute for `emit_unencrypted_log_private` that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\npub unconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_private_oracle<T>(\n _contract_address: AztecAddress,\n _message: T,\n _counter: u32\n) -> Field {}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n"},"184":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, GENERATOR_INDEX__FUNCTION_ARGS},\n point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice}\n};\nuse crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(contract_address: AztecAddress, log: [u8; N]) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\npub struct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"193":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\nuse crate::meta::{derive_deserialize, derive_serialize};\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for U128 {\n fn empty() -> Self {\n U128::from_integer(0)\n }\n}\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\n#[derive_via(derive_serialize)]\npub trait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let bytes = self.as_bytes();\n let mut fields = [0; N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n// docs:start:deserialize\n#[derive_via(derive_deserialize)]\npub trait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl <let N: u32> Deserialize<N> for str<N> {\n fn deserialize(fields: [Field; N]) -> Self {\n str<N>::from(fields.map(|value| value as u8))\n }\n}\n"},"216":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, public_keys_hash::PublicKeysHash,\n salted_initialization_hash::SaltedInitializationHash\n},\n constants::{AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\npub struct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n functino_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys_hash: PublicKeysHash\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n functino_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(contract_class_id, salted_initialization_hash);\n\n AztecAddress::compute(public_keys_hash, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"218":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{aztec_address::AztecAddress}, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"221":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"24":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n pub x: Field,\n pub y: Field,\n pub is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n pub fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n pub fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n pub lo: Field,\n pub hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset+31 - i] as Field) * v;\n hi = hi + (bytes[offset+15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// This is a hack because returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n let x_coordinates_match = point1.x == point2.x;\n let y_coordinates_match = point1.y == point2.y;\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint { x: point1.x + (x_coordinates_match as Field), y: point1.y, is_infinite: x_coordinates_match };\n // point1_1 is guaranteed to have a different abscissa than point2\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n result.is_infinite = x_coordinates_match;\n\n // dbl if x_match, y_match\n let double = embedded_curve_add_unsafe(point1, point1);\n result = if double_predicate { double } else { result };\n\n // infinity if x_match, !y_match\n if point1.is_infinite {\n result= point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n let mut result_is_infinity = infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n\n EmbeddedCurvePoint { x, y, is_infinite: false }\n}\n"},"253":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n debug_log_oracle_wrapper(msg, args)\n };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"},"254":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr","source":"use crate::{\n address::public_keys_hash::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::POINT_LENGTH,\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m: NpkM { inner: Point::empty() },\n ivpk_m: IvpkM { inner: Point::empty() },\n ovpk_m: OvpkM { inner: Point::empty() },\n tpk_m: TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x: serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"26":{"path":"std/field/mod.nr","source":"pub mod bn254;\nuse bn254::lt as bn254_lt;\nuse crate::runtime::is_unconstrained;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size<let BIT_SIZE: u32>(self) {\n // docs:end:assert_max_bit_size\n assert(BIT_SIZE < modulus_num_bits() as u32);\n self.__assert_max_bit_size(BIT_SIZE);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N-1-i] as Field) * v;\n v = v * 256;\n }\n result\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_radix_example\n}\n"},"338":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk<let N: u32>(_vk: VerificationKey<N>) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field where T: ToField {\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"34":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"},"35":{"path":"std/hash/sha256.nr","source":"use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> [u8; 32] {\n sha256_var(msg, N as u64)\n}\n\n// Convert 64-byte array to array of 16 u32s\nfn msg_u8_to_u32(msg: [u8; 64]) -> [u32; 16] {\n let mut msg32: [u32; 16] = [0; 16];\n\n for i in 0..16 {\n let mut msg_field: Field = 0;\n for j in 0..4 {\n msg_field = msg_field * 256 + msg[64 - 4*(i + 1) + j] as Field;\n }\n msg32[15 - i] = msg_field as u32;\n }\n\n msg32\n}\n\nunconstrained fn build_msg_block_iter<let N: u32>(msg: [u8; N], message_size: u32, msg_start: u32) -> ([u8; 64], u32) {\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n for k in 0..block_input {\n msg_block[k] = msg[msg_start + k];\n }\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: [u8; 64],\n msg_start: u32\n) -> u32 {\n let mut msg_byte_ptr: u32 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n\n for k in msg_start..msg_end {\n if k < message_size {\n assert_eq(msg_block[msg_byte_ptr], msg[k]);\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\nglobal BLOCK_SIZE = 64;\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> [u8; 32] {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n let mut h: [u32; 8] = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; // Intermediate hash, starting with the canonical initial value\n let mut msg_byte_ptr = 0; // Pointer into msg_block\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n msg_block[msg_byte_ptr] = 1 << 7;\n let last_block = msg_block;\n msg_byte_ptr = msg_byte_ptr + 1;\n\n unsafe {\n let (new_msg_block, new_msg_byte_ptr) = pad_msg_block(msg_block, msg_byte_ptr);\n msg_block = new_msg_block;\n if crate::runtime::is_unconstrained() {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..BLOCK_SIZE {\n assert_eq(msg_block[i], last_block[i]);\n }\n\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n // Not enough bits (64) to store length. Fill up with zeros.\n for _i in 57..BLOCK_SIZE {\n if msg_byte_ptr <= 63 & msg_byte_ptr >= 57 {\n assert_eq(msg_block[msg_byte_ptr], zero);\n msg_byte_ptr += 1;\n }\n }\n }\n\n if msg_byte_ptr >= 57 {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe {\n attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size)\n };\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..56 {\n let predicate = (i < msg_byte_ptr) as u8;\n let expected_byte = predicate * last_block[i];\n assert_eq(msg_block[i], expected_byte);\n }\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let len = 8 * message_size;\n let mut reconstructed_len: Field = 0;\n for i in 56..64 {\n reconstructed_len = 256 * reconstructed_len + msg_block[i] as Field;\n }\n assert_eq(reconstructed_len, len as Field);\n }\n\n hash_final_block(msg_block, h)\n}\n\nunconstrained fn pad_msg_block(\n mut msg_block: [u8; 64],\n mut msg_byte_ptr: u32\n) -> ([u8; BLOCK_SIZE], u32) {\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n if msg_byte_ptr >= 57 {\n // Not enough bits (64) to store length. Fill up with zeros.\n for i in msg_byte_ptr..BLOCK_SIZE {\n msg_block[i] = 0;\n }\n (msg_block, BLOCK_SIZE)\n } else {\n (msg_block, msg_byte_ptr)\n }\n}\n\nunconstrained fn attach_len_to_msg_block(mut msg_block: [u8; BLOCK_SIZE], msg_byte_ptr: u32, message_size: u32) -> [u8; BLOCK_SIZE] {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 (i.e. until msg_byte_ptr = 56).\n\n for i in msg_byte_ptr..56 {\n msg_block[i] = 0;\n }\n\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..8 {\n msg_block[56 + i] = len_bytes[i];\n }\n msg_block\n}\n\nfn hash_final_block(msg_block: [u8; BLOCK_SIZE], mut state: [u32; 8]) -> [u8; 32] {\n let mut out_h: [u8; 32] = [0; 32]; // Digest as sequence of bytes\n\n // Hash final padded block\n state = sha256_compression(msg_u8_to_u32(msg_block), state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[7 - j] as Field).to_le_bytes();\n for k in 0..4 {\n out_h[31 - 4*j - k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d, 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0, 0x8f, 0xfe, 0x73, 0x2b\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94, 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154, 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213, 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97, 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186, 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253, 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9, 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214, 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107, 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198, 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126, 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36, 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59, 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97, 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180, 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216, 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70, 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246, 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193, 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74, 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210, 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210, 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69, 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22, 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175, 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53, 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200, 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86, 119, 30, 63, 129, 143, 32, 96\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n}\n"},"389":{"path":"/usr/src/noir-projects/noir-contracts/contracts/contract_instance_deployer_contract/src/main.nr","source":"use dep::aztec::macros::aztec;\n\n#[aztec]\ncontract ContractInstanceDeployer {\n use dep::aztec::protocol_types::{\n address::{AztecAddress, PublicKeysHash, PartialAddress}, public_keys::PublicKeys,\n contract_class_id::ContractClassId, constants::DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n abis::log_hash::LogHash, traits::Serialize\n };\n use dep::aztec::{\n hash::compute_unencrypted_log_hash, oracle::logs::emit_unencrypted_log_private,\n macros::{events::event, functions::private}, utils::to_bytes::arr_to_be_bytes_arr\n };\n use std::meta::derive;\n\n #[event]\n struct ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n impl Serialize<15> for ContractInstanceDeployed {\n fn serialize(self) -> [Field; 15] {\n [\n self.DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field()\n ]\n }\n }\n\n #[private]\n fn deploy(\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool\n ) {\n // TODO(@spalladino): assert nullifier_exists silo(contract_class_id, ContractClassRegisterer)\n\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.msg_sender()\n };\n\n let partial_address = PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n let address = AztecAddress::compute(public_keys.hash(), partial_address);\n\n // Emit the address as a nullifier to be able to prove that this instance has been (not) deployed\n context.push_nullifier(address.to_field());\n\n // Broadcast the event\n let event = ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1\n };\n\n let payload = event.serialize();\n dep::aztec::oracle::debug_log::debug_log_format(\"ContractInstanceDeployed: {}\", payload);\n\n let contract_address = context.this_address();\n let counter = context.next_counter();\n\n // @todo This is very inefficient, we are doing a lot of back and forth conversions.\n let serialized_log = arr_to_be_bytes_arr(payload);\n let log_hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n // 40 = addr (32) + raw log len (4) + processed log len (4)\n let len = 40 + serialized_log.len().to_field();\n let side_effect = LogHash { value: log_hash, counter, length: len };\n\n // We manually push the unencrypted log to the context and inform the execution environment about this because\n // PrivateContext does not expose an `emit_unencrypted_log` method - this mechanism is considered error-prone\n // and only some canonical contracts use it.\n context.unencrypted_logs_hashes.push(side_effect);\n emit_unencrypted_log_private(contract_address, payload, counter);\n }\n}\n"},"59":{"path":"std/panic.nr","source":"pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"}}}
|
|
1
|
+
{"transpiled":true,"noir_version":"0.36.0+1094f036be7b102252a3a5c0d4b8c621779cf4bd-x8664","name":"ContractInstanceDeployer","functions":[{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{"14336010898202591232":{"error_kind":"fmtstring","item_types":[],"length":16}},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/9VYzXLaMBAWYDB2AiEmKemNXtuLnRCgN8/0J733CRp+Lj2knckDuDNtn7uoaO2PZctQWB3YGY9krfztt7uS11bNrKW9umqu33Rty2wLzcldmx4nmSJW6pNn7UR41k+EZ+NEeAaKPGsCT9sGrm/3nd1zoVnvxy0lPmwT3QC92QFUY0at/IR+17Wfn7/Mvg6fn56G88XiWzn9t2sj19YBTjGPWWS2Y6OFP01Hs8hsijL/u8hhhn7w7wm/7Qc/Jd7vigoffSG7Ddc+FFUsH+AZKx3XxyVHuKSrg+490zVA94HpcMl/ZDrcJsSJ4tYCXxTX1dR3Xsi3EHyr/aM1poodjlGsY+N1jWaU84jx4fyJT4fmFBWfFtMFoIuYrgk6ir9thzCP5z6EeW9gnK/Jhtlew6SnnGOsfaypwAP+SkZS3HlOgmLTNuow7gHEc+j6/dX1yc0JIGZWwsKLT2V9bTv8JvAmm8i9zubzfpONvTYV77/+wFyy04Axsnnh7lugo2d3YQUCVk+Y32JYoYCFY+S33ROvXP/MrPP3g/DN9ntC7xt4/FZ6Z+rhT8paHPnhvyD82Av+qMQ/A3zNvUL4537iMyb8jh/88luo6wX/tozPBeAbvfhnVJdoP6MNsn3pJfdZts83A9qPGVdf3wyXjA+PD9Ynq0sErj1Bx/doIthJBDuUhz57Plfxe7yUuPYP5CphdRWxIkWsQ32kfFyx53N3nx4lk5HE9UrR744iVlsR69B1Qvm4Zs/n7j49SsZiPq4V/dbMx7kiVqiIpblvNeNFeZRqnZXctemRwrni/xTapDrfZPO/u5ZqzgtTCa/XAxhXrNe3+9brAeOKfIh3LOiOOeOcjZd3j/PlaP44WUwh3gPGlY/hGaK9boT5Uu2nWL80XmKdSv/FNxBXKwHoBkzXBB1xxP/iiGFq898n/mi/J+jwn+N/cpmYzbWWMJ/x/CdX8bc6G2sDNt+XkZdYp/f77kuyHzOuynx2nr1hfPh3dCxw7Qk6XpdiwU4s2DlFLH5+jTG0+4PiFBSVXiuXk2l1lkXvITzLQglAj/N/ufvEyGJ9+ANQAijv/B0AAA==","debug_symbols":"tdnBaoNAEIDhd9mzBze6OzN5lVKCJhoWRIOaQhHfvZs2lEDO/0V2dPxv32k3d+na+/WUxn5a3PFjc8N0btY0jXna9sK1cxqGdD29vnbl41HXv/vLrRkf47I28+qOVV24brzkg+W/+zR0+ai6F2+bcnhuivxvBts/C1cHrByxsmBlxcpGlUOJlT1WPmDlCitjBgNmMGAGA2YwYAYDZjBiBiNmMGIGI2YwYgYjZjBiBiNmMGIGI2ZQMIOCGRTMoGAGBTMomEHBDApmUDCDghlUzKBiBhUzqJhBxQwqZlAxg4oZVMygYgYNM2iYQcMMGmbQMIOGGTTMoGEGDTNomEFfllzac+kDl664dM2lA5eOXFq4tHJpTqPnNHpOo4c07nn6aubUtEP3vHno7+P55SJi/b79fcnLPw==","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]},{"name":"deploy","is_unconstrained":false,"custom_attributes":["private"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"salt","type":{"kind":"field"},"visibility":"private"},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"},"visibility":"private"},{"name":"initialization_hash","type":{"kind":"field"},"visibility":"private"},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"},"visibility":"private"},{"name":"universal_deploy","type":{"kind":"boolean"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"databus"}},"bytecode":"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","debug_symbols":"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","brillig_names":["debug_log_oracle_wrapper","build_msg_block","attach_len_to_msg_block","emit_unencrypted_log_private_oracle_wrapper","directive_invert","directive_integer_quotient"]}],"outputs":{"globals":{},"structs":{"events":[{"fields":[{"name":"DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE","type":{"kind":"field"}},{"name":"address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"version","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"salt","type":{"kind":"field"}},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"}},{"name":"deployer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::address::aztec_address::AztecAddress"}}],"kind":"struct","path":"ContractInstanceDeployer::ContractInstanceDeployed"}],"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"salt","type":{"kind":"field"}},{"name":"contract_class_id","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"aztec::protocol_types::contract_class_id::ContractClassId"}},{"name":"initialization_hash","type":{"kind":"field"}},{"name":"public_keys","type":{"fields":[{"name":"npk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::NpkM"}},{"name":"ivpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::IvpkM"}},{"name":"ovpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::OvpkM"}},{"name":"tpk_m","type":{"fields":[{"name":"inner","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::TpkM"}}],"kind":"struct","path":"aztec::protocol_types::public_keys::PublicKeys"}},{"name":"universal_deploy","type":{"kind":"boolean"}}],"kind":"struct","path":"ContractInstanceDeployer::deploy_parameters"}}],"kind":"struct","path":"ContractInstanceDeployer::deploy_abi"}]}},"file_map":{"148":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/to_bytes.nr","source":"pub fn arr_to_be_bytes_arr<let L: u32>(fields: [Field; L]) -> [u8; L * 32] {\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n // Note that bytes.append() results in bound error\n let to_add: [u8; 32] = fields[i].to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n\n// each character of a string is converted into a byte\n// then an ACVM field via the oracle => we recreate here\npub fn str_to_be_bytes_arr<let L: u32>(string: str<L>) -> [u8; L * 32] {\n let chars_bytes: [u8; L] = string.as_bytes();\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n let to_add: [u8; 32] = (chars_bytes[i] as Field).to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n"},"161":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__FUNCTION_ARGS,\n }, point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice},\n};\nuse crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(\n contract_address: AztecAddress,\n log: [u8; N],\n) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER,\n )\n}\n\npub struct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd,\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = AztecAddress::from_field(\n 0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303,\n );\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"186":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash},\n }, address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, PUBLIC_DISPATCH_SELECTOR,\n }, header::Header, messaging::l2_to_l1_message::L2ToL1Message, traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests: BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: self.next_counter(),\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(\n &mut self,\n note_hash_counter: u32,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n let call_context = CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n let call_context = CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n };\n\n let call_request = PublicCallRequest { call_context, args_hash, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n let call_context = CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n };\n\n self.public_teardown_call_request = PublicCallRequest { call_context, args_hash, counter };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"},"26":{"path":"std/field/mod.nr","source":"pub mod bn254;\nuse bn254::lt as bn254_lt;\nuse crate::runtime::is_unconstrained;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size<let BIT_SIZE: u32>(self) {\n // docs:end:assert_max_bit_size\n assert(BIT_SIZE < modulus_num_bits() as u32);\n self.__assert_max_bit_size(BIT_SIZE);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n ///\n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self',\n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n // Brillig does not need an immediate radix\n if !crate::runtime::is_unconstrained() {\n crate::assert_constant(radix);\n }\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32 - i] as Field) * (r * self) + (1 - b[32 - i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N - 1 - i] as Field) * v;\n v = v * 256;\n }\n result\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_radix_example\n}\n"},"308":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, Serialize, Deserialize},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"309":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"312":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, public_keys_hash::PublicKeysHash,\n salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils,\n};\n\n// Aztec address\npub struct AztecAddress {\n inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n ))\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n functino_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys_hash: PublicKeysHash,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n functino_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys_hash, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"313":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"},"325":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash}, note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n }, address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX,\n }, merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [tx_hash, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), unique_note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256(\n [log_hash.contract_address.to_field(), log_hash.log_hash.value],\n )\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0,\n ))\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk<let N: u32>(\n _vk: VerificationKey<N>,\n) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"327":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr","source":"use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n GENERATOR_INDEX__PUBLIC_KEYS_HASH, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_IVPK_M_X,\n DEFAULT_IVPK_M_Y, DEFAULT_OVPK_M_X, DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y,\n }, hash::poseidon2_hash_with_separator, point::POINT_LENGTH,\n traits::{Deserialize, Serialize, Hash},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse dep::std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"34":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"},"35":{"path":"std/hash/sha256.nr","source":"use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE = 16;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeroes.\ntype MSG_BLOCK = [u8; BLOCK_SIZE];\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: INT_BLOCK, _state: STATE) -> STATE {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; BLOCK_SIZE];\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ]; // Intermediate hash, starting with the canonical initial value\n let mut msg_byte_ptr = 0; // Pointer into msg_block\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block[msg_byte_ptr] = 1 << 7;\n let last_block = msg_block;\n msg_byte_ptr = msg_byte_ptr + 1;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !crate::runtime::is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Convert 64-byte array to array of 16 u32s\nfn msg_u8_to_u32(msg: MSG_BLOCK) -> INT_BLOCK {\n let mut msg32: INT_BLOCK = [0; INT_BLOCK_SIZE];\n\n for i in 0..INT_BLOCK_SIZE {\n let mut msg_field: Field = 0;\n for j in 0..4 {\n msg_field = msg_field * 256 + msg[64 - 4 * (i + 1) + j] as Field;\n }\n msg32[15 - i] = msg_field as u32;\n }\n\n msg32\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeroes.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; BLOCK_SIZE];\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n for k in 0..block_input {\n msg_block[k] = msg[msg_start + k];\n }\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr: u32 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n\n for k in msg_start..msg_end {\n if k < message_size {\n assert_eq(msg_block[msg_byte_ptr], msg[k]);\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeroes by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n for i in 0..BLOCK_SIZE {\n if i >= msg_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 (i.e. until msg_byte_ptr = 56).\n for i in msg_byte_ptr..MSG_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..8 {\n msg_block[MSG_SIZE_PTR + i] = len_bytes[i];\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n for i in 0..MSG_SIZE_PTR {\n let predicate = (i < msg_byte_ptr) as u8;\n let expected_byte = predicate * last_block[i];\n assert_eq(msg_block[i], expected_byte);\n }\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let len = 8 * message_size;\n let mut reconstructed_len: Field = 0;\n for i in MSG_SIZE_PTR..BLOCK_SIZE {\n reconstructed_len = 256 * reconstructed_len + msg_block[i] as Field;\n }\n assert_eq(reconstructed_len, len as Field);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_u8_to_u32(msg_block), state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[7 - j] as Field).to_le_bytes();\n for k in 0..4 {\n out_h[31 - 4 * j - k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d,\n 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0,\n 0x8f, 0xfe, 0x73, 0x2b,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94,\n 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99,\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154,\n 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59,\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213,\n 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97,\n 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61,\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186,\n 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253,\n 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9,\n 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214,\n 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107,\n 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198,\n 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126,\n 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36,\n 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59,\n 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97,\n 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180,\n 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216,\n 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70,\n 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246,\n 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193,\n 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74,\n 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210,\n 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210,\n 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69,\n 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22,\n 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175,\n 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53,\n 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200,\n 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86,\n 119, 30, 63, 129, 143, 32, 96,\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n}\n"},"388":{"path":"/usr/src/noir-projects/noir-contracts/contracts/contract_instance_deployer_contract/src/main.nr","source":"use dep::aztec::macros::aztec;\n\n#[aztec]\ncontract ContractInstanceDeployer {\n use dep::aztec::protocol_types::{\n address::{AztecAddress, PublicKeysHash, PartialAddress}, public_keys::PublicKeys,\n contract_class_id::ContractClassId,\n constants::DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE, abis::log_hash::LogHash,\n traits::Serialize,\n };\n use dep::aztec::{\n hash::compute_unencrypted_log_hash, oracle::logs::emit_unencrypted_log_private,\n macros::{events::event, functions::private}, utils::to_bytes::arr_to_be_bytes_arr,\n };\n use std::meta::derive;\n\n #[event]\n struct ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n impl Serialize<15> for ContractInstanceDeployed {\n fn serialize(self) -> [Field; 15] {\n [\n self.DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field(),\n ]\n }\n }\n\n #[private]\n fn deploy(\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool,\n ) {\n // TODO(@spalladino): assert nullifier_exists silo(contract_class_id, ContractClassRegisterer)\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.msg_sender()\n };\n\n let partial_address =\n PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n let address = AztecAddress::compute(public_keys.hash(), partial_address);\n\n // Emit the address as a nullifier to be able to prove that this instance has been (not) deployed\n context.push_nullifier(address.to_field());\n\n // Broadcast the event\n let event = ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1,\n };\n\n let payload = event.serialize();\n dep::aztec::oracle::debug_log::debug_log_format(\"ContractInstanceDeployed: {}\", payload);\n\n let contract_address = context.this_address();\n let counter = context.next_counter();\n\n // @todo This is very inefficient, we are doing a lot of back and forth conversions.\n let serialized_log = arr_to_be_bytes_arr(payload);\n let log_hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n // 40 = addr (32) + raw log len (4) + processed log len (4)\n let len = 40 + serialized_log.len().to_field();\n let side_effect = LogHash { value: log_hash, counter, length: len };\n\n // We manually push the unencrypted log to the context and inform the execution environment about this because\n // PrivateContext does not expose an `emit_unencrypted_log` method - this mechanism is considered error-prone\n // and only some canonical contracts use it.\n context.unencrypted_logs_hashes.push(side_effect);\n emit_unencrypted_log_private(contract_address, payload, counter);\n }\n}\n"},"59":{"path":"std/panic.nr","source":"pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"},"98":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(\n contract_address,\n randomness,\n encrypted_event,\n counter,\n )\n }\n}\n\n/// Informs the simulator that an unencrypted log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_unencrypted_log_private<T>(contract_address: AztecAddress, message: T, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_unencrypted_log_private_oracle_wrapper(contract_address, message, counter)\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\nunconstrained fn emit_unencrypted_log_private_oracle_wrapper<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32,\n) {\n let _ = emit_unencrypted_log_private_oracle(contract_address, message, counter);\n}\n\n/// Temporary substitute for `emit_unencrypted_log_private` that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\npub unconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_private_oracle<T>(\n _contract_address: AztecAddress,\n _message: T,\n _counter: u32,\n) -> Field {}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {}\n"}}}
|