@aztec/protocol-contracts 0.47.0 → 0.48.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.32.0+92ff2fa2e944722e5c3fa43fb3363f093b8f1d12","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":"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":"target","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":"function_data","type":{"fields":[{"name":"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_private","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_data::FunctionData"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"caller_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":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::caller_context::CallerContext"}},{"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_stack_hashes","type":{"kind":"array","length":16,"type":{"kind":"field"}}},{"name":"public_teardown_function_hash","type":{"kind":"field"}},{"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":"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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1pPA1vPh/bm2Go719NS+raeArefD+3Pt7fjvq21t/7aeBraejrWeT98fbKm2Yz09/vbf14/H75GOblb2+HD+19rDwmuPC699X3jtaeG1Z+i1v3pnuX76HqXp2uvCa28Lr72vu/Yd+1x9vXbsc/X12rHP1ddrxz5XX68d+1x9vfaFz9V94XN1X/hc3Rc+V/eFz9W08LmaFj5X08Lnalr4XP30/WLTtS98rqaFz9W08LmaFj5X08Lnal74XM0Ln6t54XM1L3yufvpeuOnaFz5X88Lnal74XM0Ln6t54XO1LHyuloXP1bLwuVoWPlc/fZ/fdO0Ln6tl4XO1LHyuloXP1bLwuVoXPlfrwudqXfhcrQufq5+ew2C69oXP1brwuVoXPlfrwudqXfhcbQufq23hc7UtfK62hc/VT8/PMF37wudqW/hcbQufq23hc7UtfK72hc/VvvC52hc+V/vC5+qn556Yrn3hc7UvfK72hc/VvvC52tc9V9u27rnatnXP1bate662bd1ztW3rnqttW/dcbdu652rb1j1X27buudq2hc/VsPC5GhY+V8PC52pY+Fz99Jwh07UvfK6Ghc/VsPC5GhY+V8PC5yr4vKXXa1/4XAWft/R67Qufq+Dzll6vfeFzdeF5S23heUtt4XlLbeF5S23heUtt4XlLbeF5S23heUtt4XlLbeF5S23heUtt4XlLbeF5S23heUtt4XlLbeF5S23heUtt4XlLbeF5S23heUtt4XlLDX3eUn3MlG7f1g5+rr5cO/i5+mrtfz9vKfTjZccYy/567TFuez8+vZXf1v4/1xPA1hPB1rODrSeBrSeDraeAraeCraeBradjraeA7c8F6x3jVrDeMW4F6535VrDemW8V6535VrHemW8V6535VrHemW+fnj9xuh6sd+ZbBdsPK9h+WMH2wwa2Hzaw/bCB/ffewP57b2B+rIHtPw1s/+lg/311ML/RwfxGB9t/Otj+08H2nw62/3S0/QfL//QNy//0DWv/6RvW/tM3rP2nb1j7T9+w9p/+82+H76vZTtayt3j/6H5rZX/78nLll9crv7xd+eX9wi//+QemVl8ervzyeOWX71d+ebryy8F2jB3LsfQdzLEkMMeSsBJlT1iJsicwR/fpX3adrgfM0SUsRxe2+uGfXITat+PT2xa+LyihLSijLaigLaiiLaihLaiDLaht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2h3FjHZHMaPdUcxodxQz2h3FjHZHMaPdUcxodxQz2h3FjHZHMaPdUcxodxQz2h3FjHZHMaPdUcxodxTzx+8o9uPToWxb+b6gHW1BCW1BGW1BBW1BFW1BDW1BHWxBn76jWELMx4Juf2H9vqCAtqAP79SlxePoKK2k7wva0RaU0BaUP72g9lhQ38P3BRW0BVW0BTW0BXWwBX36juL5ggLagj69U/e8PRbUf1jQjraghLagD+/UNWz3Nxdv/3fN3xdUPr2gvh8Lirl+X1BFW1BDW9CHd+raajgW1FP7jwsqn76jeL6gD+/Utbfjv7K2tf37giLagna0BX14p26ptmNBPf72X9mPZ/ERmur2yEz51+LzyosvKy++rrz4tvLiO/TiX74eXT59V9N28WHlxceVF7+vvHjsE/Zk8dgn7MnisU/Yk8Vjn7Ani8c+YU8Wv/IJG1c+YePKJ2xc+YSNK5+wn74TbLv4lU/YuPIJG1c+YePKJ2xc+YTdVz5h95VP2H3lE3Zf+YT99F1u28WvfMLuK5+w+8on7L7yCbuvfMKmlU/YtPIJm1Y+YdPKJ+yn7+DbLn7lEzatfMKmlU/YtPIJm1Y+YfPKJ2xe+YTNK5+weeUT9tOzE2wXv/IJm1c+YfPKJ2xe+YTNK5+wZeUTtqx8wpaVT9iy8gn76ZkXtotf+YQtK5+wZeUTtqx8wpaVT9i68glbVz5h68onbF35hP30rBLbxa98wtaVT9i68glbVz5h68onbFv5hG0rn7Bt5RO2rXzCfnrGjO3iVz5h28onbFv5hG0rn7Bt5RO2r3zC9pVP2L7yCdtXPmE/PRvIdvErn7B95RO2r3zC9pVP2L7wCVu3hU/Yui18wtZt4RO2bgufsHVb+ISt4DOdTha/8AlbwWc6nSx+4RO2rjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzT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XvmELSufsGXlE7asfMKWlU/YT9/Bt138yidsWfmELSufsGXlE7asfMLWlU/YuvIJW1c+YevKJ+ynZyfYLn7lE7aufMLWlU/YuvIJW1c+YdvKJ2xb+YRtK5+wbeUT9tMzL2wXv/IJ21Y+YdvKJ2xb+YRtK5+wfeUTtq98wvaVT9i+8gn76Vkltotf+YTtK5+wfeUTtq98wvaFT9i+LXzC9m3hE7ZvC5+wfVv4hO3bwids3xY+Yfu28Anbt4VP2L4tfML2beUTNqx8woaVT9iw8gkbVj5hPz0byHbxK5+wYeUTNqx8woaVT9iw8gkbVz5h48onbFz5hI0rn7DgM51OFr/yCQs+0+lk8SufsOAznU4Wv/IJu/JMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvJMp77yTKe+8kynvvBMp31beKbTbfHrnrC3xa97wt4Wv+4Je1v8uifsbfHrnrC3xa97wt4Wv+4Je1v8uifsbfErn7ALz3S6LX7lE3bhmU63xa98wi480+m2+JVP2IVnOt0Wv/IJu/BMp9viVz5hF57pdFv8yifswjOdbotf+YRdeKbTbfF/fcKG2x8o7ouPZX+9+Bi3vR+f3spvi//XggragiraghragjrYgv5+7pH1ggLagiLagna0BSW0BaHt1J8eH5LLsfyQe9i/LyiiLWhHW1BCW1BGW1BBW1BFW1BDW1AHW9CnR1acLwhtY8xoG2NG2xgz2saY0TbGjPaffUH7z76gGbSCtg8VtH2ooP1XVtDsR0GzHwVtH6po+1BF24cq2j5U0fahT9/ePV8Qmh+qaPtQRduHGto+1ND2oQa2D4Wff4J8X852spi9xftH95bL928Pl357vPTb90u/PV367fnSby+X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qi8xXnKtUtUYfD+zXK5VqhqD72aWy/VKVcH3MsvleqWq4DuZ5XK9UlXwfcxyuV6pKvguZrlcr1QVfA+zXK5Xqgq+g1ku1ytVBd+/LJfrlaqC716Wy/VKVcH3LsvleqWq4DuX5XK9UlXwfctyuV6pKviuZblcr1QVfM+yXK5Xqpq9UtXslaqCb9CWy/VKVcUrVRWvVBV8N7pcrleqCr4XXS7XK1UF34kul+uVqoLvQ5fL9UpVwXehy+V6parge9Dlcr1SVfAd6HK5XqnKa7f66LVbffTarT567VYfvXarj1671Uev3eqj12710Wu3+ui1W3302q0+eu1WH712q49eu9VHr93qo9du9dFrt/rotVt99NqtPnrtVh+9dquPXrvVR6/d6qPXbvXRa7f66LVbffTarT567VYfvXarj1671Uev3eqj12710Wu3+ui1W3302q0+eu1WH712q49eu9VHr93qo9du9dFrt/rotVt99NqtPnrtVp+8dqtPXrvVJ6/d6pPXbvVpKF5yrVLV5LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6rPXbvXZa7f67LVbffbarT4PxUuuVaqavXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/qcavv2MK3Pp562E8GZ3rxVgjN9On896vOpl/FEcKbP5yrBmT6hqwRn+oyuEpyp+9YITrWtuUpwqvdwjeBU7+EawZk6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boLNktY2mCWtbTBLWttglrS2wS1pjW5Ja3RLWrluz9cIdktauW6t1wh2S1q5bovXCHZLWrluadcIdktauW5H1wh2S1q5biXXCHZLWrluA9cIdktauW7h1gh2S1q5br/WCHZLWrlundYIdktauW571gh2S1q5blnWCHZLWrluN9YIdktauW4V1gh2S1q5bvPVCHZLWrlu0dUIdktauW6v1Qh2S1q5bo3VCHZLWrlua9UIdktauW5J1Qh2S1q5bifVCHZLWrluBdUIdktauW7j1Ah2S1q5bsHUCHZLWrlun9QIdktauW591Ah2S1q5blvUCHZLWrluOdQIdktauW4X1Ah2S1q57gDUCHZLWrn29dcIdktaufbq1wh2S1q59t/XCHZLWrn21NcIdktaufbJ1wh2S1puO+I3tx3xm9uO+M1tR/zmtiN+c9sRv7ntiN/cdsRvbjviN7cd8ZvbjvjNbUf85rYjfnPbEb+57Yjf3HbEb2474je3HfG724743W1H/O62I3532xG/D8VNsFnS2t12xO9uO+J3tx3xu9uO+N1tR/zutiN+d9sRv7vtiN/ddsTvbjvid7cd8bvbjvjdbUf87rYjfnfbEb+77Yjf3XbE72474ne3HfG724743W1H/O62I3532xG/u+2I3912xO9uO+J3tx3xu9uO+N1tR/zutiN+d9sRv7vtiN/ddsTvbjvid7cd8bvbjvjdbUf87rYjfnfbEb+77Yjf3XbE72474ne3HfG724743W1H/O62I3532xG/u+2I3912xO9uO+J3tx3xu9uO+N1tR/zutiN+d9sRv7vtiN/ddsTvbjvid7cd8bvbjvjdbUf87rYjfnfbEb+77Yjf3XbE72474ne3HfG724743W1H/O62I3532xG/u+2I3912xO9uO+J3tx3xu9uO+N1tR/zutiN+d9sRv7vtiN/ddsTvbjvid7cd8bvbjvjdbUf87rYjfnfbEb+77Yjf3XbE72474ne3HfG724743W1H/O62I/5w2xF/uO2IP9x2xB9uO+KPobgJNktah9uO+MNtR/zhtiP+cNsRf7jtiD/cdsQfbjviD7cd8YfbjvjDbUf84bYj/nDbEX+47Yg/3HbEH2474g+3HfGH2474w21H/OG2I/5w2xF/uO2IP9x2xB9uO+IPtx3xh9uO+MNtR/zhtiP+cNsRf7jtiD/c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FXzPur9esXwltr99FtvfPovtb5/F9rfPYvvbZ7H97bPY/vZZbH/7LLa/fRbb3z6L7W+fxfa3z2L722ex/e2z2P72WWx/+yy2v30W298+i+1vn8X2t89i+9tnsf3ts9j+9llsf/sstr99FtvfPovtb5/F9rfPYvvbZ7H97bPY/vZZbH/7LLa/fRbb3z6L7W+fxfa3z2L722ex/e2z2P72WWx/+yy2v30W298+i+1vn8X2txex/e1FbH97EdvfXsT2t5epiunVyldFbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97Edvfvojtb1/E9rcvYvvbF7H97ctUxfRq5atFbH/7Ira/fRHb376I7W9fxPa3L2L72xex/e2L2P72RWx/+yK2v30R29++iO1vX8T2ty+p9ntPZXu867JfKc70BLYpzvQZfXurj3e9zleKM31K2xRn+py2Kc70SW1TnKkLmxSn2gZtU5zqeWxSnOp5bFKcqRPbFFc5xXKZK9VmaJviYTPXi4ZhU9SLhtC56PY+yvp4I9Oxffhv7/pnPxXH3uLcRHHoXNREcehc1ERx6FzURHGVUxw6FzVRHDoXNVEcOhc1URw6RTVRLJe5Ym92bqJYLnPF3u7cRLFc5oq94bmJYrnMFXvLcxPFcpkr9qbnJorlMlfsbc9NFMtlrtgbn5solstcsbc+N1Esl7lib35uolguc8Xe/txEsVzmir0x91vF63b+evW6T1eKUz2dTIpTfXKtx/3V61mvFKf65DIpTvXJ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18R2nqvWvZmuie08V637Kl0T23muWvdEuia281y17md0TWznuWrdi+ia2M5z1bqP0DWxneeqdWuga2I7z1XrJkDXxHaeq9bu/q6J7TxXrR37XRPbea5au/C7JrbzXLV21ndNbOe57PbQb3Z76De7PfSb3R76zW4P/Wa3h36z20O/2e2h3+z20G92e+g3uz30m90e+s1uD/1mt4d+s9tDv9ntod/s9tBvdnvod7s99LvdHvrdbg/9breHfr81u4ndPNdut4d+t9tDv9vtod/t9tDvdnvod7s99LvdHvrdbg/9breHfrfbQ7/b7aHf7fbQ73Z76He7PfS73R763W4P/W63h36320O/2+2h3+320O92e+h3uz30u90e+t1uD/1ut4d+t9tDv9vtod/t9tDvdnvod7s99LvdHvrdbg/9breHfrfbQ7/b7aHf7fbQ73Z76He7PfS73R763W4P/W63h36320O/2+2h3+320O92e+h3uz30u90e+t1uD/1ut4d+t9tDv9vtod/t9tDvdnvod7s99LvdHvrdbg/9breHfrfbQ7/b7aHf7fbQ73Z76He7PfS73R763W4P/W63h36320O/2+2h3+320O92e+h3uz30u90e+t1uD/1ut4d+t9tDv9vtod/t9tDvdnvod7s99LvdHvrdbg/9breHfrfbQ7/b7aHf7fbQ73Z76He7PfS73R763W4P/W63h36320O/2+2h3+320O92e+h3uz30h90e+sNuD/1ht4f+sNtDf9ya3cRunuuw20N/2O2hP+z20B92e+gPuz30h90e+sNuD/1ht4f+sNtDf9jtoT/s9tAfdnvoD7s99IfdHvrDbg/9YbeH/rDbQ3/Y7aE/7PbQH3Z76A+7PfSH3R76w24P/WG3h/6w20N/2O2hP+z20B92e+gPuz30h90e+sNuD/1ht4f+sNtDf9jtoT/s9tAfdnvoD7s99IfdHvrDbg/9YbeH/rDbQ3/Y7aE/7PbQH3Z76A+7PfSH3R76w24P/WG3h/6w20N/2O2hP+z20B92e+gPuz30h90e+sNuD/1ht4f+sNtDf9jtoT/s9tAfdnvoD7s99IfdHvrDbg/9YbeH/rDbQ3/Y7aE/7PbQH3Z76A+7PfSH3R76w24P/WG3h/6w20N/2O2hP+z20B92e+gPuz30h90e+sNuD/1ht4f+sNtDf9jtoT/s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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/+2b0W7aMBSGHRq6tGlTSAiBQgt0baXdpazt6N1eZnvuXU/aOwwHH/HXdZDRjmcsEQnFie3zf/6PbdIqRGJzJOtPpMpddT4VHw9q812d6387nhhj1S45o0A4O4FwngTCGTNyRgZOeY5VWa47ueY+ic16/FCJnWWiT6Be7AqkqyaqkGh1bKNd1W+nIIDwQsHHqo7Okfqkqh4BUzXYph3cowF34B5pncA92slIK1HmOBj3S7LF5o29no1yLGcqFvGnUMa6KVgYOxxr181Yn53laO2jwxw1q5zy0FWxE7imnJyDPuO3yxPqU+xzbX7EUJ5AW2pHbTrAK49LsV1L5zv6xVq/DNqcQr9E60fXlHfpV1+V5bmbbNtSfEc+1jJ26ib2uxzFmocpjC0Dfb45ulxJjQvx/oi0a/xiyYDp0gnTZk26Ge8ml1cQm+8p6eVZxutpvl1ovmXQ5gq87DnyMgJtYqLrXos+nyevKxmvb+FJ38DU9+BJv0Wf0ZM3GS+38CQ3MOUePMlb9Pk8+fZVxissPCkMTIUHT4oWfT5Pls3zw8DCk4GBaeDBk0GLPuPaaeZJaeFJaWAqPXhStugzevJTxhtaeDI0MA09eDJs0Wf05IeMV1l4UhmYKg+eVC36jHts83wysvBkZGAaefBk1KLP6MlSxhtbeDI2MI09eDJu0WdcO43+tYUn1wamaw+eoOY+3INAuatAuYsD4db1GddOs8dOLDyZGJgmHjxBzX24ywPh1vUZc/ki400tPJkamKYePEHNfbjzQLmLQLmHgXKXgXJXgXIfyvzW9Rmfv5s99sbCkxsD040HT1BzH+48UO5JoNzFgXDr+oxrp/n/4K2FJ7cGplsPnqDmPtyjQLn7B8Kt6zPOwVcZb2bhyczANPPgCWruwz0OlLsKlHsSKHcRKPcwUO4yUO7juvy/3PmBcMt79L7PH+dMy7dUYyINoXEKjTOFcgacc4jRZeOsa8zVHPQWTnzZ5EqfP3S9cK6/XMnYnx2NTca+dxO7+ZvjQcWidxrvDb49gn7EnLcHLTZpPUAuqfwb2lI7akP7BfHL99nuVPlxR7+Z1i+DNnfQ717rR9eUd+nfL1V2Odds5npPbNf5F2BytFc+4/vLAjSExknHDJjmbpieHI63xncaheBdjwvNszPNswza4F7uc289ch+5bbjxOeQM7lH9HO51tPHgb0UWEOMv7Ab1lOo2AAA=","debug_symbols":"ndpRattAGIXRveg5FN/foxkpWymlOIlTDMEJsVMoJnuv3dIF9LxpJN237+kwl+lp//Dx4/vh+Px6mu6/XqaX18fd+fB6vJ4u0+ZLLX/ent52x9uL03n3fp7ut33cTfvj0/Vp1Ofd9Hx42U/3bdM/v93dRiuMthsZRUYlo62MmoxmGXUZDRlJEVspokkRTYpoUkSTIpoU0aSIJkU0KaJJEU2KmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZiuhSRJciuhTRpYguRXQpoksRXYroUkSXIoYUMaSIIUUMKWJIEUOKGFLEkCKGFDGkiEWKWKSIRYpYpIhFilikiEWKWKSIRYpYpIhVililiFWKWKWIVYpYpYhVililiFWKWKWIbDa0Cq2KVltaNVrNtOq0GrRaaEVthNoItRFqI9RGqI1QG6E2Qm2E2gi1UdRGURtFbRS1UdRGURtFbRS1QaAZEs0QaYZMM4SaIdUMsWbINUOwGZLNEG2GbDOEmyHdDPFmyDdDwBkSzhBxhowzhJwh5QwxZ8g5Q9AZks4QdYasM4SdIe0McWfIO0PgGRLPEHmGzDOEniH1DLFnyD1D8BmSzxB9huwzhJ8h/QzxZ8g/QwAaEtAQgYYMNISgIQUNMWjIQUMQGpLQEIWGLDSEoSENDXFoyENDIBoS0RCJhkw0hKIhFQ2xaMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRcsuepKLFrlokYsWuWiRixa5aJGL1n+76PX0c/d+2D287G93e28fP46P/676Xo/nX29/v1z//Q0="}],"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":{"127":{"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, hash::{pedersen_hash, compute_siloed_nullifier, sha256_to_field}\n};\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n pedersen_hash([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 pedersen_hash(\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] = pedersen_hash(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] = pedersen_hash(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n pedersen_hash(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 == 0x11e40f2a780822f7971803048c9a2100579de352e7dadd99981760964da65b57);\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"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{\n abis::{function_selector::FunctionSelector, private_call_stack_item::PrivateCallStackItem},\n address::AztecAddress, constants::PRIVATE_CALL_STACK_ITEM_LENGTH\n};\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; PRIVATE_CALL_STACK_ITEM_LENGTH] {}\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) -> PrivateCallStackItem {\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 PrivateCallStackItem::deserialize(fields)\n}\n"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{\n abis::{\n function_selector::FunctionSelector, public_call_stack_item::PublicCallStackItem,\n function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs,\n call_context::CallContext, read_request::ReadRequest, note_hash::NoteHash, nullifier::Nullifier,\n log_hash::LogHash, global_variables::GlobalVariables, gas::Gas\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n messaging::l2_to_l1_message::L2ToL1Message, header::Header, address::AztecAddress,\n utils::reader::Reader,\n constants::{\n MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH\n}\n};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\npub fn parse_public_call_stack_item_from_oracle(fields: [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH]) -> PublicCallStackItem {\n let mut reader = Reader::new(fields);\n\n // Note: Not using PublicCirclePublicInputs::deserialize here, because everything below args_hash is 0 and\n // there is no more data in fields because there is only ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE fields!\n // WARNING: if updating, see comment in public_call_stack_item.ts's PublicCallStackItem.hash()\n let item = PublicCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: FunctionData { selector: FunctionSelector::from_field(reader.read()), is_private: false },\n public_inputs: PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n start_side_effect_counter: reader.read_u32(),\n args_hash: reader.read(),\n returns_hash: 0,\n note_hash_read_requests: [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n l1_to_l2_msg_read_requests: [ReadRequest::empty(); MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n note_hashes: [NoteHash::empty(); MAX_NOTE_HASHES_PER_CALL],\n nullifiers: [Nullifier::empty(); MAX_NULLIFIERS_PER_CALL],\n l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_L2_TO_L1_MSGS_PER_CALL],\n end_side_effect_counter: 0,\n unencrypted_logs_hashes: [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n historical_header: Header::empty(),\n global_variables: GlobalVariables::empty(),\n prover_address: AztecAddress::zero(),\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0\n },\n is_execution_request: true\n };\n reader.finish();\n\n item\n}\n"},"175":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{GAS_LENGTH, FIXED_DA_GAS, FIXED_L2_GAS}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered, utils::reader::Reader,\n abis::gas_fees::GasFees\n};\nuse std::ops::{Add, Sub};\n\nstruct Gas {\n da_gas: u32,\n l2_gas: u32,\n}\n\nimpl Gas {\n pub fn new(da_gas: u32, l2_gas: u32) -> Self {\n Self { da_gas, l2_gas }\n }\n\n pub fn tx_overhead() -> Self {\n Self { da_gas: FIXED_DA_GAS, l2_gas: FIXED_L2_GAS }\n }\n\n pub fn compute_fee(self, fees: GasFees) -> Field {\n (self.da_gas as Field) * fees.fee_per_da_gas + (self.l2_gas as Field) * fees.fee_per_l2_gas\n }\n\n pub fn is_empty(self) -> bool {\n (self.da_gas == 0) & (self.l2_gas == 0)\n }\n\n pub fn within(self, limits: Gas) -> bool {\n (self.da_gas <= limits.da_gas) & (self.l2_gas <= limits.l2_gas)\n }\n}\n\nimpl Add for Gas {\n fn add(self, other: Gas) -> Self {\n Gas::new(self.da_gas + other.da_gas, self.l2_gas + other.l2_gas)\n }\n}\n\nimpl Sub for Gas {\n fn sub(self, other: Gas) -> Self {\n Gas::new(self.da_gas - other.da_gas, self.l2_gas - other.l2_gas)\n }\n}\n\nimpl Serialize<GAS_LENGTH> for Gas {\n fn serialize(self) -> [Field; GAS_LENGTH] {\n [self.da_gas as Field, self.l2_gas as Field]\n }\n}\n\nimpl Deserialize<GAS_LENGTH> for Gas {\n fn deserialize(serialized: [Field; GAS_LENGTH]) -> Gas {\n Gas::new(serialized[0] as u32, serialized[1] as u32)\n }\n}\n\nimpl Eq for Gas {\n fn eq(self, other : Gas) -> bool {\n (self.da_gas == other.da_gas) & (self.l2_gas == other.l2_gas)\n }\n}\n\nimpl Empty for Gas {\n fn empty() -> Self {\n Gas::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Gas::empty();\n let serialized = item.serialize();\n let deserialized = Gas::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n"},"177":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/note_hash.nr","source":"use crate::{\n abis::read_request::ScopedReadRequest, address::AztecAddress,\n abis::side_effect::{Ordered, OrderedValue, Readable, Scoped},\n constants::{NOTE_HASH_LENGTH, SCOPED_NOTE_HASH_LENGTH}, traits::{Empty, Serialize, Deserialize},\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct NoteHash {\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for NoteHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteHash {\n fn eq(self, other: NoteHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter) \n }\n}\n\nimpl Empty for NoteHash {\n fn empty() -> Self {\n NoteHash {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_HASH_LENGTH> for NoteHash {\n fn serialize(self) -> [Field; NOTE_HASH_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_HASH_LENGTH> for NoteHash {\n fn deserialize(values: [Field; NOTE_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl NoteHash {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedNoteHash {\n ScopedNoteHash { note_hash: self, contract_address }\n }\n}\n\nstruct ScopedNoteHash {\n note_hash: NoteHash,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<NoteHash> for ScopedNoteHash {\n fn inner(self) -> NoteHash {\n self.note_hash\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Ordered for ScopedNoteHash {\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNoteHash {\n fn value(self) -> Field {\n self.note_hash.value\n }\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl Eq for ScopedNoteHash {\n fn eq(self, other: ScopedNoteHash) -> bool {\n (self.note_hash == other.note_hash)\n & (self.contract_address == other.contract_address)\n }\n}\n\nimpl Empty for ScopedNoteHash {\n fn empty() -> Self {\n ScopedNoteHash {\n note_hash: NoteHash::empty(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn serialize(self) -> [Field; SCOPED_NOTE_HASH_LENGTH] {\n array_concat(self.note_hash.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn deserialize(values: [Field; SCOPED_NOTE_HASH_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n note_hash: reader.read_struct(NoteHash::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNoteHash {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.note_hash.value, read_request.value(), \"Value of the note hash does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the note hash does not match read request\");\n assert(\n read_request.counter() > self.note_hash.counter, \"Read request counter must be greater than the counter of the note hash\"\n );\n }\n}\n\nimpl ScopedNoteHash {\n pub fn expose_to_public(self) -> NoteHash {\n // Hide the actual counter when exposing it to the public kernel.\n NoteHash { value: self.note_hash.value, counter: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NoteHash::empty();\n let serialized = item.serialize();\n let deserialized = NoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNoteHash::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"178":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_fees.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::GAS_FEES_LENGTH, hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty},\n abis::side_effect::Ordered, utils::reader::Reader\n};\n\nstruct GasFees {\n fee_per_da_gas: Field,\n fee_per_l2_gas: Field,\n}\n\nimpl GasFees {\n pub fn new(fee_per_da_gas: Field, fee_per_l2_gas: Field) -> Self {\n Self { fee_per_da_gas, fee_per_l2_gas }\n }\n\n pub fn default() -> Self {\n GasFees::new(1, 1)\n }\n\n pub fn is_empty(self) -> bool {\n (self.fee_per_da_gas == 0) & (self.fee_per_l2_gas == 0)\n }\n}\n\nimpl Serialize<GAS_FEES_LENGTH> for GasFees {\n fn serialize(self) -> [Field; GAS_FEES_LENGTH] {\n [self.fee_per_da_gas, self.fee_per_l2_gas]\n }\n}\n\nimpl Deserialize<GAS_FEES_LENGTH> for GasFees {\n fn deserialize(serialized: [Field; GAS_FEES_LENGTH]) -> GasFees {\n GasFees::new(serialized[0], serialized[1])\n }\n}\n\nimpl Eq for GasFees {\n fn eq(self, other : GasFees) -> bool {\n (self.fee_per_da_gas == other.fee_per_da_gas) & (self.fee_per_l2_gas == other.fee_per_l2_gas)\n }\n}\n\nimpl Empty for GasFees {\n fn empty() -> Self {\n GasFees::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasFees::empty();\n let serialized = item.serialize();\n let deserialized = GasFees::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"180":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, max_block_number::MaxBlockNumber, gas_settings::GasSettings,\n validation_requests::KeyValidationRequestAndGenerator, note_hash::NoteHash, nullifier::Nullifier,\n private_call_request::PrivateCallRequest, read_request::ReadRequest,\n log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n constants::{\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_NOTE_HASHES_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_L2_TO_L1_MSGS_PER_CALL, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS, MAX_ENCRYPTED_LOGS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, hash::pedersen_hash, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n transaction::tx_context::TxContext, utils::arrays::validate_array\n};\n\nstruct PrivateCircuitPublicInputsArrayLengths {\n note_hash_read_requests: u32,\n nullifier_read_requests: u32,\n key_validation_requests_and_generators: u32,\n note_hashes: u32,\n nullifiers: u32,\n l2_to_l1_msgs: u32,\n private_call_requests: u32,\n public_call_stack_hashes: u32,\n note_encrypted_logs_hashes: u32,\n encrypted_logs_hashes: u32,\n unencrypted_logs_hashes: u32,\n}\n\nimpl PrivateCircuitPublicInputsArrayLengths {\n pub fn new(public_inputs: PrivateCircuitPublicInputs) -> Self {\n PrivateCircuitPublicInputsArrayLengths {\n note_hash_read_requests: validate_array(public_inputs.note_hash_read_requests),\n nullifier_read_requests: validate_array(public_inputs.nullifier_read_requests),\n key_validation_requests_and_generators: validate_array(public_inputs.key_validation_requests_and_generators),\n note_hashes: validate_array(public_inputs.note_hashes),\n nullifiers: validate_array(public_inputs.nullifiers),\n l2_to_l1_msgs: validate_array(public_inputs.l2_to_l1_msgs),\n private_call_requests: validate_array(public_inputs.private_call_requests),\n public_call_stack_hashes: validate_array(public_inputs.public_call_stack_hashes),\n note_encrypted_logs_hashes: validate_array(public_inputs.note_encrypted_logs_hashes),\n encrypted_logs_hashes: validate_array(public_inputs.encrypted_logs_hashes),\n unencrypted_logs_hashes: validate_array(public_inputs.unencrypted_logs_hashes)\n }\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: [ReadRequest; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest; MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n key_validation_requests_and_generators: [KeyValidationRequestAndGenerator; MAX_KEY_VALIDATION_REQUESTS_PER_CALL],\n\n note_hashes: [NoteHash; MAX_NOTE_HASHES_PER_CALL],\n nullifiers: [Nullifier; MAX_NULLIFIERS_PER_CALL],\n private_call_requests: [PrivateCallRequest; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: Field,\n l2_to_l1_msgs: [L2ToL1Message; MAX_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter : u32,\n end_side_effect_counter : u32,\n note_encrypted_logs_hashes: [NoteLogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_CALL],\n encrypted_logs_hashes: [EncryptedLogHash; MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [LogHash; MAX_UNENCRYPTED_LOGS_PER_CALL],\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: The chain_id and version here are not redundant to the values in self.historical_header.global_variables because\n // they can be different in case of a protocol upgrade. In such a situation we could be using header from a block\n // before the upgrade took place but be using the updated protocol to execute and prove the transaction.\n tx_context: TxContext,\n}\n\nimpl Eq for PrivateCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.call_context.eq(other.call_context) &\n self.args_hash.eq(other.args_hash) &\n (self.returns_hash == other.returns_hash) &\n (self.min_revertible_side_effect_counter == other.min_revertible_side_effect_counter) &\n (self.is_fee_payer == other.is_fee_payer) &\n (self.max_block_number == other.max_block_number) &\n (self.note_hash_read_requests == other.note_hash_read_requests) &\n (self.nullifier_read_requests == other.nullifier_read_requests) &\n (self.key_validation_requests_and_generators == other.key_validation_requests_and_generators) &\n (self.note_hashes == other.note_hashes) &\n (self.nullifiers == other.nullifiers) &\n (self.private_call_requests == other.private_call_requests) &\n (self.public_call_stack_hashes == other.public_call_stack_hashes) &\n (self.l2_to_l1_msgs == other.l2_to_l1_msgs) &\n (self.start_side_effect_counter == other.start_side_effect_counter) &\n (self.end_side_effect_counter == other.end_side_effect_counter) &\n (self.note_encrypted_logs_hashes == other.note_encrypted_logs_hashes) &\n (self.encrypted_logs_hashes == other.encrypted_logs_hashes) &\n (self.unencrypted_logs_hashes == other.unencrypted_logs_hashes) &\n self.historical_header.eq(other.historical_header) &\n self.tx_context.eq(other.tx_context)\n }\n}\n\nimpl Serialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new();\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n\n fields.push(self.min_revertible_side_effect_counter as Field);\n fields.push(if self.is_fee_payer { 1 } else { 0 } as Field);\n\n fields.extend_from_array(self.max_block_number.serialize());\n\n for i in 0..self.note_hash_read_requests.len() {\n fields.extend_from_array(self.note_hash_read_requests[i].serialize());\n }\n for i in 0..self.nullifier_read_requests.len() {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..self.key_validation_requests_and_generators.len() {\n fields.extend_from_array(self.key_validation_requests_and_generators[i].serialize());\n }\n for i in 0..self.note_hashes.len() {\n fields.extend_from_array(self.note_hashes[i].serialize());\n }\n for i in 0..self.nullifiers.len() {\n fields.extend_from_array(self.nullifiers[i].serialize());\n }\n for i in 0..self.private_call_requests.len() {\n fields.extend_from_array(self.private_call_requests[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n fields.push(self.public_teardown_function_hash);\n for i in 0..self.l2_to_l1_msgs.len() {\n fields.extend_from_array(self.l2_to_l1_msgs[i].serialize());\n }\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n for i in 0..self.note_encrypted_logs_hashes.len() {\n fields.extend_from_array(self.note_encrypted_logs_hashes[i].serialize());\n }\n for i in 0..self.encrypted_logs_hashes.len() {\n fields.extend_from_array(self.encrypted_logs_hashes[i].serialize());\n }\n for i in 0..self.unencrypted_logs_hashes.len() {\n fields.extend_from_array(self.unencrypted_logs_hashes[i].serialize());\n }\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.tx_context.serialize());\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn deserialize(serialized: [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = Self {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n min_revertible_side_effect_counter: reader.read() as u32,\n is_fee_payer: reader.read() == 1,\n max_block_number: reader.read_struct(MaxBlockNumber::deserialize),\n note_hash_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]),\n nullifier_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL]),\n key_validation_requests_and_generators: reader.read_struct_array(KeyValidationRequestAndGenerator::deserialize, [KeyValidationRequestAndGenerator::empty(); MAX_KEY_VALIDATION_REQUESTS_PER_CALL]),\n note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NOTE_HASHES_PER_CALL]),\n nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NULLIFIERS_PER_CALL]),\n private_call_requests: reader.read_struct_array(PrivateCallRequest::deserialize, [PrivateCallRequest::empty(); MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n public_teardown_function_hash: reader.read(),\n l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_L2_TO_L1_MSGS_PER_CALL]),\n start_side_effect_counter: reader.read() as u32,\n end_side_effect_counter: reader.read() as u32,\n note_encrypted_logs_hashes: reader.read_struct_array(NoteLogHash::deserialize, [NoteLogHash::empty(); MAX_NOTE_ENCRYPTED_LOGS_PER_CALL]),\n encrypted_logs_hashes: reader.read_struct_array(EncryptedLogHash::deserialize, [EncryptedLogHash::empty(); MAX_ENCRYPTED_LOGS_PER_CALL]),\n unencrypted_logs_hashes: reader.read_struct_array(LogHash::deserialize, [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL]),\n historical_header: reader.read_struct(Header::deserialize),\n tx_context: reader.read_struct(TxContext::deserialize),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PrivateCircuitPublicInputs {\n fn empty() -> Self {\n PrivateCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\n returns_hash: 0,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n key_validation_requests_and_generators: [KeyValidationRequestAndGenerator::empty(); MAX_KEY_VALIDATION_REQUESTS_PER_CALL],\n note_hashes: [NoteHash::empty(); MAX_NOTE_HASHES_PER_CALL],\n nullifiers: [Nullifier::empty(); MAX_NULLIFIERS_PER_CALL],\n private_call_requests: [PrivateCallRequest::empty(); MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: 0,\n l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter : 0 as u32,\n end_side_effect_counter : 0 as u32,\n note_encrypted_logs_hashes: [NoteLogHash::empty(); MAX_NOTE_ENCRYPTED_LOGS_PER_CALL],\n encrypted_logs_hashes: [EncryptedLogHash::empty(); MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n historical_header: Header::empty(),\n tx_context: TxContext::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PrivateCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PrivateCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PrivateCircuitPublicInputs::empty();\n let hash = inputs.hash();\n // Value from private_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x15c9b0a92b9b541598e24c9f0b0b4b04b7f2408599751c45aa12de671fd9b363;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"181":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item_compressed.nr","source":"use crate::abis::{call_context::CallContext, function_data::FunctionData, gas::Gas};\nuse crate::address::AztecAddress;\nuse crate::constants::{GENERATOR_INDEX__CALL_STACK_ITEM, PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH};\nuse crate::traits::{Hash, Empty, Serialize, Deserialize};\nuse crate::utils::reader::Reader;\n\n/**\n * A compressed version of the PublicCallStackItem struct used to compute the \"hash\"\n * of a PublicCallStackItem.\n * \n * Historically, we have been zeroing most values in the PublicCallStackItem struct\n * to compute the hash involved when adding a PublicCallStackItem to the PublicCallStack.\n * \n * This struct is used to store the values that we did not zero out, and allow us to hash\n * only these, thereby skipping a lot of computation and saving us a lot of constraints\n * \n * Essentially this struct exists such that we don't have a `hash` function in the \n * PublicCallStackItem struct that practically throws away some values of the struct\n * without clearly indicating that it does so.\n */\nstruct PublicCallStackItemCompressed {\n contract_address: AztecAddress,\n call_context: CallContext,\n function_data: FunctionData,\n args_hash: Field,\n returns_hash: Field,\n revert_code: u8,\n start_gas_left: Gas,\n end_gas_left: Gas,\n}\n\nimpl Eq for PublicCallStackItemCompressed {\n fn eq(self, other: PublicCallStackItemCompressed) -> bool {\n (self.contract_address == other.contract_address)\n & (self.call_context == other.call_context)\n & (self.function_data == other.function_data)\n & (self.args_hash == other.args_hash)\n & (self.returns_hash == other.returns_hash)\n & (self.revert_code == other.revert_code)\n & (self.start_gas_left == other.start_gas_left)\n & (self.end_gas_left == other.end_gas_left)\n }\n}\n\nimpl Hash for PublicCallStackItemCompressed {\n fn hash(self) -> Field {\n std::hash::pedersen_hash_with_separator(self.serialize(), GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl Empty for PublicCallStackItemCompressed {\n fn empty() -> Self {\n PublicCallStackItemCompressed {\n contract_address: AztecAddress::empty(),\n call_context: CallContext::empty(),\n function_data: FunctionData::empty(),\n args_hash: 0,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n }\n }\n}\n\nimpl Serialize<PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH> for PublicCallStackItemCompressed {\n fn serialize(self) -> [Field; PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH> = BoundedVec::new();\n\n fields.push(self.contract_address.to_field());\n fields.extend_from_array(self.call_context.serialize());\n fields.extend_from_array(self.function_data.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n fields.push(self.revert_code as Field);\n fields.extend_from_array(self.start_gas_left.serialize());\n fields.extend_from_array(self.end_gas_left.serialize());\n\n assert_eq(fields.len(), PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH> for PublicCallStackItemCompressed {\n fn deserialize(fields: [Field; PUBLIC_CALL_STACK_ITEM_COMPRESSED_LENGTH]) -> PublicCallStackItemCompressed {\n let mut reader = Reader::new(fields);\n\n let item = PublicCallStackItemCompressed {\n contract_address: reader.read_struct(AztecAddress::deserialize),\n call_context: reader.read_struct(CallContext::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n revert_code: reader.read() as u8,\n start_gas_left: reader.read_struct(Gas::deserialize),\n end_gas_left: reader.read_struct(Gas::deserialize),\n };\n reader.finish();\n item\n }\n}\n"},"183":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/global_variables.nr","source":"use crate::{\n address::{AztecAddress, EthAddress}, abis::gas_fees::GasFees,\n constants::{GENERATOR_INDEX__GLOBAL_VARIABLES, GLOBAL_VARIABLES_LENGTH},\n traits::{Deserialize, Empty, Hash, Serialize}, utils::reader::Reader\n};\n\n// docs:start:global-variables\nstruct GlobalVariables {\n chain_id : Field,\n version : Field,\n block_number : Field,\n timestamp : u64,\n coinbase : EthAddress,\n fee_recipient : AztecAddress,\n gas_fees : GasFees\n}\n// docs:end:global-variables\n\nimpl GlobalVariables {\n fn is_empty(self) -> bool {\n (self.chain_id == 0)\n & (self.version == 0)\n & (self.block_number == 0)\n & (self.timestamp == 0)\n & (self.coinbase.is_zero())\n & (self.fee_recipient.is_zero())\n & (self.gas_fees.is_empty())\n }\n}\n\nimpl Serialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn serialize(self) -> [Field; GLOBAL_VARIABLES_LENGTH] {\n let mut serialized: BoundedVec<Field, GLOBAL_VARIABLES_LENGTH> = BoundedVec::new();\n\n serialized.push(self.chain_id);\n serialized.push(self.version);\n serialized.push(self.block_number);\n serialized.push(self.timestamp as Field);\n serialized.push(self.coinbase.to_field());\n serialized.push(self.fee_recipient.to_field());\n serialized.extend_from_array(self.gas_fees.serialize());\n\n serialized.storage\n }\n}\n\nimpl Deserialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn deserialize(serialized: [Field; GLOBAL_VARIABLES_LENGTH]) -> GlobalVariables {\n let mut reader = Reader::new(serialized);\n GlobalVariables {\n chain_id: reader.read(),\n version: reader.read(),\n block_number: reader.read(),\n timestamp: reader.read() as u64,\n coinbase: EthAddress::from_field(reader.read()),\n fee_recipient: AztecAddress::from_field(reader.read()),\n gas_fees: reader.read_struct(GasFees::deserialize)\n }\n }\n}\n\nimpl Eq for GlobalVariables {\n fn eq(self, other : GlobalVariables) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.block_number == other.block_number) &\n (self.timestamp == other.timestamp) &\n (self.coinbase == other.coinbase) &\n (self.fee_recipient == other.fee_recipient) &\n (self.gas_fees == other.gas_fees) \n }\n}\n\nimpl Empty for GlobalVariables {\n fn empty() -> Self {\n Self {\n chain_id: 0,\n version: 0,\n block_number: 0,\n timestamp: 0,\n coinbase: EthAddress::empty(),\n fee_recipient: AztecAddress::empty(),\n gas_fees: GasFees::empty()\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let vars = GlobalVariables::empty();\n let _serialized = vars.serialize();\n let _deserialized = GlobalVariables::deserialize(_serialized);\n}\n"},"184":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/read_request.nr","source":"use crate::{\n abis::side_effect::{Ordered, Scoped}, traits::{Empty, Serialize, Deserialize},\n address::AztecAddress, constants::{READ_REQUEST_LENGTH, SCOPED_READ_REQUEST_LEN},\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct ReadRequest {\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for ReadRequest {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for ReadRequest {\n fn eq(self, read_request: ReadRequest) -> bool {\n (self.value == read_request.value)\n & (self.counter == read_request.counter)\n }\n}\n\nimpl Empty for ReadRequest {\n fn empty() -> Self {\n ReadRequest {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn serialize(self) -> [Field; READ_REQUEST_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn deserialize(values: [Field; READ_REQUEST_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl ReadRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedReadRequest {\n ScopedReadRequest { read_request: self, contract_address }\n }\n}\n\nstruct ScopedReadRequest {\n read_request: ReadRequest,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<ReadRequest> for ScopedReadRequest {\n fn inner(self) -> ReadRequest {\n self.read_request\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Eq for ScopedReadRequest {\n fn eq(self, other: ScopedReadRequest) -> bool {\n (self.read_request == other.read_request)\n & (self.contract_address.eq(other.contract_address))\n }\n}\n\nimpl Empty for ScopedReadRequest {\n fn empty() -> Self {\n ScopedReadRequest {\n read_request: ReadRequest::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn serialize(self) -> [Field; SCOPED_READ_REQUEST_LEN] {\n array_concat(self.read_request.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn deserialize(values: [Field; SCOPED_READ_REQUEST_LEN]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n read_request: reader.read_struct(ReadRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl ScopedReadRequest {\n pub fn value(self) -> Field {\n self.read_request.value\n }\n pub fn counter(self) -> u32 {\n self.read_request.counter\n }\n}\n\n#[test]\nfn serialization_of_empty_read() {\n let item = ReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"187":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request_and_generator.nr","source":"use crate::{\n address::AztecAddress,\n abis::validation_requests::{\n key_validation_request::KeyValidationRequest,\n scoped_key_validation_request_and_generator::ScopedKeyValidationRequestAndGenerator\n},\n constants::KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH, traits::{Empty, Serialize, Deserialize},\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct KeyValidationRequestAndGenerator {\n request: KeyValidationRequest,\n sk_app_generator: Field,\n}\n\nimpl Eq for KeyValidationRequestAndGenerator {\n fn eq(self, other: KeyValidationRequestAndGenerator) -> bool {\n (self.request == other.request) & (self.sk_app_generator == other.sk_app_generator)\n }\n}\n\nimpl Empty for KeyValidationRequestAndGenerator {\n fn empty() -> Self {\n KeyValidationRequestAndGenerator {\n request: KeyValidationRequest::empty(),\n sk_app_generator: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH> for KeyValidationRequestAndGenerator {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH] {\n array_concat(self.request.serialize(), [self.sk_app_generator])\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH> for KeyValidationRequestAndGenerator {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH]) -> Self {\n let mut reader = Reader::new(fields);\n let res = Self {\n request: reader.read_struct(KeyValidationRequest::deserialize),\n sk_app_generator: reader.read(),\n };\n reader.finish();\n res\n }\n}\n\nimpl KeyValidationRequestAndGenerator {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedKeyValidationRequestAndGenerator {\n ScopedKeyValidationRequestAndGenerator { request: self, contract_address }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = KeyValidationRequestAndGenerator::empty();\n let serialized = item.serialize();\n let deserialized = KeyValidationRequestAndGenerator::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"188":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"192":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier.nr","source":"use crate::{\n abis::{side_effect::{Ordered, OrderedValue, Readable, Scoped}, read_request::ScopedReadRequest},\n address::AztecAddress, constants::{NULLIFIER_LENGTH, SCOPED_NULLIFIER_LENGTH},\n hash::compute_siloed_nullifier, traits::{Empty, Hash, Serialize, Deserialize},\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct Nullifier {\n value: Field,\n counter: u32,\n note_hash: Field,\n}\n\nimpl Ordered for Nullifier {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for Nullifier {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for Nullifier {\n fn eq(self, other: Nullifier) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.note_hash == other.note_hash) \n }\n}\n\nimpl Empty for Nullifier {\n fn empty() -> Self {\n Nullifier {\n value: 0,\n counter: 0,\n note_hash: 0,\n }\n }\n}\n\nimpl Serialize<NULLIFIER_LENGTH> for Nullifier {\n fn serialize(self) -> [Field; NULLIFIER_LENGTH] {\n [self.value, self.counter as Field, self.note_hash]\n }\n}\n\nimpl Deserialize<NULLIFIER_LENGTH> for Nullifier {\n fn deserialize(values: [Field; NULLIFIER_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n note_hash: values[2],\n }\n }\n}\n\nimpl Readable for Nullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n // Public kernels output Nullifier instead of ScopedNullifier.\n // The nullifier value has been siloed.\n let siloed_request_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.value, siloed_request_value, \"Value of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl Nullifier {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedNullifier {\n ScopedNullifier { nullifier: self, contract_address }\n }\n}\n\nstruct ScopedNullifier {\n nullifier: Nullifier,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<Nullifier> for ScopedNullifier {\n fn inner(self) -> Nullifier {\n self.nullifier\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Ordered for ScopedNullifier {\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNullifier {\n fn value(self) -> Field {\n self.nullifier.value\n }\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl Eq for ScopedNullifier {\n fn eq(self, other: ScopedNullifier) -> bool {\n (self.nullifier == other.nullifier)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedNullifier {\n fn empty() -> Self {\n ScopedNullifier {\n nullifier: Nullifier::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn serialize(self) -> [Field; SCOPED_NULLIFIER_LENGTH] {\n array_concat(self.nullifier.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn deserialize(values: [Field; SCOPED_NULLIFIER_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n nullifier: reader.read_struct(Nullifier::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.nullifier.value, read_request.value(), \"Value of the nullifier does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.nullifier.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl ScopedNullifier {\n pub fn nullified_note_hash(self) -> Field {\n self.nullifier.note_hash\n }\n\n pub fn expose_to_public(self) -> Nullifier {\n // Hide the actual counter and note hash when exposing it to the public kernel.\n Nullifier { value: self.nullifier.value, counter: 0, note_hash: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Nullifier::empty();\n let serialized = item.serialize();\n let deserialized = Nullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNullifier::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"201":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_selector.nr","source":"use crate::utils::field::field_from_bytes;\nuse crate::traits::{Serialize, Deserialize, FromField, ToField, Empty};\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl Serialize<1> for FunctionSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for FunctionSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n\nimpl FromField for FunctionSelector {\n fn from_field(field: Field) -> Self {\n Self { inner: field as u32 }\n }\n}\n\nimpl ToField for FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n}\n\nimpl Empty for FunctionSelector {\n fn empty() -> Self {\n Self { inner: 0 as u32 }\n }\n}\n\nimpl FunctionSelector {\n pub fn from_u32(value: u32) -> Self {\n Self { inner: value }\n }\n\n pub fn from_signature<let N: u32>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n"},"202":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_request.nr","source":"use crate::{\n abis::{\n private_call_stack_item::PrivateCallStackItem, call_context::CallContext,\n function_data::FunctionData, caller_context::CallerContext,\n side_effect::{Ordered, RangeOrdered, Scoped}\n},\n address::AztecAddress, constants::{PRIVATE_CALL_REQUEST_LENGTH, SCOPED_PRIVATE_CALL_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, utils::reader::Reader\n};\n\nstruct PrivateCallRequest {\n target: AztecAddress,\n call_context: CallContext,\n function_data: FunctionData,\n args_hash: Field,\n returns_hash: Field,\n caller_context: CallerContext,\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n}\n\nimpl Ordered for PrivateCallRequest {\n fn counter(self) -> u32 {\n self.start_side_effect_counter\n }\n}\n\nimpl RangeOrdered for PrivateCallRequest {\n fn counter_start(self) -> u32 {\n self.start_side_effect_counter\n }\n fn counter_end(self) -> u32 {\n self.end_side_effect_counter\n }\n}\n\nimpl Eq for PrivateCallRequest {\n fn eq(self, other: PrivateCallRequest) -> bool {\n (self.target == other.target) \n & (self.call_context == other.call_context) \n & (self.function_data == other.function_data) \n & (self.args_hash == other.args_hash) \n & (self.returns_hash == other.returns_hash)\n & (self.caller_context == other.caller_context)\n & (self.start_side_effect_counter == other.start_side_effect_counter)\n & (self.end_side_effect_counter == other.end_side_effect_counter)\n }\n}\n\nimpl Empty for PrivateCallRequest {\n fn empty() -> Self {\n PrivateCallRequest {\n target: AztecAddress::empty(),\n call_context: CallContext::empty(),\n function_data: FunctionData::empty(),\n args_hash: 0,\n returns_hash: 0,\n caller_context: CallerContext::empty(),\n start_side_effect_counter: 0,\n end_side_effect_counter: 0,\n }\n }\n}\n\nimpl Serialize<PRIVATE_CALL_REQUEST_LENGTH> for PrivateCallRequest {\n fn serialize(self) -> [Field; PRIVATE_CALL_REQUEST_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_REQUEST_LENGTH> = BoundedVec::new();\n\n fields.push(self.target.to_field());\n fields.extend_from_array(self.call_context.serialize());\n fields.extend_from_array(self.function_data.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n fields.extend_from_array(self.caller_context.serialize());\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n\n assert_eq(fields.len(), PRIVATE_CALL_REQUEST_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_REQUEST_LENGTH> for PrivateCallRequest {\n fn deserialize(fields: [Field; PRIVATE_CALL_REQUEST_LENGTH]) -> PrivateCallRequest {\n let mut reader = Reader::new(fields);\n let item = PrivateCallRequest {\n target: reader.read_struct(AztecAddress::deserialize),\n call_context: reader.read_struct(CallContext::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n caller_context: reader.read_struct(CallerContext::deserialize),\n start_side_effect_counter: reader.read_u32(),\n end_side_effect_counter: reader.read_u32(),\n };\n reader.finish();\n item\n }\n}\n\nimpl PrivateCallRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedPrivateCallRequest {\n ScopedPrivateCallRequest { call_request: self, contract_address }\n }\n\n pub fn matches_stack_item(self, stack_item: PrivateCallStackItem) -> bool {\n (self.target == stack_item.contract_address)\n & (self.call_context == stack_item.public_inputs.call_context)\n & (self.function_data == stack_item.function_data)\n & (self.args_hash == stack_item.public_inputs.args_hash)\n & (self.returns_hash == stack_item.public_inputs.returns_hash)\n & (self.start_side_effect_counter\n == stack_item.public_inputs.start_side_effect_counter)\n & (self.end_side_effect_counter\n == stack_item.public_inputs.end_side_effect_counter)\n }\n}\n\nstruct ScopedPrivateCallRequest {\n call_request: PrivateCallRequest,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<PrivateCallRequest> for ScopedPrivateCallRequest {\n fn inner(self) -> PrivateCallRequest {\n self.call_request\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Ordered for ScopedPrivateCallRequest {\n fn counter(self) -> u32 {\n self.call_request.counter_start()\n }\n}\n\nimpl RangeOrdered for ScopedPrivateCallRequest {\n fn counter_start(self) -> u32 {\n self.call_request.counter_start()\n }\n fn counter_end(self) -> u32 {\n self.call_request.counter_end()\n }\n}\n\nimpl Eq for ScopedPrivateCallRequest {\n fn eq(self, other: ScopedPrivateCallRequest) -> bool {\n (self.call_request == other.call_request)\n & (self.contract_address == other.contract_address)\n }\n}\n\nimpl Empty for ScopedPrivateCallRequest {\n fn empty() -> Self {\n ScopedPrivateCallRequest {\n call_request: PrivateCallRequest::empty(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_PRIVATE_CALL_REQUEST_LENGTH> for ScopedPrivateCallRequest {\n fn serialize(self) -> [Field; SCOPED_PRIVATE_CALL_REQUEST_LENGTH] {\n let mut fields: BoundedVec<Field, SCOPED_PRIVATE_CALL_REQUEST_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.call_request.serialize());\n fields.extend_from_array(self.contract_address.serialize());\n\n assert_eq(fields.len(), SCOPED_PRIVATE_CALL_REQUEST_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<SCOPED_PRIVATE_CALL_REQUEST_LENGTH> for ScopedPrivateCallRequest {\n fn deserialize(fields: [Field; SCOPED_PRIVATE_CALL_REQUEST_LENGTH]) -> ScopedPrivateCallRequest {\n let mut reader = Reader::new(fields);\n let item = ScopedPrivateCallRequest {\n call_request: reader.read_struct(PrivateCallRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n item\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = ScopedPrivateCallRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedPrivateCallRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"207":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_settings.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress}, abis::gas::Gas,\n abis::gas_fees::GasFees,\n constants::{\n GAS_SETTINGS_LENGTH, DEFAULT_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_MAX_FEE_PER_GAS,\n DEFAULT_INCLUSION_FEE\n},\n hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n utils::reader::Reader\n};\n\nstruct GasSettings {\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field,\n}\n\nimpl GasSettings {\n pub fn new(\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field\n ) -> Self {\n Self { gas_limits, teardown_gas_limits, max_fees_per_gas, inclusion_fee }\n }\n\n pub fn default() -> Self {\n GasSettings::new(\n Gas::new(DEFAULT_GAS_LIMIT, DEFAULT_GAS_LIMIT),\n Gas::new(DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT),\n GasFees::new(DEFAULT_MAX_FEE_PER_GAS, DEFAULT_MAX_FEE_PER_GAS),\n DEFAULT_INCLUSION_FEE\n )\n }\n}\n\nimpl Eq for GasSettings {\n fn eq(self, other: Self) -> bool {\n (self.gas_limits == other.gas_limits) & (self.teardown_gas_limits == other.teardown_gas_limits) & (self.max_fees_per_gas == other.max_fees_per_gas) & (self.inclusion_fee == other.inclusion_fee)\n }\n}\n\nimpl Empty for GasSettings {\n fn empty() -> Self {\n GasSettings::new(\n Gas::empty(), Gas::empty(), GasFees::empty(), 0\n )\n }\n}\n\nimpl Serialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn serialize(self) -> [Field; GAS_SETTINGS_LENGTH] {\n let mut serialized: BoundedVec<Field, GAS_SETTINGS_LENGTH> = BoundedVec::new();\n\n serialized.extend_from_array(self.gas_limits.serialize());\n serialized.extend_from_array(self.teardown_gas_limits.serialize());\n serialized.extend_from_array(self.max_fees_per_gas.serialize());\n serialized.push(self.inclusion_fee);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn deserialize(serialized: [Field; GAS_SETTINGS_LENGTH]) -> GasSettings {\n let mut reader = Reader::new(serialized);\n GasSettings::new(reader.read_struct(Gas::deserialize), reader.read_struct(Gas::deserialize), reader.read_struct(GasFees::deserialize), reader.read())\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasSettings::empty();\n let serialized = item.serialize();\n let deserialized = GasSettings::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"216":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr","source":"use crate::{\n abis::{function_data::FunctionData, private_circuit_public_inputs::PrivateCircuitPublicInputs},\n address::AztecAddress,\n constants::{GENERATOR_INDEX__CALL_STACK_ITEM, PRIVATE_CALL_STACK_ITEM_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader\n};\n\nstruct PrivateCallStackItem {\n // This is the _actual_ contract address relating to where this function's code resides in the\n // contract tree. Regardless of whether this is a call or delegatecall, this\n // `contract_address` _does not change_. Amongst other things, it's used as a lookup for\n // getting the correct code from the tree. There is a separate `storage_contract_address`\n // within a CallStackItem which varies depending on whether this is a call or delegatecall.\n contract_address: AztecAddress,\n function_data: FunctionData,\n public_inputs: PrivateCircuitPublicInputs,\n}\n\nimpl Eq for PrivateCallStackItem {\n fn eq(self, other: Self) -> bool {\n self.contract_address.eq(other.contract_address) &\n self.function_data.eq(other.function_data) &\n self.public_inputs.eq(other.public_inputs)\n }\n}\n\nimpl Serialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn serialize(self) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_STACK_ITEM_LENGTH> = BoundedVec::new();\n\n fields.push(self.contract_address.to_field());\n fields.extend_from_array(self.function_data.serialize());\n fields.extend_from_array(self.public_inputs.serialize());\n\n assert_eq(fields.len(), PRIVATE_CALL_STACK_ITEM_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn deserialize(serialized: [Field; PRIVATE_CALL_STACK_ITEM_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let item = Self {\n contract_address: reader.read_struct(AztecAddress::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: reader.read_struct(PrivateCircuitPublicInputs::deserialize),\n };\n\n reader.finish();\n item\n }\n}\n\nimpl Hash for PrivateCallStackItem {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl Empty for PrivateCallStackItem {\n fn empty() -> Self {\n PrivateCallStackItem {\n contract_address: AztecAddress::empty(),\n function_data: FunctionData::empty(),\n public_inputs: PrivateCircuitPublicInputs::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = PrivateCallStackItem::empty();\n let serialized = item.serialize();\n let deserialized = PrivateCallStackItem::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let mut item = PrivateCallStackItem::empty();\n item.function_data.is_private = true;\n let hash = item.hash();\n\n // Value from private_call_stack_item.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x065f2831db9ac0db5e710bd3a865b5facd8cf83f1585e1af8fd1d6ce9c47f685;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"217":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/caller_context.nr","source":"use crate::address::AztecAddress;\nuse crate::traits::{Empty, Serialize, Deserialize};\nuse crate::constants::CALLER_CONTEXT_LENGTH;\nuse crate::utils::reader::Reader;\n\nstruct CallerContext {\n msg_sender: AztecAddress,\n storage_contract_address: AztecAddress,\n is_static_call: bool,\n}\n\nimpl Eq for CallerContext {\n fn eq(self, other: CallerContext) -> bool {\n other.msg_sender.eq(self.msg_sender)\n & other.storage_contract_address.eq(self.storage_contract_address)\n & other.is_static_call == self.is_static_call\n }\n}\n\nimpl Empty for CallerContext {\n fn empty() -> Self {\n CallerContext {\n msg_sender: AztecAddress::zero(),\n storage_contract_address: AztecAddress::zero(),\n is_static_call: false,\n }\n }\n}\n\nimpl CallerContext {\n pub fn is_empty(self) -> bool {\n self.msg_sender.is_zero() & self.storage_contract_address.is_zero() & !self.is_static_call\n }\n\n // Different to an empty context, a hidden context won't reveal the caller's msg_sender and storage_contract_address,\n // but will still propagate the is_static_call flag.\n pub fn is_hidden(self) -> bool {\n self.msg_sender.is_zero() & self.storage_contract_address.is_zero()\n }\n}\n\nimpl Serialize<CALLER_CONTEXT_LENGTH> for CallerContext {\n fn serialize(self) -> [Field; CALLER_CONTEXT_LENGTH] {\n let mut fields: BoundedVec<Field, CALLER_CONTEXT_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.msg_sender.serialize());\n fields.extend_from_array(self.storage_contract_address.serialize());\n fields.push(self.is_static_call as Field);\n\n assert_eq(fields.len(), CALLER_CONTEXT_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<CALLER_CONTEXT_LENGTH> for CallerContext {\n fn deserialize(fields: [Field; CALLER_CONTEXT_LENGTH]) -> CallerContext {\n let mut reader = Reader::new(fields);\n\n let item = CallerContext {\n msg_sender: reader.read_struct(AztecAddress::deserialize),\n storage_contract_address: reader.read_struct(AztecAddress::deserialize),\n is_static_call: reader.read_bool(),\n };\n reader.finish();\n item\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = CallerContext::empty();\n let serialized = item.serialize();\n let deserialized = CallerContext::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"219":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/log_hash.nr","source":"use crate::{\n abis::side_effect::{Ordered, OrderedValue, Scoped}, address::AztecAddress,\n constants::{\n LOG_HASH_LENGTH, NOTE_LOG_HASH_LENGTH, ENCRYPTED_LOG_HASH_LENGTH, SCOPED_LOG_HASH_LENGTH,\n SCOPED_ENCRYPTED_LOG_HASH_LENGTH\n},\n traits::{Empty, Serialize, Deserialize}, utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct LogHash {\n value: Field,\n counter: u32,\n length: Field,\n}\n\nimpl Ordered for LogHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for LogHash {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for LogHash {\n fn eq(self, other: LogHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.length == other.length) \n }\n}\n\nimpl Empty for LogHash {\n fn empty() -> Self {\n LogHash {\n value: 0,\n counter: 0,\n length: 0,\n }\n }\n}\n\nimpl Serialize<LOG_HASH_LENGTH> for LogHash {\n fn serialize(self) -> [Field; LOG_HASH_LENGTH] {\n [self.value, self.counter as Field, self.length]\n }\n}\n\nimpl Deserialize<LOG_HASH_LENGTH> for LogHash {\n fn deserialize(values: [Field; LOG_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n length: values[2],\n }\n }\n}\n\nimpl LogHash {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedLogHash {\n ScopedLogHash { log_hash: self, contract_address }\n }\n}\n\nstruct ScopedLogHash {\n log_hash: LogHash,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<LogHash> for ScopedLogHash {\n fn inner(self) -> LogHash {\n self.log_hash\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Ordered for ScopedLogHash {\n fn counter(self) -> u32 {\n self.log_hash.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedLogHash {\n fn value(self) -> Field {\n self.log_hash.value\n }\n fn counter(self) -> u32 {\n self.log_hash.counter\n }\n}\n\nimpl Eq for ScopedLogHash {\n fn eq(self, other: ScopedLogHash) -> bool {\n (self.log_hash == other.log_hash)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedLogHash {\n fn empty() -> Self {\n ScopedLogHash {\n log_hash: LogHash::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_LOG_HASH_LENGTH> for ScopedLogHash {\n fn serialize(self) -> [Field; SCOPED_LOG_HASH_LENGTH] {\n array_concat(self.log_hash.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_LOG_HASH_LENGTH> for ScopedLogHash {\n fn deserialize(values: [Field; SCOPED_LOG_HASH_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n log_hash: reader.read_struct(LogHash::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl ScopedLogHash {\n pub fn expose_to_public(self) -> Self {\n // Hide the counter when exposing to public.\n Self {\n log_hash: LogHash { value: self.log_hash.value, counter: 0, length: self.log_hash.length },\n contract_address: self.contract_address\n }\n }\n}\n\nstruct EncryptedLogHash {\n value: Field,\n counter: u32,\n length: Field,\n randomness: Field,\n}\n\nimpl Ordered for EncryptedLogHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for EncryptedLogHash {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for EncryptedLogHash {\n fn eq(self, other: EncryptedLogHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.length == other.length) \n & (self.randomness == other.randomness) \n }\n}\n\nimpl Empty for EncryptedLogHash {\n fn empty() -> Self {\n EncryptedLogHash {\n value: 0,\n counter: 0,\n length: 0,\n randomness: 0,\n }\n }\n}\n\nimpl Serialize<ENCRYPTED_LOG_HASH_LENGTH> for EncryptedLogHash {\n fn serialize(self) -> [Field; ENCRYPTED_LOG_HASH_LENGTH] {\n [self.value, self.counter as Field, self.length, self.randomness]\n }\n}\n\nimpl Deserialize<ENCRYPTED_LOG_HASH_LENGTH> for EncryptedLogHash {\n fn deserialize(values: [Field; ENCRYPTED_LOG_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n length: values[2],\n randomness: values[3],\n }\n }\n}\n\nimpl EncryptedLogHash {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedEncryptedLogHash {\n ScopedEncryptedLogHash { log_hash: self, contract_address }\n }\n}\n\nstruct ScopedEncryptedLogHash {\n log_hash: EncryptedLogHash,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<EncryptedLogHash> for ScopedEncryptedLogHash {\n fn inner(self) -> EncryptedLogHash {\n self.log_hash\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl ScopedEncryptedLogHash {\n pub fn expose_to_public(self) -> LogHash {\n // Hide the secret randomness and counter when exposing to public\n // Expose as a LogHash rather than EncryptedLogHash to avoid bringing an unnec. 0 value around\n // The log hash will already be silo'd when we call this\n LogHash { value: self.log_hash.value, counter: 0, length: self.log_hash.length }\n }\n}\n\nimpl Ordered for ScopedEncryptedLogHash {\n fn counter(self) -> u32 {\n self.log_hash.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedEncryptedLogHash {\n fn value(self) -> Field {\n self.log_hash.value\n }\n fn counter(self) -> u32 {\n self.log_hash.counter\n }\n}\n\nimpl Eq for ScopedEncryptedLogHash {\n fn eq(self, other: ScopedEncryptedLogHash) -> bool {\n (self.log_hash == other.log_hash)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedEncryptedLogHash {\n fn empty() -> Self {\n ScopedEncryptedLogHash {\n log_hash: EncryptedLogHash::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_ENCRYPTED_LOG_HASH_LENGTH> for ScopedEncryptedLogHash {\n fn serialize(self) -> [Field; SCOPED_ENCRYPTED_LOG_HASH_LENGTH] {\n array_concat(self.log_hash.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_ENCRYPTED_LOG_HASH_LENGTH> for ScopedEncryptedLogHash {\n fn deserialize(values: [Field; SCOPED_ENCRYPTED_LOG_HASH_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n log_hash: reader.read_struct(EncryptedLogHash::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nstruct NoteLogHash {\n value: Field,\n counter: u32,\n length: Field,\n note_hash_counter: u32,\n}\n\nimpl NoteLogHash {\n pub fn expose_to_public(self) -> LogHash {\n // Hide the actual counter and note hash counter when exposing it to the public kernel.\n // The counter is usually note_hash.counter + 1, so it can be revealing.\n // Expose as a LogHash rather than NoteLogHash to avoid bringing an unnec. 0 value around\n LogHash { value: self.value, counter: 0, length: self.length }\n }\n}\n\nimpl Ordered for NoteLogHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for NoteLogHash {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteLogHash {\n fn eq(self, other: NoteLogHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.length == other.length) \n & (self.note_hash_counter == other.note_hash_counter) \n }\n}\n\nimpl Empty for NoteLogHash {\n fn empty() -> Self {\n NoteLogHash {\n value: 0,\n counter: 0,\n length: 0,\n note_hash_counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_LOG_HASH_LENGTH> for NoteLogHash {\n fn serialize(self) -> [Field; NOTE_LOG_HASH_LENGTH] {\n [self.value, self.counter as Field, self.length, self.note_hash_counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_LOG_HASH_LENGTH> for NoteLogHash {\n fn deserialize(values: [Field; NOTE_LOG_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n length: values[2],\n note_hash_counter: values[3] as u32,\n }\n }\n}\n"},"223":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/append_only_tree_snapshot.nr","source":"struct AppendOnlyTreeSnapshot {\n root : Field,\n // TODO(Alvaro) change this to a u64\n next_available_leaf_index : u32\n}\n\nglobal APPEND_ONLY_TREE_SNAPSHOT_LENGTH: u32 = 2;\n\nimpl AppendOnlyTreeSnapshot {\n pub fn serialize(self) -> [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH] {\n [self.root, self.next_available_leaf_index as Field]\n }\n\n pub fn deserialize(serialized: [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH]) -> AppendOnlyTreeSnapshot {\n AppendOnlyTreeSnapshot { root: serialized[0], next_available_leaf_index: serialized[1] as u32 }\n }\n\n pub fn zero() -> Self {\n Self { root: 0, next_available_leaf_index: 0 }\n }\n}\n\nimpl Eq for AppendOnlyTreeSnapshot {\n fn eq(self, other : AppendOnlyTreeSnapshot) -> bool {\n (self.root == other.root) & (self.next_available_leaf_index == other.next_available_leaf_index)\n }\n}\n"},"224":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{CALL_CONTEXT_LENGTH, GENERATOR_INDEX__CALL_CONTEXT}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader\n};\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n}\n// docs:end:call-context\n\nimpl Eq for CallContext {\n fn eq(self, other: CallContext) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl Serialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n let mut serialized: BoundedVec<Field, CALL_CONTEXT_LENGTH> = BoundedVec::new();\n\n serialized.push(self.msg_sender.to_field());\n serialized.push(self.storage_contract_address.to_field());\n serialized.push(self.function_selector.to_field());\n serialized.push(self.is_delegate_call as Field);\n serialized.push(self.is_static_call as Field);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn deserialize(serialized: [Field; CALL_CONTEXT_LENGTH]) -> CallContext {\n let mut reader = Reader::new(serialized);\n CallContext {\n msg_sender: AztecAddress::from_field(reader.read()),\n storage_contract_address: AztecAddress::from_field(reader.read()),\n function_selector: FunctionSelector::from_field(reader.read()),\n is_delegate_call: reader.read() as bool,\n is_static_call: reader.read() as bool,\n }\n }\n}\n\nimpl Empty for CallContext {\n fn empty() -> Self {\n CallContext {\n msg_sender: AztecAddress::empty(),\n storage_contract_address: AztecAddress::empty(),\n function_selector: FunctionSelector::empty(),\n is_delegate_call: false,\n is_static_call: false,\n }\n }\n}\n\n#[test]\nfn serialize_deserialize_of_empty() {\n let context = CallContext::empty();\n let serialized = context.serialize();\n let deserialized = CallContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = true;\n\n let address: AztecAddress = AztecAddress::from_field(69420);\n context1.msg_sender = address;\n context2.msg_sender = address;\n\n assert(context1.eq(context2));\n}\n\n#[test(should_fail)]\nfn not_eq_test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = false;\n\n let address1: AztecAddress = AztecAddress::from_field(69420);\n let address2: AztecAddress = AztecAddress::from_field(42069);\n\n context1.msg_sender = address1;\n context2.msg_sender = address2;\n\n assert(context1.eq(context2));\n}\n\n#[test]\nfn hash_smoke() {\n let context = CallContext::empty();\n let _hashed = context.hash();\n}\n"},"225":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr","source":"use crate::{constants::MAX_BLOCK_NUMBER_LENGTH, traits::{Deserialize, Serialize, Empty}};\n\nstruct MaxBlockNumber {\n _opt: Option<u32>\n}\n\nimpl Empty for MaxBlockNumber {\n fn empty() -> Self {\n Self { _opt: Option::none() }\n }\n}\n\nimpl Eq for MaxBlockNumber {\n fn eq(self, other: Self) -> bool {\n self._opt == other._opt\n }\n}\n\nimpl Serialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn serialize(self) -> [Field; MAX_BLOCK_NUMBER_LENGTH] {\n [self._opt._is_some as Field, self._opt._value as Field]\n }\n}\n\nimpl Deserialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn deserialize(serialized: [Field; MAX_BLOCK_NUMBER_LENGTH]) -> MaxBlockNumber {\n MaxBlockNumber {\n _opt: Option {\n _is_some: serialized[0] as bool,\n _value: serialized[1] as u32,\n }\n }\n }\n}\n\nimpl MaxBlockNumber {\n pub fn new(max_block_number: u32) -> Self {\n Self { _opt: Option::some(max_block_number) }\n }\n\n pub fn is_none(self) -> bool {\n self._opt.is_none()\n }\n\n pub fn is_some(self) -> bool {\n self._opt.is_some()\n }\n\n pub fn unwrap(self) -> u32 {\n self._opt.unwrap()\n }\n\n pub fn unwrap_unchecked(self) -> u32 {\n self._opt.unwrap_unchecked()\n }\n\n pub fn min(lhs: MaxBlockNumber, rhs: MaxBlockNumber) -> MaxBlockNumber {\n if rhs.is_none() {\n lhs // lhs might also be none, but in that case both would be\n } else {\n MaxBlockNumber::min_with_u32(lhs, rhs.unwrap_unchecked())\n }\n }\n\n pub fn min_with_u32(lhs: MaxBlockNumber, rhs: u32) -> MaxBlockNumber {\n if lhs._opt.is_none() {\n MaxBlockNumber::new(rhs)\n } else {\n let lhs_value = lhs._opt.unwrap_unchecked();\n\n MaxBlockNumber::new(if lhs_value < rhs { lhs_value } else { rhs })\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = MaxBlockNumber::empty();\n let serialized = item.serialize();\n let deserialized = MaxBlockNumber::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn zeroed_is_none() {\n // Large parts of the kernel rely on zeroed to initialize structs. This conveniently matches what `default` does,\n // and though we should eventually move everything to use `default`, it's good to check for now that both are\n // equivalent.\n let a = MaxBlockNumber::empty();\n assert(a.is_none());\n}\n\n#[test]\nfn serde_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert(b.is_none());\n}\n\n#[test]\nfn serde_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert_eq(b.unwrap(), 13);\n}\n\n#[test(should_fail)]\nfn default_unwrap_panics() {\n let a = MaxBlockNumber::empty();\n let _ = a.unwrap();\n}\n\n#[test]\nfn min_default_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::empty();\n\n assert(MaxBlockNumber::min(a, b).is_none());\n}\n\n#[test]\nfn min_default_some() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::new(13);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_some_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::new(42);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_with_u32_default() {\n let a = MaxBlockNumber::empty();\n let b = 42;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 42);\n}\n\n#[test]\nfn min_with_u32_some() {\n let a = MaxBlockNumber::new(13);\n let b = 42;\n let c = 8;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min_with_u32(a, c).unwrap(), 8);\n}\n"},"228":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_data.nr","source":"use crate::{\n abis::function_selector::FunctionSelector,\n constants::{GENERATOR_INDEX__FUNCTION_DATA, FUNCTION_DATA_LENGTH}, hash::pedersen_hash,\n traits::{Serialize, Hash, Deserialize, Empty}\n};\n\nstruct FunctionData {\n selector : FunctionSelector,\n is_private : bool,\n}\n\nimpl Eq for FunctionData {\n fn eq(self, other: Self) -> bool {\n self.selector.eq(other.selector) &\n (self.is_private == other.is_private)\n }\n}\n\nimpl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn serialize(self) -> [Field; FUNCTION_DATA_LENGTH] {\n [\n self.selector.to_field(),\n self.is_private as Field,\n ]\n }\n}\n\nimpl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {\n fn deserialize(serialized: [Field; FUNCTION_DATA_LENGTH]) -> Self {\n Self {\n selector: FunctionSelector::from_field(serialized[0]),\n is_private: serialized[1] as bool,\n }\n }\n}\n\nimpl Hash for FunctionData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n\nimpl Empty for FunctionData {\n fn empty() -> Self {\n FunctionData {\n selector: FunctionSelector::empty(),\n is_private: false\n }\n }\n\n}\n\n#[test]\nfn serialization_of_empty() {\n let data = FunctionData::empty();\n let serialized = data.serialize();\n let deserialized = FunctionData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let data = FunctionData::empty();\n let hash = data.hash();\n\n // Value from function_data.test.ts \"computes empty function data hash\" test\n let test_data_empty_hash = 0x27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"235":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/messaging/l2_to_l1_message.nr","source":"use crate::{\n address::{AztecAddress, EthAddress},\n constants::{L2_TO_L1_MESSAGE_LENGTH, SCOPED_L2_TO_L1_MESSAGE_LENGTH},\n abis::side_effect::{Ordered, Scoped}, traits::{Deserialize, Empty, Serialize},\n utils::{arrays::array_concat, reader::Reader}\n};\n\n// Note: Not to be confused with L2ToL1Msg in Solidity\nstruct L2ToL1Message {\n recipient: EthAddress,\n content: Field,\n counter: u32,\n}\n\nimpl Ordered for L2ToL1Message {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Empty for L2ToL1Message {\n fn empty() -> Self {\n Self {\n recipient: EthAddress::empty(),\n content: 0,\n counter: 0,\n }\n }\n}\n\nimpl Eq for L2ToL1Message {\n fn eq(self, other: Self) -> bool {\n (self.recipient == other.recipient) & (self.content == other.content) & (self.counter == other.counter)\n }\n}\n\nimpl Serialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn serialize(self) -> [Field; L2_TO_L1_MESSAGE_LENGTH] {\n [self.recipient.to_field(), self.content, self.counter as Field]\n }\n}\n\nimpl Deserialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn deserialize(values: [Field; L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n Self {\n recipient: EthAddress::from_field(values[0]),\n content: values[1],\n counter: values[2] as u32,\n }\n }\n}\n\nimpl L2ToL1Message {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedL2ToL1Message {\n ScopedL2ToL1Message { message: self, contract_address }\n }\n}\n\nstruct ScopedL2ToL1Message {\n message: L2ToL1Message,\n contract_address: AztecAddress,\n}\n\nimpl Scoped<L2ToL1Message> for ScopedL2ToL1Message {\n fn inner(self) -> L2ToL1Message {\n self.message\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Ordered for ScopedL2ToL1Message {\n fn counter(self) -> u32 {\n self.message.counter\n }\n}\n\nimpl Eq for ScopedL2ToL1Message {\n fn eq(self, other: ScopedL2ToL1Message) -> bool {\n (self.message == other.message)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedL2ToL1Message {\n fn empty() -> Self {\n ScopedL2ToL1Message {\n message: L2ToL1Message::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn serialize(self) -> [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH] {\n array_concat(self.message.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn deserialize(values: [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n message: reader.read_struct(L2ToL1Message::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\n#[test]\nfn serialization_of_empty_l2() {\n let item = L2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = L2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped_l2() {\n let item = ScopedL2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = ScopedL2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"245":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/content_commitment.nr","source":"use crate::{\n constants::CONTENT_COMMITMENT_LENGTH, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct ContentCommitment {\n num_txs: Field,\n txs_effects_hash: Field,\n in_hash: Field,\n out_hash: Field,\n}\n\nimpl Serialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn serialize(self) -> [Field; CONTENT_COMMITMENT_LENGTH] {\n let mut fields: BoundedVec<Field, CONTENT_COMMITMENT_LENGTH> = BoundedVec::new();\n\n fields.push(self.num_txs);\n fields.push(self.txs_effects_hash);\n fields.push(self.in_hash);\n fields.push(self.out_hash);\n\n fields.storage\n }\n}\n\nimpl Deserialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn deserialize(serialized: [Field; CONTENT_COMMITMENT_LENGTH]) -> Self {\n let num_txs = serialized[0];\n\n let txs_effects_hash = serialized[1];\n\n let in_hash = serialized[2];\n\n let out_hash = serialized[3];\n\n Self {\n num_txs,\n txs_effects_hash,\n in_hash,\n out_hash,\n }\n }\n}\n\nimpl Empty for ContentCommitment {\n fn empty() -> Self {\n Self {\n num_txs: 0,\n txs_effects_hash: 0,\n in_hash: 0,\n out_hash: 0,\n }\n }\n}\n\nimpl Eq for ContentCommitment {\n fn eq(self, other: Self) -> bool {\n (self.num_txs == other.num_txs)\n & (self.txs_effects_hash == other.txs_effects_hash)\n & (self.in_hash == other.in_hash)\n & (self.out_hash == other.out_hash)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let empty = ContentCommitment::empty();\n let serialized = empty.serialize();\n let deserialized = ContentCommitment::deserialize(serialized);\n\n assert(empty.eq(deserialized));\n}\n"},"247":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/header.nr","source":"use crate::{\n abis::{\n append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n global_variables::{GlobalVariables, GLOBAL_VARIABLES_LENGTH}\n},\n constants::{GENERATOR_INDEX__BLOCK_HASH, HEADER_LENGTH, STATE_REFERENCE_LENGTH, CONTENT_COMMITMENT_LENGTH},\n hash::pedersen_hash, state_reference::StateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice, content_commitment::ContentCommitment\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n content_commitment: ContentCommitment,\n state: StateReference,\n global_variables: GlobalVariables,\n total_fees: Field\n}\n// docs:end:header\n\nimpl Eq for Header {\n fn eq(self, other: Self) -> bool {\n self.last_archive.eq(other.last_archive) &\n self.content_commitment.eq(other.content_commitment) &\n self.state.eq(other.state) &\n self.global_variables.eq(other.global_variables) &\n self.total_fees.eq(other.total_fees)\n }\n}\n\nimpl Serialize<HEADER_LENGTH> for Header {\n fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.last_archive.serialize());\n fields.extend_from_array(self.content_commitment.serialize());\n fields.extend_from_array(self.state.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n fields.push(self.total_fees);\n\n fields.storage\n }\n}\n\nimpl Deserialize<HEADER_LENGTH> for Header {\n fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let content_commitment_fields = arr_copy_slice(serialized, [0; CONTENT_COMMITMENT_LENGTH], offset);\n offset = offset + CONTENT_COMMITMENT_LENGTH;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n offset = offset + GLOBAL_VARIABLES_LENGTH;\n\n let total_fees = serialized[offset];\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n content_commitment: ContentCommitment::deserialize(content_commitment_fields),\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n total_fees\n }\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n content_commitment: ContentCommitment::empty(),\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n total_fees: 0\n }\n }\n}\n\nimpl Hash for Header {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header = Header::empty();\n let serialized = header.serialize();\n let deserialized = Header::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let header = Header::empty();\n let _hashed = header.hash();\n}\n\n#[test]\nfn empty_hash_is_zero() {\n let header = Header::empty();\n let hash = header.hash();\n\n // Value from new_contract_data.test.ts \"computes empty hash\" test\n let test_data_empty_hash = 0x124e8c40a6eca2e3ad10c04050b01a3fad00df3cea47b13592c7571b6914c7a7;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"248":{"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, messaging::l2_to_l1_message::ScopedL2ToL1Message,\n recursion::verification_key::VerificationKey, traits::is_empty,\n utils::field::field_from_bytes_32_trunc\n};\nuse std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = 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 pedersen_hash(\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, inner_note_hash: Field) -> Field {\n let inputs = [nonce, inner_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n pedersen_hash(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\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 pedersen_hash(\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 compute_siloed_encrypted_log_hash(address: AztecAddress, randomness: Field, log_hash: Field) -> Field {\n // TODO: Using 0 GENERATOR_INDEX here as interim before we move to posiedon\n // NB: A unique separator will be needed for masked_contract_address\n let mut masked_contract_address = pedersen_hash([address.to_field(), randomness], 0);\n if randomness == 0 {\n // In some cases, we actually want to reveal the contract address we are siloing with:\n // e.g. 'handshaking' contract w/ known address\n // An app providing randomness = 0 signals to not mask the address.\n masked_contract_address = address.to_field();\n }\n accumulate_sha256([masked_contract_address, log_hash])\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedEncryptedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_encrypted_log_hash(\n log_hash.contract_address,\n log_hash.log_hash.randomness,\n log_hash.log_hash.value\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 pedersen_hash([left, right], 0)\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#[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 = 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"},"249":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/partial_state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Serialize}\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nimpl Eq for PartialStateReference {\n fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n}\n\nimpl Serialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0], \n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n}\n\nimpl Deserialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let partial = PartialStateReference::empty();\n let _serialized = partial.serialize();\n let _deserialized = PartialStateReference::deserialize(_serialized);\n}\n"},"251":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/transaction/tx_context.nr","source":"use crate::{\n constants::{GENERATOR_INDEX__TX_CONTEXT, TX_CONTEXT_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n abis::gas_settings::GasSettings\n};\n\n// docs:start:tx-context\nstruct TxContext {\n chain_id : Field,\n version : Field,\n gas_settings: GasSettings,\n}\n// docs:end:tx-context\n\nimpl TxContext {\n pub fn new(chain_id: Field, version: Field, gas_settings: GasSettings) -> Self {\n TxContext { chain_id, version, gas_settings }\n }\n}\n\nimpl Eq for TxContext {\n fn eq(self, other: Self) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.gas_settings.eq(other.gas_settings))\n }\n}\n\nimpl Empty for TxContext {\n fn empty() -> Self {\n TxContext {\n chain_id: 0,\n version: 0,\n gas_settings: GasSettings::empty(),\n }\n }\n}\n\nimpl Serialize<TX_CONTEXT_LENGTH> for TxContext {\n fn serialize(self) -> [Field; TX_CONTEXT_LENGTH] {\n let mut fields: BoundedVec<Field, TX_CONTEXT_LENGTH> = BoundedVec::new();\n\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.extend_from_array(self.gas_settings.serialize());\n\n assert_eq(fields.len(), TX_CONTEXT_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<TX_CONTEXT_LENGTH> for TxContext {\n fn deserialize(serialized: [Field; TX_CONTEXT_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let context = Self {\n chain_id: reader.read(),\n version: reader.read(),\n gas_settings: reader.read_struct(GasSettings::deserialize),\n };\n\n reader.finish();\n context\n }\n}\n\nimpl Hash for TxContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__TX_CONTEXT)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let context = TxContext::empty();\n let serialized = context.serialize();\n let deserialized = TxContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let context = TxContext::empty();\n let hash = context.hash();\n\n // Value from tx_context.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x17e4357684c5a4349b4587c95b0b6161dcb4a3c5b02d4eb2ecc3b02c80193261;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"257":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n constants::{PARTIAL_STATE_REFERENCE_LENGTH, STATE_REFERENCE_LENGTH},\n partial_state_reference::PartialStateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nimpl Eq for StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n}\n\nimpl Serialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.l1_to_l2_message_tree.serialize());\n fields.extend_from_array(self.partial.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let state = StateReference::empty();\n let _serialized = state.serialize();\n let _deserialized = StateReference::deserialize(_serialized);\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constraint the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::from_slice(domain_generators.as_slice());\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n crate::assert_constant(starting_index);\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = crate::field::bn254::decompose_hint(scalar);\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\ntrait Hash{\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"271":{"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"},"283":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"297":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/eth_address.nr","source":"use crate::{\n constants::ETH_ADDRESS_LENGTH, hash::pedersen_hash,\n traits::{Empty, ToField, Serialize, Deserialize}, utils\n};\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn serialize(self: Self) -> [Field; ETH_ADDRESS_LENGTH] {\n [self.inner]\n }\n}\n\nimpl Deserialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn deserialize(fields: [Field; ETH_ADDRESS_LENGTH]) -> Self {\n EthAddress::from_field(fields[0])\n }\n}\n\nimpl EthAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn from_field(field: Field) -> Self {\n field.assert_max_bit_size(160);\n Self { inner: field }\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"},"298":{"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,\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([pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1])\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 = 0x1b6ead051e7b42665064ca6cf1ec77da0a36d86e00d1ff6e44077966c0c3a9fa;\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"},"406":{"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::unsafe::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::unsafe::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"},"61":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::pedersen_hash, traits::{Hash, Serialize}};\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 pedersen_hash(\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"},"99":{"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, set_public_teardown_function_call_internal,\n parse_public_call_stack_item_from_oracle\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n caller_context::CallerContext, function_selector::FunctionSelector,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, 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_stack_hashes : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_function_hash: Field,\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_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\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 // TODO(#7112): This function is called with non-zero note hash only in 1 of 25 cases in aztec-packages repo\n // - consider creating a separate function with 1 arg for the zero note hash case.\n fn push_nullifier(&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_stack_hashes: self.public_call_stack_hashes.storage,\n public_teardown_function_hash: self.public_teardown_function_hash,\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 }\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, 0)\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 item = 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 assert_eq(item.public_inputs.start_side_effect_counter, start_side_effect_counter);\n let end_side_effect_counter = item.public_inputs.end_side_effect_counter;\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 assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\n\n let mut caller_context = CallerContext::empty();\n caller_context.is_static_call = self.inputs.call_context.is_static_call;\n if is_delegate_call {\n caller_context.msg_sender = self.inputs.call_context.msg_sender;\n caller_context.storage_contract_address = self.inputs.call_context.storage_contract_address;\n }\n self.private_call_requests.push(\n PrivateCallRequest {\n target: item.contract_address,\n call_context: item.public_inputs.call_context,\n function_data: item.function_data,\n args_hash: item.public_inputs.args_hash,\n returns_hash: item.public_inputs.returns_hash,\n caller_context,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(item.public_inputs.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 mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_call_stack_hashes.push(item.get_compressed().hash());\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 mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_teardown_function_hash = item.get_compressed().hash();\n }\n\n fn validate_call_stack_item_from_oracle(\n self,\n item: PublicCallStackItem,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert_eq(item.public_inputs.start_side_effect_counter, self.side_effect_counter);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\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_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\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"}}}
1
+ {"transpiled":true,"noir_version":"0.32.0+32b4c6ed75387759b3d84df723a52679894feb2d","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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p39x5nNnfvNYc85/zvnA0YdTL07+nHfBp7SWylpqa2mspbWWzlp6axmsZXRyYs1Yy+yMm7Ws1rJZy24th7Wc1nJZy20tj1fMA4P9Ow/5rOW3VuDTuBWyVthaEWtFrRWzVtzaN9ZKWCtprZS1b62VtlbGWllr31krZ628tQrWvrdW0Vola5Wt/WCtirWq1qpZq26thrWa1mpZq22tjrW61upZq2+tgbWG1hpZa2ytibWm1ppZa26thbWW1lpZa22tjbW21tpZa2+tgzV/ax2tdbLW2VoXa12tdbPW3VoPaz2t9bLW21ofa32t9bPW39oAJ1/WBlkbbG2ItaHWhlkbbm2EtZHWRlkbbW2MtbHWxlkbb22CtYnWJln70dpka1OsTbU2zdp0azOszbQ2y9psa3OszbU2z9p8awusLbS2yNpia0usLbW2zNpyayusrbS2ytpqa2usrbW2ztp6axusbbS2ydpma1usbbW2zdp2azus/WRtp7Vd1nZb+9naHmt7re2z9ou1/dYOWDto7Vdrh6wdtnbE2m/Wjlo7Zu24tRPWTlo7Ze20tTPWzlo7Z+28td+tXbB20dola5etXbF21do1a9et3bB209ota39Yu23tjrW71u5Zu2/tgbWH1h5Ze2ztibWn1p5Ze27thbWX1v609sraa2tvrL219s7ae2sfrH205pwMgloLZi24tRDWQloLZS20tTDWwloLZy28tQjWIlqLZC2ytSjWolqLZi26tRjW/KzFtBbLWmxrcazFtRbPWnxrCawltJbImsdaYmtJrCW1lsxacmsprKW0lspaamtprKW1ls5aemsZrGW05pzkjLXM1rJYy2otm7Xs1nJYy2ktl7Xc1vJYy2stn7X81gpYK2itkLXC1opYK2qtmLXi1r6xVsJaSWulrH1rrbS1MtbKWvvOWjlr5a1VsPa9tYrWKlmrbO0Ha1WsVbVWzVp1azWs1bRWy1pta3Ws1bVWz1p9aw2sNbTWyFpja02sNbXWzFpzay2stbTWylpra22stbXWzlp7ax2s+VvraK2Ttc7Wuljraq2bte7Weljraa2Xtd7W+ljra62ftf7WBlgbaG2QtcHWhlgbam2YteHWRlgbaW2UtdHWxlgba22ctfHWJlibaG2StR+tTbY2xdpUa9OsTbc2w9pMa7OszbY2x9pca/Oszbe2wNpCa4usLba2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","debug_symbols":"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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/9WZ204yMRDHW9mFhdXlw/MBFeTTxLsFAeHOl9Hn8drEd/ARpTAT/q1IbOloaGLa3U5nfjPTw1q0WpRs9qepnVJdVV8LyzxRXW5W+hF1lZKceks4d7aEs7IlnElETr2C09QJtc26M2uuphbr8UsnDjaJrkC/WqfItfpBdeb0RfN2Uk6rYADhFcEn1Me1pr+c+hEwJ2fncvCOHd6Bd2yrAu94J2NbGQVHwO9RtsSOq3s2G40vddLF/Dm0sa8NIUwEfU1lfB2K5WhWJHOkIQ8p6a7BM+ekAfa1kH3W3XDmRwLtC5BlOZbhdcj8e2q5lhprxiXOuAJkqjCu5oyrQXxMMfFqUdvUabaUZTmhOM7nSC6j28pR4sQwB98KsB9vjg4mxsausot2nvFgKYBpT4Sp7BvdTSHdOfiwC778A3vxvpxGwwLsoY1C2fHl5yYwtUSYxhNkanky7cswTZFp35PpQITp8QGZDjyZDkWYBiUyHXoyHYkwja04HXkyHcswvSDTsSfTiQzTMzKdeDKdijA9WvvTqSfTmQzTAJnOPJnORZjGfWQ692AKXRuhedlkf8Dvv4ixs+bYRaAvvmu4LePLCJnagb74nCWh+Qzda0Jj/hfz9RLkI+4/Vo4vA30JzXHonPKN3RXIR4yd9X1yFeiLz56/yXfjtUwMxsh0HehL6BkTuvZ+Y95t45606R6P9yvvVAv+Pz/NgUeBDeWwK2A2JVer10gHdKTROEtrn+iAva5IXBb3LN/lrytufzAxunsyvs3vp/4Lxu2WdPEdZm9F3O7Avhayz7rZ1i3kkttvIMtyLMP3Pcxv7q9uqH23ZlzhjCtA5gbG9Zxx/My5MfF7pbbkXPvJXDd3UbzO74FJZl8qh/h7hQIbyuHkUgBTR4bp1+4Z6+BLF3yMZMvaS3FO+ZxXfzUOz6s6vHPPBvwtsAnvKqCbdXwC3tPG3MogAAA=","debug_symbols":"ndlBboMwFEXRvXgcVTxj/29nK1VVkYRUSBGJAqlUoey90KoL6J1h4M3O6HoJp/7w+HgfxvN1CvvXJVyux24eruN6WkLzEsvP2+nWjduLae7uc9i35rvQj6f1yeNzF87DpQ/7pOb5tttGFYzahoxERpGMWjJKZJTJyMjIyYiIaImIREQkIiIREYmISEREIiISEZGIiEREJCIiExGZiMhERCYiMhGRiYhMRGQiIhMRmYgwIsKICCMijIgwIsKICCMijIgwIsKICCcinIhwIsKJCCcinIhwIsKJCCcinIgoREQhIgoRUYiIQkQUIqIQEYWIKEREISIqEVGJiEpEVCKiEhGViKhERCUiKhFRiQg1DVoJrSJatWiV0CqjlaGVo1VBK2RDyIaQDSEbQjaEbAjZELIhZEPIhpCNiGxEZCMiGxHZiMhGRDYishGRDRQ0hYqmUNIUappCUVOoagplTaGuKRQ2hcqmUNoUaptCcVOobgrlTaG+KRQ4hQqnUOIUapxCkVOocgplTqHOKRQ6hUqnUOoUap36d+xcT5/dfegOl367+9o+Psbj31XYepy/br9f1n+/AQ=="}],"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":{"100":{"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"},"128":{"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"},"141":{"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"},"146":{"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"},"250":{"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"},"273":{"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"},"300":{"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\nglobal 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::unsafe::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::unsafe::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"},"62":{"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"}}}