@aztec/accounts 0.56.0 → 0.57.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.34.0+02fea6abe8637b9fb8f9535d1709b367d5e1da5c","name":"EcdsaKAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["private","initializer"],"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":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"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":"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":"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":"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":"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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Y70dbKW0Y70dRjtox2o72Eppx3o72Eppx3o72Eppx3o72Eppx3o72Eppx1o7asdWSjvW28FWSjvW28FWSjvW28FWSjvW22G0g3astoOtlHast4OtlHast4OtlHast4OtlHast4OtlHastqNnK6Ud6+1gK6Ud6+1gK6Ud6+1gK6Ud6+0w2kE7VtvBVko71tvBVko71tvBVko71tvBVko71tvBVko7VtsxsJXSjvV2sJXSjvV2sJXSjvV2sJXSjvV2GO2gHavtYCulHevtYCulHevtYCulHevtYCulHevtYCulHavtSGyltGO9HWyltGO9HWyltGO9HWyltGO9HUY7aMdqO9hKacd6O9hKacd6O9hKacd6O9hKacd6O9hKacdqO4ytlHast4OtlHast4OtlHast4OtlHast8NoB+1YbQdbKe1YbwdbKe1YbwdbKe1YbwdbKe1YbwdbKe1YbcfIVko71tvBVko71tvBVko71tvBVko71tthtIN2rLaDrZR2rLeDrZR2rLeDrZR2rLeDrZR2rLeDrZR2rLYjs5XSjvV2sJXSjvV2sJXSjvV2sJXSjvV2GO2gHavtYCulHevtYCulHevtYCulHevtYCulHevtYCulHavtmNhKacd6O9hKacd6O9hKacd6O9hKacd6O4x20I7VdrCV0o71drCV0o71drCV0o71drCV0o71drCVBmxHGpd2lPxH5IUB9HTIWTVPh5yp8nTI2R9Ph9xAfjbkLIWnQ878dzrkbHqnQ85QdzrkrG/xkKdpfnCx3rYf/BZaWkIrH8885FuZ9eP86qyf0uWDf5SpsutRpmZlYjGkTM3KxBZJmZqViZWTMjUrk1EmytSqTCyzlKlZmdh8KVOzMrEmU6ZmZWKnpkzNysQCTpkalanvOiZw2tSuTWzgtKldmxjBaVO7NrGC06Z2bTLaRJuatYkdnDa1axNDOG1q1yaWcNrUrk1M4bSpXZvYwmlTszb1bOG0qV2b2MJpU7s2sYXTpnZtYgunTe3aZLSJNjVrE1s4bWrXJrZw2tSuTWzhtKldm9jCaVO7NrGF06ZmbRrYwmlTuzaxhdOmdm1iC6dN7drEFk6b2rXJaBNtatYmtnDa1K5NbOG0qV2b2MJpU7s2sYXTpnZtYgunTc3alNjCaVO7NrGF06Z2bWILp03t2sQWTpvatcloE21q1ia2cNrU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","brillig_names":["get_contract_instance_internal","get_public_keys_and_partial_address","decompose_hint","notify_created_note","get_key_validation_request","unsafe_rand","lt_32_hint","lte_16_hint","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","build_msg_block_iter","emit_encrypted_note_log","directive_invert","directive_integer_quotient"]},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["private","noinitcheck","view"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":"inner_hash","type":{"kind":"field"},"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":"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":"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":"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":"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":"H4sIAAAAAAAA/+19BZgUx/P23u0dHH54CJAccc/O2u1GibsRkhADVoGEoIdLgiWEJIQQ4u7u7kbc9Rd3d3f5qo9uqGvqhN3qva3vf/M8721fzUzPW21vz3T3TIlv2bZzK5/vkNbLwiUAv/4tBVRZNvOLw62I49oTto6ErZKwdSFsPQH9LduaxHFVhK0fYVuLsK2nbXgr0b/99W8oEA2HM9XBjBfyEoFgPBmLBMKRZDTmxbxILJIOxkKhTCwcq44n49WBuBcOZbxsJB7KBpZtu5auiCuQ1xZMueS5GxvPQMAlz91z5xm0DYpbD0AZ4qry618dXt+3Irwbsu+uw+a8PeD/PQF7AfYuXWE3W6mVBoH8Nm89xvTchy/fPVy3VLxVVjqUMKdDGWM6+ByW2X352oCMS5775c4zYhuourUvqkNqM+G+KLyfVbcGwP/7AwYCDiDqlp+5TK3BGNeAUr68OdBR+8ydfuszxrU/Y/odxJh+VNk+EJXtg1B4IAofYJXtQfD/wYBDAIfqsl2O4qxv68+Uvq3Rtap0+DDgcThgMGAIYCggAUgCUoA0IAPIAoYBhgNGAI4AHAkYCTgKMAowGjAGMBYwDjAeUAOYAJgImASYDJgCmAqYVlqXy3T4fwZgJuBowDGAWYDZgDmAuYB5gGMBxwHmA44HLACcADgRcBJgIeBkwCLAKYDFgFMBSwCnAU4HnAE4E3AW4GzAOaXLOJyrf8/Tv+fr3wv074WlvrqdSpWAFZbtcMI2mLANIWxDCVuCsCUJW4qwpQlbhrBlCdswwjacsI0gbEcQtiMJ20jCdhRhG0XYRhO2MYRtLGEbR9jGE7YawjaBsE0kbJMI22TCNoWwTSVs0wjbdMI2g7DNJGxHE7ZjCNsswjabsM0hbHMJ2zzCdixhO46wzSdsxxO2BYTtBMJ2ImE7ibAtJGwnE7ZFhO0UwraYsJ1K2JYQttMI2+mE7QzCdiZhO4uwnU3YziFsqkGs8tXddFvp669/8xXzEh+fCKqGnSmuBm8iAvlt3gWlfOlXrvmV+Fbe1lyZtxfIYzvMTt88Yjt85bzKObbBVL7nGNsQugzlFNvQ+spjDrEl6i/bqxxbsqF6soqxpRquc6sUW7qx+rsKsWUabwuaHFu2Ke1KE2Mb1rQ2qkmxDW9qe9eE2EY0ve1sNLYjVqUdbiS2I1etTW8wtpGrqg8NxHbUqmtNvbGNykW36oltdG4aSMY2Jlc9JWIbm2tcRGzjco9rpdjG5xOXFVtNfnHViW1CvnGh2CbmH9fy2CZxxKVjm8wTV21sU7jigtimMvYjTX9ZbRfpfy7GRrWZp0joov/fd9Ty7fg+Xu6ms0/kRSAfryV0KPPNiycKnReB3LyW0PHNNy+ebJ68CKyq1xI66PnmxVPNmReBpnst4UYi37x4uvnzItAUryXc8OSbF88US14EGvZawo1ZvnnxbHHlRaA+ryXcQOabF88VY14EVvZawo1uvnnxfPHmRQB7LeGGPN+8eKHY82LZVufBQb4+X9T0uFKNxOVdzMjrRSF5wfh8wGO8v/Xw/Vm+efGSkLxgvA/yGPvx3jOMefGykLxg7O95jP0V73nGvHhFSF4w6prH2C57LzHmxauO8oJ7titj/fUYy5/HmX4NTRbhnuQyrZSPdynieYn+51J7EIW7QExj7DRdwtiZu7S0MAWCe/bQdMZBqRmlfINSM0v5BnuOLuUb7DmmlG+wZ1Yp3yDK7FK+QZQ5pXyDKHMbqxerENu8xutYk2M7tin1tYmxHde0ut+k2OY3tR1pQmzHN71NajS2BavSvjUS2wmr1lY2GNuJq9ruNhDbSavehtcb28Jc9KCe2E7OTVvI2BblqlNEbKfkGhcR2+Lc41optlPzicuKbUl+cdWJ7bR840KxnZ5/XMtjO4MjLh3bmTxx1cZ2FldcENvZjjq+l+l/Lrc7vtyzhyR01PLtkH8iZPaQhA5lvnnxqZDZQxI6vvnmxWdCZg9J6KDnmxefC5k9JOFGIt+8+ELI7CEJNzz55sWXQmYPSbgxyzcvvhIye0jCDWS+efG1kNlDEm50882Lb4TMHpJwQ55vXnwrZDT4bEafL2t6XI0OOF3OyOs7IXnB+HzAY7y/9T5jHJn/XkheMN4HeYz9eO9Lxrz4QUheMPb3PMb+ivcNY178KCQvGHXNY2yXve8Z8+InIbOHGOuvx1j+vJ+Ezh46p5SPdynieYX+50p7EIW7QJzD2Gm6grEzd2WpzAJxrqMCcZX+52rXBeJcxgJxFWOBuJoxYVWmt/Mtewu4z0q/UCAcjGai4UQmEwpk4vFYygulYqlMJpVOhBLV1bFAdTqZSaQjwWQqmA0ls4FMIhOLeMlwstoLpLx/rfg88DcSTQSisWw0EAoEQ8FwIBWPJsPpRCRcHY5GIbpQMlbtealI0EtVh2NBL5jwIslUIBTOJKL/8uZvwC7wwVgwkqqOp1LRRCSVTGYy2ep0NBHLeslowgsmQ0AmEQrFwuFAIpPNJMOheNQLx1IxyKHqVCAcX8lfyNps2lPeJasD0WA6moyojM+Eosl4oDoUDUUC2Wg2mQh4wWAsFQaXg4F4PBKIZyPVAS/j2t9AJp30MsF4KBVKZeJeMgtOZCCYSEQC6WAqEvayiXgaCiDwAncDoUw26aWyiWAqGQpFqrMr+RsKe+lodSSbgNzNpDIhyHAoHaFUIhSGdAglvXgymolXR4OBcLQabGFIvmA4FYZUTmdCEff+BtKJdDAYCURioWwwEc8GEqkk+JzOpLMepDhUxGQgBOmRyFRHQlnIKS+cjMUS2ZiXSkaCK/GLV4eSAUioVCKRCoXimUwY3E0nkhEvFIzHg4FsdbK28AQgIjBnIulstDoQDiRDgUA8GnRenrOhUDiYiQcCGShd4EcwFocWJ5GJxqBdqQ7FsulUFLxLQxnwAulMdTIUDKQCUCcDwUCsOr1S/iaz8UgMzglBqsXTkXgQWrJACJqwaBwqfjQdzcaD4ThU52A4DDGGIl4WikAwnYWkSAVizvM3DPUoBJURmtIAtKnpVCyYiSUikUQ8EkyHFY1gJJrNBKAtTcfDcTBDnUsEAlAOIKNWLn+JmCr50UA6AH+ykXQMmulwPB2OZaFpDKcDUP0DyXgsk672qhPxZCQUTGSjIWj5IqFAddxz4W97HZcKq/Vm5u3GF6PwJSh8KQpfhsKXo/AVKHwlCl+FwlfrMKM/7Omj4rsGeF4LuK502ducW/sK09m5sJS/XKvt+lKHhFXk3PHewNhpcuX3DajnyBSv008Y3MhXuEIued6UO8+QbVDc7Ne834gapPNR+BoUvqm07mveb4b/bwHcCrit1P3nQfZhLP+38+V7nc+DqHirfMsayFJfYRrIQQ4aSPwm4jsg/jsBdwHuBtwDuBdwH+B+wAOABwEPAR4GPAJYCngU8BjgccATgCcBTwGeBjwDeBbwHOB5wAuAFwEvAV4GvAJ4FfAa4H+A1wFvAN4EvAV4G/AO4F3Ae4D3AR8APgR8BPgY8AngU8BngM8BXwC+BHwF+BrwDeBbwHeA7wE/AH4E/AT4GfAL4NdSnZkVqEC7zMw7St00nD5Onl7dxwa/6X9+NyXe1Aa141fLpg6qsEhxP164g6GlyGTVFvB+Y2x1fneUudwtLafPf9SJC46FW5hoJhKIZmLQv49XqxvyVCKbTcPtG9z8JJNhuPHxQtkk3LEng3G4bDwTSdWOqXuF7Hb+4aBVVdufpQ4J/+mg2/kXY2Fw5fdfqDliipfkytEA/FXKH+/fzIXVNNYq3ja+wirgnQIV8B/9z7+2Av5DKOC/BVDAOxkV8B/GBuBfIQrI6fN/QhXwP0cKuLywuyCsIueOt8Rf3Aqo/C7xr0hfpnidKOC/mit3vKV+Nwqo4i20At4lUAH9uvyV2R9YVjtsBVQHuVbAuxgV0M/YAJT5ZSggp8/lfpkKWO53o4Ct/A4Jt3KggK2LXAGV362FKGCZ5sodb4UjBaxoBgW8W6ACttHlr62tgG0IBWxbAAW8m1EB2zA2AG2FKCCnz+2EKmA7RwrY3u+QcHsHCtihyBVQ+d1BiAK21Vy54+3oSAE7NoMC3iNQATvp8ldpK2AnQgErC6CA9zAqYCfGBqBSiAJy+txZqAJ2dqSAXfwOCXdxoIBdi1wBld9dhShgpebKHW83RwrYrRkU8F6BCthdl78etgJ2JxSwRwEU8F5GBezO2AD0EKKAnD73FKqAPR0p4Gp+h4RXc6CAvYpcAZXfvYQoYA/NlTve1R0p4OrNoID3CVTA3rr89bEVsDehgH0KoID3MSpgb8YGoI8QBeT0ua9QBezrSAHX8DskvIYDBVyzyBVQ+b2mEAXso7lyx1vlSAGrmkEB7xeogP10+VvLVsB+hAKuVQAFvJ9RAfsxNgBrCVFATp/XFqqAaztSwHX8Dgmv40AB1y1yBVR+rytEAdfSXLnjXc+RAq7XDAr4gEAFXF+Xvw1sBVyfUMANCqCADzAq4PqMDcAGQhSQ0+cNhSrgho4UcCO/Q8IbOVDAjYtcAZXfGwtRwA00V+54N3GkgJs0gwI+KFABN9XlbzNbATclFHCzAijgg4wKuCljA7CZEAXk9HlzoQq4uSMFDPgdEg44UECvyBVQ+e0JUcDNNFfueIOOFDDYDAr4kEAFDOnyF7YVMEQoYLgACvgQowKGGBuAsBAF5PQ5IlQBI44UMOp3SDjqQAGri1wBld/VQhQwrLlyxxtzpICxZlDAhwUqYFyXvy1sBYwTCrhFARTwYUYFjDM2AFsIUUBOn7cUqoBbOlLArfwOCW/lQAG3LnIFVH5vLUQBt9BcuePdxpECbtMMCviIQAXcVpe//rYCbksoYP8CKOAjjAq4LWMD0F+IAnL6vJ1QBdzOkQJu73dIeHsHCrhDkSug8nsHIQrYX3PljndHRwq4YzMo4FKBCriTLn872wq4E6GAOxdAAZcyKuBOjA3AzkIUkNPnXYQq4C6OFHBXv0PCuzpQwN2KXAGV37sJUcCdNVfueHd3pIC7N4MCPipQAffQ5W9PWwH3IBRwzwIo4KOMCrgHYwOwpxAF5PR5L6EKuJcjBdzb75Dw3g4UcJ8iV0Dl9z5CFHBPzZU73n0dKeC+zaCAjwlUwP10+RtgK+B+hAIOKIACPsaogPsxNgADhCggp8/7C1XA/R0p4EC/Q8IDHSjgAUWugMrvA4Qo4ADNlTveAx0p4IHNoICPC1TAg3T5G2Qr4EGEAg4qgAI+zqiABzE2AIOEKCCnzwcLVcCDHSngIX6HhA9xoICHFrkCKr8PFaKAgzRX7ngPc6SAhzWDAj4hUAEP1+VvsK2AhxMKOLgACvgEowIeztgADBaigJw+DxGqgEMcKeBQv0PCQx0oYKLIFVD5nRCigIM1V+54k44UMNkMCvikQAVM6fKXthUwRShgugAK+CSjAqYYG4C0EAXk9DkjVAEzjhQw63dIOOtAAYcVuQIqv4cJUcC05sod73BHCji8GRTwKYEKOEKXvyNsBRxBKOARBVDApxgVcARjA3CEEAXk9PlIoQp4pCMFHOl3SHikAwU8qsgVUPl9lBAFPEJz5Y53lCMFHNUMCvi0QAUcrcvfGFsBRxMKOKYACvg0owKOZmwAxghRQE6fxwpVwLGOFHCc3yHhcQ4UcHyRK6Dye7wQBRyjuXLHW+NIAWuaQQGfEaiAE3T5m2gr4ARCAScWQAGfYVTACYwNwEQhCsjp8yShCjjJkQJO9jskPNmBAk4pcgVUfk8RooATNVfueKc6UsCpzaCAzwpUwGm6/E23FXAaoYDTC6CAzzIq4DTGBmC6EAXk9HmGUAWc4UgBZ/odEp7pQAGPLnIFVH4fLUQBp2uu3PEe40gBj2kGBXxOoALO0uVvtq2AswgFnF0ABXyOUQFnMTYAs4UoIKfPc4Qq4BxHCjjX75DwXAcKOK/IFVD5PU+IAs7WXLnjPdaRAh7bDAr4vEAFPE6Xv/m2Ah5HKOD8Aijg84wKeBxjAzBfiAJy+ny8UAU83pECLvA7JLzAgQKeUOQKqPw+QYgCztdcueM90ZECntgMCviCQAU8SZe/hbYCnkQo4MICKOALjAp4EmMDsFCIAnL6fLJQBTzZkQIu8jskvMiBAp5S5Aqo/D5FiAIu1Fy5413sSAEXN4MCvihQAU/V5W+JrYCnEgq4pAAK+CKjAp7K2AAsEaKAnD6fJlQBT3OkgKf7HRI+3YECnlHkCqj8PkOIAi7RXLnjPdORAp7ZDAr4kkAFPEuXv7NtBTyLUMCzC6CALzEq4FmMDcDZQhSQ0+dzhCrgOY4U8Fy/Q8LnOlDA84pcAZXf5wlRwLM1V+54z3ekgOc3gwK+LFABL9Dl70JbAS8gFPDCAijgy4wKeAFjA3ChEAXk9PkioQp4kSMFvNjvkPDFDhTwkiJXQOX3JUIU8ELNlTveSx0p4KXNoICvCFTAy3T5u9xWwMsIBby8AAr4CqMCXsbYAFwuRAE5fb5CqAJe4UgBr/Q7JHylAwW8qsgVUPl9lRAFvFxz5Y73akcKeHUzKOCrAhXwGl3+rrUV8BpCAa8tgAK+yqiA1zA2ANcKUUBOn68TqoDXOVLA6/0OCV/vQAFvKHIFVH7fIEQBr9VcueO90ZEC3tgMCviaQAW8SZe/m20FvIlQwJsLoICvMSrgTYwNwM1CFJDT51uEKuAtjhTwVr9Dwrc6UMDbilwBld+3CVHAmzVX7nhvd6SAtzeDAv5PoALeocvfnbYC3kEo4J0FUMD/MSrgHYwNwJ1CFJDT57uEKuBdjhTwbr9Dwnc7UMB7ilwBld/3CFHAOzVX7njvdaSA9zaDAr4uUAHv0+XvflsB7yMU8P4CKODrjAp4H2MDcL8QBeT0+QGhCviAIwV80O+Q8IMOFPChIldA5fdDQhTwfs2VO96HHSngw82ggG8IVMBHdPlbaivgI4QCLi2AAr7BqICPMDYAS4UoIKfPjwpVwEcdKeBjfoeEH3OggI8XuQIqvx8XooBLNVfueJ9wpIBPNIMCvilQAZ/U5e8pWwGfJBTwqQIo4JuMCvgkYwPwlBAF5PT5aaEK+LQjBXzG75DwMw4U8NkiV0Dl97NCFPApzZU73uccKeBzzaCAbwlUwOd1+XvBVsDnCQV8oQAK+BajAj7P2AC8IEQBOX1+UagCvuhIAV/yOyT8kgMFfLnIFVD5/bIQBXxBc+WO9xVHCvhKMyjg2wIV8FVd/l6zFfBVQgFfK4ACvs2ogK8yNgCvCVFATp//J1QB/+dIAV/3OyT8ugMFfKPIFVD5/YYQBXxNc+WO901HCvhmMyjgOwIV8C1d/t62FfAtQgHfLoACvsOogG8xNgBvC1FATp/fEaqA7zhSwHf9Dgm/60AB3ytyBVR+vydEAd/WXLnjfd+RAr7fDAr4rkAF/ECXvw9tBfyAUMAPC6CA7zIq4AeMDcCHQhSQ0+ePhCrgR44U8GO/Q8IfO1DAT4pcAZXfnwhRwA81V+54P3WkgJ82gwK+J1ABP9Pl73NbAT8jFPDzAijge4wK+BljA/C5EAXk9PkLoQr4hSMF/NLvkPCXDhTwqyJXQOX3V0IU8HPNlTverx0p4NfNoIDvC1TAb3T5+9ZWwG8IBfy2AAr4PqMCfsPYAHwrRAE5ff5OqAJ+50gBv/c7JPy9AwX8ocgVUPn9gxAF/FZz5Y73R0cK+GMzKOAHAhXwJ13+frYV8CdCAX8ugAJ+wKiAPzE2AD8LUUBOn38RqoC/OFLAX/0OCf/qQAF/K3IFVH7/JkQBf9ZcueP93ZEC/t4MCvihQAX8Q5e/P20F/INQwD8LoIAfMirgH4wNwJ9CFJDT57+EKuBfjhTwb79Dwn87UMB/ilwBld//CFHAPzVX7nj/daSA/zaDAn4kUAH/M+WvzFdX7f4jFFAd5FoBP2JUwP84G4AyGQrI6XNJmUwFLClzo4ClZQ4Jq8i54/WXFbcCKr/9ZSsSmCleJwro01y54y0rc6OAKt5CK+DHAhWwXJe/VrYCqh22ArYqgAJ+zKiA5YwNQCshCsjpc2uhCtjakQJWlDkkXOFAAdsUuQIqv9sIUcBWmit3vG0dKWDbZlDATwQqYDtd/trbCtiOUMD2BVDATxgVsB1jA9BeiAJy+txBqAJ2cKSAHcscEu7oQAE7FbkCKr87CVHA9pord7yVjhSwshkU8FOBCthZl78utgJ2JhSwSwEU8FNGBezM2AB0EaKAnD53FaqAXR0pYLcyh4S7OVDA7kWugMrv7kIUsIvmyh1vD0cK2KMZFPAzgQrYU5e/1WwF7Eko4GoFUMDPGBWwJ2MDsJoQBeT0uZdQBezlSAFXL3NIeHUHCti7yBVQ+d1biAKuprlyx9vHkQL2aQYF/FygAvbV5W8NWwH7Egq4RgEU8HNGBezL2ACsIUQBOX1eU6gCrulIAavKHBKucqCA/YpcAZXf/YQo4BqaK3e8azlSwLWaQQG/EKiAa+vyt46tgGsTCrhOARTwC0YFXJuxAVhHiAJy+ryuUAVc15ECrlfmkPB6DhRw/SJXQOX3+kIUcB3NlTveDRwp4AbNoIBfClTADXX528hWwA0JBdyoAAr4JaMCbsjYAGwkRAE5fd5YqAJu7EgBNylzSHgTBwq4aZEroPJ7UyEKuJHmyh3vZo4UcLNmUMCvBCrg5rr8BWwF3JxQwEABFPArRgXcnLEBCAhRQE6fPaEK6DlSwGCZQ8JBBwoYKnIFVH6HhChgQHPljjfsSAHDzaCAXwtUwIguf1FbASOEAkYLoIBfMypghLEBiApRQE6fq4UqYLUjBYyVOSQcc6CA8SJXQOV3XIgCRjVX7ni3cKSAWzSDAn4jUAG31OVvK1sBtyQUcKsCKOA3jAq4JWMDsJUQBeT0eWuhCri1IwXcpswh4W0cKOC2Ra6Ayu9thSjgVpord7z9HSlg/2ZQwG8FKuB2uvxtbyvgdoQCbl8ABfyWUQG3Y2wAtheigJw+7yBUAXdwpIA7ljkkvKMDBdypyBVQ+b2TEAXcXnPljndnRwq4czMo4HcCFXAXXf52tRVwF0IBdy2AAn7HqIC7MDYAuwpRQE6fdxOqgLs5UsDdyxwS3t2BAu5R5Aqo/N5DiALuqrlyx7unIwXcsxkU8HuBCriXLn972wq4F6GAexdAAb9nVMC9GBuAvYUoIKfP+whVwH0cKeC+ZQ4J7+tAAfcrcgVUfu8nRAH31ly54x3gSAEHNIMC/iBQAffX5W+grYD7Ewo4sAAK+AOjAu7P2AAMFKKAnD4fIFQBD3CkgAeWOSR8oAMFPKjIFVD5fZAQBRyouXLHO8iRAg5qBgX8UaACHqzL3yG2Ah5MKOAhBVDAHxkV8GDGBuAQIQrI6fOhQhXwUEcKeFiZQ8KHOVDAw4tcAZXfhwtRwEM0V+54BztSwMHNoIA/CVTAIbr8DbUVcAihgEMLoIA/MSrgEMYGYKgQBeT0OSFUAROOFDBZ5pBw0oECpopcAZXfKSEKOFRz5Y437UgB082ggD8LVMCMLn9ZWwEzhAJmC6CAPzMqYIaxAcgKUUBOn4cJVcBhjhRweJlDwsMdKOCIIldA5fcIIQqY1Vy54z3CkQIe0QwK+ItABTxSl7+RtgIeSSjgyAIo4C+MCngkYwMwUogCcvp8lFAFPMqRAo4qc0h4lAMFHF3kCqj8Hi1EAUdqrtzxjnGkgGOaQQF/FaiAY3X5G2cr4FhCAccVQAF/ZVTAsYwNwDghCsjp83ihCjjekQLWlDkkXONAAScUuQIqvycIUcBxmit3vBMdKeBErYC28nHn4SBG1avS8UwC7pMBUwBTAdMA0wEzADMBRwOOAcwCzAbMAcwFzAMcCzgOMB9wPGAB4ATAiYCTAAsBJwMWAU4BLAacClgCOA1wulZCnJaTtPBh22TCNoWwTSVs0wjbdMI2g7DNJGxHE7ZjCNsswjabsM0hbHMJ2zzCdixhO46wzSdsxxO2BYTtBMJ2ImE7ibAtJGwnE7ZFhO0UwraYsJ1K2JYQttMI2+lEJ8s0kf31byC/rU6dzbf9mlTG12GbzKhX/lZuOmx2XuTjs8qLKSzptyxfp+YfV1CnnzeNMS/Kijkvwst5etPz8zmAfPZm5BNXsE76eTMZ86K8OPMiYPH0js7R52h2JZ+9Y3KLK0aknzeLMS9aFVtexEie3uxV97m6Hp+9OasaV3W96efNZcyL1sWTF8EGeHrzVsXn6gZ99o5telypRtLPO44xLyqKIS+qG+XpzW+az4Em+Owd35S4Ak1KP28BY160ad68iDSRp3dCYz6Hm+yzd2KDcYWzq5B+3kmMedG2ufKiepV4egvr9zm2ij57J9cTVzy7yunnLWLMi3aFz4tADjy9UyifAzn57C1eOS4vx/TzTmXMi/aFzIt0zjy9JXV9DuXhs3caiiuYzSv9vNMZ86JDgfIikN/mMT4f8Bjvbz18f5ZvXnQUkheM90EeYz/eq2DMi05C8oKxv+cx9le8dox5USkkLxh1zWNsl72OjHnR2VFecE9MYKy/HmP58zjTr1ynm0k7NR5R5au7cY8fnu5gYgU3x9MEcFwigOOpAjguFsDxFAEcFwngeLIAjgsFcDxJAMcTBXA8QQDHBQI4Hi+A43wBHI8TwPFYARznCeA4VwDHOQI4zhbAcZYAjscI4Hi0AI4zBXCcIYDjdAEcpwngOFUAxykCOE4WwHGSA45444k76DDuFavtSlCcZ0C6nAk4C3A24BzAuYDzAOcDLgBcCLgIcDHgEsClgMsAlwOuAFwJuApwNeAawLWA6wDXA24A3Ai4CXAz4BbArYDbALcD7gDcCbgLcDfgHsC9gPsA9wMeADwIeAjwMOARwFLAo4DHAI8DngA8CXgK8DTgGcCzgOcAzwNeALwIeAnwMuAVwKuA1/Qgyf/KfHUnvqtEsSfDn0nYziJsZxO2cwjbuYTtPMJ2PmG7gLBdSNguImwXE7ZLCNulhO0ywnY5YbuCsF1J2K4ibFcTtmsI27WE7TrCdj1hu4Gw3UjYbiJsNxO2WwjbrYTtNsJ2O2G7g7DdSdjuImx3E7Z7CNu9hO0+wnY/YXuAsD1I2B4ibA8TtkcI21LC9ihhe4ywPU7YniBsTxK2pwjb04TtGcL2LGF7jrA9T9heIGwvEraXCNvLhO0VwvYqYXuNsKkGsb+v7mbEw9jzHWxlHGzzzihzI+7cPjMO3nlnCvGZcTDQO0uIz4yDi97ZQnxmHKz0zhHiM+Pgp3euEJ8ZB1O984T4zDg4650vxGfGwV7vAiE+Mw4eexcK8ZlxMNq7SIjPjIPb3sVCfGYcLPcuEeIz4+C7d6kQnxkH873LhPjMODnAu1yIz4yTDbwrhPjMOHnBu1KIz4yTIbyrhPjMOLnCu1qIz4yTNbxrhPjMOPnDu1aIz4yTSbzrhPjMODnFu16Iz4yTXbwbhPjMOHnGu1GIz4yTcbybhPjMOLnHu1mIz4yThbxbhPjMOPnIu1WIz4yTmbzbhPjMODnKu53RZ7UItAz5W4J89iEbTotAflvLIlAmji2LQHk4tiwC5eHYsgiUh2PLIlAeji2LQHk4tiwC5eHYsgiUh2PLIlAeji2LQHk4tiwC5eHYsgiUh2PLIlAeji2LQHk4tiwC5eH4f30RKE+8MWe+3ykgf+4SwPFuARzvEcDxXgEc7xPA8X4BHB8QwPFBARwfEsDxYQEcHxHAcakAjo8K4PiYAI6PC+D4hACOTwrg+JQAjk8L4PiMAI7PCuD4nACOzwvg+IIAji8K4PiSAI4vC+D4igCOrwrg+JrDZ4Z8PINeKfLfxPk6cH8D8CbgLcDbgHcA7wLeA7wP+ADwIeAjwMeATwCfAj4DfA74AvAl4CvA14BvAN8CvgN8D/gB8CPgJ8DPgF8AvwJ+A/wO+APwJ+AvwN+AfwD/Av5TEzvLgS+gFOAHlAHKAa0ArQEVgDaAtoB2gPaADoCOgE6ASkBnQBdAV0A3QHdAD0DP8mVpsFq5r+7LjVSi2C88eoOwvUnY3iJsbxO2dwjbu4TtPcL2PmH7gLB9SNg+ImwfE7ZPCNunhO0zwvY5YfuCsH1J2L4ibF8Ttm8I27eE7TvC9j1h+4Gw/UjYfiJsPxO2Xwjbr4TtN8L2B2H7k7D9Rdj+Jmz/ELZ/Cdt/hE1VQNtWQthKCZufsJURtnLC1oqwtSZsFYStDWFrS9jaEbb2hK0DYetI2DoRtkrC1pmwdSFsXQlbN8LWnbD1IGw9CZtq/Pr76m5GKIy9mF7k9rojseX2mfNFbm8I8ZnzRW5vCvGZ80VubwnxmfNFbm8L8ZnzRW7vCPGZ80Vu7wrxmfNFbu8J8ZnzRW7vC/GZ80VuHwjxmfNFbh8K8ZnzRW4fCfGZ80VuHwvxmfNFbp8I8ZnzRW6fCvGZ80VunwnxmfNFbp8L8ZnzRW5fCPGZ80VuXwrxmfNFbl8J8ZnzRW5fC/GZ80Vu3wjxmfNFbt8K8ZnzRW7fCfGZ80Vu3wvxmfNFbj8I8ZnzRW4/CvGZ80VuPwnxmfNFbj8L8ZnzRW6/CPGZ80VuvwrxmfNFbr858rnE8jmQ3+b9XpZ/+mWyaot5LvOGcQGm94eQ8si4oNP7U4jPjAtEvb+E+My44NT7W4jPjAtYvX+E+My4INb7V4jPjAtsvf+E+My4YNfzlcvwmXEBsFcixGfGBcVeqRCfGRcoe34hPjMuePbKhPjMuIDaKxfiM+OCbK+VEJ8ZF3h7rYX4zLhg3KsQ4jPjAnSvjRCfGRe0e22F+My4QN5rJ8RnxgX3XnshPjMu4Pc6CPGZ8YUAXkchPjO+YMDrJMRnxhcWeJVCfGZ8AYLXWYjPjC9U8LoI8ZnxBQ1eVyE+M77wwesmxGfGF0h43YX4zPhCCq+HEJ8ZX3Dh9WT0Wb23QcGv4ytBPvuQDadFIL+t5eNfTBxbPv7Fw7Hl4188HFs+/sXDseXjXzwcWz7+xcOx5eNfPBxbPv7Fw7Hl4188HFs+/sXDseXjXzwcWz7+xcOx5eNfPBxbPv7Fw7Hl4188HFs+/sURb8vHv4qdY8vHv3g4tnz8i4djy8e/eDi2fPyLh2PLx794OLZ8/IuHY8vHv3g4tnz8i4djy8e/eDi2fPyLh2PLx794OLZ8/IuHY8vHv3g4tnz8i4ejlI9/OYw7UILS1sTZq9znWx3QG9AH0BewBmBNQBWgH2AtwNqAdQDrAtYDrA/YALAhYCPAxoBNAJsCNgNsDlATPz1AEBAChAERQBRQDYgB4oAtAFsCtgJsDdgGsK2afwrYDrA9YAfAjoCdADsDdgHsCtgNsDtgD8CegL0AewP2AewL2A8wALA/YCDgAMCBgIMAg+wPivUiPryzOmHrTdj6ELa+hG0NwrYmYasibP0I21qEbW3Ctg5hW5ewrUfY1idsGxC2DQnbRoRtY8K2CWHblLBtRtg2J2wBwuYRtiBhCxG2MGGLELYoYasmbDHCth9hG0DY9idsAwnbAYTtQMJ2EGEbpG14K9W//fVvMX1wqpeQSfqcH5xaXYjPnB+c6i3EZ84PTvUR4jPnB6f6CvGZ84NTawjxmfODU2sK8Znzg1NVQnzm/OBUPyE+c35wai0hPnN+cGptIT5zfnBqHSE+c35wal0hPnN+cGo9IT5zfnBqfSE+c35wagMhPnN+cGpDIT5zfnBqIyE+c35wamMhPnN+cGoTIT5zfnBqUyE+c35wajMhPnN+cGpzIT5zfnAqIMRnzg9OeUJ85vzgVFCIz5wfnAoJ8Znzg1NhIT5zfnAqIsRnzg9ORYX4zPnBqWohPnN+cCrmyGfuSUHx8vzTj/rgFDfPLYSk55ZCeG4lhOfWQnhuI4TntkJ49hfCczshPLcXwnMHITx3FMJzJyE8dxbCcxchPHcVwnM3ITx3F8JzDyE89xTCcy8hPPcWwnMfITz3dcSzLF+eXt1/98uPZ53YBuTrM4ptf4bnCua5TL9WRZoXgbpeD+QoMzq2A3jKX21sBzLmxVrFnRcB4/VBfPXXG8QYF2NZ9nBe5PfsLqCG1mrXupT6Vt7Y8sZx2Q7ksxVvmXGx2HJ5m4Xz++DyZb+H2IsC1Y53LZs6qMrXUlDybVDXldCgWgU6R5+D2mfvYMb0O4Sx0rrKi1LmvOBMv0OJuJKBVDriJaPpai+TiMRSqXjI84KJaCKaDMaymWTEi0ViEGcqEYzB5YKJlJcJJKIZ1W609q3ojOONu4N+KGMDi/keVu6QsIqcO97DGQuDK78PL1+RwEzxklw5GhPFlavCmng582gwc8E3gq7i7edb9pmqQvUE92MU+AGMAr8/o6gMLHcjKkz1iewJDtH1dajdExxC9ASHuuwJapIDGXsfQxgr41AUVzAdyQTisWQsmEyEqpPhUDIeT0C8Uc+LZdPBQDoczEa8aDQVz8SzXiibjGQS0UgiHk3Xqme6n5DeB2f6JYT2PhKOeh/JcoeEkw56H6ki730ov1NCeh9DNVfu3gdnHqUd9T7Shex9LNv4XqLvsc2XrFVjlvmmWtddfBQCb3nGTfY+Mrq+Zu3eR4bofWQL0PuQUFDyrdjrF/tzKKJA59sTzDA2jFnGW4b1hfQEOdNvmNCe4DBHPcHh5Q4JD3fQExxR5D1B5fcIIT3BrObK3RPkzKMjHPUEj2iGnuA0RoGfzijwMxh7gjMF9gSP1PV1pN0TPJLoCY4sQE9QQkHJt2JvKKQnOJOxJ3gkY8M4krEnuKGQniBn+h0ltCd4lKOe4Khyh4RHOegJji7ynqDye7SQnuBIzZW7J8iZR2Mc9QTHNENP8GhGgT+GUeBnMfYEZwvsCY7V9XWc3RMcS/QExxVgbtpsxt7HWMbKOA5XxmQsHQ9HE5l4rBrkMhKIVFdHImE4LZYKplPxSDqTiiRi8VSmOpVOp8JeFAYuI2EYMYjGPS8ZbiWk98GZfuOF9j7GO+p91JQ7JFzjoPcxoch7H8rvCUJ6H+M0V+7eB2ceTXTU+5jYDL2POYy9j7mMvY95jL2PYwX2Pibp+jrZ7n1MInofkwvwHEpCQcm3Ym8s5DnUsYw9wUmMDeNkxudQGwvpCXKm3xShPcEpjnqCU8sdEp7qoCc4rch7gsrvaUJ6gpM1V+6eIGceTXfUE5zeDD3B4xgFfj6jwB/P2BNcILAnOEPX15l2T3AG0ROcWYCeoISCkm/F3lRIT3ABY09wBmPDOJOxJ7ipkJ4gZ/odLbQneLSjnuAx5Q4JH+OgJziryHuCyu9ZQnqCMzVX7p4gZx7NdtQTnN0MPcETGAX+REaBP4mxJ7hQYE9wjq6vc+2e4ByiJzi3ACOSCxl7H3MYK+NcFJcXqq4OBavTwWwwE0vGw/FgOB2JpdNhL5mJJANBLxDMJkJeMgaDlKCcyXQ24qVSmXAkFE/EY8F4WyG9D870mye09zHPUe/j2HKHhI910Ps4rsh7H8rv44T0PuZqrty9D848mu+o9zG/GXofJzP2PhYx9j5OYex9LBbY+zhe19cFdu/jeKL3saAAz6EkFJR8K/bmQp5DLWbsCR7P2DAuYHwOtbmQniBn+p0gtCd4gqOe4InlDgmf6KAneFKR9wSV3ycJ6Qku0Fy5e4KcebTQUU9wYTP0BE9lFPgljAJ/GmNP8HSBPcGTdX1dZPcETyZ6gosK0BOUUFDyrdiekJ7g6Yw9wZMZG8ZFjD1BT0hPkDP9ThHaEzzFUU9wcblDwosd9ARPLfKeoPL7VCE9wUWaK3dPkDOPljjqCS7RPUG8cafvaQzcY/rXJc/TGXhGE4F4JhqtdsnzDAaeyWS0OpGJRVzyPJOBZygVzWRD1UGXPM9i4JmIhLPZSCjhkufZDDwjXiATCVZnXfI8h4FnPBmIRGOxlEue5zLw9LKxUDqeSLrkeR5Hvicz0L3z4opbT1/dmzn8iB9PNsBTUPHCJLxEGr84R4WzKHwaCu9Wmnt4KIrnEBQ+HYXPQOEzUfgsFD4bhc9B4XNR+DwdPh9+LwBcCLgIcDHgEsClgMvKV35iwt1/uoxR781N4eUQ5xWAKwFX6bt93BdQ+yt8dW1XELYrCdtV2oY37gcDlzH2py5niMt8++gKRl4hRzejfisv8vFZ5cWVLOm3LF+vYryZ50w/13X8Ugd1/GqI8xrAtYDriDp+NVF3ryFs1xK26wpQxy9lrEtXM9bxaxh5RYTU8WsZ6/h1jHU8IqiOX+Kgjl8Pcd4AuBFwE1HHryfq7g2E7UbCdlMB6vgljHXpesY6fgMjr2ohdfxGxjp+E2MdrxZUxy92UMdvhjhvAdwKuI2o4zcTdfcWwnYrYbutAHX8Ysa6dDNjHb+FkVdcSB2/lbGO38ZYx+OC6vhFDur47RDnHYA7AXcRdfx2ou7eQdjuJGx3FaCOX8RYl25nrON3MPLaUkgdv5Oxjt/FWMe3FFTHL3RQx++GOO8B3Au4j6jjdxN19x7Cdi9hu68AdfxCxrp0N2Mdv4eR19ZC6vi9jHX8PsY6vrWgOn6Bgzp+P8T5AOBBwENEHb+fqLsPELYHCdtDBajjFzDWpfsZ6/gDjLy2FVLHH2Ss4w8x1vFtBdXx8x3U8YchzkcASwGPEnX8YaLuPkLYlhK2RwtQx89nrEsPM9bxRxh5bSekji9lrOOPMtZxzvRT5bqNLt+Hla4o84ej8GAUHoLCQ1E4gcJJFE6hcBqFMyicReFhKDwchUeg8BEofCQKj0Tho1B4FAqPRuExKDwWhceh8HgUrkHhCSg8EYUnofBkFJ6CwlNReBoKT0fhGSg8E4WPRuFjUHgWCs9G4TkoPBeF56HwsSh8HArPR+HjUXgBCp+Awiei8EkovBCFT0bhRSh8CgovRuFTUXgJCp+Gwqej8BkofCYKn4XCZ6PwOSj8Owr/i8Jl/hXhtihcicI9ULgPCq+Fwhug8GYoHEbhLVC4PwrvjMJ7ovAAFB6EwoNROI3CR6DwGBSeiMLTUXg2Cs9H4YUovASFz0bhC1H4chS+FoVvRuE7Ufh+FF6Kwk+h8Aso/BoKv43CH6Lw5yj8LQr/jMJ/orASdxNuhcLtUbgLCq+Gwmug8DoovBEKB1A4isJbofD2KLwrCu+NwgNR+BAUHorCWRQeicLjUPhR1OfB/R/cP8L9p4dQGN8T4XsmfE91Hwrj5yT4OQp+znIXCuNnp/jZKn72ehsK4/EUPN6Cx2NuQmE8xorHYPEY7XUojOdd4HkZeN7GVSiM52LhuVpmLtdjqq+KthL921//BvLbvMcY+2+KKnRBVppbhzcu3iUoLbivEa5OJ1Lp6hAZeal1EY7FG/kSNomygc9NB5rb5xJGnzcU4nMpo88bCfHZz+jzxo585m5QN/Hxtg315U0gv83blJHnHqUy8mYzFFcwkoikMpHqVHUolkpkQrFkqDodDSdi0UwylA4E0pFkNhMIJTJRLxoKhhKhdDwUiIcjmUQ0E4gHEy55bu6TkZ4BITw9ITyDzDy5+V0D9fyG0pXjzbf92KGVW7/z5ad8vtmB3zsW+1sElm1eiNHna/i0wmMsN96OQt4iEGbMi32E6HbEJ4NnVAjPaiE8Y0J4xoXw3EIIzy2F8NxKCM+thfDcRgjPbYXw7C+E53ZCeG4vhOcOQnjuKITnTkJ47iyE5y5CeO4qhOduQnjuLoTnHkJ47imE515CeO4thOc+QnjuK4TnfkJ4DhDCc38hPAcK4XmAEJ4HCuF5kBCeg4TwPFgIz0OE8DxUCM/DhPA8XAjPwUJ4DhHCc6gQngkhPJNCeKaE8EwL4ZkRwjMrhOcwITyHC+E5QgjPI4TwPFIIz5FCeB4lhOcoITxHC+E5RgjPsUJ4jhPCc7wQnjVCeE4QwnOiEJ6ThPCcLITnFCE8pwrhOU0Iz+lCeM4QwnOmEJ5HC+F5jBCes4TwnC2E5xwhPOcK4TlPCM9jhfA8TgjP+UJ4Hi+E5wIhPE8QwvNEITxPEsJzoRCeJwvhuUgIz1OE8FwshOepQnguEcLzNCE8TxfC8wwhPM8UwvMsITzPFsLzHCE8zxXC8zwhPM8XwvMCITwvFMLzIiE8LxbC8xIhPC8VwvMyITwvF8LzCiE8rxTC8yohPK8WwvMaITyvFcLzOiE8rxfC8wYhPG8UwvMmITxvFsLzFiE8bxXC8zYhPG8XwvMOITzvFMLzLiE87xbC8x4hPO8VwvM+ITzvF8LzASE8HxTC8yEhPB8WwvMRITyXCuH5qBCejwnh+bgQnk8I4fmkEJ5PCeH5tBCezwjh+awQns8J4fm8EJ4vCOH5ohCeLwnh+bIQnq8I4fmqEJ6vCeH5PyE8XxfC8w0hPN8UwvMtITzfFsLzHSE83xXC8z0hPN8XwvMDITw/FMLzIyE8PxbC8xMhPD8VwvMzITw/F8LzCyE8vxTC8yshPL8WwvMbITy/FcLzOyE8vxfC8wchPH8UwvMnITx/FsLzFyE8fxXC8zchPH8XwvMPITz/FMLzLyE8/xbC8x8hPP8VwvM/ITxVhBJ4lgjhWSqEp18IzzIhPMuF8GwlhGdrITwrhPBsI4RnWyE82wnh2V4Izw5CeHYUwrOTEJ6VQnh2FsKzixCeXYXw7CaEZ3chPHsI4dlTCM/VhPDsJYTn6kJ49hbCs48Qnn2F8FxDCM81hfCsEsKznxCeawnhubYQnusI4bmuEJ7rCeG5vhCeGwjhuaEQnhsJ4bmxEJ6bCOG5qRCemwnhubkQngEhPD0hPINCeIaE8AwL4RkRwjMqhGe1EJ4xITzjQnhuIYTnlkJ4biWE59ZCeG4jhOe2Qnj2F8JzOyE8txfCcwchPHcUwnMnITx3FsJzFyE8dxXCczchPHcXwnMPITz3FMJzLyE89xbCcx8hPPcVwnM/ITwHCOG5vxCeA4XwPEAIzwOF8DxICM9BQngeLITnIUJ4HiqE52FCeB4uhOdgITyHCOE5VAjPhBCeSSE8U0J4poXwzAjhmRXCc5gQnsOF8BwhhOcRQngeKYTnSCE8jxLCc5QQnqOF8BwjhOdYITzHCeE5XgjPGiE8JwjhOVEIz0lCeE4WwnOKEJ5ThfCcJoTndCE8ZwjhOVMIz6OF8DxGCM9ZQnjOFsJzjhCec4XwnCeE57FCeB4nhOd8ITyPF8JzgRCeJwjheaIQnicJ4blQCM+ThfBcJITnKUJ4LhbC81QhPJcI4XmaEJ6nC+F5hhCeZwrheZYQnmcL4XmOEJ7nCuF5nhCe5wvheYEQnhcK4XmREJ4XC+F5iRCelwrheZkQnpcL4XmFEJ5XCuF5lRCeVwvheY0QntcK4XmdEJ7XC+F5gxCeNwrheZMQnjcL4XmLEJ63CuF5mxCetwvheYcQnncK4XmXEJ53C+F5jxCe9wrheZ8QnvcL4fmAEJ4PCuH5kBCeDwvh+YgQnkuF8HxUCM/HhPB8XAjPJxzxLLV4hgLRcDhTHcx4IS8RCMaTsUggHElGY17Mi8Qi6WAsFMrEwrHqeDJeHYh74VDGy0bioayOez1Gn58skM+B/DbvqRK+9Lu9VEZ5fFpIvXlGCM9nhfB8TgjP54XwfEEIzxeF8HxJCM+XhfB8RQjPV4XwfE0Iz/8J4fm6EJ5vCOH5phCebwnh+bYQnu8I4fmuEJ7vCeH5vhCeHwjh+aEQnh8J4fmxEJ6fCOH5qRCenwnh+bkQnl8I4fmlEJ5fCeH5tRCe3wjh+a0Qnt8J4fm9EJ4/COH5oxCePwnh+bMQnr8I4fmrEJ6/CeH5uxCefwjh+acQnn8J4fm3EJ7/COH5rxCe/wnh6RMy36ZECM9SITz9QniWCeFZLoRnKyE8WwvhWSGEZxshPNsK4dlOCM/2Qnh2EMKzoxCenYTwrBTCs7MQnl2E8OwqhGc3ITy7C+HZQwjPnkJ4riaEZy8hPFcXwrO3EJ59hPDsK4TnGkJ4rimEZ5UQnv2E8FxLCM+1hfBcRwjPdYXwXM8Rz1KLZ77roMsZfV5fiM+tGH3eQIjPrRl93lCIzxWMPm8kxOc2jD5vLMTntow+byLE53aMPm8qxOf2jD5vJsTnDow+by7E546MPgeE+NyJ0WdPiM+VjD4HhfjcmdHnkBCfuzD6HBbic1dGnyNCfO7G6HNUiM/dGX2uFuJzD0afY0J87snoc1yIz6sx+ryFEJ97Mfq8pRCfV2f0eSshPvdm9HlrIT73YfR5GyE+92X0eVshPq/B6HN/IT6vyejzdkJ8rmL0eXshPvdj9HkHIT6vxejzjkJ8XpvR552E+LwOo887C/F5XUafd2H0Wc0HKNNxbYD8L9Fp4Nf71fi5Gk9W46tqvFGNv6nxKDU+o8Yr1PN79TxbPd9VzzvV8z/1PEw9H1LPS9TzA3U/re4v1f2Wuv9Q/XHVP1X9NdV/UXqu9K0KoNo/1R6o+qHKi0o/9S749RHHqtIVvDcEbATYGLAJYFPAZoDNVRoBPEBQ5SMgDIgAooBqQAwQB2wB2BKwFWBrwDaAbXW+bQfYHrADYEfAToCdAbsAdgXsBtgdsAdgT8BegL0B+wD2BewHGADYHzAQcADgQMBBgEGAgwGHAA4FHAY4HDAYMAQwFJAAJAEpQBqQAWQBwwDDASMARwCOBIwEHAUYBRgNGAMYCxgHGA+oAUwATARMAkwGTAFMBUwDTAfMAMwEHA04BjALMBswBzAXMA9wLOA4wHzA8YAFgBMAJwJOAiwEnAxYBDgFsBhwKmAJ4DTA6YAzAGcCzgKcDTgHcC7gPMD5gAsAFwIuAlwMuARwKeAywOWAKwBXAq4CXA24BnAt4DrA9YAbADcCbgLcDLgFcCvgNsDtgDsAdwLuAtwNuAdwL+A+wP2ABwAPAh4CPAx4BLAU8CjgMcDjgCcATwKeAjwNeAbwLOA5wPOAFwAvAl4CvAx4BfAq4DXA/wCvA94AvAl4C/A24B3Au4D3AO8DPgB8CPgI8DHgE8CngM8AnwO+AHwJ+ArwNeAbwLeA7wDfA34A/Aj4CfAz4BfAr4DfAL8D/gD8CfgL8DfgH8C/gP8AqjEoAZQC/IAyQDmgFaA1oALQBtAW0A7QHtAB0BHQCVAJ6AzoAugK6AboDugB6AlYDdALsDqgN6APoC9gDcCagCpAP8BagLUB6wDWBawHWB+wAWBDwEaAjQGbADYFbAbYHKAaOQ8QBIQAYUAEEAVUA2KAOGALwJaArQBbA7YBbKvWnQO2A2wP2AGwI2AnwM6AXQC7AnYD7A7YA7AnYC/A3oB9APsC9gMMAOwPGAg4AHAg4CDAIMDBgEMAhwIOAxwOGAwYAhgKSACSgBQgDcgAsoBhgOGAEYAjAEcCRgKOAowCjAaMAYwFjAOMB9QAJgAmAiYBJgOmAKYCpgGmA2YAZgKOBhwDmAWYDZgDmAuYBzgWcBxgPuB4wALACYATAScBFgJOBiwCnAJYDDgVsARwGuB0wBmAMwFnAc4GnAM4F3Ae4HzABYALAeo78uob7er75+rb4uq73eqb2Op70+pbzuo7yeobxOr7vurbueq7tOqbr+p7qupbpeo7oOobm+r7lerbkOq7i+qbhup7gepbfOo7d+obcur7bOrbZ+q7YuqbXep7WA8C1Hec1DeS1PeH1Ld91Hdz1Ddp1Pde1LdU1LdF1Hc71Hcs1Dci1PcX1LcN1HcD1Dv51fvu1bvk1Xva1TvQ1fvF1bu71Xux1Tun1fuc1buS1XuI1Tt+1ftz1btp1Xtf3weo95Wqd4Gq92yqd1iq90Oqdy+q9xqqdwaq9/Gpd92p98ipd7Sp95+pd4up93apd2Kp902pdzmp9ySpdxCp9/uod+eo99Kod76o96mod5Wo94Cod2yo91eod0Oo9y6ojoB6X4Bai6/Wuas15Gp9tlr7rNYVqzW7aj2sWmuq1nGqNZJq/aFa26fWzak1aWq9l1pLpdYpqTVAan2NWrui1oWoNRdqPYNaK6Dm4as57mr+uJqbreY9K51X83XVXFg1z1TN4VTzI9XcQzUXT81NU3O11NwlNZdHzW1Rcz3U3Ac1F0CNjauxYjV2qsYS1diaGmtSYy9qLEI9m1fPqtWzW/UsUz3bU8+61LOf2mchAHWvrO4d1b2UurdQfW3V91R9MaXpZuuCwn30b6KmJnPUmJqqmtFViXS6atKImuFVoydmxmVHjlbyW9tHMtvW+nfnCaNSNSNGj6qC40ZkpwwZM27ExERNZkhiQs1wiKAqlRhVNXrUyClVyQyER47MpKvG1yRqRqiw0vLaToTZ1tO/e40Yf1SiJjW8atTomkzV8EwinRlXlRo9qmZcIlWjuI3LjB+vek213Q+zrdXQ2eNrRo9LDMtUjR85uqb2zIU5JEC0fMU5/czVgIqKGC5WpZwePW7EVHAyOaUqkUqNnjBKNWK1PUi13YUu2kv/bjduXGJK1YhR6czkqtETaqpGZ6uScF56PD7xkVxPfDbXE1/J9cS3cj3xo1xP/DLXE5Xgmc3kJyoDR00YWTNiDJTdOgUBRzAQRdCUQoTPHVSSI+sheVw0letFj8rjogeW5pnMh5TmyDpTmjvrEbletCaPi07O9aJz8rjocbledHEeFz0914telMdFL8v1ojfmcdFbc73oA3lc9JFcL/pCHhf9Xx7nvpUr4Q9zPfGHPNj+kutF/871xHb+3Nl28ud40R65ntgvB7aD9XH4+WaTLmpO3NqX+0W3y/WiA3K46OhcPR2dh6ejc/V0dB6ejs3V07F5eDo2V0/H5uHp7Fw9nZ2Hp7Nz9XR2Hp7OzdXTuXl4OjdXT+fm4el2uhUblse581aVsDnxpFxPPCcPthfncO4l+twzVpWwOfGyPC56bQ7nrqMHkqaic/utfG799yUmguvyuPhteZx7t28VU9qc+HCuJz6XB9vXc73oJ3lc9OtVPLd2oFBtg3TBUv+bvpqKWMXbX/8fyG/z2iByrHHHYvE2vhUDpS54l7uJu3ZB7A4Vy+Iy/M211KCt6VCaY9RPb8SlLUrTMnS8yUPFvZ2TNA+HVdztXcQdCNYuOPNrn9ui9CjTtnbIVq5thov6d11//WlUVrA0iopII7V/rt6Py948bWuFbMdqW2tkOw6VTWObX7EibdWmHqLvqG07YV6+ulsbdD3e9PJiJda1ylDYXLOtz1ldV2Ocy69jrm+uhctia3QM07VrF2RXuEnX6hIUt/GrwkrXDr4VZQHnrym35fo8c0wFSpe2KG/MeeXo/430byU6vzU6to3FrQ2K2/BZR4c7+Vbww+XAzrdWVhyV6HjsMz7PxOWz4vJZcanzKqzj2vhW8GZuR7yGOJlrtvW5Kj/L6oWdRzj/DQ+c/6U+3rrhpP2HNroExW18a2elrcrv9patRNvVZuqGOaYdSpsOKA5zXjn6fxv9W4nOx+lobD7rGrhuxBA3N2Vw2QJznE7mem60MxBvqMzjdHJTLpaVeTvtcb6qrYNvRT7i8tERcSrh41S7ENpcD1+jg8WzA8Gzk6/upnhWOkm7htsrc822iJOLvKu0rt/JShPlf2c3/te2KZ2t63e2/Fd50sWyqfPMZAbTpphjOiP+5piu6Lxy9P+BKN4uKL3NsV0sbl1Q3GpTbcq+KA5TnnB+NVbm8HkVOZ7X+v/z89ogm+mHYO3BdZyzP0i15U3p97hubztZ16fa20458nbZ1th9604E74ocebvs09n6RvXpHOm7h7VzVdOkg8M0sXWD0tJKX2683ejtMt623lQSvDv7cuPtRieX8ba1qLN1/TboGOb7itoyiCcPmms0JU26OkyTbtb1u1rX72Adsyq8uznk3d26fjeCd3dfbry7O+Tdw7p+d+v61DGdiWN6NiGe1axjKohjelnHVBLHrG4d0404prd1TCfimD7WMR2IY/pax3QljlnDOqYdccya1jH2szV17Spf3U3V/34ojkI9bzTXbIs4uSh7/azrV1lpovTXlJFhmZq9R9dkxpcgPub8nshmfm3/zDFYv9CEmDr3CD2sc+3ybWyrEbZehG11wtabsPUhbH0J2xq+lTfcn8HPq7DG4D61KY9UuuBrlfpWTk9jx/9z7vc5jJt7v7GV1RO2xysbKpuqjTLtQhU6D49DUG1HJToePxe2++ZV1nnUfYc5pw3ByRzrR2F7PMKP4sBx+9Gxdr+e4lFFcLWfVZpz2qPrmbjx+FKZ5ZO637wKxbsmirOMOF79roGOV+iv/w/kt9WO3/a10oMp7oiKu4+buIMq7t5u4q5Wca/uJu7aMc9ebuIOlaOytHPJirJ2s7ap8mk0A48z2X0nc0xDfTBzDq6nJs4eaF8PN77GcJ/XHgPogezmGDM/BuuRD3HrnkMamHNw/e9pceiE9uN+QmNjC5XoePx821FfPIb9M+lp6i5OZ3PMUv1bX3raaUWlp53m5hxzXZx23ZGtj5UuVF+6j3U9PMZj9hW6fJp6T5VPM5vKRfk018Vph+toIcuUaVepMvVqI2mQT5laPu8dpUd3lAaFLAdGb6ly8HYjaZBPOeiL0mD5dH6UBo76AVHX6dutCelrjvnY13D6dsshfbsR6dvdt3L6Onr+Q9Yz0zfCaWOO+aqRNGhKPbPTyZzTG6VBX4tDJ7Qfa6H9rKS3dT2shb2JuNqvYlztrbjsviTfc85o7dzL1dzEnbXrFWPcYbu8MsZd27/u6iTuYMDdM+toyh635os7HLXnBDDyzqi4OzmJuzpsj5Uy8q69f+zgJm6vvjk1+Dkc4/POiP3MBT/vxHP4XI7x2nN9qTHeCotTJbLhsl/fnMZS4rwOOZ7XO8fzuuR4Xsccz+uR43ldczyvU47nrVZgnt1yPC/XfMg1XXL1L9dynev1KnM8L9d8zzU9Tf6ZF++pbRvdAKo0w+2Q2hzOv4421O7ifLTbPXv+Rz4f4UskQtVhL5zJZL2AF2x4TjjuY7e2jrHba3drb7wwXj+B1zOUEesZyq31EXj9BJ6zz82xoXQ018TlEs/PbSz9lYaYstAD+WqO645s5lqrI5sZ2+uJbKbstUc2k2Z9kM3UmV7IZribe6p2vrpjB+a+rwz9b37NMbuhZ8LPakeVCd/f4Tjw/ZGj+/cAfv5srm3fS5ajY/YrWcHD6It50edq1nn4eYmJuxv638Td3Yq7vvti+97S5BluXw33VtYx2BdzzAENXM9dmi9rf3oiPvg+GT9HMMcc3Ei62OMHVTrclPEDfD+/msWBipu657fT3H7GgNN8aCNp7uYZzbI0t58DGn74GY05Jt1ImtvPAat0uKFnNN2tdOmE0gXXJfvZFR5bNefi6/vRsT2tcxrKwz6EPw3loTlmVANp08FHz23wWRzM1tD8KIfP7Brsl5hrup57VV/5wGnS1eJUiWxY17tacdnzlCSfp2ymTOFxqG6WjUrTbkT85nizT6Wz0Wg8R2AeoXWm7TDH90V2c0xr/4o45pes4GuOpZ6hYh/scfXeDfiA47LHGah2qjsRV1+LQ3110c14f8NrZsw1XdfF3o2kk/K/pxv/A1QbbesznveK88FeM2OO6Yn4N7Zm5jydAZW+um2fObaxOqXK+RmonDdUpk0cTSnTuWoJ1V7UV6Yd5WmDZdpc03WZbmxOrjt9XVam6ys3+J6sq2VT55l+hSnTtgaWomPws8Zy9P9NqEx3Reltjm1Mh1SZvgaVabvf1VCdpco09pmaS+qz4vIRcVEc7DTua51H+WrOwXOHTJxd0T4nZcNbtp7WXntgjxsVqi7iNYIu1zXYaz3s8uZsTaa37IO65kMaPnQdw6nKh0g4Whhb54Ug5sL4gZa5rvo3oDtQVMFsaqfGHI8FgOrkPV2ywuamMfayVKO2psUPN17flK7g9zxqhIxPuANgL36iGoBK6xhzDp44Zy/IpRZNFcPCaZcLsupLJ1xJnSymRJW0C8oT7HuVD5Fwszq2biXFBcFUUnNdXElLfCvP3qZWCNW3Kh3f0VGF0PDBymT4cBdCFe0O6M1Dxo/yCl5fK9Ex2GdTsXEht9WbquD1qQueyWm3+h18K684sWeGFKqC4x6aoxnrHpWW9ixVZ70QVMHtfDCcqnyIhJsl23UruLkwruDmurYKG9I4c+p7zQNWYXN8Z3QtSoX/Ro9a7FtaSinNMS8jpfwPKaW9vCnfikRN4cUVyV72VQwVydEyB7Ii9bLSshAVyc4HsiK5es9JYxXJXNdWyj6NJBxVCO11APjZJy6Ehg+uYIVSSuMHVkoOX/F7XPAzcFOxccVsaI4q53zXXqsYVy8rrqbet9e3pnx1ghMuG2Y/9tleM706wbMnEb8J91rFuHo1EFcLr/x5lTDyKsmRVytk60twtdfO922Aa18irl6rGFevBuJq4dU4L4drUOqsE7HnueDrr+nm+gHcnpprU2N45piD0Pwcoz9mnou93gRrnYm7C/rfxN3Hiru+ORCO0oBcC2V8WZNIg0Mb4In7G6sj7m76G4G43d9YnmfoerZeUppqv4fDHguuRMfgNd/1vXMEz4Mxx7fy0Xpdjo7JNlIG8LVdl4HVLX9xGTiiiWUA1+FClYHlY/INlAHq3TD2+1rMOSYdKtExuH22x3vM8bgMmHRoZR2D59GYYyY0UgZctsX1zYWi2sIpTSwDeFypUGVged1qoAzY/RpKH+1xOjwvAuuq3W+314iXoONbWcfgOSTmmLmNlAFHN/ENakEvZDfHzC9iLVhetxooA/bYLM4ncwylBdS9m33PR2kB7iPjY/A8VHPMqY2UAUfvwiDLgOGHNcscc0YTywB+N0Wxa4Gt6/YclEp0DF6P0JR5sasyp/LiRsqAy3cE4LzGdQWXDXPM5UWsBcvrFrqenb/285mG9AJrgTkGzzVvihbg973UpwXmmJsaKQP42q7LQDfLX1wGbmtiGcDrF5pTC+wyQGmB/W5Ccw7WAnOMH53HrQUPNqMW4LyuTwvMMUuFaYGdv03RAns9C9aCHshmnoOZOO31PfY9p3km0NC9ozkG35ebY15sJO3tc/H7zvA0EmrOneG4JsGxs8XRHIOntphjXm+kHLuaZoRH6O33yFciuznm7QZ44rhMutgjxg2N9uOpHPY78F2nQUcrDdYk0sAc81ET63JzzMBYnpfoeh0RP5zeDeWJOQengzkG5w1em2M42OUcD1jjKWr4HoG7Pv0opD79uor1iXqfrvT69E8T6xN+/9X/r/UJj58aDlR9ehrVp4bWOZjrUxM8cHz4GDyhxBzT3l+XA97czRtYtg4RlxlcBzojuzmmsgGeVL5U6TDOu/rej2+ui2fedUZp4KY+BSIllq/11SdzTM8G0qDA95xRuz4tL1voenZ6N6WNM+dQ9QlPpGmKruB+aH26Yo5Zq4G0xfUXz3Gh6q9ZK1f7vgE3aV/bDlegdx2UoWuZ9C9Fx1QgHuXo/83RfJw26EUEKr7l71xAE+Ja6XCbivrPK7POq0THtELntbbOa414m7RcT/Nrp9OzlZv0DNami47bb/lhrln7zgUdNvvaWGnBncdtrTxuQ+SxOaatlcfm/+1RHldYXCusNFf2dvWUgzZEOWhX0fh5Fei81qtwXhtUftpZZaop18PntWqgvLYhyl0YlTvsr58ov+YetZUVTzk6Zhe0DnY31GaWW/Gq/QcR+81WUvff5fe3teFmLpNlq1AmD0BlsinlraIJ5aa8gXJTsYr5v6fm19ZXV88Y09LDea3K2QE63ja+ld+Vz3XNNitc5407tuy9gWUOeRfTt73xd5x3RLphbDtZ8eHvKuOJwU580usK7W/aunv/UcMTsc012/pcfTN62URs+x1V9rd/nb3bC03ENmWgwvK9yhDDH5HAiVFukac+bGF/8LiDdZ6Jy2fF5SMSAn/wpb/+DeS5VSI+uDJU5MARvywLx+XPIS5c8Bn99SoRn9bEtbgbKvxA21xDlYm1nV/bqxV+Ix72C75aI7s5ZhPEb30d7mQda2z2x1Cwn1RDbOIwnbM21rGuPxTdvp50aIfs5hhP/9b30ML++ILdaJX4Vv7YS3sU9uk0aGtx8PtW/pC0fSyuS/iFftR5ONzGOgfX+7bEdSoa8MUuQ7ic2QNAOH3NMebD2fU9vMIv2nNdDuwPhuNysH0DPJtaDtpYx9gfGsf1yxzrR/txG4iPxeUAf/yDOg+H21rn4Da7dQPXwR8UVVt//RvIZwMRxpxK0XUxP7/F3d2LlumPq5ZZ18cdF7u84/Jljtlf/zY24NkexWn0YS3ks7wbjFj4/9INhr3q1Wxl6HjnNxKxcG2au+m0h+ssHCxD6VGGHjAYWzl6QGLSyAx44Jur/jgeX93NXR6HG7wBwtroqvxS9xDmWqacqDbBDFYNy9RsN6Fm+EEjakZlxtf5lKSJpT+ymV/bS/sYtfkJm9pwSceKLuExeT/kUzE+Jl8NpefdOiyzlU9E3bU4waDLuzPcyhv+uOdj9u2A8rZU7zOt147EPvMoaSdi387atjOxbxfz6JnYt6u27Urs203bdiP27a5tuxP79tC2PYh9e2rbnsS+vbRtL2Lf3tq2N7FvH23bh9i3r7btS+zbT9v2I/YN0LYBxL79tW1/Yt9AbRtI7DvAPPIm9h2obQcS+w7StoOIfYO0bRCx72BtO5jYd4i2HULsO1TbDiX2HaZthxH7Dte2w4l9g7VtMLFviLYNIfYN1bahxL6EtiWIfUltSxL7UtqWstp4tS+tbWlLh/CTMuaeVchhOxfAr4I3m7PHn408/jXXbOtz1vbWXr/Cur65ltFA3NvETxQb+owA7m1ui+PR4TqfI9BhU77w09k0usbuKA3sHhvVs3dSRmLLPmnkJj/q9uzLibRuRaR163rS+jJiKCWjbduhdCr2PuRuvhX2YuxD9tdh1Ycs7PBRWOTwUSnf9QPunlSG6zy5N761sdIWfwoH5zF+4lrmq/vUzKSNOQY/cS9H/x+sfyt99BNh+1Ng+Ame2lQ+mKde+GkiLgt23tltPx49wz7bGtnUkSmbQ66jXHb7ns+nfewNP41tVc/1XJczaqSzLbLhY/BTc3PMcP1b39NOu41qav7h9DC/bp4CLxspaKwe4foyWv8qjmMJzm2J/Z0su89X91M9OB9qkJ+tLF5trGvgz2ZNR3FMQte16xWuo7hP5UfnG5s9+tNOH2fnj6kbuM9UbvErs+xqOwZd8/xGONujkHiUwkWZ6ID44rTHT/3NMcfq3/pGjzqg/6l+JDUS0QH5adKgncXBb/HEaeEufcLkMoMORPqYYxb66k8f3BfF5crNtOhw7TKDy9C1l5dXdD17mYE924PKr44oTrVV+lYeAcTa1NAIu0Pd8ezyiOsjvmY7ZMPH4PJmjjlX/9Y3NbvCOhfXd3eaRz91x6PXlK/4mHLC10sa8LWxNp1jqupVKN5r0HWpqap3EfvN1pAWS5qqegfypxinql6vw66nqpq8VuV0qQ7LHGNIRVyOBDpsb+qMMdhtassYwzJbyxhDyxhDMY0xmH3UGIPZZ55nZoh9WW3LEvuGadswYt9wbRtO7BuhbSOIfUdo2xHEviO17Uhi30htG0nsO0rbjiL2jdK2UcS+0do2mtg3RtvGEPvGattYYt84bRtH7BuvbeOJfTXaVkPsm6BtE4h9E7VtIrFvkrZNIvZN1rbJxL4p2jaF2DdV26YS+6Zp2zRi33Rtm07sm6FtM4h9M7VtJrHvaG07mth3jLYdQ+ybpW2ziH2ztW02sW+Ots1B+8xsUZfjeI76EoGW5/ArP4dvbBwPP9+lPgd+OI5Hh6lnUqYMqZ/hyN/mG7NbNgOyWMfscLourViRPmpTY3ZztW07lE7FPmY3zLfCXoxjdoN12IzZ5bIaqL5VO/k+W8erE+wZ4FQ9p8Zs7HF2u/zzPbcKxWvLjI7LPI+yn0+X+lZ+tm14GPtE/avSYbZz3suelTbGuxwdM7UJ/PjqYihe36qlGc6vvXLalDWSNgsQv1lEOnXy1R1nMDb7XhyPMeAyb+uCrW24zOP21p43S62QMquh7LFJe9yasc7Ufs0PP4/EaUnVGXs8x9gXIc5X6nB9q8Uq0LE+nTYmXuxnmc/9mL2bVWZhcnWRveoKry46U/82Nv6B88Hl+McN6NrLxxLR9eyxDXvMHz8zN8e0R9zVVomOqUC2hlaiua8TK/dh8Xg2viYeJ8DHUKspL9e/9Y1/2OOZuB45nPNMzruz21fbV3xMBeHrdQ342oE4F2sJx/jHLSje29B1qfGPR4j9ZmuovyRp/OMh5E8xjn/cqcOuxz9MXqs2p6fOXMnjH47mAbWssfC1jH+0jH+0jH/Y+1rGP1rGP+x9LeMfhRn/UPvM89e51j6Za5zCBV7jFP4/scZpMI5Hh6k1TqZ84WfOc9E1RlhpgDlT4yVu3l4Qi7guf/m8vcCktRobmaf390dpUuxjI8N9K+zFODYyRIfN2Ei+az1wfarIMa4Kaz9+nmy3wTiuMiIu+5mw/XYUxmdaMfwMp9RXd4yhvrduca5lqX2WgfzF82XxHFpzzDTEowNKX/ycCbc57a24O6D/zbHtrbip51N+n2+l9Swm7GR9l37VYzuLh8O3GsUbKutt0a+bZ+PLdNBeM4bfXmb87+Aovc2rHu356vYzXocLJAIxLD74XaSmAW2PyHynw3igyq6oODHtxQj4QTsu3G4mvdR9dykeWFuIru2mcIfJ1xzaC69wI3Im4rfYtyKdG1oURQ2CGz+aMghOTVwxg392IbQbHsbBvxguO2bwz17YZucV50BLObr+iyg98EKvNkR6lDvhs/KgHSU2WEguQZw/d85vWb2iFo9cbl2P4l9m2dV2I4rjKt+KNG9osMvE0daKt8TiRJUlfG2z6KGxBUF44OlzxNHEg+snbjMNJ3shkz0IqY7paPE2x+CFTOaY2xvg7a8nfjP4a78Srr/+P5DfVluP7e+wtEfpYuzmmHsa8AHH5fPR4lyC4jXHmHPwdTuisJ0+HYj0cfONljD53Sf8SkljN8c84qs/fahJdq4H40tLVlx7eZlE17PzwhyD86u+71DhdDDHdEQ2rFkmLrtO2YuOqTrVxooH16nn9W9jC+bw4kDT5mGNaGgxMC57dr/HbrO5J5l0tK7HE3fD5RovvjXHvOFrOJ2XDwb7VvwWe7mu73tfuFzjtDA2u1x3QmGsH7hvjW8scVm3J4LYC65x+f9U/zame1hLcd/C5atu7Zc/tCJ8xbzwMZTGf9OArx2Ic+17hJZvBen/0cOxxiZ7lJSssLd8K6hpE1B+0mGubwW1KlkRdwVq46gJSD2I/WYrqfuv2AlI3VCZLMYJSO00P9cTkExeq3K2oY5X5gSksMMF2IFgsS3ANn0P88xmB1T3ytykb9hh+nruBlmXaau9MMTui6/q4pRiWbhGvZyl0GmJByBNWjY0iNnYYrpe+BwdxtdYR4fVIOdOlj5JGORc27fCXoyDnKvrcDtzjs+6lq/uOdSzafs+hXoO3d634jnOmETqyAGZmgnjRo3H1Q5Hh7dSFMZj/3bziY8zxaGUiM+8M96nf7tZ5/TX/wfy22qbue5u4g7gbDL88SewcVpwXROnP85u3AU1+/Hj0xJ+Lh6Ksvaadh7jT1yXEJwc3cYG3a3pqZvn9teacD6UEb7jcKmvbpfP3k/ZOhDX6UrY/h/7CHOLlFsGAA==","debug_symbols":"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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","pack_returns","directive_invert","directive_integer_quotient"]},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["private"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"},{"name":"cancellable","type":{"kind":"boolean"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"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":"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":"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":"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":"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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pJODkk4OSjo5KO3koLSTg9JODko7OajDuye9NNlODko7OSjt5KC0k4PSTg7KOjko6+SgrJODsk4O6vCuZi9NtpODsk4Oyjo5KOvkoKyTg/JODso7OSjv5KC8k4M6vNvgS5Pt5KC8k4PyTg7KOzko7+SgopODik4OKjo5qOjkoA7vAvrSZDs5qOjkoKKTg4pODio6Oajs5KCyk4PKTg4qOzmow7vzvjTZTg4qOzmo7OSgspODyk4Oqjo5qOrkoKqTg6pODurwrtkvTbaTg/pi3b7vJNvJQX2xbt93ku3koL5Yt+87yXZyULOTg5qdHNThncRfmmwnB8XuOb53sp0cFLvX+N7JNnJQ9dV6kn+cbCMHVV+tJ/nHyTZyULVYp2QbOajq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkr049yatTT/Lq1JO8OvUkn516ks9OPclnp57ks1NP8rlYp2QbOajZqSf57NSTfHbqST479SSfnXqSz049yWennuSzU0/y2akn+ezUk3x26kk+O/Ukn516ks9OPclnp57ks1NP8tmpJ/ns1JN8dupJPjv1JJ+depLPTj3JZ6ee5LNTT/LZqSf57NSTfHbqST479SSfnXqSz049yWennuSzU0/y2akn+ezUk3x26kk+O/Ukn516ks9OPclnp57ks1NP8tmpJ/ns1JN8dupJPjv1JJ+depLPTj3JZ6ee5LNTT/LZqSf57NSTfHbqST479SSfnXqSz049yefxPck1/HJqG+PjZIenXo4evgrMn5L9nsD4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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","enqueue_public_function_call_internal","call_private_function_internal","debug_log_format","notify_set_min_revertible_side_effect_counter","directive_invert","directive_integer_quotient"]},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"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","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000004c141a0"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"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"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}},{"name":"cancellable","type":{"kind":"boolean"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"}]}},"file_map":{"113":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n 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 call_request = PublicCallRequest { contract_address, call_context, args_hash, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n 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 self.public_teardown_call_request = PublicCallRequest {\n contract_address,\n call_context,\n args_hash,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let N: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<N> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note,\n num_public_values: u8 // Number of values to be appended to the log in public (used in partial note flow).\n) -> [u8; M] where Note: NoteInterface<N> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n encrypted_bytes[64] = num_public_values; // TODO(#8558): This can be just a single bit if we store info about partial fields in ABI\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[65 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[97 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[145 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[193 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 337;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[337 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // num_public_values (1 byte)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n let num_public_values: u8 = 0;\n\n let log: [u8; 449] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note,\n num_public_values\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n assert_eq(encrypted_note_log_from_typescript, log);\n }\n\n #[test]\n unconstrained fn test_encrypted_note_log_of_finalized_partial_note_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note_public_value1 = 0x14172339287e8d281545c177313f02b6aa2fedfd628cfd8b7f11a136fd0d6557;\n let note_public_value2 = 0x0834d81e3f73c7e2809b08ae38600ffc76a2554473eeab6de7bff4b33a84feac;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n let num_public_values: u8 = 2;\n\n // First we compute the encrypted log without the public values\n let log_without_public_values: [u8; 449] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note,\n num_public_values\n );\n\n // Then we \"append\" the public values to the log by copying both the original log and the current log into a new byte array\n let mut log: [u8; 513] = [0; 513];\n for i in 0..449 {\n log[i] = log_without_public_values[i];\n }\n let note_public_value1_bytes: [u8; 32] = note_public_value1.to_be_bytes();\n let note_public_value2_bytes: [u8; 32] = note_public_value2.to_be_bytes();\n for i in 0..32 {\n log[449 + i] = note_public_value1_bytes[i];\n log[481 + i] = note_public_value2_bytes[i];\n }\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_of_finalized_partial_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38, 20, 23, 35, 57, 40, 126, 141, 40, 21, 69, 193, 119, 49, 63, 2, 182, 170, 47, 237, 253, 98, 140, 253, 139, 127, 17, 161, 54, 253, 13, 101, 87, 8, 52, 216, 30, 63, 115, 199, 226, 128, 155, 8, 174, 56, 96, 15, 252, 118, 162, 85, 68, 115, 238, 171, 109, 231, 191, 244, 179, 58, 132, 254, 172\n ];\n assert_eq(encrypted_note_log_of_finalized_partial_from_typescript, log);\n }\n}\n"},"122":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::{get_public_keys, get_ovsk_app}, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{hash::sha256_to_field, address::AztecAddress, abis::note_hash::NoteHash};\n\nfn compute_raw_note_log<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n note: Note,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n num_public_values: u8 // Number of values to be appended to the log in public (used in partial note flow).\n) -> (u32, [u8; M], Field) where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note,\n num_public_values\n );\n let log_hash = sha256_to_field(encrypted_log);\n\n (note_hash_counter, encrypted_log, log_hash)\n}\n\nunconstrained fn compute_raw_note_log_unconstrained<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n num_public_values: u8 // Number of values to be appended to the log in public (used in partial note flow).\n) -> (u32, [u8; M], Field) where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n let ovsk_app = get_ovsk_app(ovpk.hash());\n compute_raw_note_log(context, note, ovsk_app, ovpk, ivpk, recipient, num_public_values)\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(AztecAddress, AztecAddress, &mut PrivateContext)](NoteEmission<Note>) -> () where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_public_keys(ov).ovpk_m;\n let ivpk = get_public_keys(iv).ivpk_m;\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n // Number of public values is always 0 here because `encode_and_encrypt_note(...)` is only called\n // in the non-partial note flow.\n let num_public_values = 0;\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, iv, num_public_values);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(AztecAddress, AztecAddress, &mut PrivateContext)](NoteEmission<Note>) -> () where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n // Note: We could save a lot of gates by obtaining the following keys in an unconstrained context but this\n // function is currently not used anywhere so we are not optimizing it.\n let ovpk = get_public_keys(ov).ovpk_m;\n let ivpk = get_public_keys(iv).ivpk_m;\n\n // Number of public values is always 0 here because `encode_and_encrypt_note_unconstrained(...)` is only called\n // in the non-partial note flow.\n let num_public_values = 0;\n\n // See the comment in `encode_and_encrypt_note_with_keys_unconstrained` for why having note hash counter\n // and log hash unconstrained here is fine.\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, iv, num_public_values)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n // Number of public values is always 0 here because `encode_and_encrypt_note_unconstrained(...)` is only called\n // in the non-partial note flow.\n let num_public_values = 0;\n\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, recipient, num_public_values);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n // Number of public values is always 0 here because `encode_and_encrypt_note_with_keys_unconstrained(...)` is only called\n // in the non-partial note flow.\n let num_public_values = 0;\n\n // Having the log hash be unconstrained here is fine because the way this works is we send the log hash\n // to the kernel, and it gets included as part of its public inputs. Then we send the tx to the sequencer,\n // which includes the kernel proof and the log preimages. The sequencer computes the hashes of the logs\n // and checks that they are the ones in the public inputs of the kernel, and drops the tx otherwise (proposing\n // the block on L1 would later fail if it didn't because of txs effects hash mismatch).\n // So if we don't constrain the log hash, then a malicious sender can compute the correct log, submit a bad\n // log hash to the kernel, and then submit the bad log preimage to the sequencer. All checks will pass, but\n // the submitted log will not be the one that was computed by the app.\n // In the unconstrained case, we don't care about the log at all because we don't do anything with it,\n // and because it's unconstrained: it could be anything. So if a sender chooses to broadcast the tx with a log\n // that is different from the one that was used in the circuit, then they'll be able to, but they were already\n // able to change the log before anyway, so the end result is the same. It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, recipient, num_public_values)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n"},"123":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\npub struct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high: [u8; 32] = self.eph_sk.hi.to_be_bytes();\n let serialized_eph_sk_low: [u8; 32] = self.eph_sk.lo.to_be_bytes();\n\n let address_bytes: [u8; 32] = self.recipient.to_field().to_be_bytes();\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{address::AztecAddress, scalar::Scalar};\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n #[test]\n unconstrained fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n assert_eq(outgoing_body_ciphertext_from_typescript, ciphertext);\n }\n}\n"},"124":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\npub struct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nunconstrained fn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"125":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\npub struct EncryptedLogIncomingBody<let N: u32> {\n plaintext: [u8; N * 32 + 64]\n}\n\nimpl<let N: u32> EncryptedLogIncomingBody<N> {\n pub fn from_note<T>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T>(event: T, randomness: Field) -> Self where T: EventInterface<N> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::{NoteInterface, NullifiableNote}},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: u32 = 3;\n\n impl NullifiableNote for AddressNote {\n fn compute_nullifier(\n _self: Self,\n _context: &mut PrivateContext,\n _note_hash_for_nullify: Field\n ) -> Field {\n 1\n }\n\n unconstrained fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n }\n\n struct AddressNoteHidingPoint {\n inner: Point\n }\n\n impl NoteInterface<ADDRESS_NOTE_LEN> for AddressNote {\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] {\n [self.address.to_field(), self.owner.to_field(), self.randomness]\n }\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote {\n address: AztecAddress::from_field(fields[0]),\n owner: AztecAddress::from_field(fields[1]),\n randomness: fields[2],\n header: NoteHeader::empty()\n }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_LEN * 32 + 64] = [0; ADDRESS_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = AddressNote::get_note_type_id().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn compute_note_hash(_self: Self) -> Field {\n crate::generators::Ga1.x\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n unconstrained fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n // 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n // the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n // implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n // 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: u32 = 3;\n\n impl EventInterface<TEST_EVENT_LEN> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n comptime\n {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_LEN * 32 + 64] {\n let mut buffer: [u8; TEST_EVENT_LEN * 32 + 64] = [0; TEST_EVENT_LEN * 32 + 64];\n\n let randomness_bytes: [u8; 32] = randomness.to_be_bytes();\n let event_type_id_bytes: [u8; 32] = TestEvent::get_event_type_id().to_field().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes: [u8; 32] = serialized_event[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_LEN * 32 + 32] {\n let mut buffer: [u8; TEST_EVENT_LEN * 32 + 32] = [0; TEST_EVENT_LEN * 32 + 32];\n\n let event_type_id_bytes: [u8; 32] = TestEvent::get_event_type_id().to_field().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes: [u8; 32] = serialized_event[i].to_be_bytes();\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n unconstrained fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 201, 247, 40, 80, 60, 188, 158, 251, 242, 103, 197, 79, 165, 195, 10, 160, 255, 35, 167, 152, 25, 233, 77, 145, 214, 243, 210, 119, 0, 20, 29, 95, 15, 63, 33, 190, 184, 67, 254, 96, 128, 243, 220, 228, 201, 130, 86, 163, 52, 127, 111, 10, 212, 7, 160, 16, 87, 13, 39, 11, 5, 1, 164, 65, 8, 56, 82, 245, 13, 68, 176, 90, 100, 69, 243, 78, 117, 188, 221, 34, 178, 31, 155, 89, 143, 176, 129, 118, 36, 236, 64, 179, 52, 239, 184, 51, 51, 199, 221, 49, 81, 197, 17, 199, 192, 99, 49, 168, 157, 164, 190, 33, 240, 182, 214, 173, 7, 156, 102, 95, 65, 217, 225, 123, 42, 21, 124, 144\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"129":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, NoteStatus, PropertySelector},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note.\n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = serialized_note[selector.index].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()), \"Mismatch return note field.\"\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N> + NullifiableNote {\n let note = unsafe {\n get_note_internal(storage_slot)\n };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N> + NullifiableNote + Eq {\n let opt_notes = unsafe {\n get_notes_internal(storage_slot, options)\n };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N> + NullifiableNote + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse_array(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"131":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{\n context::PrivateContext,\n note::{note_header::NoteHeader, note_interface::{NullifiableNote, NoteInterface}}\n};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let note_hash = note.compute_note_hash();\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the\n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the\n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from\n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N> + NullifiableNote {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n let note_hash = note.compute_note_hash();\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"132":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::{NoteInterface, NullifiableNote},\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, let N: u32>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N> + NullifiableNote {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"133":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\npub struct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting\n * a change note in a token's transfer function only when there is \"change\" left).\n */\npub struct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, GENERATOR_INDEX__FUNCTION_ARGS},\n point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice}\n};\nuse crate::oracle::logs_traits::ToBytesForUnencryptedLog;\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (n as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\npub struct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"153":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\nunconstrained pub fn get_key_validation_request(\n pk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n"},"159":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"161":{"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"},"162":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained pub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"164":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"165":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, constants::CONTRACT_INSTANCE_LENGTH,\n utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = unsafe {\n ContractInstance::deserialize(get_contract_instance_internal(address))\n };\n // The to_address function combines all values in the instance object to produce an address, so by checking that we\n // get the expected address we validate the entire struct.\n assert_eq(instance.to_address(), address);\n\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"166":{"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"},"189":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"193":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = pk.x.to_be_bytes();\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n}\n"},"211":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{traits::{Empty, Serialize, Deserialize}, point::Point};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self { pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool }, sk_app: fields[3] }\n }\n}\n"},"24":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset+31 - i] as Field) * v;\n hi = hi + (bytes[offset+15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// This is a hack because returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n let x_coordinates_match = point1.x == point2.x;\n let y_coordinates_match = point1.y == point2.y;\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint { x: point1.x + (x_coordinates_match as Field), y: point1.y, is_infinite: x_coordinates_match };\n // point1_1 is guaranteed to have a different abscissa than point2\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n result.is_infinite = x_coordinates_match;\n\n // dbl if x_match, y_match\n let double = embedded_curve_add_unsafe(point1, point1);\n result = if double_predicate { double } else { result };\n\n // infinity if x_match, !y_match\n if point1.is_infinite {\n result= point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n let mut result_is_infinity = infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n\n EmbeddedCurvePoint { x, y, is_infinite: false }\n}\n"},"25":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose, compute_lt, assert_gt, gt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"26":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size(self, bit_size: u32) {\n // docs:end:assert_max_bit_size\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8]` slice of length `byte_size`.\n /// This slice will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{8*byte_size}` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `byte_size` equal to or greater than the number of bytes necessary to represent the `Field` modulus\n /// (e.g. 32 for the BN254 field) allow for multiple byte decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n self.to_le_radix(256)\n }\n // docs:end:to_le_bytes\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8]` slice of length `byte_size`.\n /// This slice will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{8*byte_size}` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `byte_size` equal to or greater than the number of bytes necessary to represent the `Field` modulus\n /// (e.g. 32 for the BN254 field) allow for multiple byte decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n self.to_be_radix(256)\n }\n // docs:end:to_be_bytes\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_radix_example\n}\n"},"273":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\nuse crate::meta::{derive_deserialize, derive_serialize};\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for U128 {\n fn empty() -> Self {\n U128::from_integer(0)\n }\n}\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\n#[derive_via(derive_serialize)]\npub trait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\n\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let bytes = self.as_bytes();\n let mut fields = [0; N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n// docs:start:deserialize\n#[derive_via(derive_deserialize)]\npub trait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"274":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"278":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field where T: ToField {\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"284":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Deserialize, Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"},"285":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n contract_class_id::ContractClassId, constants::CONTRACT_INSTANCE_LENGTH,\n traits::{Deserialize, Hash, Serialize}\n};\n\npub struct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4])\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"29":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\nmod sha256;\nmod sha512;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n// Kept for backwards compatibility\npub use sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher<H> where H: Hasher {\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default {\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default {\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"3":{"path":"std/array/mod.nr","source":"use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n /// \n /// ```noir\n /// fn len(self) -> Field\n /// ```\n /// \n /// example\n /// \n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a slice.\n /// \n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n /// \n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n /// \n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n /// \n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n /// \n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Ord + Eq {\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the `sort_via` function.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a: T, b: T| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Eq {\n /// Returns a new sorted array by sorting it with a custom comparison function. \n /// The original array remains untouched. \n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n /// \n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n /// \n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n unsafe {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = quicksort::quicksort(self, ordering);\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]), \"Array has not been sorted correctly according to `ordering`.\"\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"301":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"pub 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"},"323":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"337":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n hash::poseidon2_hash_with_separator, traits::{Empty, FromField, ToField, Serialize, Deserialize},\n utils\n};\n\n// Aztec address\npub struct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn 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"},"339":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"34":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"},"340":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{aztec_address::AztecAddress}, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"35":{"path":"std/hash/sha256.nr","source":"use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{\n crate::sha256::digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> [u8; 32] {\n sha256_var(msg, N as u64)\n}\n\n// Convert 64-byte array to array of 16 u32s\nfn msg_u8_to_u32(msg: [u8; 64]) -> [u32; 16] {\n let mut msg32: [u32; 16] = [0; 16];\n\n for i in 0..16 {\n let mut msg_field: Field = 0;\n for j in 0..4 {\n msg_field = msg_field * 256 + msg[64 - 4*(i + 1) + j] as Field;\n }\n msg32[15 - i] = msg_field as u32;\n }\n\n msg32\n}\n\nunconstrained fn build_msg_block_iter<let N: u32>(msg: [u8; N], message_size: u64, msg_start: u32) -> ([u8; 64], u64) {\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n let mut msg_byte_ptr: u64 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n for k in msg_start..msg_end {\n if k as u64 < message_size {\n msg_block[msg_byte_ptr] = msg[k];\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n (msg_block, msg_byte_ptr)\n}\n\n// Verify the block we are compressing was appropriately constructed\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u64,\n msg_block: [u8; 64],\n msg_start: u32\n) -> u64 {\n let mut msg_byte_ptr: u64 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n let mut extra_bytes = 0;\n if msg_end > N {\n msg_end = N;\n extra_bytes = msg_end - N;\n }\n\n for k in msg_start..msg_end {\n if k as u64 < message_size {\n assert_eq(msg_block[msg_byte_ptr], msg[k]);\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\nglobal BLOCK_SIZE = 64;\nglobal ZERO = 0;\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> [u8; 32] {\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n let mut h: [u32; 8] = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; // Intermediate hash, starting with the canonical initial value\n let mut msg_byte_ptr = 0; // Pointer into msg_block\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n if msg_start as u64 < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start as u64 < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start as u64 < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if msg_byte_ptr == 64 {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n\n if msg_start as u64 < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start as u64 < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start as u64 < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if msg_byte_ptr == BLOCK_SIZE as u64 {\n msg_byte_ptr = 0;\n }\n\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n msg_block[msg_byte_ptr] = 1 << 7;\n let last_block = msg_block;\n msg_byte_ptr = msg_byte_ptr + 1;\n\n unsafe {\n let (new_msg_block, new_msg_byte_ptr) = pad_msg_block(msg_block, msg_byte_ptr);\n msg_block = new_msg_block;\n if crate::runtime::is_unconstrained() {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..64 {\n assert_eq(msg_block[i], last_block[i]);\n }\n\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n // Not enough bits (64) to store length. Fill up with zeros.\n for _i in 57..64 {\n if msg_byte_ptr <= 63 & msg_byte_ptr >= 57 {\n assert_eq(msg_block[msg_byte_ptr], zero);\n msg_byte_ptr += 1;\n }\n }\n }\n\n if msg_byte_ptr >= 57 {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe {\n attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size)\n };\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..56 {\n let predicate = (i < msg_byte_ptr) as u8;\n let expected_byte = predicate * last_block[i];\n assert_eq(msg_block[i], expected_byte);\n }\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let len = 8 * message_size;\n let mut reconstructed_len: Field = 0;\n for i in 56..64 {\n reconstructed_len = 256 * reconstructed_len + msg_block[i] as Field;\n }\n assert_eq(reconstructed_len, len as Field);\n }\n\n hash_final_block(msg_block, h)\n}\n\nunconstrained fn pad_msg_block(mut msg_block: [u8; 64], mut msg_byte_ptr: u64) -> ([u8; 64], u64) {\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n if msg_byte_ptr >= 57 {\n // Not enough bits (64) to store length. Fill up with zeros.\n if msg_byte_ptr < 64 {\n for _ in 57..64 {\n if msg_byte_ptr <= 63 {\n msg_block[msg_byte_ptr] = 0;\n msg_byte_ptr += 1;\n }\n }\n }\n }\n (msg_block, msg_byte_ptr)\n}\n\nunconstrained fn attach_len_to_msg_block(mut msg_block: [u8; 64], mut msg_byte_ptr: u64, message_size: u64) -> [u8; 64] {\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for _i in 0..64 {\n // In any case, fill blocks up with zeros until the last 64 (i.e. until msg_byte_ptr = 56).\n if msg_byte_ptr < 56 {\n msg_block[msg_byte_ptr] = 0;\n msg_byte_ptr = msg_byte_ptr + 1;\n } else if msg_byte_ptr < 64 {\n for j in 0..8 {\n msg_block[msg_byte_ptr + j] = len_bytes[j];\n }\n msg_byte_ptr += 8;\n }\n }\n msg_block\n}\n\nfn hash_final_block(msg_block: [u8; 64], mut state: [u32; 8]) -> [u8; 32] {\n let mut out_h: [u8; 32] = [0; 32]; // Digest as sequence of bytes\n\n // Hash final padded block\n state = sha256_compression(msg_u8_to_u32(msg_block), state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[7 - j] as Field).to_le_bytes();\n for k in 0..4 {\n out_h[31 - 4*j - k] = h_bytes[k];\n }\n }\n\n out_h\n}\n"},"404":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\nuse dep::aztec::macros::aztec;\n\n#[aztec]\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys,\n keys::getters::get_public_keys,\n macros::{storage::storage, functions::{private, initializer, view, noinitcheck}}\n };\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[storage]\n struct Storage<Context> {\n public_key: PrivateImmutable<EcdsaPublicKeyNote, Context>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[private]\n #[initializer]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let this_keys = get_public_keys(this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts\n #[private]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload, cancellable);\n }\n\n #[private]\n #[noinitcheck]\n #[view]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = unsafe {\n get_auth_witness(outer_hash)\n };\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message)\n }\n}\n\n"},"405":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator},\n macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as Gnpk_m_hash, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[note_custom_interface]\npub struct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n\n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x:[u8; 32] = serialized_note[0].to_be_bytes();\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes::<32>()[31];\n\n let part_y:[u8; 32] = serialized_note[2].to_be_bytes();\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes::<32>()[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] = [0; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = EcdsaPublicKeyNote::get_note_type_id().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn get_note_type_id() -> Field {\n comptime\n {\n let bytes = \"EcdsaPublicKeyNote\".as_bytes();\n let hash = aztec::protocol_types::hash::poseidon2_hash_bytes(bytes);\n let hash_bytes = hash.to_be_bytes::<4>();\n aztec::protocol_types::utils::field::field_from_bytes(hash_bytes, true)\n }\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let serialized = self.serialize_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, Gnpk_m_hash, G_slot],\n [\n from_field_unsafe(serialized[0]),\n from_field_unsafe(serialized[1]),\n from_field_unsafe(serialized[2]),\n from_field_unsafe(serialized[3]),\n from_field_unsafe(serialized[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"58":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\npub struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"},"59":{"path":"std/panic.nr","source":"pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"},"7":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n/// \n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n/// \n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n/// \n/// Example:\n/// \n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\n/// ```\npub struct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiler can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a \n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n /// \n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n /// \n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n /// \n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure. \n /// vec.set_unchecked(2, 42);\n /// println(vec);\n /// \n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n /// \n /// Panics if the new length of the vector will be greater than the max length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// \n /// v.push(1);\n /// v.push(2);\n /// \n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\n /// ```\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n /// Returns the current length of this vector\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n /// \n /// v.push(100);\n /// assert(v.len() == 1);\n /// \n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n /// \n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n /// \n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n /// \n /// Note that uninitialized elements may be zeroed out!\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n /// \n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the given slice to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n /// \n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n /// \n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\n /// ```\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n /// Creates a new vector, populating it with values derived from an array input. \n /// The maximum length of the vector is determined based on the type signature.\n /// \n /// Example:\n /// \n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\n /// ```\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n /// \n /// Panics if the vector is empty.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n /// \n /// let two = v.pop();\n /// let one = v.pop();\n /// \n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\n /// ```\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n /// Returns true if the given predicate returns true for any element\n /// in this vector.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n /// \n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n /// Creates a new vector of equal size by calling a closure on each element in this vector. \n /// \n /// Example:\n /// \n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n /// \n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n\n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"73":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"74":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties\n * (e.g. protocols or other users) to execute an action on their behalf.\n *\n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be\n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few\n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can\n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be\n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n *\n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer.\n *\n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is\n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n *\n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline\n * how this would look in private, and then in public later.\n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX).\n * `Alice` would make a `deposit` transaction, that she is executing using her account contract.\n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token`\n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to\n * convince the `Token` contract that it is allowed to do so.\n *\n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the\n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to\n * execute that call.\n *\n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her\n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n *\n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n *\n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts.\n *\n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n *\n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store\n * the messages that we have approved.\n *\n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `poseidon2_hash_bytes(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a collision and we return\n * a success flag.\n *\n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be\n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the\n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n *\n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains.\n */\n\nglobal IS_VALID_SELECTOR = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes(\"IS_VALID()\")\n\n/**\n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/**\n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n *\n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n *\n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize\n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n comptime {\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\")\n },\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/**\n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress\n) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/**\n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"consume((Field),Field)\")\n },\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness\n *\n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n *\n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n *\n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n *\n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/**\n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n *\n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n *\n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n *\n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n *\n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n *\n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\")\n },\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n *\n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise\n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"set_reject_all(bool)\")\n },\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"75":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext,\n protocol_types::constants::{GENERATOR_INDEX__COMBINED_PAYLOAD, GENERATOR_INDEX__TX_NULLIFIER},\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\npub struct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n if cancellable {\n let tx_nullifier = poseidon2_hash_with_separator([app_payload.nonce], GENERATOR_INDEX__TX_NULLIFIER);\n self.context.push_nullifier(tx_nullifier);\n }\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"76":{"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;\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u32 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u32 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u32 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\npub struct 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(self.serialize(), GENERATOR_INDEX__SIGNATURE_PAYLOAD)\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"78":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: u32 = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: u32 = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS: u32 = 2;\n\n// docs:start:fee-payload-struct\npub struct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__FEE_PAYLOAD)\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\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 if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"84":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nunconstrained fn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"85":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m: NpkM { inner: Point::empty() },\n ivpk_m: IvpkM { inner: Point::empty() },\n ovpk_m: OvpkM { inner: Point::empty() },\n tpk_m: TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x: serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"87":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::address::AztecAddress;\nuse crate::{\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{public_keys::PublicKeys, constants::{NULLIFIER_INDEX, OUTGOING_INDEX}}\n};\n\nmod test;\n\nunconstrained pub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// A helper function that gets app-siloed outgoing viewing key for a given `ovpk_m_hash`. This function is used\n// in unconstrained contexts only - when computing unconstrained note logs. The safe alternative is `request_ovsk_app`\n// function defined on `PrivateContext`.\nunconstrained pub fn get_ovsk_app(ovpk_m_hash: Field) -> Field {\n get_key_validation_request(ovpk_m_hash, OUTGOING_INDEX).sk_app\n}\n\n// Returns all public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_public_keys(account: AztecAddress) -> PublicKeys {\n let (hinted_canonical_public_keys, partial_address) = unsafe {\n get_public_keys_and_partial_address(account)\n };\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n}\n"}}}
1
+ {"transpiled":true,"noir_version":"0.35.0+b848cc128d2dc2b461581f21a35509a1af9065a7-x8664","name":"EcdsaKAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["private","initializer"],"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":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"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":"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":"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":"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":"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":"7P3bjizZtp3pvUte88IPw0/1KoIgUCqWQKBACiJ1RdS7K9bK9Jixd3hzW3NbT/cew767YsF3rPC/9WnW22+RNv7XH//7f/l//v/+3/+P//rf/o///j/++N/+b//rj//zv/+//vP//K///b99/L/+1x+X6z////2P/89//m//+H/+j//5n/+///OP/21/OYz/9Md/+W//+z/+P4/j//pPf/wf//X//C9//G9jd/i//tO3Tx8up/unD5fL+fPT+3F+8OnjOJ7++vTxtLsufHq/uxyP919ldxm/fvrxH/+33z8/dtf7x8fh8uvT49GH9/v7r7Lfn8fXD//f/9Mflxs0Ac11B01Cs4cmoTlAk9AcoUloBjQJzQmahOYMTUJzgSahsQ1HNLbhhOZmG45obMMRjW04orENRzQDmoTGNhzR2IYjGttwRGMbjmhswwnNfmcdzmzsw5mNhTizsRFnNgObyMZOnNlYijMbW3FmYy3ObOzFkc3eXpzZ2IszG3txZmMvzmwGNpGNvTizsRdnNvbizMZenNnYiyObg704s7EXZzb24szGXpzZDGwiG3txZmMvzmzsxZmNvTizsRdHNkd7cWZjL85s7MWZjb04sxnYRDb24szGXpzZ2IszG3txZmMvjmyGvTizsRdnNvbizMZenNkMbCIbe3FmYy/ObOzFmY29OLOxF0c2J3txZmMvzmzsxZmNvTizGdhENvbizMZenNnYizMbe3FmYy+ObM724sym/1582f1icx1LbK6Xw/3j19t+HZv+e/H72PTfi9/HZqxnc7we7//Gj9fLr09f//qfOP39/xMVW9p+d6d62B8PvzI7Xh5mtv91GTx9+fTp+OdvdHn5b3Q4fV5pP0b03/xGj2Zo//mb3L7O0H7/8Gf/+vThy3wezo9+k/PnNF8vpy+fPTzkeLidP0Eed7dX3k+uMmqf0U1G3TO67GT0r2V0/LI7H8flhff5y15G7TM6TJXR/ktGt6WMPsT+8de3vCx9+p0pHaX0A1IazVO6jM8+udstpnT8/PTH08HjF+6jG/cT7m/hfn4r9+v1WwO+lDTgz/+Nw+G4W/iNDqfb8dPR7K+LDf6NaV2xiWwqGt9hfH7bfzObH9/2H/8bJUcCfpi9+//G8cteGYieLr+uJNfbv7mS/PM32rf7jQ7tfqOKzet4/bzGjcNx4Tcah3unHuf9999n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","brillig_names":["get_contract_instance_internal","get_public_keys_and_partial_address","decompose_hint","notify_created_note_oracle_wrapper","get_key_validation_request","random","lt_32_hint","lte_16_hint","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","build_msg_block_iter","emit_encrypted_note_log_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["private"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"},{"name":"cancellable","type":{"kind":"boolean"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"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":"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":"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":"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":"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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emuUtx7y1sPeGu2tMd56xFuPemust8Z56zFvPe6t8d6a4K0nvPWktyZ6a5K3nvLWZG9N8dZUbz3trWe8Nc1b0731rLdmeGumt2Z56zlvPe+t2d6a460XvPWit+Z6a563XvLWy96a760F3lrorVe8tchbi731qrde89YSby311uveWuat5d5a4a03vLXSW6u8tdpbb3rrLW+t8dZab73trXXeWu+tDd56x1vvemujtzZ56z1vve+tzd7a4q2t3vrAW9u8td1bH3rrI2/t8NZOb33srU+8tctbu731qbc+89Yeb+311ufe+sJb+7y131tfeusrbx3w1kFvfe2tb7z1rbcOees7b33vrcPeOuKtH7z1o7eOeuuYt37y1s/eOu6tE976xVu/eus3b530lh8MUnkrtbfSeCutt9J5K723Mngro7cyeSuzt7J46yxvZfVWNm9l91YOb53trZzeyuWt3N7K46283srnrfzeKuCtgt4q5K1zvHWutwp7q4i3inqrmLeKe6uEt0p66zxvlfJWaW+d760LvFXGW2W9daG3LvJWOW+V95Yf5Jy3Knirorcqeauyt6p4q6q3qnmrurdqeKumty721iXequWt2t661FuXeetyb9Xx1hXeutJbdb1Vz1tXeetqb9X3VgNvXeOta73V0FuNvHWdt673VmNvNfHWDd660VtNvdXMWzd562ZvNfdWC2/d4q1bvdXSW628dZu3Wnurjbfaequdt9p7q4O3Onrrdm918lZnb3XxVldv3eGtbt7q7q0e3rrTWz291ctbvb3Vx1t9vdXPW/29dZe3BnhroLfu9tY93hrkrcHeutdbQ7x1n7eGeut+bw3z1nBvjfDWA9560FsjvTXKWw9562FvjfbWGG894q1HvTXWW+O89Zi3HvfWeG9N8NYT3nrSWxO9NclbT3lrsremeGuqt5721jPemuat6d561lszvDXTW7O89Zy3nvfWbG/N8dYL3nrRW3O9Nc9bL3nrZW/N99YCby301iveWuStxd561VuveWuJt5Z663VvLfPWcm+t8NYb3lrprVXeWu2tN731lrfWeGutt9721jpvrffWBm+94613vbXRW5u89Z633vfWZm9t8Zb/HeX+9y773yXrfx+q//2g/vdl+t8n6H8nnv8dcf73r/nfbeZ/b9in3vK/78r/Lin/e5r870Dyv1/I/+4e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","debug_symbols":"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S0dRreVf+65LD6PaK//aa116HNVe+dde6146kGot/9p33UtHUq3lX/uuSw+l2jHM9FSqvfLhd9298q+91r10MNVa/rXvupeOplrLv/RdV66dTSXXzqYSejbVXvmXXuvKAr/r7pV/6bWuXDubSq6dTSXXzqaSa2dTCT2b6nPDLPRsqr3yL73WFXo21V75177rXjubSq6dTSXXzqaSa2dTybWzqYSeTbVX/rXXuvRsqr3yr73WvXY2lVw7m0qunU0l186mEno21Y5hpmdT7ZRPz6baK//aa91rZ1PJtbOp5NrZVHLtbCq5djaVXDubSujZVHvlX3utS8+m2iv/2mvda2dTybWzqeTa2VRy7WwqoWdT7RhmejbVXvnXXuvSs6l2yr92NpVcO5tKrp1NJdfOppJrZ1PJtbOphJ5NtVf+tde69GyqvfKvvda9djaVXDubSq6dTSXXzqYSejbVjmGmZ1PtlX/ttS49m2qv/Gvfda+dTSXXzqaSa2dTybWzqeTa2VRCz6baK//aa116NtVe+dde6147m0qunU0l186mkmtnUwk9m2rHMNOzqfbKh99198q/9lr32tlUcu1sKrl2NpVcO5tKrp1NJdfOphJ6NtVe+dde69KzqfbKv/Za99rZVHLtbCq5djaVXDubSunZVJ8bZqVnU+2Vf+m1rtKzqfbKv/RdV6+dTaXXzqbSa2dT6bWzqfTa2VRKz6baK//Sa12lZ1PtlX/pta5eO5tKr51NpdfOptJrZ1MpPZtqxzDTs6l2yqdnU+2Vf+217rWzqfTa2VR67WwqvXY2lV47m0qvnU2l9GyqvfKvvdalZ1PtlX/tte61s6n02tlUeu1sKr12NpXSs6l2DDM9m2qv/GuvdenZVDvlXzubSq+dTaXXzqbSa2dT6bWzqfTa2VRKz6baK//aa116NtVe+dde6147m0qvnU2l186m0mtnUyk9m2rHMNOzqfbKv/Zal55NtVf+te+6186m0mtnU+m1s6n02tlUeu1sKqVnU+2Vf+21Lj2baq/8a691r51NpdfOptJrZ1PptbOplJ5NtWOY6dlUe+XD77p75V97rXvtbCq9djaVXjubSq+dTaXXzqbSa2dTKT2baq/8a6916dlUe+Vfe6177WwqvXY2lV47m0qvnU2l9GyqHcNMz6baK//aa116NtVe+de+6147m0qvnU2l186m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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","enqueue_public_function_call_internal","call_private_function_internal","debug_log_oracle_wrapper","notify_set_min_revertible_side_effect_counter_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["private","noinitcheck","view"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":"inner_hash","type":{"kind":"field"},"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":"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":"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":"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":"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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O+hdn7Xq+qxV12etuj5rDfysfV8hG/hZ20Hvuq4113Xt9EC9x65a12etuT5rzfVZa67PWnN91mbXdW12Xddm13Vtdl3XTo9EfCx612dtdn3WZtdnbQY/a99XyBn8rH0ffXFd1xbXdW1xfdYW12cteqhlB73rsxY9erKD3vVZix4Q2UHvuq5Fj3HsoHdd16KHLXbQuz5r0SMRO+hdn7XowYXvK2T0LMIOetd1LXpi4LvoK3oI4LurtqLn+nXQez5rK3r6Xge957O2omfkddB7rmsrepJdB73nurai5829jx49Qq6D3vVZix701kHv+qxFj2N7XyGjJ6x10Huuayt6DloHveuzFj2t7H306AFkHfSuz1r0mLAOetdnLXqYVwe967oWPXKrg951XYsejNVB7/qsRY+v6qB3fdaih0y9r5Bd50ZV17lR1XVuVEXPjeqsWtdnrevcqOo6N6q6zo2qrnOjKnpuVAe967oWPTeqg951Xes6N6q6zo2qrnOjquvcqIqeG/W+QkbPjeqgd13XoudGddC7Pmtd50ZV17lR1XVuVHWdG1Vd50ZV9NyoDnrXdS16blQHveu61nVuVHWdG1Vd50ZV17lRFT036n2FjJ4b9T569NyoDnrXda3r3KjqOjequs6Nqq5zo6rr3KjqOjeqoudGddC7rmvRc6M66F3Xta5zo6rr3KjqOjequs6Nqui5Ue8rZPTcqA5613Utem7U++hd50ZV17lR1XVuVHWdG1Vd50ZV17lRFT03qoPedV2LnhvVQe+5rk2b6+CoHb7n03aH7/m43eF7Pm93+OAH7rsyeYfv2fmzw/dc3u7wPde3O3zPh+4O3/ep6zpCaofv+9R1HSK1w/d96qLHSPXge65zd/ieC90dvudKd4fv+9R1nSWVNtdhUjt836cuepxURzCj50n14IOfuj34vmtd15FSO3zfp67rUKkdvu9T13Ws1A7f96mLHizVg++71kWPlurB913rug6X2uH7PnVdx0vt8H2fuugBUx3BjJ4w1YPvu9ZFz5jqwfd96rpOmdrh+z51XedM7fB9n7quk6bShh411YPvu9ZFD5vqwfdd67qOm9rh+z51XQdO7fB9n7rokVMdwYyeOdWBjx461YPvu9Z1HTu1w/d96roOntrh+z51XUdP7fB9n7ro4VM9+L5rXfT4qR5837Wu6wCqHb7vU9d1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aBukhKJtkBKKtkFKKNoGKaFoT6Tokt907JISirZBSijaBimhaBukSJByJiUUbYOUULQNUkLRNkgJRdsgJRTtmZQlv+nYJSUUbYOUULQNUkLRNkiRIOVMSijaBimhaBukhKJtkBKKtkFKKNozKUt+07FLSijaBimhaBukhKJtkCJBypmUULQNUkLRNkgJRdsgJRRtg5RQtGdSlvymY5eUULQNUkLRNkgJRdsgRYKUMymhaBukhKJtkBKKtkFKKNoGKaFoz6Qs+U3HLimhaBukhKJtkLKkotV8XKu1nkmRIOVMypKKtkfKkoq2R8qSirZHypKKtkfKkoq2Q8qS30fskrKkou2RsqSi7ZESirZBigQpZ1JC0TZICUXbICUUbYOUULQNUkLRnklZ8ut6XVJC0TZICUXbICUUbYMUCVLOpISibZASirZBSijaBimhaBukhKI9k7Lkt9m6pISibZASirZBSijaBikSpJxJCUXbICUUbYOUULQNUkLRNkgJRXsmZc1vhvVICUXbICUUbYOUULQNUiRIOZMSirZBSijaBimhaBukhKJtkBKK9kzKmt8M65ESirZBSijaBimhaBukSJByJiUUbYOUULQNUkLRNkgJRdsgJRTtiRRb85thPVJC0TZICUXbICUUbYMUCVLOpISibZASirZByoqK1kjSn9cab3wmZUVF2yVlRUXbI2XJb4Z1SVlR0XZJWVHRdklZUdF2SZEg5UzKioq2S8qKirZLSijaBimhaBukhKI9k7LkN8O6pISibZASirZBSijaBikSpJxJCUXbICUUbYOUULQNUkLRNkgJRXsmZclvhnVJCUXbICUUbYOUULQNUiRIOZMSirZBSijaBimhaBukhKJtkBKK9kzKkt8M65ISirZBSijaBimhaBukSJByJiUUbYOUULQNUkLRNkhZUtHuV9xIUZEzKUsq2g4pS34zrEvKkoq2R8qSirZHypKKtkeKBClnUpZUtD1SllS0PVKWVLQ9UkLRNkgJRXsmZclvhnVJCUXbICUUbYOUULQNUiRIOZMSirZBSijaBimhaBukhKJtkBKK9kzKkt8M65ISirZBSijaBimhaBukSJByJiUUbYOUULQNUkLRNkgJRdsgJRTtmZQlvxnWJSUUbYOUULQNUkLRNkiRIOVMSijaBimhaBukhKJtkBKKtkFKKNozKUt+M6xL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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","pack_returns_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"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","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000004c141a0"},{"kind":"string","value":"EcdsaPublicKeyNote"},{"fields":[{"name":"x","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000000"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}},{"name":"y","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000020"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}},{"name":"npk_m_hash","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000040"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}}],"kind":"struct"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"contract_name","value":{"kind":"string","value":"EcdsaKAccount"}},{"name":"fields","value":{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}}],"kind":"struct"}]},"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"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}},{"name":"cancellable","type":{"kind":"boolean"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"}]}},"file_map":{"104":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::{\n aes128::aes128_encrypt, embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n oracle::random::random, utils::point::point_to_bytes, encrypted_logs::{header::EncryptedLogHeader},\n keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::{OvpkM, IvpkM}}\n};\n\npub fn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n plaintext: [u8; P]\n) -> [u8; M] {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = compute_outgoing_body_ciphertext(recipient, ivpk, fr_to_fq(ovsk_app), eph_sk, eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (P + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n\n // We use the randomness to preserve the privacy of both the sender and recipient via encryption, so a malicious\n // sender could use non-random values to reveal the plaintext. But they already know it themselves anyway, and so\n // the recipient already trusts them to not disclose this information. We can therefore assume that the sender will\n // cooperate in the random value generation.\n let randomness = unsafe {\n random()\n };\n\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(plaintext: [u8; P], eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(plaintext, iv, sym_key)\n}\n\n/// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n/// be able to derive the key with which the incoming log can be decrypted.\npub fn compute_outgoing_body_ciphertext(\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n ovsk_app: Scalar,\n eph_sk: Scalar,\n eph_pk: Point\n) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high: [u8; 32] = eph_sk.hi.to_be_bytes();\n let serialized_eph_sk_low: [u8; 32] = eph_sk.lo.to_be_bytes();\n\n let address_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let serialized_recipient_ivpk = point_to_bytes(recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::{compute_encrypted_log, compute_incoming_body_ciphertext, compute_outgoing_body_ciphertext},\n keys::public_keys::{OvpkM, IvpkM}\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41, 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239, 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118, 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183, 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78, 101, 153, 0, 0, 16, 39\n ];\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_log(contract_address, ovsk_app, ovpk_m, ivpk_m, recipient, plaintext);\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 61, 43, 12, 98, 165, 203, 191, 154, 161, 150, 4, 239, 95, 48, 60, 159, 33, 222, 142, 102, 73, 193, 236, 145, 197, 160, 216, 254, 113, 243, 25, 244, 251, 192, 222, 35, 7, 114, 101, 35, 152, 151, 112, 24, 32, 94, 138, 71, 160, 91, 68, 131, 217, 117, 140, 19, 147, 37, 197, 192, 21, 43, 172, 239, 239, 205, 15, 110, 76, 26, 211, 42, 117, 4, 15, 135, 145, 247, 37, 73, 84, 164, 149, 250, 35, 0, 205, 105, 178, 143, 104, 98, 100, 250, 193, 154, 136, 175, 177, 109, 225, 207, 252, 147, 250, 250, 189, 117, 147, 101, 230, 132\n ];\n assert_eq(encrypted_log_from_typescript, log);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n let plaintext = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let ciphertext = compute_outgoing_body_ciphertext(recipient, recipient_ivpk, sender_ovsk_app, eph_sk, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"106":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\npub struct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nunconstrained fn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"107":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_ovsk_app, public_keys::{PublicKeys, OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_log\n};\nuse dep::protocol_types::{hash::sha256_to_field, address::AztecAddress, abis::note_hash::NoteHash};\n\nfn compute_raw_note_log<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; 416 + N * 32], Field) where Note: NoteInterface<N> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n // TODO(#8589): use typesystem to skip this check when not needed\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n\n let plaintext = note.to_be_bytes(storage_slot);\n let encrypted_log: [u8; 416 + N * 32] = compute_encrypted_log(contract_address, ovsk_app, ovpk, ivpk, recipient, plaintext);\n let log_hash = sha256_to_field(encrypted_log);\n\n (note_hash_counter, encrypted_log, log_hash)\n}\n\nunconstrained fn compute_raw_note_log_unconstrained<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; 416 + N * 32], Field) where Note: NoteInterface<N> {\n let ovsk_app = get_ovsk_app(ovpk.hash());\n compute_raw_note_log(context, note, ovsk_app, ovpk, ivpk, recipient)\n}\n\n// This function seems to be affected by the following Noir bug:\n// https://github.com/noir-lang/noir/issues/5771\n// If you get weird behavior it might be because of it.\npub fn encode_and_encrypt_note<Note, let N: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N> {\n | e: NoteEmission<Note> | {\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, recipient);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N> {\n | e: NoteEmission<Note> | {\n // Having the log hash be unconstrained here is fine because the way this works is we send the log hash\n // to the kernel, and it gets included as part of its public inputs. Then we send the tx to the sequencer,\n // which includes the kernel proof and the log preimages. The sequencer computes the hashes of the logs\n // and checks that they are the ones in the public inputs of the kernel, and drops the tx otherwise (proposing\n // the block on L1 would later fail if it didn't because of txs effects hash mismatch).\n // So if we don't constrain the log hash, then a malicious sender can compute the correct log, submit a bad\n // log hash to the kernel, and then submit the bad log preimage to the sequencer. All checks will pass, but\n // the submitted log will not be the one that was computed by the app.\n // In the unconstrained case, we don't care about the log at all because we don't do anything with it,\n // and because it's unconstrained: it could be anything. So if a sender chooses to broadcast the tx with a log\n // that is different from the one that was used in the circuit, then they'll be able to, but they were already\n // able to change the log before anyway, so the end result is the same. It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, recipient)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\n/// Encrypts a partial log and emits it. Takes recipient keys on the input and encrypts both the outgoing and incoming\n/// logs for the recipient. This is necessary because in the partial notes flow the outgoing always has to be the same\n/// as the incoming to not leak any information (typically the `from` party finalizing the partial note in public does\n/// not know who the recipient is).\npub fn encrypt_and_emit_partial_log<let M: u32>(\n context: &mut PrivateContext,\n log_plaintext: [u8; M],\n recipient_keys: PublicKeys,\n recipient: AztecAddress\n) {\n let ovsk_app: Field = context.request_ovsk_app(recipient_keys.ovpk_m.hash());\n\n let encrypted_log: [u8; 352 + M] = compute_encrypted_log(\n context.this_address(),\n ovsk_app,\n recipient_keys.ovpk_m,\n recipient_keys.ivpk_m,\n recipient,\n log_plaintext\n );\n let log_hash = sha256_to_field(encrypted_log);\n\n // Unfortunately we need to push a dummy note hash to the context here because a note log requires having\n // a counter that corresponds to a note hash in the same call.\n let note_hash_counter = context.side_effect_counter;\n context.push_note_hash(5);\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n"},"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m: NpkM { inner: Point::empty() },\n ivpk_m: IvpkM { inner: Point::empty() },\n ovpk_m: OvpkM { inner: Point::empty() },\n tpk_m: TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x: serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"113":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nunconstrained fn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"114":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::address::AztecAddress;\nuse crate::{\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{public_keys::PublicKeys, constants::{NULLIFIER_INDEX, OUTGOING_INDEX}}\n};\n\nmod test;\n\nunconstrained pub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// A helper function that gets app-siloed outgoing viewing key for a given `ovpk_m_hash`. This function is used\n// in unconstrained contexts only - when computing unconstrained note logs. The safe alternative is `request_ovsk_app`\n// function defined on `PrivateContext`.\nunconstrained pub fn get_ovsk_app(ovpk_m_hash: Field) -> Field {\n get_key_validation_request(ovpk_m_hash, OUTGOING_INDEX).sk_app\n}\n\n// Returns all public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_public_keys(account: AztecAddress) -> PublicKeys {\n let (hinted_canonical_public_keys, partial_address) = unsafe {\n get_public_keys_and_partial_address(account)\n };\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n}\n"},"125":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\npub struct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting\n * a change note in a token's transfer function only when there is \"change\" left).\n */\npub struct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"127":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, NoteStatus, PropertySelector},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note.\n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value: [u8; 32] = serialized_note[selector.index].to_be_bytes();\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n assert(\n compare(value_field, select.comparator, select.value.to_field()), \"Mismatch return note field.\"\n );\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N> + NullifiableNote {\n let note = unsafe {\n get_note_internal(storage_slot)\n };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N> + NullifiableNote + Eq {\n let opt_notes = unsafe {\n get_notes_internal(storage_slot, options)\n };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N> + NullifiableNote + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse_array(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"132":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::{NoteInterface, NullifiableNote},\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n let serialized_note = Note::serialize_content(*note);\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, let N: u32>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N> + NullifiableNote {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n let note_hash = note.compute_note_hash();\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n notify_nullified_note(nullifier, notification_note_hash, nullifier_counter);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n"},"135":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{\n context::PrivateContext,\n note::{note_header::NoteHeader, note_interface::{NullifiableNote, NoteInterface}}\n};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let note_hash = note.compute_note_hash();\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in\n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the\n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the\n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from\n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\nunconstrained pub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N> + NullifiableNote {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n let note_hash = note.compute_note_hash();\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"137":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, GENERATOR_INDEX__FUNCTION_ARGS},\n point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice}\n};\nuse crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(contract_address: AztecAddress, log: [u8; N]) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\npub struct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"/// Notifies the simulator that `returns` will be later fetched once the function return is processed, referenced by\n/// their hash. This allows the simulator to know how to respond to this future request.\n///\n/// This is only used during private execution, since in public it is the VM itself that keeps track of return values.\npub fn pack_returns(returns: [Field]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call. When\n // unpacking however the caller must check that the returned value is indeed the preimage.\n unsafe {\n pack_returns_oracle_wrapper(returns)\n };\n}\n\nunconstrained pub fn pack_returns_oracle_wrapper(returns: [Field]) {\n let _ = pack_returns_oracle(returns);\n}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n\n#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle(_returns: [Field]) -> Field {}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n"},"153":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, constants::CONTRACT_INSTANCE_LENGTH,\n utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = unsafe {\n ContractInstance::deserialize(get_contract_instance_internal(address))\n };\n // The to_address function combines all values in the instance object to produce an address, so by checking that we\n // get the expected address we validate the entire struct.\n assert_eq(instance.to_address(), address);\n\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(contract_address: AztecAddress, randomness: Field, encrypted_event: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(contract_address, randomness, encrypted_event, counter)\n }\n}\n\n/// Informs the simulator that an unencrypted log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_unencrypted_log_private<T>(contract_address: AztecAddress, message: T, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_unencrypted_log_private_oracle_wrapper(contract_address, message, counter)\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\nunconstrained fn emit_unencrypted_log_private_oracle_wrapper<T>(contract_address: AztecAddress, message: T, counter: u32) {\n let _ = emit_unencrypted_log_private_oracle(contract_address, message, counter);\n}\n\n/// Temporary substitute for `emit_unencrypted_log_private` that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\nunconstrained pub fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_private_oracle<T>(\n _contract_address: AztecAddress,\n _message: T,\n _counter: u32\n) -> Field {}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained pub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\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) -> Field {}\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) -> Field {\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) -> Field {}\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) -> Field {\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\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n unsafe {\n notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter)\n };\n}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n"},"161":{"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"},"163":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/random.nr","source":"/// Returns an unconstrained random value. Note that it is not possible to constrain this value to prove that it is\n/// truly random: we assume that the oracle is cooperating and returning random values.\n/// In some applications this behavior might not be acceptable and other techniques might be more suitable, such as\n/// producing pseudo-random values by hashing values outside of user control (like block hashes) or secrets.\nunconstrained pub fn random() -> Field {\n rand_oracle()\n}\n\n#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n"},"164":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\nunconstrained pub fn get_key_validation_request(\n pk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n"},"165":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(storage_slot, note_type_id, serialized_note, note_hash, counter)\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter)\n };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) {\n let _ = notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter);\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n"},"170":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = pk.x.to_be_bytes();\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"174":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor.\n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<let N: u32>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"217":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{traits::{Empty, Serialize, Deserialize}, point::Point};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self { pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool }, sk_app: fields[3] }\n }\n}\n"},"24":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\npub struct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n pub fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n pub fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: self.x, y: -self.y, is_infinite: self.is_infinite }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite)\n | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\npub struct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset+31 - i] as Field) * v;\n hi = hi + (bytes[offset+15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n/// This function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// This is a hack because returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\npub fn embedded_curve_add(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n let x_coordinates_match = point1.x == point2.x;\n let y_coordinates_match = point1.y == point2.y;\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint { x: point1.x + (x_coordinates_match as Field), y: point1.y, is_infinite: x_coordinates_match };\n // point1_1 is guaranteed to have a different abscissa than point2\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n result.is_infinite = x_coordinates_match;\n\n // dbl if x_match, y_match\n let double = embedded_curve_add_unsafe(point1, point1);\n result = if double_predicate { double } else { result };\n\n // infinity if x_match, !y_match\n if point1.is_infinite {\n result= point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n let mut result_is_infinity = infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n\n EmbeddedCurvePoint { x, y, is_infinite: false }\n}\n"},"25":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\npub(crate) global TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose, compute_lt, assert_gt, gt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"26":{"path":"std/field/mod.nr","source":"pub mod bn254;\nuse bn254::lt as bn254_lt;\nuse crate::runtime::is_unconstrained;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size(self, bit_size: u32) {\n // docs:end:assert_max_bit_size\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b: [u1; 32] = exponent.to_le_bits();\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x `elem` {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n\n /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N-1-i] as Field) * v;\n v = v * 256;\n }\n result\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_radix_example\n}\n"},"262":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{aztec_address::AztecAddress}, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"264":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n address::{partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n hash::poseidon2_hash_with_separator, traits::{Empty, FromField, ToField, Serialize, Deserialize},\n utils\n};\n\n// Aztec address\npub struct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn 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"},"267":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"29":{"path":"std/hash/mod.nr","source":"pub mod poseidon;\npub mod mimc;\npub mod poseidon2;\npub mod keccak;\npub mod sha256;\npub mod sha512;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n// Kept for backwards compatibility\npub use sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n pedersen_hash_with_separator_noir(input, separator)\n}\n\npub fn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator_noir(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\npub fn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Same as from_field but:\n// does not assert the limbs are 128 bits\n// does not assert the decomposition does not overflow the EmbeddedCurveScalar\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher<H> where H: Hasher {\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default {\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default {\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n"},"295":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Deserialize, Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"},"3":{"path":"std/array/mod.nr","source":"use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n /// \n /// ```noir\n /// fn len(self) -> Field\n /// ```\n /// \n /// example\n /// \n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a slice.\n /// \n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n /// \n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n /// \n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n /// \n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n /// \n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Ord + Eq {\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the `sort_via` function.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a: T, b: T| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Eq {\n /// Returns a new sorted array by sorting it with a custom comparison function. \n /// The original array remains untouched. \n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n /// \n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n /// \n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n unsafe {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = quicksort::quicksort(self, ordering);\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]), \"Array has not been sorted correctly according to `ordering`.\"\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"308":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field where T: ToField {\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"311":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n contract_class_id::ContractClassId, constants::CONTRACT_INSTANCE_LENGTH,\n traits::{Deserialize, Hash, Serialize}\n};\n\npub struct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4])\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"313":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\nuse crate::meta::{derive_deserialize, derive_serialize};\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for U128 {\n fn empty() -> Self {\n U128::from_integer(0)\n }\n}\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\n#[derive_via(derive_serialize)]\npub trait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let bytes = self.as_bytes();\n let mut fields = [0; N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n// docs:start:deserialize\n#[derive_via(derive_deserialize)]\npub trait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl <let N: u32> Deserialize<N> for str<N> {\n fn deserialize(fields: [Field; N]) -> Self {\n str<N>::from(fields.map(|value| value as u8))\n }\n}\n"},"314":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n debug_log_oracle_wrapper(msg, args)\n };\n}\n\nunconstrained pub fn debug_log_oracle_wrapper<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"},"317":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"319":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"pub 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"},"34":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"},"35":{"path":"std/hash/sha256.nr","source":"use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> [u8; 32] {\n sha256_var(msg, N as u64)\n}\n\n// Convert 64-byte array to array of 16 u32s\nfn msg_u8_to_u32(msg: [u8; 64]) -> [u32; 16] {\n let mut msg32: [u32; 16] = [0; 16];\n\n for i in 0..16 {\n let mut msg_field: Field = 0;\n for j in 0..4 {\n msg_field = msg_field * 256 + msg[64 - 4*(i + 1) + j] as Field;\n }\n msg32[15 - i] = msg_field as u32;\n }\n\n msg32\n}\n\nunconstrained fn build_msg_block_iter<let N: u32>(msg: [u8; N], message_size: u32, msg_start: u32) -> ([u8; 64], u32) {\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n for k in 0..block_input {\n msg_block[k] = msg[msg_start + k];\n }\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: [u8; 64],\n msg_start: u32\n) -> u32 {\n let mut msg_byte_ptr: u32 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n\n for k in msg_start..msg_end {\n if k < message_size {\n assert_eq(msg_block[msg_byte_ptr], msg[k]);\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\nglobal BLOCK_SIZE = 64;\nglobal ZERO = 0;\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> [u8; 32] {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n let mut h: [u32; 8] = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; // Intermediate hash, starting with the canonical initial value\n let mut msg_byte_ptr = 0; // Pointer into msg_block\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n msg_block[msg_byte_ptr] = 1 << 7;\n let last_block = msg_block;\n msg_byte_ptr = msg_byte_ptr + 1;\n\n unsafe {\n let (new_msg_block, new_msg_byte_ptr) = pad_msg_block(msg_block, msg_byte_ptr);\n msg_block = new_msg_block;\n if crate::runtime::is_unconstrained() {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..BLOCK_SIZE {\n assert_eq(msg_block[i], last_block[i]);\n }\n\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n // Not enough bits (64) to store length. Fill up with zeros.\n for _i in 57..BLOCK_SIZE {\n if msg_byte_ptr <= 63 & msg_byte_ptr >= 57 {\n assert_eq(msg_block[msg_byte_ptr], zero);\n msg_byte_ptr += 1;\n }\n }\n }\n\n if msg_byte_ptr >= 57 {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe {\n attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size)\n };\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..56 {\n let predicate = (i < msg_byte_ptr) as u8;\n let expected_byte = predicate * last_block[i];\n assert_eq(msg_block[i], expected_byte);\n }\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let len = 8 * message_size;\n let mut reconstructed_len: Field = 0;\n for i in 56..64 {\n reconstructed_len = 256 * reconstructed_len + msg_block[i] as Field;\n }\n assert_eq(reconstructed_len, len as Field);\n }\n\n hash_final_block(msg_block, h)\n}\n\nunconstrained fn pad_msg_block(\n mut msg_block: [u8; 64],\n mut msg_byte_ptr: u32\n) -> ([u8; BLOCK_SIZE], u32) {\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n if msg_byte_ptr >= 57 {\n // Not enough bits (64) to store length. Fill up with zeros.\n for i in msg_byte_ptr..BLOCK_SIZE {\n msg_block[i] = 0;\n }\n (msg_block, BLOCK_SIZE)\n } else {\n (msg_block, msg_byte_ptr)\n }\n}\n\nunconstrained fn attach_len_to_msg_block(mut msg_block: [u8; BLOCK_SIZE], msg_byte_ptr: u32, message_size: u32) -> [u8; BLOCK_SIZE] {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 (i.e. until msg_byte_ptr = 56).\n\n for i in msg_byte_ptr..56 {\n msg_block[i] = 0;\n }\n\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..8 {\n msg_block[56 + i] = len_bytes[i];\n }\n msg_block\n}\n\nfn hash_final_block(msg_block: [u8; BLOCK_SIZE], mut state: [u32; 8]) -> [u8; 32] {\n let mut out_h: [u8; 32] = [0; 32]; // Digest as sequence of bytes\n\n // Hash final padded block\n state = sha256_compression(msg_u8_to_u32(msg_block), state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[7 - j] as Field).to_le_bytes();\n for k in 0..4 {\n out_h[31 - 4*j - k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d, 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0, 0x8f, 0xfe, 0x73, 0x2b\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94, 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154, 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213, 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97, 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186, 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253, 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9, 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214, 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107, 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198, 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126, 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36, 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59, 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97, 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180, 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216, 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70, 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246, 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193, 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74, 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210, 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210, 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69, 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22, 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175, 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53, 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200, 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86, 119, 30, 63, 129, 143, 32, 96\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n}\n"},"402":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\nuse dep::aztec::macros::aztec;\n\n#[aztec]\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note,\n keys::getters::get_public_keys,\n macros::{storage::storage, functions::{private, initializer, view, noinitcheck}}\n };\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[storage]\n struct Storage<Context> {\n public_key: PrivateImmutable<EcdsaPublicKeyNote, Context>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[private]\n #[initializer]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let this_keys = get_public_keys(this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts\n #[private]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload, cancellable);\n }\n\n #[private]\n #[noinitcheck]\n #[view]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = unsafe {\n get_auth_witness(outer_hash)\n };\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message)\n }\n}\n\n"},"403":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator},\n macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as Gnpk_m_hash, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[note_custom_interface]\npub struct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n\n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x:[u8; 32] = serialized_note[0].to_be_bytes();\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes::<32>()[31];\n\n let part_y:[u8; 32] = serialized_note[2].to_be_bytes();\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes::<32>()[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] = [0; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = EcdsaPublicKeyNote::get_note_type_id().to_be_bytes();\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn get_note_type_id() -> Field {\n comptime\n {\n let bytes = \"EcdsaPublicKeyNote\".as_bytes();\n let hash = aztec::protocol_types::hash::poseidon2_hash_bytes(bytes);\n let hash_bytes = hash.to_be_bytes::<4>();\n aztec::protocol_types::utils::field::field_from_bytes(hash_bytes, true)\n }\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let serialized = self.serialize_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, Gnpk_m_hash, G_slot],\n [\n from_field_unsafe(serialized[0]),\n from_field_unsafe(serialized[1]),\n from_field_unsafe(serialized[2]),\n from_field_unsafe(serialized[3]),\n from_field_unsafe(serialized[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"58":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\npub struct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"},"59":{"path":"std/panic.nr","source":"pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"},"7":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n/// \n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n/// \n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n/// \n/// Example:\n/// \n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\n/// ```\npub struct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiler can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a \n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n /// \n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n /// \n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n /// \n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure. \n /// vec.set_unchecked(2, 42);\n /// println(vec);\n /// \n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n /// \n /// Panics if the new length of the vector will be greater than the max length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// \n /// v.push(1);\n /// v.push(2);\n /// \n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\n /// ```\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n /// Returns the current length of this vector\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n /// \n /// v.push(100);\n /// assert(v.len() == 1);\n /// \n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n /// \n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n /// \n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n /// \n /// Note that uninitialized elements may be zeroed out!\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n /// \n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the given slice to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\n /// ```\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n /// \n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n /// \n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\n /// ```\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n /// Creates a new vector, populating it with values derived from an array input. \n /// The maximum length of the vector is determined based on the type signature.\n /// \n /// Example:\n /// \n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\n /// ```\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n /// \n /// Panics if the vector is empty.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n /// \n /// let two = v.pop();\n /// let one = v.pop();\n /// \n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\n /// ```\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n /// Returns true if the given predicate returns true for any element\n /// in this vector.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n /// \n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n /// Creates a new vector of equal size by calling a closure on each element in this vector. \n /// \n /// Example:\n /// \n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n /// \n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n\n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"75":{"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;\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u32 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u32 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u32 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\npub struct 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(self.serialize(), GENERATOR_INDEX__SIGNATURE_PAYLOAD)\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"76":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: u32 = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: u32 = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS: u32 = 2;\n\n// docs:start:fee-payload-struct\npub struct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__FEE_PAYLOAD)\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_array(self.nonce.to_be_bytes::<32>());\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\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 if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties\n * (e.g. protocols or other users) to execute an action on their behalf.\n *\n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be\n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few\n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can\n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be\n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n *\n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer.\n *\n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is\n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n *\n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline\n * how this would look in private, and then in public later.\n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX).\n * `Alice` would make a `deposit` transaction, that she is executing using her account contract.\n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token`\n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to\n * convince the `Token` contract that it is allowed to do so.\n *\n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the\n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to\n * execute that call.\n *\n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her\n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n *\n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n *\n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts.\n *\n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n *\n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store\n * the messages that we have approved.\n *\n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `poseidon2_hash_bytes(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a collision and we return\n * a success flag.\n *\n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be\n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the\n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n *\n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains.\n */\n\nglobal IS_VALID_SELECTOR = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes(\"IS_VALID()\")\n\n/**\n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/**\n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n *\n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n *\n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize\n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n comptime {\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\")\n },\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/**\n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress\n) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/**\n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n *\n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the\n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n *\n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"consume((Field),Field)\")\n },\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness\n *\n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n *\n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n *\n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n *\n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/**\n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n *\n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n *\n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n *\n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n *\n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n *\n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\")\n },\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n *\n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise\n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"set_reject_all(bool)\")\n },\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"80":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"81":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext,\n protocol_types::constants::{GENERATOR_INDEX__COMBINED_PAYLOAD, GENERATOR_INDEX__TX_NULLIFIER},\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\npub struct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n if cancellable {\n let tx_nullifier = poseidon2_hash_with_separator([app_payload.nonce], GENERATOR_INDEX__TX_NULLIFIER);\n self.context.push_nullifier(tx_nullifier);\n }\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"84":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, PUBLIC_DISPATCH_SELECTOR\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\n };\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let call_request = PublicCallRequest { contract_address, call_context, args_hash, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\n };\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.public_teardown_call_request = PublicCallRequest {\n contract_address,\n call_context,\n args_hash,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"}}}