@aztec/protocol-contracts 0.51.0 → 0.52.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+61d6f251ea67204af2d17175f120e17f2e9e9156","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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xqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08WptvFobr9bGq7Xx6kfoAakHlB7QesDWA3SStfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvLY2Xlsbr62N19bGaz9CD0g9oPSA1gO2HqCTrI3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bG62jjdbTxOtp4HW28ziP0gNQDSg9oPWDrATrJ2ngdbbyONl5HG6+jjdfRxuto43W08TraeB1tvI42Xkcbr6ON19HG62jjdbTxOtp4HW28jjZeRxuvo43X0cbraON1tPE62ngdbbyONl5HG6+j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kjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjqy4IyvuyIo7suKOrB7BJySfUHxC8wmbT+CZ5o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4I2vuyJo7suaOrLkj60fwCcknFJ/QfMLmE3imuSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyDZ3ZJs7ss0d2eaObD+CT0g+ofiE5hM2n8AzzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7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"},{"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/+1Z247aMBC1lyQYmt1AX9sf6FtCWWDfVur1P6r2Q/oL7XP7q2XIHOVgVkjV2jtCwRKy43jmzNUOHu/6FvY/r+NS+8qdNqx51L59XusS8mpzyukvRM6bC5FzciFyFgnl9E/IKX2hY8k7ybmp6/Px5CUTi6Mn9N6dYxSj/tU+KCMGe0xkuRDhJuO9W38T5T6EU8M41eeLvkPv9Ver0RzR124w3EeaA99PNIcd8TPNTd0xVnCD0RPrvRO+sxy89/4SXeZu0AH6YYx3ou9bWldm1LXKo+s6m4/aPsvho1J5A6siu80JP+Hp0vkoRjxhYb6g8Rtai3VYMyF5pd25Id7nZ+jKiK5xx/EDuhDR4Rl7kvBZ6vj1/vc1DGvB/xXxS3lKC+86D++ObVYob+hRk24N4aeL0dVOMG7dcfPRMx8sDcl0l0Wmfv8BDmSbRTZI93Vzv/bEG/ri+SY7/mZnjP9gi799b4u/ao3tb6z/5ocx/nfj+DPO/+3K2P7duOPf2v/m+4/1+We9/9xfz78x7//W8Tf2/Wc78vyz3n/M/W+Nb/39Zf3/azPu70/r/Xfs+X89/8f+/St4uAP9qb3cLy4IL+Gd50Md6QsMF9kADXLUNG7ILixnmUzOvn6wiGRaRH4ROy3z2OlwNzzRe/ZbskERTu1S6hxkkbv9Xy8g4zkbLamHv96RTHnu1Ns1188cYbhITjS+U88T88d36lwD4jxIhPXf58kV+/nYT/lX5pADnKuo5TU0h3hcEg+JxynVzRPG48FWger2BWGVVD+fRXX7RPgd44M3sALVFjH+44a1MypWHmqj+gz5pS5W6Zjlj+mKiK6hNRXRTSM6PCOmxH6/dSx++wdoaXbJyiUAAA==","debug_symbols":"ndg7bsJAGEXhvUxN4X88T7YSRciAQZYsg8BEipD3HpOkoD23QYztW32nmqc79vvHeTdMp8vdbT+ebrwcunm4TOvpuWzc/jaM43DevT92zevHl9/v79dueh3vc3eb3bZNeeP66bj+y37dn4axd9vgbfncOF/xpG34xPjE80nLJ4FPIp8kPsl8wvVbrh+4fuD6gesHrh+4fuD6gesHrh+4fuD6ketHrh+5fuT6ketHrh+5fuT6ketHrp+4fuL6iesnrp+4fuL6iesnrp+4fuL6metnrp+5fub6metnrp+5fub6metnrl+4fuH6hesXrl+4fuH6hesXrl+4fuH6letXrl+5fuX6letXrl+5fuX6letXrm9NI2xM2Hhh0wqbIGyisEnCJgubImyEDkzowIQOTOjAhA5M6MCEDkzowIQOTOjAhA680IEXOvBCB17owAsdeKEDL3TghQ6Ei0DDN4HLevzqbkO3H/v/q8nTYzq83VTO39e/N+vHPw=="}],"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":{"110":{"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<RETURNS_COUNT>(\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<RETURNS_COUNT>(\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<let ARGS_COUNT: u32>(\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<RETURNS_COUNT>(\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<let ARGS_COUNT: u32>(\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"},"138":{"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 = (n as Field).to_be_bytes(4);\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 = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\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"},"151":{"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"},"156":{"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"},"260":{"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 = inputs[i].to_be_bytes(32);\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 = input[offset].to_be_bytes(32);\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 = logs[offset].value.to_be_bytes(32);\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 = logs[offset].value.to_be_bytes(32);\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"},"283":{"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"},"318":{"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"},"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) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\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 } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\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"},"421":{"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"},"70":{"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_slice(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+cf5b667c9566019853a5dc2a7f16ed024ab9182b","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":"7d3djhzIdh3odznXusiI2D8RfpXBwJBt2RAgSIYlDzAw/O7D1uki+6hqqnTM+sgMgDd2Hzs7985srtxV5FeL/+tP/+Xv/tP//G//8e//8b/+0z//6T/8X//rT//wT//5b//l7//pH7/8r//1p1n/+v/2z//9b//xt//5z//yt//jX/70Hx5/86e/+8f/8uX//t9/86f/+vf/8Hd/+g8x5//+m1ePm33694fOPc7XR4913nj0Omv//uh4zPHBo8djrvz94V/+OfbXx88abz3+y9O/PDzG/Pro9dbiYzxeXuMYcf744P/7b/40+9eb8vpN2b/elNdvyvn1prx6U9bj15vy+k0Zv96U12/K/PWmvH5T1q835fWbEr/elNdvSv56U16/Kb++on3jTfn1Fe0bb8qvr2jfeFN+fUX7+k2JX1/RvvGm/PqK9o035ddXtG+8Kb++on3jTYlfb8rrN+WZv6Lt+e1N2fXRm7LzZZexu77rTXnmr2h/2pvyzF/R/rQ35Qd+RRvz1Mubsvo88WfK+fWmvHpT8vHrTXn9poxfb8rrN2X+elNevynr15vy+k2JX2/K6zclf70pr9+UeuI35Wd98ZY/8CvaWOe8vCnR+cS/UvavN+X1m3J+vSmv3pR6/HpTXr8p49eb8vpNmU/8pvys61Pf9RXtOvXy0C8v+NsiY4x/ffKQT/7mV1gRL/9OVH4wYJx4+RJhnF5fH91vvuf1dZtRf/gvur78Wvhtm3qqbfqpttnfu818rHgJ3+MPX8y9vc3peb7tHn/5K+eNJ1+P+fKR9OWfM179Sjt379+Py/cfl+8/f/D+Ox9fH/2ox6t91nfvs+rl02H+8Sq/vU/u/fWG13i8fn/iyfbJH7tPjZjf9qnzap96sn36yfbZT7bP5fdiX34v9uX3Ys/L91+X7x+X75+X71+X79+X73/592v78vt7Ht//3ftjf91o9h/3/+35B37+iZ//R3//0o+vv2WZXePVf6+Av811Uj55ySfv5/q27uwn2+c81z5ffp/Y5nY8hh4w9QD52+Vf/pvQZ0/67Jd/0TYel3/VNh6Xf9k2Hpd/3fblT9pufwGX/87JGPoAjNADUg+o5/rqeYzWr/jJvvAb48hLPB/02ceTvZlzPttCC/96nvojYpYe8MO/1trxdZ0dj9f/zbZ+xTTyi0Z+fcK3bZ+nScaaz7XOeq514vIv4dblf3ox1u3fCa/bvxNeP/o74Q/AzVg/9jvb+WWHbwvVenzwjo7a30DD+fbk+a/Lx+Pm5cfNy8+bl183Lx/PvXyvr9+DdOa/XT5vXr5uXr5vXn7fvPyTX9h3l88nv7DvL//kF/b95Z/8wr6//JNf2PeXv/nC5s0XNm++sHnzhc2bL2zefGHr5gtbN1/YuvnC1s0Xtm6+sHXzha2bL2zdfGHr5gtbN1/YvvnC9s0Xtm++sH3zhf2EH1z+icvffGH75gvbN1/YvvnC9s0Xdt98YffNF3bffGH3zRf2B/8o9icvf/OF3Tdf2H3zhd03X9h984U9N1/Yc/OFPTdf2HPzhT03X9hz84U9N1/Yc/OFPTdf2HPxhZ2Piy/sfFx8Yefj4gs7Hxdf2Pm4+MLOx8UXdj4uvrDzcfGFnY+LL+x83Hxhx80Xdtx8YcfNF3bcfGG/v5TjZy5/84UdN1/YcfOFHTdf2HHzhZ03X9h584WdN1/YefOFnTdf2HnzhZ03X9h584WdN1/YefOFXTdf2HXzhV03X9h184X9wb1Nn7z8zRd23Xxh180Xdt18YZ+90+nd5Z+90+n95W++sM/e6fT+8jdf2Js7nebNnU7z5k6neXOn07y502k+fafTt7+0u/e/Xf7pO53eXf7ZL+y7yz9ZIfjMJ/v7ducndC996l+YOvPJ/sbdmU/2V+7OfLK/c3fmD/5LFfox+mvmH7E/+oh4r95z5rl4+U/oMvqJy4+bl583L7+ee/l3vxT8hC6jn7h83rx83bx837z8k1/Y95d/8gv77vL95Bf2/eWf/MK+v/yTX9j3l7/5wn5Cl9FPXP7mC9s3X9i++cL2zRe2b76w++YLu2++sPvmC7tvvrCf0GX0E5e/+cLumy/svvnC7psv7L75wp6bL+y5+cKemy/sufnCfkKX0U9c/uYLe26+sOfmC3tuvrDn4gu7Hhdf2PW4+MKux8UXdj0uvrDrcfGFXY+LL+x6XHxh1+PiC7seF1/Y9bj5wo6bL+y4+cKOmy/suPnCfkKX0U9c/uYLO26+sOPmCztuvrDj5gs7b76w8+YLO2++sPPmC/sJXUY/cfmbL+y8+cLOmy/svPnCzpsv7Lr5wq6bL+y6+cKumy/sJ3QZ/cTlb76w6+YLu26+sOvmC7tuvrBx84WNmy9s3Hxh4+YL+wldRj9x+ZsvbNx8YePZL+w7vS4rnv3Cvrv8s1/Y95b/wV1G4/Q8L9ucjvpg+bkeM1+efT3yVeHN+sF9RuAFzNtfwLr9BcTtLyBvfwF1+wvo21/Avv0FnMtfQN1+ib+//2mcqG8rrT++gH8dMPWApQeEHpB6QOkBrQfs7x/w2F8HzH414OAB399h89GAoQdMPWDpAaEHpB5QekDrARt/VPTBA/ZDD9A3+Ud3TmQ/Xr4K+fLPNV59FfKjeyQ+XiiebaF8toXq2RbSX4Ns/cm19SfX0Z9cR39yHf3dxNs/b//y9I8PnnydennoOqde/Rp9+wfiP+3Zkz570Wdv+uybPvuBzx5v/1jzpz37oM8+6bPj7/zjEXrAj77qH/xNBPGjf6r144X62Rbaz7bQebKFfvRPiX680Hi2hZ7sb0SJ8WR/I0r86J+6/Hgh/Hu0MUoPaD1g6wH4+6OYDz1g6AFTD9Bfc33/T4N9NEAneeokT53kqZM8dZKXTvLSSV46yUsneekkL53kpZO8dJKXTvLSSQ6d5NBJDp3k0EkOneTQSQ6d5NBJDp3k0ElOneTUSU6d5NRJTp3k1ElOneTUSU6d5NRJLp1krRJDq8TQKjG0SgytEkOrxNAqMUonuXSSWye5dZJbJ7l1klsnuXWSWye5dZK1SgytEkOrxNAqMbZO8tZJ3jrJWyd56yRrpRda6YVWeqGVXmilF1rpxdFJPjrJRyf56CQfneSjk3xwkvPx0AOGHvDcP+dea/z+6D2/7T6y/7z8c/+M+wfLx83LP/fPtn+w/HP/XPsHyz/3z7R/sPxz/zz7B8s/98+yv7/8eO6fY/9g+eduk/lg+Zsv7MBfh+f3O9CPBqQeUHpA6wFbD9Bfh2vXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdq15nadaZ2naldZ2rXmdp1pnadqV1nateZ2nWmdp2pXWdp11naddZj6gFLDwg9IPWA0gNaD9h6gE7y0EkeOslDJ1kbr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7Txam28Whuv1sartfHqR+gBqQeUHtB6wNYDdJK18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28tjZeWxuvrY3X1sZrP0IPSD2g9IDWA7YeoJOsjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sbraON1tPE62ngdbbzOI/SA1ANKD2g9YOsBOsnaeB1tvI42Xkcbr6ON19HG62jjdbTxOtp4HW28jjZeRxuvo43X0cbraON1tPE62ngdbbyONl5HG6+jjdfRxuto43W08TraeB1tvI42Xkcbr6ON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5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSMr7siKO7Lijqy4I6tH8AnJJxSf0HzC5hN4prkjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siaO7Lmjqy5I2vuyPoRfELyCcUnNJ+w+QSeae7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7L+fkc2Hyt+f/B89PnjhLceXI/H10fXenx9+BhvPX50z5f1e39bJX/fPq/evq7evq/efl+9/bl5e+oN33hw1csz/ybgvj54jfP7PuPJ9plPts/6ob/avmw8z7ftoz741TbXY+bLs69Hxl88/s+vIK5/BXn9K6jrX0H/4Few89un7peP4Dc2evIrVvvrHahzXt2BJ79i72///cL2p24/rt5+Xr39evKv3tb6+tVbvvrq7ftF80/d/tm/Y3x/+2f/jvH97Z/9O8b3t3/27xjf3/7Zv2N8d/vz5Lf2g+2f/NZ+sP2T39oPtr/61n7/Txr81O2vvrXn6lt7rr615+pbe26+tftx863dj5tv7X7cfGv34+Zbux8339r9uPnW7sfNt3Y/br61+3Hzrd2Pq2/tuPrWjqtv7bj61o6rb+33/2TeT93+6ls7rr614+pbO66+tePqWzuvvrXz6ls7r7618+pb+/0/MftTt7/61s6rb+28+tbOq2/tvPrWrqtv7br61q6rb+26+tZ+/0+y/9Ttr7616+pbu66+tevqW7uuvrVx9a2Nq29tXH1r4+pb+/0NEz91+6tvbVx9a+PqWxtX39q4+tbm1bc2r761efWtzatv7fc3v/zU7a++tXn1rc2rb21efWvz6ltbV9/auvrW1tW3tq6+tU/fyPT+9lff2qdvZHp/+6tv7dM3Mr2//dW3tq++tX31re2rb21ffWt/cC/UZ29/9a3tq29tX31rn7036oPtr761z94b9cH2V9/aZ++N+mD7q2/t1b1R++reqH11b9S+ujdqX90bta/ujdpX90btq3uj9tW9Ufvq3qh9dW/Uvro3al/dG7Wv7o3aV/dG7at7o87VvVHn6t6oc3Vv1Lm6N+o8br615+reqHN1b9S5ujfqXN0bda7ujTpX90adq3ujztW9Uefq3qhzdW/Uubo36lzdG3Wu7o06V/dGnat7o87VvVHn6t6oc3Vv1Lm6N+pc3Rt1ru6NOlf3Rp2re6PO1b1R5+reqHN1b9S5ujfqXN0bda7ujTpX90adq3ujztW9Uefq3qhzdW/Uubo36lzdG3Wu7o06V/dGnat7o87VvVHn6t6oc3Vv1Lm6N+pc3Rt1ru6NOlf3Rp2re6PO1b1R5+reqHN1b9S5ujfqXN0bda7ujTpX90adq3ujztW9Uefq3qhzdW/Uubo36lzdG3Wu7o06V/dGnat7o87VvVHn6t6oc3Vv1Lm6N+pc3Rt1ru6NOlf3Rp2re6PO1b1R5+reqHN1b9S5ujfqXN0bda7ujTpX90adq3ujztW9Uefq3qhzdW/Uubo36lzdG3Wu7o06V/dGnat7o87VvVHn6t6oc3Vv1Lm6N+pc3Rt1ru6NOlf3Rp2be6Pm4+l7o3p+3X6/3v7Zb+3723//rV1VL/vEmO9vP3Lvr78UajziL7b/80br6TaKH7tRjZjfNqrzxkb5dBvV023UT7fR/rEb9WP01+g/Yn/0SVH72ws459Unxbl5+0/oS/qZ24+rt59Xb7+ee/v3v7b6hL6kn7l9Xr19Xb19X739k9/aD7Z/8lv7/vbzyW/tB9s/+a39YPsnv7UfbH/1rf2EvqSfuf3Vt3ZefWvn1bd2Xn1r59W3dl19a9fVt3ZdfWvX1bf2E/qSfub2V9/adfWtXVff2nX1rV1X39q4+tbG1bc2rr61cfWt/YS+pJ+5/dW3Nq6+tXH1rY2rb21cfWvz6lubV9/avPrW5tW39hP6kn7m9lff2rz61ubVtzavvrV59a2tq29tXX1r6+pbW1ff2k/oS/qZ2199a+vqW1tX39q6+tbW1be2r761ffWt7atvbV99az+hL+lnbn/1re2rb21ffWv76lvbV9/affWt3Vff2n31rd1X39pP6Ev6mdtffWv31bd2X31r99W3dl99a8/Vt/ZcfWvP1bf2XH1rP6Ev6Wduf/WtPVff2nP1rT1X39pz860dj5tv7XjcfGvH4+ZbOx4339rxuPnWjsfNt3Y8br6143HzrR3P3hv1wfZX39pn7436YPurb+2z90Z9sP3Vt/bq3qhxdW/UuLo3alzdGzWu7o0aV/dGjat7o8bVvVHj6t6ocXVv1Li6N2pc3Rs1ru6NGk/fG/Ve9/h4+t6o97f/sZ37v/11n+dlndNRH2w/12Pmy7OvR77uNR/rcf0rGNe/gnn9K1jXv4K4/hXk9a+grn8Fff0r2Ne/gutv8vd3TI0T9W2n9cdX8OcJg0+YfMLiE+L7Jzz21wmzX09IPqH4hOYTNp9w9IR88AmDT5h8wuITQn9qZPIJxSc0n7D5hKMnFL/Txe/0j+6eyH68fPXz5Z9rvP7q50f3Sfw7Noqn2yifbqN6uo34Z1jxz7Din2HNP8Oaf4Y1/17j7Z+7f3n+xwfPvk69PHSdU69/qb79g/Gf9/Rpn77s07d9+m2f/tCnf/vHmz/v6Yd9+mmfnv8Owff/lO2HE370pf/ob8IdP/qnW/8dG/XTbbSfbqPzbBv96J8W/XdsNJ5uo2f7m7nHeba/mXv86J++/HdsxH8H6PDfATr8u6fDv3s6+run+XjwCYNPmHzC4hOCT0g+ofiE5hM2n8AzPXimB8/04JkePNODZ3rwTA+e6cEzPXimB8/05JmePNOTZ3ryTE+e6ckzPXmmJ8/05JmePNOLZ3rxTC+e6cUzvXimF8/04plePNOLZ3rxTHP5OLl8nFw+Ti4fZ/BMB8908EwHz3TwTAfPdPJMJ8908kwnzzSXj5PLx8nl4+TycXL5OLl8nFw+Ti4fZ/FMF8908UwXz3TxTHMJOLkEnFwCTi4BJ5eAk0vA2TzTzTPdPNPNM908080z3TzTm2d680xvnmnuBCd3gnPzTG+e6c0zvXmmN8/04Zk+PNOHZ/rwTB+eae7IJndkkzuyyR3Z5I5scUe2uCNb3JEt7sjWI/iE5BOKT2g+YfMJPNPckS3uyBZ3ZIs7ssUd2eKObHFHtrgjW9yRLe7IFndkizuyxR3Z4o5scUe2uCNb3JEt7sgWd2SLO7LFHdnijmxxR7a4I1vckS3uyBZ3ZIs7ssUd2eKObHFHtrgjW9yRLe7IFndkizuyxR3Z4o5scUe2uCNb3JEt7sgWd2SLO7LFHdnijmxxR7a4I1vckS3uyBZ3ZIs7ssUd2eKObHFHtrgjW9yRLe7IFndkizuyxR3Z4o5scUe2uCNb3JGtfu6/caDW+P3Re35bfmT/vv1z/20DH23/3H/TwEfbP/ffMvDR9s/9Nwx8sP1+7r/x56Ptn/tv+/lo++f+m34+2v65/5afj7aPq7fnXz9z37m471zcdy7uOxf3nYv7zsV95+K+c3HfubjvXNx3Lu47F/edi/vO4L4zuO8M7juD+854BJ+QfELxCc0nbD6BZ5r7zuC+M7jvDO47g/vO4L4zuO8M7juD+87gvjO47wzuO4P7zuC+M7jvDO47g/vO4L4zuO8M7juD+87gvjO47wzuO4P7zuC+M7jvDO47g/vO4L4zuO8M7juD+87gvjO47wzuO4P7zuC+M7jvDO47g/vO4L4zuO8M7juD+87gvjO47wzuO4P7zuC+M7jvDO47g/vO4L4zuO8M7juD+87gvjO47wzuO4P7zuC+M7jvDO47g/vO4D2BwXsCg/cEBu8JDN4TGLwnMHhPYPCewOA9gcF7AoM7suCOLLgjC+7Igjuy4I4suCML7siCO7Lgjiy4IwvuyII7suCOLLgjS+7Ikjuy5I4suSPLR/AJyScUn9B8wuYTeKa5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Iijuy4o6suCMr7sjqEXxC8gnFJzSfsPkEnmnuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy5o6suSNr7siaO7J+BJ+QfELxCc0nbD6BZ5o7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o5sc0e2uSPb3JFt7sj2I/iE5BOKT2g+YfMJPNPckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt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JXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TJHVlyR5bckSV3ZMkdWXJHltyRJXdkyR1ZckeW3JEld2TFHVlxR1bckRV3ZPUIPiH5hOITmk/YfALPNHdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlxR1bckRV3ZMUdWXFHVtyRFXdkxR1ZcUdW3JEVd2TFHVlzR9bckTV3ZM0dWT+CT0g+ofiE5hM2n8AzzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR9bckTV3ZM0dWXNH1tyRNXdkzR1Zc0fW3JE1d2TNHVlzR7a5I9vckW3uyDZ3ZPsRfELyCcUnNJ+w+QSeae7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3u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xve3f/bvGN/f/tm/Y3x/+ye/te9vn09+az/Y/slv7QfbX31r8+pb+/0/xfBTt7/61ubVtzavvrV59a3Nq29tXX1r6+pbW1ff2rr61n7/Txf91O2vvrV19a2tq29tXX1r6+pb21ff2r761vbVt7avvrXf/1N/P3X7q29tX31r++pb21ff2r761u6rb+2++tbuq2/tvvrWfv9P4/7U7a++tfvqW7uvvrX76lu7r7615+pbe66+tefqW3uuvrXf/1PyP3X7q2/tufrWnqtv7bn61p6bb208br618bj51sbj5lsbj5tvbTxuvrXxuPnWxuPmWxuPm29tPG6+tfG4+taOq2/tuPrWjqtv7bj61n5/q8xP3f7qWzuuvrXj6ls7rr614+pbO6++tfPqWzuvvrVP38j0/vZX39qnb2R6f/urb+3TNzK9v/3Vt3ZefWvX1bd2XX1r19W3dl19a39wJ9Rnb3/1rV1X39pn7436YPurb+2z90a9v/2z90Z9sP3Vt/bq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqru6Niqt7o+Lq3qi4ujcqr+6Nyqt7o/Lq3qi8ujcqHzff2ry6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj8ureqLy6Nyqv7o3Kq3uj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"},{"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/+1Z247aMBC1lyQYmt1AX9sf6FtCWWDfVur1P6r2Q/oL7XP7q2XIHOVgVkjV2jtCwRKy43jmzNUOHu/6FvY/r+NS+8qdNqx51L59XusS8mpzyukvRM6bC5FzciFyFgnl9E/IKX2hY8k7ybmp6/Px5CUTi6Mn9N6dYxSj/tU+KCMGe0xkuRDhJuO9W38T5T6EU8M41eeLvkPv9Ver0RzR124w3EeaA99PNIcd8TPNTd0xVnCD0RPrvRO+sxy89/4SXeZu0AH6YYx3ou9bWldm1LXKo+s6m4/aPsvho1J5A6siu80JP+Hp0vkoRjxhYb6g8Rtai3VYMyF5pd25Id7nZ+jKiK5xx/EDuhDR4Rl7kvBZ6vj1/vc1DGvB/xXxS3lKC+86D++ObVYob+hRk24N4aeL0dVOMG7dcfPRMx8sDcl0l0Wmfv8BDmSbRTZI93Vzv/bEG/ri+SY7/mZnjP9gi799b4u/ao3tb6z/5ocx/nfj+DPO/+3K2P7duOPf2v/m+4/1+We9/9xfz78x7//W8Tf2/Wc78vyz3n/M/W+Nb/39Zf3/azPu70/r/Xfs+X89/8f+/St4uAP9qb3cLy4IL+Gd50Md6QsMF9kADXLUNG7ILixnmUzOvn6wiGRaRH4ROy3z2OlwNzzRe/ZbskERTu1S6hxkkbv9Xy8g4zkbLamHv96RTHnu1Ns1188cYbhITjS+U88T88d36lwD4jxIhPXf58kV+/nYT/lX5pADnKuo5TU0h3hcEg+JxynVzRPG48FWger2BWGVVD+fRXX7RPgd44M3sALVFjH+44a1MypWHmqj+gz5pS5W6Zjlj+mKiK6hNRXRTSM6PCOmxH6/dSx++wdoaXbJyiUAAA==","debug_symbols":"ndg7bsJAGEXhvUxN4fk9T7YSRciAQZYsg8BEipD3HpOkoD23QYztW32nmqc79vvHeTdMp8vdbT+ebrwcunm4TOvpuWzc/jaM43DevT92zevHyu/392s3vY73ubvNbtumvHH9dFz/ZVv3p2Hs3TaYLZ8bZxVP2oZPPJ8Yn7R8Evgk8knik8wnXL/l+oHrB64fuH7g+oHrB64fuH7g+oHrB64fuX7k+pHrR64fuX7k+pHrR64fuX7k+onrJ66fuH7i+onrJ66fuH7i+onrJ66fuX7m+pnrZ66fuX7m+pnrZ66fuX7m+oXrF65fuH7h+oXrF65fuH7h+oXrF65fuX7l+pXrV65fuX7l+pXrV65fuX7l+r5phI0XNiZsWmEThE0UNknYZGFThI3QgRc68EIHXujACx14oQMvdOCFDrzQgRc68EIHJnRgQgcmdGBCByZ0YEIHJnRgQgfCRaDHN4HLevzqbkO3H/v/q8nTYzq83VTO39e/N+vHPw=="}],"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":{"111":{"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"},"139":{"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 = (n as Field).to_be_bytes(4);\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 = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\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"},"152":{"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"},"157":{"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"},"261":{"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 = inputs[i].to_be_bytes(32);\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 = input[offset].to_be_bytes(32);\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 = logs[offset].value.to_be_bytes(32);\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 = logs[offset].value.to_be_bytes(32);\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"},"284":{"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"},"319":{"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"},"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"},"422":{"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"},"71":{"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_slice(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"}}}