@aztec/protocol-contracts 0.53.0 → 0.54.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.
@@ -1 +1 @@
1
- {"transpiled":true,"noir_version":"0.33.0+eab944cbb77eb613e61a879312b58c415f8a0c13","name":"MultiCallEntrypoint","functions":[{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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/9VWzU7CQBDeBQoVW4h61jR68VgSSDiS+PsAvgDBJnIBQ6vPL2Pnk8+FcHE3sZtsZjo7P9/Mzu7WmnrE22mVj5R2zf6Azkxp/rcx8ugrD4nTNgRnqyE42w3B2fGI0x7AKbSjvJw7OXM9U5/HvUU2lo1u07o54sg6QWVcE3+r9OVtWWaL9arazBdV9rouymy1rrKPssjeN8vPeVXId1H+OJoojRUQg575qdoodhL35ns6XojvfhjcE/F9GsZ3Lpt7p4UBfsSSfXjSNVCrMzF10xiyT8yuce5JhoZ7IBlehEeS9czvWLHOAPs1Fb8nIXxv+yyhGgJ/QjzWJN8r0osC5toNk+s42B7l9S2HPYrUN2J1qW587jy+riPr9IilWJB3iL8kXehBp014ZQzMrt/7R+wix25IOj2yix07fOMuFT8Xyp9v53O804X/UHV07y+ff0C4i5CLpVh9kkPnRumZ2R9cA+MRo/hNKX+f54/vGkMxePDDnlKuSRhM3/cf4gDbkGTcZ6mDE9+tf2R3KB+RDYgHxTlPSYb6D8jvF96XymUuDQAA","debug_symbols":"lZDLCsMgEEX/ZdYuUg0N9VdKCZpoGBANagpF/PdOHots3QxzZu7Z3AKz0dsyorchgXwXcGFSGYMnKpWBjugcLuP9DN0+RHfk06r8jimrmEGK58DA+Jm2gZNv0RmQPX/VDwPxaFd4uyLalb5RqYRfFVFpZ66m7OanW3H5t54fCv8B","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::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":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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S+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lijqy4IyvuyIo7snqCT0g+ofiE5hM2n8AzzR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR9bckTV3ZM0dWXNH1k/wCcknFJ/QfMLmE3imuSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyPr7Hdl81v7twfPZ688nfOvB9TxfHl3r+fLwMb71+NE9P6/f+/dV8rft8+rt6+rt++rt99Xbn5u3p97wGw+u+vLg6t+fes312z7jxfaZL7bP+qG/2z5tPM/v20e987ttrmfm52dfT8ZfPP5PryCufwV5/Suo619B/+BXsPP3T91PH8Hf2OjFr1jtL3egzvnqDrz4FXt7++8Xtj91+3H19vPq7deLf/W21pev3vKrr96+XzT/1O1f/TvGt7d/9e8Y397+1b9jfHv7V/+O8e3tX/07xje3Py9+a9/Z/sVv7Tvbv/itfWf7q2/t9/+kwU/d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","brillig_names":["enqueue_public_function_call_internal","call_private_function_internal","directive_invert","directive_integer_quotient"]}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"112":{"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, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, 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\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 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 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 item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, 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 assert(args_hash == 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 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 call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\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"},"140":{"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, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\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<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\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] = message_bytes[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\nstruct 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 hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn 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 hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"153":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\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 let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"265":{"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, point::Point\n};\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(_vk: VerificationKey) -> 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 let input_as_bytes: [u8; 32] = logs[offset].value.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 // 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 let input_as_bytes: [u8; 32] = logs[offset].value.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 // 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 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 pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\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"},"288":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct 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 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\nstruct 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 {\n _state: &[],\n }\n }\n}\n"},"323":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct 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 {\n inner : 0\n }\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 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"},"429":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"72":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"}}}
1
+ {"transpiled":true,"noir_version":"0.33.0+8ac81b15cd2a3b57493bfbfe444086deac8f3dc8","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::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":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","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":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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":"authwit::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":"authwit::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":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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","brillig_names":["enqueue_public_function_call_internal","call_private_function_internal","directive_invert","directive_integer_quotient"]},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::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/9VWzU7CQBDeBQoVW4h61jR68VgSSDiS+PsAvgDBJnIBQ6vPL2Pnk8+FcHE3sZtsZjo7P9/Mzu7WmnrE22mVj5R2zf6Azkxp/rcx8ugrD4nTNgRnqyE42w3B2fGI0x7AKbSjvJw7OXM9U5/HvUU2lo1u07o54sg6QWVcE3+r9OVtWWaL9arazBdV9rouymy1rrKPssjeN8vPeVXId1H+OJoojRUQg575qdoodhL35ns6XojvfhjcE/F9GsZ3Lpt7p4UBfsSSfXjSNVCrMzF10xiyT8yuce5JhoZ7IBlehEeS9czvWLHOAPs1Fb8nIXxv+yyhGgJ/QjzWJN8r0osC5toNk+s42B7l9S2HPYrUN2J1qW587jy+riPr9IilWJB3iL8kXehBp014ZQzMrt/7R+wix25IOj2yix07fOMuFT8Xyp9v53O804X/UHV07y+ff0C4i5CLpVh9kkPnRumZ2R9cA+MRo/hNKX+f54/vGkMxePDDnlKuSRhM3/cf4gDbkGTcZ6mDE9+tf2R3KB+RDYgHxTlPSYb6D8jvF96XymUuDQAA","debug_symbols":"lZDLCsMgEEX/ZdYuUg0N9VdKCZpoGBANagpF/PdOHots3QxzZu7Z3AKz0dsyorchgXwXcGFSGYMnKpWBjugcLuP9DN0+RHfk06r8jimrmEGK58DA+Jm2gZNv0RmQPX/VDwPxaFd4uyLalb5RqYRfFVFpZ66m7OanW3H5t54fCv8B","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"113":{"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, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, 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\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 assert(args_hash == 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 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 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 item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, 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 assert(args_hash == 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 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 call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\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"},"141":{"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, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n point::Point, traits::Hash, hash::{sha256_to_field, poseidon2_hash_with_separator}\n};\nuse crate::oracle::logs_traits::ToBytesForUnencryptedLog;\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<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\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] = message_bytes[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\nstruct 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 hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn 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 hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\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 let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"159":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"267":{"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};\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(_vk: VerificationKey) -> 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 let input_as_bytes: [u8; 32] = logs[offset].value.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 // 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 let input_as_bytes: [u8; 32] = logs[offset].value.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 // 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 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\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"},"290":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct 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 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\nstruct 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 {\n _state: &[],\n }\n }\n}\n"},"323":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n hash::poseidon2_hash_with_separator, traits::{Empty, FromField, ToField, Serialize, Deserialize},\n utils\n};\n\n// Aztec address\nstruct 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 {\n inner : 0\n }\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 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"},"429":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n/// \n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n/// \n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n/// \n/// Example:\n/// \n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\n/// ```\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiller can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a \n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n /// \n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n /// \n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n /// \n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure. \n /// vec.set_unchecked(2, 42);\n /// println(vec);\n /// \n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n /// \n /// Panics if the new length of the vector will be greater than the max length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// \n /// v.push(1);\n /// v.push(2);\n /// \n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\n /// ```\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n /// Returns the current length of this vector\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n /// \n /// v.push(100);\n /// assert(v.len() == 1);\n /// \n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n /// \n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n /// \n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n /// \n /// Note that uninitialized elements may be zeroed out!\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n /// \n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the given slice to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n /// \n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n /// \n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\n /// ```\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n /// Creates a new vector, populating it with values derived from an array input. \n /// The maximum length of the vector is determined based on the type signature.\n /// \n /// Example:\n /// \n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\n /// ```\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n /// \n /// Panics if the vector is empty.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n /// \n /// let two = v.pop();\n /// let one = v.pop();\n /// \n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\n /// ```\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n /// Returns true if the given predicate returns true for any element\n /// in this vector.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n /// \n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n /// Creates a new vector of equal size by calling a closure on each element in this vector. \n /// \n /// Example:\n /// \n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n /// \n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"73":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"}}}