@aztec/protocol-contracts 0.50.1 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"transpiled":true,"noir_version":"0.33.0+2d702155f9341cac08a960f271e3ed5450740729","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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39p3tn/yW/vO9lff2o//pMEP3f7qW9tX39q++tb21be2b76153HzrT2Pm2/tedx8a8/j5lt7Hjff2vO4+daex8239jxuvrXncfOtPY+rb+24+taOq2/tuPrWjqtv7cd/Mu+Hbn/1rR1X39px9a0dV9/acfWtnVff2nn1rZ1X39p59a39+E/M/tDtr7618+pbO6++tfPqWzuvvrXr6lu7rr616+pbu66+tR//SfYfuv3Vt3ZdfWvX1bd2XX1r19W3dl99a/fVt3ZffWv31bf24w0TP3T7q2/tvvrW7qtv7b761u6rb21cfWvj6lsbV9/auPrWfrz55Yduf/WtjatvbVx9a+PqWxtX39q8+tbm1bc2r761efWtffpGpm9vf/WtffpGpm9vf/WtffpGpm9vf/WtratvbV19a+vqW1tX39rv3Av12dtffWvr6ltbV9/aZ++Nemf7q2/ts/dGvbP91bf22Xuj3tn+6lt7dW/Uubo36lzdG3Wu7o06V/dGnat7o87VvVHn6t6oc3Vv1Lm6N+pc3Rt1ru6NOlf3Rp2re6PO1b1R5+reqL66N6qv7o3qq3uj+ureqH7cfGv76t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qq/ujeqre6P66t6ovro3qm/ujZqPp++Nqvll+/P19s9+a7+9/cdv7cp83WeP+e3tR3S8PvXIUeMP2/+y0Xq6jfb33Sjno79s9PJL39gonm6jfLqN6uk2Ot93o3qc/SX6Y8R7nxR5vnxSZPdXnxR98/af0Jf0I7cf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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/9WZ227aQBCG18GHBRcogUBISGJ61zubEkLuIvX4HlX7Qn2G9rp9w2ZgR/69REi77BBhCe3BOzPfzB5sxpHaXvr5F5l6YspU7V485smU5WFXFVBXKckZnQjn2Ylwtk6EMw7IGb3ASWVs6rTvaM9larsfd26iME10C+6rfYpsq/9MqY0iNPYUKHLashtM93r5nZz7qHcDo4w/X809LiPzy03QFMjnqg7cJ+hjvZ+hj0/EL9CXqaYtreqgB/Z7TXrbErqf54t86ajaB/aP63yP/J3BuETQ11TG16XYHJXbXc5zlBjdbCuFuHXAfsCnSxVZayQCW9wfQ/0axvI4HtMCXrq6ql7vnT1yiSXXU831w3LakuM2n0mkZ2DqVH7T9VjWn4O+kE9p0v1GRneFMYtVfTYpsEn2+2A/3BpdrMlWVzWvyGrjg6UPTD0Rpu35w3a6YO8t2Av3dnO/7IE9tNG3YsDtM2AaiDCt1sg0cGQ6l2F6RKZzR6ahCNPDB2QaOjKNRJgWJTKNHJkuRJhWjThdODKNZZh+ItPYkWkiw/QDmSaOTJciTA+N8+nSkWkqw7RApqkj05UI06pCpisHJt+94Tsvh5wP+I4WMHaNNXbt6YvrHp7J+HKPTDNPX4aeciNPuYmn3NhT7ljr9QbGBzx/GnN84+mL7xz7rinX2N3C+ICxa7yf3Hr6MvWUc31vvJOJwQqZ7jx98X3G+O69Y6y7UzyTDj3jaRz/B/9lSlp7BegN+J/7Mbc42Yay2PkqTJlDHf+Hz0FHEoyz3JwTbA9tFBYnt3HfvpOJ3SZf0TK5ny7EJda7sUpMH7NQvun3ERj3xYhtUp6B5/A9MBUiTOUSc7oKbCiLk68CmOYyTBWuZ8w3494IZKuxljGXVlj+cxvPi9eWeylO1MdraQ59nKctoI/nlcdTvpfinME3kdB5bw3fZGKwlcC3kbb1TSaQ/Qrts262pSFvzPW/qh7bhkT0Ju9t2hmcOampI78tF1tyPRiTglxmyXEb895/TJ3m7T/2C3Ctph8AAA==","debug_symbols":"ndnNasJAFIbhe5m1lHyTmXNmvJVSStQogRBFY6GI995ou3DbdxPy92b1rL7cwq7fXA+fw7Q/XsL6/RbG47abh+O0XN3uq7A5D+M4HD5fb4fmeXiL5VlcTt30uHGZu/Mc1q35KvTTbjnzuHxhP4x9WCc194/VI6ogahsSiUSRRC2JEokyiYxETiIioiUiEhGRiIhERCQiIhERiYhIREQiIhIRkYiITERkIiITEZmIyEREJiIyEZGJiExEZCLCiAgjIoyIMCLCiAgjIoyIMCLCiAgjIpyIcCLCiQgnIpyIcCLCiQgnIpyIcCKiEBGFiChERCEiChFRiIhCRBQiohARhYioREQlIioRUYmISkRUIqISEZWIqEREJSLUNKgSqiKqWlQlVGVUGaocVQVVyIaQDSEbQjaEbAjZELIhZEPIhpANIRsR2YjIRkQ2IrIRkY2IbERkIyIbaNAUWjSFJk2hTVNo1BRaNYVmTaFdU2jYFFo2haZNoW1TaNwUWjeF5k2hfVNo4BRaOPXvifO+XH5156HbjP3fz4/9ddq+/AuZv0+/T5aXfwA="}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"107":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"135":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"148":{"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"},"153":{"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"},"257":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"280":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"307":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"410":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"}}}
1
+ {"transpiled":true,"noir_version":"0.33.0+61d6f251ea67204af2d17175f120e17f2e9e9156","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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xqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08SptvEobr9LGq7TxKm28Shuv0sartPEqbbxKG6/Sxqu08WptvFobr9bGq7Xx6kfoAakHlB7QesDWA3SStfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvFobr9bGq7Xxam28Whuv1sartfFqbbxaG6/Wxqu18WptvLY2Xlsbr62N19bGaz9CD0g9oPSA1gO2HqCTrI3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bGa2vjtbXx2tp4bW28tjZeWxuvrY3X1sZra+O1tfHa2nhtbby2Nl5bG6+tjdfWxmtr47W18draeG1tvLY2Xlsbr62N19bG62jjdbTxOtp4HW28ziP0gNQDSg9oPWDrATrJ2ngdbbyONl5HG6+jjdfRxuto43W08TraeB1tvI42Xkcbr6ON19HG62jjdbTxOtp4HW28jjZeRxuvo43X0cbraON1tPE62ngdbbyONl5HG6+j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kjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjiy5I0vuyJI7suSOLLkjS+7Ikjuy5I4suSNL7siSO7Lkjqy4IyvuyIo7suKOrB7BJySfUHxC8wmbT+CZ5o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4IyvuyIo7suKOrLgjK+7Iijuy4o6suCMr7siKO7Lijqy4I2vuyJo7suaOrLkj60fwCcknFJ/QfMLmE3imuSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyJo7suaOrLkja+7Imjuy5o6suSNr7siaO7Lmjqy5I2vuyDZ3ZJs7ss0d2eaObD+CT0g+ofiE5hM2n8AzzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7ss0d2eaObHNHtrkj29yRbe7INndkmzuyzR3Z5o5sc0e2uSPb3JFt7sg2d2SbO7LNHdnmjmxzR7a5I9vckW3uyDZ3ZJs7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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/+1Z247aMBC1lyQYmt1AX9sf6FtCWWDfVur1P6r2Q/oL7XP7q2XIHOVgVkjV2jtCwRKy43jmzNUOHu/6FvY/r+NS+8qdNqx51L59XusS8mpzyukvRM6bC5FzciFyFgnl9E/IKX2hY8k7ybmp6/Px5CUTi6Mn9N6dYxSj/tU+KCMGe0xkuRDhJuO9W38T5T6EU8M41eeLvkPv9Ver0RzR124w3EeaA99PNIcd8TPNTd0xVnCD0RPrvRO+sxy89/4SXeZu0AH6YYx3ou9bWldm1LXKo+s6m4/aPsvho1J5A6siu80JP+Hp0vkoRjxhYb6g8Rtai3VYMyF5pd25Id7nZ+jKiK5xx/EDuhDR4Rl7kvBZ6vj1/vc1DGvB/xXxS3lKC+86D++ObVYob+hRk24N4aeL0dVOMG7dcfPRMx8sDcl0l0Wmfv8BDmSbRTZI93Vzv/bEG/ri+SY7/mZnjP9gi799b4u/ao3tb6z/5ocx/nfj+DPO/+3K2P7duOPf2v/m+4/1+We9/9xfz78x7//W8Tf2/Wc78vyz3n/M/W+Nb/39Zf3/azPu70/r/Xfs+X89/8f+/St4uAP9qb3cLy4IL+Gd50Md6QsMF9kADXLUNG7ILixnmUzOvn6wiGRaRH4ROy3z2OlwNzzRe/ZbskERTu1S6hxkkbv9Xy8g4zkbLamHv96RTHnu1Ns1188cYbhITjS+U88T88d36lwD4jxIhPXf58kV+/nYT/lX5pADnKuo5TU0h3hcEg+JxynVzRPG48FWger2BWGVVD+fRXX7RPgd44M3sALVFjH+44a1MypWHmqj+gz5pS5W6Zjlj+mKiK6hNRXRTSM6PCOmxH6/dSx++wdoaXbJyiUAAA==","debug_symbols":"ndg7bsJAGEXhvUxN4X88T7YSRciAQZYsg8BEipD3HpOkoD23QYztW32nmqc79vvHeTdMp8vdbT+ebrwcunm4TOvpuWzc/jaM43DevT92zevHl9/v79dueh3vc3eb3bZNeeP66bj+y37dn4axd9vgbfncOF/xpG34xPjE80nLJ4FPIp8kPsl8wvVbrh+4fuD6gesHrh+4fuD6gesHrh+4fuD6ketHrh+5fuT6ketHrh+5fuT6ketHrp+4fuL6iesnrp+4fuL6iesnrp+4fuL6metnrp+5fub6metnrp+5fub6metnrl+4fuH6hesXrl+4fuH6hesXrl+4fuH6letXrl+5fuX6letXrl+5fuX6letXrm9NI2xM2Hhh0wqbIGyisEnCJgubImyEDkzowIQOTOjAhA5M6MCEDkzowIQOTOjAhA680IEXOvBCB17owAsdeKEDL3TghQ6Ei0DDN4HLevzqbkO3H/v/q8nTYzq83VTO39e/N+vHPw=="}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"156":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"260":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"283":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"318":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"421":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"70":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"}}}