@aztec/protocol-contracts 0.46.6 → 0.47.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.31.0+8403e849dff51c99a38ae15a4c39a40edc558214","name":"MultiCallEntrypoint","functions":[{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/+2b3U7bQBCF18GhBoOb2HGckEAIBaTehRSScMfLtM/d60p9haqss6Mclmm0UcdLVool5LG9O+ebsz+EyERqfSSvP5GJ2+Z8rN4f1ObFnGf/dzwI5po1yRkFwtkKhPMoEM5YkDNiOPU5NrFed3rNfVLr9fjuIXbWA30Ez9W2RLZqYgJ8eC1V6Wr2fAzJEVwZ8Ng8o7PGSc0zBEtNkXUbuEeFtuAe6RzBPdrBSCcxpgjX+5RskOXyvs4+XcOJyUXcKcT4bAzWxQ3V2Jav8bGRMXn1rqExqVcx+d42uRO4pjE4NbHgb44H1I7Mz6k1F2KIR9CW2pEfLWDVx7narJfTLf1iq18GbY6hn7230DWNtfaqa2J9btOeAPkb8HCm86byed+MTWx5l0JNGXgioz1f6fxn6u0RWdfXEGfAcy7Os1578nWux+4zsMvkfXrUXnUsr84srzJogwydBvyLQJdy03WH0ZbzYrHS2l0HL7oMT9ezF11GW9CLZ62dO3iRMzy5Zy9yRlvOi+U3rV04eFEwPIVnLwpGW86Lef0ZoOfgRY/h6Xn2osdoC66Rel6UDl6UDE/p2YuS0Rb04ofW7jt40Wd4+p696DPagl5819qVgxcVw1N59qJitAX3zvrzxcDBiwHDM/DsxYDRFvRirrWHDl4MGZ6hZy+GjLbgGqm1Lxy8uGB4Ljx7QXq7MvcCZK4CZC72gDmxYhntRb1/jhy8GDE8I89e4HcuuzCXe8CcWLGM9uJJa48dvBgzPGPPXpDersx5gMxFgMz9AJnLAJmrAJn3YT4nViyjvaz30EsHLy4ZnkvPXpDersx5gMyjAJmLPWBOrFhGe1l/N3fl4MUVw3Pl2QvS25V5ECBzdw+YEyuW0V4utPbEwYsJwzPx7AXp7co8DJC5CpB5FCBzESBzP0DmMkDmwxr0w5zvATO+e/S7UZ75c2rxkGfKYlQWYwpxBozU9kXJva+SWbWT1lTcj/X42POFrqeNas9XOu+XBmrSeW/l89Z/I9yZXPQO3y3j1b2JI+FxuoO8EejQ/RjiX9CW2pEftB8Qu36X68bE91v6Tax+GbS5gX63Vj+6prHW3v00cVNzy2Ved9RmLX8Fngb2wUd8J1eBV8pipGMCPNfyPA8N1TnDd/j+KNm1N7W8OrG8yqAN7tEftW8emA/M/2LGzxMncA956F7LqgX/v2EKOf4CARQXTpY1AAA=","debug_symbols":"ndpRattAGIXRveg5FN/foxkpWymlOIlTDMEJsVMoJnuv3dIF9LxpJN237+kwl+lp//Dx4/vh+Px6mu6/XqaX18fd+fB6vJ4u0+ZLLX/ent52x9uL03n3fp7ut33cTfvj0/Vp1Ofd9Hx42U/3bbP5/HZ3G60w2m5kFBmVjLYyajKaZdRlNGQkRWyliCZFNCmiSRFNimhSRJMimhTRpIgmRTQpYpYiZililiJmKWKWImYpYpYiZililiJmKaJLEV2K6FJElyK6FNGliC5FdCmiSxFdihhSxJAihhQxpIghRQwpYkgRQ4oYUsSQIhYpYpEiFilikSIWKWKRIhYpYpEiFilikSJWKWKVIlYpYpUiVililSJWKWKVIlYpYpUistnQKrQqWm1p1Wg106rTatBqoRW1EWoj1EaojVAboTZCbYTaCLURaiPURlEbRW0UtVHURlEbRW0UtVHUBoFmSDRDpBkyzRBqhlQzxJoh1wzBZkg2Q7QZss0QboZ0M8SbId8MAWdIOEPEGTLOEHKGlDPEnCHnDEFnSDpD1BmyzhB2hrQzxJ0h7wyBZ0g8Q+QZMs8QeobUM8SeIfcMwWdIPkP0GbLPEH6G9DPEnyH/DAFoSEBDBBoy0BCChhQ0xKAhBw1BaEhCQxQastAQhoY0NMShIQ8NgWhIREMkGjLREIqGVDTEoiEXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy276EkuWuSiRS5a5KJFLlrkokUuWv/totfTz937Yffwsr/d7b19/Dg+/rvqez2ef739/XL99zc="},{"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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MaPdUcwfv6PY9vhYUA/p+4J2tAUltAVltAUVtAVVtAU1tAV1sAV9+o5i2fb9vqCyle37ggLagj68U5e6P46OUmv8vqAdbUEJbUH50wvqzwW1vX9fUEFbUEVbUENbUAdb0KfvKJ4vKKAt6NM7dXs84Hf7v/sPC9rRFpTQFvThnbpuId8XVLe2f1/Qh3fqGrbwWFAo+fuCKtqCGtqCPrxT11r7Y0Etl3+/oPLpO4rnC/rwTl1bf/5X1nv4vqCItqAdbUEf3qnb3h7Py7a2//Zf2c8b+3MbfRrw++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+4RO2rjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806muPNOprjzTqa4806miz3Sqz2eF2/fFg5+wrxf/1yds6D3eFx/L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qzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rhmqzeu2eqNa7Z645qt3rlmq3eu2eqda7Z655qt3rfEVS6Vq+pcs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U712z1zjVbvXPNVu9cs9U71Wz1ulHNVr+Vy+SqbuUyuapbuUyu6lZu4iqXyVXdymVyVbdymVzVrVwmV3Url8tVUc1Wv5XL5aqoZqvfyuVyVVSz1W/lcrkqqtnqt3K5XBXVbPVbuVyuimq2+q1cLldFNVv9Vi6Xq6KarX4rl8tVUc1Wv5XL5aqoZqvfyuVyVVSz1W/lcrkqqtnqt3K5XBXVbPVbuVyuimq2+q1cLldFNVv9Vi6Xq6KarX4rl8tVUc1Wv5XL5aqoZqvfyuVyVVSz1W/lcrkqqtnqt3K5XBXVbPVbuVyuimq2+q1cLldFNVv9Vi6Xq6KarX4rl8tVUc1Wv5XL5aqoZqvfyuVyVVSz1W/lcrkqqtnqt3K5XBXVbPVbuVyuimq2+q1cLldFNVv9Vi6Xq6KarX4rl8tVUc1Wv5XL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rmW5XK9UlXzPslyuV6pKvmNZLtcrVSXfryyX65Wqku9Wlsv1SlXJ9yrL5XqlquQ7leVyvVJV8n3KcrleqSr5LmW5XK9UdfdKVXevVJV8S7Zcrleqal6pqnmlquQ70OVyvVJV8h3ocrleqSr5DnS5XK9UlXwHulyuV6pKvgNdLtcrVSXfgS6X65Wqku9Al8v1SlVeu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uy1W3322q0+e+1Wn712q8+35iXXKlXNXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtfvfarX732q1+99qtfvfarX6/NS+5Vqnq7rVb/e61W/3utVv97rVb/e61W/3utVv97rVb/e61W/3utVv97rVb/e61W/3utVv97rVb/V5p+/axzY8Xb/cTuYWeuxG5hT6Zj31/vng7kVvokzkit9Anc0RuoU/miNxCfTcgt9J+5ojcSs/dgNxKz92A3EJ9NyK3ecn1SlWV9jNH5A6bql4Shk1KLwmp08/X+5iX5xu57evF/+zOf/ZTcO5Nyp8QnDoBfUJw6gz0CcGpU9AnBDc3wamT0CcEp85CnxCcOg19QnDq7PQJwW5JK/d25U8IdktauTcsf0KwW9LKvWX5E4LdklbuTcufEOyWtHJvW/6EYLeklXvj8icEuyWt3FuXPyHYLWnl3rz8CcFuSSv39uVPCHZLWrk3MH9CsFvSyr249qeCl/b4y9alnQku9ViKCC71obUsj7/DWNaTv8PIveD0E4JLfWgFBOdecvoJwaXqYURwqXoYEVzqObxO669Xr/f5RHCp53BEcKl6GBFcqh5GBJdKWhHBpZJWRHCppBUQnHvx6ScEl0paEcGlklZEsFvSyr0A9ROCB05aLxEDp6eXiOSJaLq/3sjU2sX/9ALj1NwLSz8hOHki+pngeX6+kbb8VnDLvbT0E4KTJyK94OSJSC84eSLSC25ugpMnoh8KXh7RY96mE8HJ05NecKmkFRFcKmlFBNdKWteCcy8y/YTgWkkrILhW0goIzp60tvvzjczbcSH4nw0fj5ffv7+T+fgmuflJzp62PiA5e976gOTsiesDkrNnrg9Izp669JLn7LnrA5KzJ68PSM6evT4g2S99zc1Psl/6yr2++DOS/dJX7jXGn5Hsl75yrzP+jGS/9JV7rfFnJPulr9zrjT8j2S995V5z/BnJfukr92rkz0j2S1/Zlyl/QrJf+sq+UPkTkv3SV/alyp+Q7Je+si9W/oRkv/SVfbnyJyT7pa/sC5Y/IdkvfWVfsvwJyX7pK/ui5U9I9ktf2Zctf0KyX/rKvnD5A5KzL+T9meTri88t+0JeveBSn9bX9wlb9nWtesGlPqkjgkt9TkcEl+rIAcFbqYYcEVzrORwQXOs5HBBcqhtHBDc3wW5Ja3NLWtl3TL8T/BIxcHp6iUieiO7z7flG7vf7xf/0rhcQtey7oPWCkyciveDkiehnggPbWrLvgtYLbm6CkyciveDkiUgvOHki0gtOnp70gkslrcDykuy7oPWCSyWtiOBaSSsguFbSCghuboJrJa2A4JGSVrv9foqRfW90TMRIiehURPaUsx0vEcf8P08bluz7nfWCs6ecHwm+Du5L9v3OesHZU45ccHMTnD3lyAVnTzlywdkT0c8EX+bYJft+Z73gUkkrIDj7fme94FpJKyC4VtIKCK6VtAKC20iCf/83E0v2fc0xEUMlojMRyVNOa683srSrP5za9/b4y6l9X9u3d3L/Jjl5zvmE5ORJ5wOSs+9U/oTk5GnnE5KT551PSE6eeD4huflJTp6QPiE5eZ76hGS/9JV9p/InJPulr+w7lT8h2S99Zd+p/AnJfukr+07lT0j2S1/Zdyp/QrJf+sq+U/kTkv3SV/adyp+Q7Je+su9U/oRkv/SVfafyJyT7pa/sO5U/IdkvfWXfqfwJyX7pK/tO5U9I9ktf2Xcqf0KyX/rKvlP5E5L90lf2ncqfkOyXvrLvVP6EZL/0tfqlr+ybsz8h2S99rX7pK/v+7J9Jvt6QvmTfny0XnH278g8FX+7tXLJvV9YLLvVJHRFc6nM6Iri5CS7VkCOCaz2HA4JrPYcDgkt144jgUs04IDj71ma9YLeklX1r8zvBLxEDp6eXiJZbxLI/z7Hd1uPqf3ptWx/vu23b7fdVPft+5U9ITp6KPiE5eS76hOTkyegTkpNnow9Izr5p+ROSk+ejT0hOnpA+ITl5nvqE5OYn2S99Zd+6/AnJfukr+0bnT0i2S19r9g3Qn5Bsl77W7FugPyHZLn2tt+Yn2S59rdm3QX9Csl36WrNvhP6EZL/0lX0r9Cck+6Wv7JuhPyHZL31l3w79Ccl+6Sv75ulPSPZLX9n3VH9Csl/6yr6n+hOS/dJX9j3Vn5Dsl76y76n+hGS/9JV9T/UnJPulr+x7qj8h2S99Zd9T/QnJfukr+57qT0j2S1/Z91R/QrJf+sq+p/oTkv3SV/Y91Z+Q7Je+su+p/oRkv/SVfU/1JyT7pa/se6o/IdkvfWXfU/0JyX7pK/ue6k9I9ktf2fdUf0KyX/rKvqf6E5L90lf2PdWfkOyXvrLvqf6EZL/0lX1P9Sck+6Wv7HuqPyHZL31l31P9Ccl+6WttfpL90lf2beSfkOyXvla/9LX6pa/sW8l/Jvl60f6afSu5XnCpT+vr9a9r9p3VesGlPqkjgkt9TgcEZ99ZrRdcqiFHBNd6DgcE13oOBwQ3N8GlmnFEsFvSqrUFOyJ44KT1EjFwenqKyL6nervvzzey35eL/+lN9+P2ePn9m+R/VfXse6o/ITl5KvqE5OS56BOSm5/k5NnoE5KTp6NPSE6ejz4hOXlC+oTk5HlKL3nLvqf6E5Lt0teWfU/1JyTbpa/t1vwk26WvLfue6k9ItktfW/Y91Z+Q7Je+su+p/oRkv/SVfU/1JyT7pa/se6o/IdkvfWXfU/0JyX7pK/ue6k9I9ktf2fdUf0KyX/rKvqf6E5L90lf2PdWfkOyXvrLvqf6EZL/0lX1P9Sck+6Wv7HuqPyHZL31l31P9Ccl+6Sv7nupPSPZLX9n3VH9Csl/6yr6n+hOS/dJX9j3Vn5Dsl76y76n+hGS/9JV9T/UnJPulr+x7qj8h2S99Zd9T/QnJfukr+57qT0j2S1/Z91R/QrJf+sq+p/oTkv3SV/Y91Z+Q7Je+su+p/oRkv/SVfYPxzyRfLw7csu8v1gsu9Wl9vc5my77VVi+41Cd1RHCpz+mA4K1UR44ILtWQI4JrPYcDgms9hwOCm5vgUs04ItgtaWXfSa0XPHDSeokYOD09RWTfHb2vLxHHbbv4n96yP2rcsu+vn71t3wQnT0R6wckT0c8Eb/vx/Nnzxc8+fx8vOMnTU184DTjncJKnsr5wkie4vnCSp72+cJInw75wkifOrnCy7/zuC6dU6lXDISG/gUNCfgOnAeccDgn5DRwS8hs4JOQ3cEjIb+CQkE/h7Nn3sveFQ0J+A4eE/AYOCfkNnAacczgk5DdwSMhv4JCQ38AhIb+BQ0I+h5N9d35fOCTkN3BIyG/g2D7Kl/b8+5x2Bsf2UR6Ak32d9gfhLI+fvKzbCRzbD+QIHNsP5Agc25FFBE4Dzjkc25FFBI5tzlmn9ddr1/t8Asc250Tg2I4sInBsRxYBONlXnveFY5uQI3BsE3IEjm1CjsBpwDmHY5uQI3BIyG/gkJDfwCEhv4FDQj6Hk30tfV84JOQ3cEjIb+CQkN/AaaXg/ORnr68fva7ftiW26RueWhlZjqdWSpbjqZWT5XhqJWU5nlpZ+Sc/e7s9Hlz/bC/6F57f/L7rcrXMnv3kwEgoa+XwrihrpfauKGtl/K4oGyhVKH3bgxylb9OQo/RtJXKUvg1GjpK2o0K50nZkKGk7MpS0HRlK2o4MZQOlCiVtR4aStiNDSduRoaTtyFDSdlQos5/KGgkluTKGcnn8Dc6yTScoGyhVKHmCy/4fnCe4DCVPcBXKWqed+qJkXilDybzyNyhfeMiKb/E08LzDYzwrPJ4/er+f4TGe/0XwGDeCCB7jlB/BY5zcA3iKnaeS4/FN2PszNE9H2/+F548SdrFzVl1R+qZxOcoGShVK35QvR+nbCOQofduDHKVv05Cj9G0lYpRHsfNhXVHSdmQoaTsylLQdGcoGShVK2o4MJW1HhpK2I0NJ25GhpO2oUBY7BdcVJW1HhpK2I0NJ25GhbKBUoaTtyFDSdmQoaTsylLQdGUrajgplsTurXVE2UIZQXn5F8Sh2bLIrSh47sv8H57GjQlnseGFXlAzZZCgZsslQMmT7DcoXngaed3jIf2/x+A64jvXx4vlL7gke36FVCI9vIwjh8U35ETzFjirK8fim8RAe24Q93+7TE8/R/oXnNwm73R4Je719U/gtYRc7w9gVZQOlCqVtctejtE35epS2jUCP0rY96FHaNg05St+DlHqUtg1Gj5K2I0NJ25GhbKBUoaTtyFDSdmQoaTsylLQdGUrajgql70FKPUrajgwlbUeGkrYjQ9lAqUJJ25GhpO3IUNJ2ZChpOzKUtB0VSt+DlHqUtB0ZStqODCVtR4aygVKFkrYjQ0nbkaGk7chQ0nZkKGk7KpS+x3v1KGk7MpS0HRlK2o4MZQOlCiVtR4aStiNDSdtRofS9s/pDlNcr1XzvrOpR8tiJobzeuOR70VKPkseODCVDNhlKhmwalPPN96LlO5QvPGTFt3jIf2/x+A64pun5rqd2hqeB5x0e30YQwuOb8kN4fJN7CI9vGg/h8U3Y074833U7/oXnD8aN8833iqIepW8al6P0Te5ylMYpX42ygVKF0rg9qFEaNw01SuNWokZp3GDUKGk7KpS+VxT1KGk7MpS0HRlK2o4MZQOlCiVtR4aStiNDSduRoaTtyFDSdlQofY/36lHSdmQoaTsylLQdGcoGShVK2o4MJW1HhpK2I0NJ25GhpO2oUPoePNajpO3IUNJ2ZChpOzKUDZQqlLQdGUrajgwlbUeGkrYjQ0nbUaE0PqQsR0nbkaGk7chQ0nZkKBsoVSgJQzGUVyvVvlAShlQojS9a/gzl9cYl44uWcpQ8dmQoGbLJUDJkk6FkyPYblC88ZMW3eMh/7/AYX5Ocnz96vt9uJ3h8h1YhPL6NIITHN+WH8DTwvMPjm8ZDeHwT9n1+4WnrCR7f1BzC45uaQ3h8U3MEj/FVwhAe39QcwuObmu/HY9wzt7b/C89/v7odj/exTN9+JfH9F2XG1wPlKBsoVSh9k7scpXHKV6M0bgRqlMbtQY3SuGn8BOW3vxpa7r9HeRi3EjVK4wajRknbkaGk7chQNlCqUNJ2ZChpOz9FefYn1MZHa+UoaTsylL5tpz3/0m9e7ld/FrjtD5Tb8e0nf/13D5ST8dFaOUrftiNH6dt25Ch9244cZQOlCqVv2/kRyn1+SNzv6wlK37YjR+nbduQofduOHCVtR4XS+ICwHCVtJ4Zyef7k7XaCkrYjQ0nbkaFsoFShpO3IUNJ2ZChpOzKUtJ0Yyucvgo7bcoKStqNCaXxAWI6StiNDSduRoaTtyFA2UKpQ+radZX385mteb9MFyq8u8/jRX//ntz+LWaZvMH37zgdg+jaeD8D07TwfgOnben4Gc57a443M+/YvmP/96uu1eJPx2eHO4H0bVWfwvv2rM3jfttYZfAN8H/A0wU7gaY2dwNMwO4GnjXYCT3PtA974hHRn8DTXTuBprp3A01w7gW+A7wOe5toJPM21E3iaayfwNNdO4GmufcAbnwPvDJ4c/wnwlzdfJ+Ojzp3Bk2o6fdSQajqBJ9X0Ab+SajqBZx7fCTzz+P8Z/Asm2VwIswFTB5NZeAzm/bY+3si9ncFkvi2ESbsTwqSxCWHSwnQwN5qVECZtKQhze0wXp7bc/gXzN6/e2hP93r69k6//+4WevtQNPe2qG/oG+l7oaW7d0NPzuqGnFXZDT4fshp7G2Qv9Tj/thp422w09bbYbetpsN/QN9L3Q02a7oafNdkNPm+2GnjbbDT1tthf6gzbbDT1ttht62mw39LTZbugb6Huhp812Q0+b7YaeNtsNPW22G3rabCf084022w09bbYbetpsN/S02W7oG+h7oafNdkNPm+2GnjbbDT1tthf6iXD5AfTXy8zmiWjZCTyP2E+Av9wwNE88YDuB5/HaCTyj4j7gZwbFncAzJv6fwb9gks2FMMnbMZjL9NA4Ldt+8ZHQjse7XqZvP3n6/pHQAN8HPGPcTuBpmJ3A0zA7gadhdgJPw+wD/k7D/AD4pT1+9LLcT8DTMDuBp412Ak9z7QS+Ab4PeJprJ/A0107gaa6fBb/eTsDTXDuBp7n2Ad9orjHw64vIukwX4KelPY/vLMv27Wd/+2O7Rnfthp722g09/bUb+gb6XujpsN3Q02I/gv75t9VfQXQ+QU+P7YaeJtsNPV22F/qFNtsNPW22G3ra7CfQt+P2RL//O1z+0ahtofkOYVPDphFsolF/wqZ1e716byfPGxp1N/Q06m7oadTd0NOoe6FfadTd0NOou6GnUX8E/f5cQbQexwl6WnI39A30vdDTZruhp812Q0+b7YaeNtsNPW32I+inxxuZtunfuf6PBswbzXcIm2jJQ9hEo/6ETfvt+Vu1f72T78+bjUbdDX0DfS/0NOpu6GnU3dDTqLuhp1F3Q0+j/gj6aXmin/ffo99pyd3Q03y7oafNdkNPm+2GvoG+F3rabDf0tNlPoH9zjuyPBsw7zXcIm2jJQ9jk26jX+/Ndf/02/8qm5Xj9wn86vr2P3xJZHo+b+fs9uq/38QR/+PbpzuB923Rn8L5dujN43yYtA/+C2YCpg+nbdj8A07e/fgCmb8v8AEzfLvgBmDQ2Gcz7jRYmhEmzisFc1+eup3Wf/wXzN+9jebzr7fj297n3b9wpVn2406s+wH2enz+6Lb8ttPdbA3wf8PS1TuDpdp3A0wM7gaczdgJPv/wE+Msx/X2ii3YCT2+Ngd9uz7+i2qb9f+5PE721D3d66we4Bx6tUwN8H/D01k7g6a2dwNNbO4Gnt3YCT2/9BPjr+jTTWzuBp7cGwb/+aH5brv6g8ro/zfTWPtzprR/gHni0zg3wfcDTWzuBp7d2Ak9v7QSe3toJPL31E+Cv69Od3toJPL01CH5/Xr3fju1/7k93emsf7vTWD3APPFrvDfB9wNNbO4Gnt3YCT2/tBJ7e2gk8vfUT4K/rU6O3dgJPb/0x+P3W/gX+BZMyKoRJwxTCbMAMwdyXJ5F9bf/v/zomaZTGPtzpjB/gHkjQjc7YCTydsRN4OmMf8AudsRN4OmMn8PTLT4C/npIsdNFO4BvgY+Dn/QV+uQB/3B/LBo712533Y/qjrrXQcfN7RB/O7xHVOb9HtOz8HlHI03u00t3ze0TNz+8RE4H8HjE8yO9Rw6P0HjFniHl0TM9dksf9apdkgDuzgz7cmQd8gHvg1ywrJb8TeJp7H/AbdbwTeDp2J/AU507gacOfAH/9q/StAb4PeHprJ/AU107gaa5B8Mv2BH/5bb53r36hp7t2Q097/QD6bT+e72O+eB/n7/lp0k7THcAkWvEAJtGgBzCJtj2ASQ2T8ptEix/AJBr/ACYxHRjAJOYIA5jExCG/SQcThwFMYuIwgElMHAYwiYnDACY1TMpvEhOHAUxi4jCASUwcBjCJicMAJjFxSG9SuzFxGMAkJg4DmMTEYQCTmDgMYFLDpPwmMXEYwCQmDgOYxMQhv0kTPamzSUubf712aWcm0ZMGMKlhUmeTnutklnU7MYl0N4BJpLsBTCLdDWASv08awCR+n5TfpJme1NmkdVp/vXa9zycm0ZMGMInfJw1gEr9PGsCkhkn5TWLiMIBJTBwGMImJwwAmMXEYwCQmDvlNujNxGMAkJg4DmMTEYQCTmDh8wqQfvI/j+TcOx7J8+7nzN5MaJuU3iYnDACYxcRjAJCYOA5jExGEAk5g45DepMXHobdLzBx/b7cQkJg4DmMTEYQCTmDgMYFLDpPwmMXEYwCQmDgOYxMThr5r0As8UoRN4JgN9wC+0/U7gafCdwNPKO4GnaXcC3zzAvwSbNNGXYJNW9xJs0pBegk2ayUuwSSN4Cl5NkvhLcPIEfDwf2l//97ZcCJ6W56uXdiI4efLUC06e+H4mWLxzbW3AOYeTPMH1hZM87fWFkzwZ9oWTPEX2hZM8cXaFsyVPp33hlEqyajilUq8aDgn5DZwGnHM4JOQ3cEjIb+CQkN/AISG/gUNCPoezk5DfwCEhv4FDQn4Dh4T8Bk4DzjkcEvIbOCTkN3BIyG/gkJDfwCEhn8M5SMhv4JCQ38AhIb+BQ0J+A6cB5xwOCfkNHBLyGzgk5DdwSMhv4JCQT+EsNxLyGzgk5DdwSMhv4JCQ38BpwDmHQ0J+A4eE/AYOCfkNHBLyGzgk5HM4Ewn5DRwS8hs4JOQ3cEjIb+A04JzDISG/gUNCfgOHhPwGDgn5DRwS8jmc7Je1PwdneS63X9oZHNucE4Fj+7Ralsduk2XdTuDYPq0icGyfVhE4tk+rAJzs9037wrGd50Tg2Oac6zuaS/Y7mn3hNOCcw7Gd50Tg2CbkCBzbhByBY5uQI3BsE3IATvZ7fH3h2CbkCBwS8hs4JOQ3cBpwzuGQkN/AISG/gUNCfgOHhPwGDgn5HE72G1Y/hPOTn70sj9/qTcu3nzy33736i9RD4jadoKyVp7uirJW+u6KsldW7omyg/G+ULzy1sr0cT610L8dTK9/L8dRK+HI8tTK+Gk/2+1i98ZDc3+LxTePr/Gjb0/pN4+8jZKBuF7vq1RVlA2UE5Tw/JbblBKVvcpej9E35cpS+jUCO0rc9yFH6Ng01ymJ30bqi9G0wP0N5PeUtdnOtK0rjtrMuT5Tb/r+3nWL33LqiNG47P0EZeewYtx01SuO2o0Zp3HbUKI3bjhhlsRt3XVEatx01SuO28yOU122n2LW9rigbKFUoaTsylL5tZ7s9avW0LbcLlNPyfB9LO0Hp23bkKH3bzo9QilfFFbtWOAr2YncQh8Hu27i6YvdtZ12x+za5rtgb2Htg922IXbHTJrtgp3l2wU5L7YKdltoB+1rsFukw2GmpXbDTUrtgp6V2wd7A3gM7LbULdlpqF+y01C7YaaldsNNSe2Avdg94GOy01C7YaaldsNNSu2BvYO+BnZbaBTsttQt2WmoX7LTULthpqT2wz7TU/9MDOy21C3ZaahfstNQu2BvYe2CnpXbBTkvtgp2W2gU7LbULdlpqD+x3WmoX7LTULthpqV2w01K7YG9g74GdltoFOy21C3Zyuxz70h7HrZZ2gr2R27tgJ8nosS/7A/u6nWBvYO+BnSTTBTtJpgt25u1dsDNv74Kd3C7Hfn3EZV3I7V2wM2/vgp15exfstNQu2BvYe2CnpXbBTkvtgp2W2gU7LbULdlpqD+wrLbULdlpqF+y01C7YaaldsDew98BOS+2CnZbaBTstNYb9Bz95nu+3F49vr75NP/rJL5PotAOYRAPOb9JGXx7AJNr1XzXpBZ5+3Qk8DbsT+Ab4PuBp2Z3A07M7gadpdwJPe+4EnkbcB/xOy+0Enub6AfD7E/x9Wv8F/jfvY7m1x/tYlterp/X4ZhM9dwibaMWdbRKvINgbhtYylBZfzFCmA8UMZepQzFCmGcUMZUpSy9CD6UsxQ5nqFDOU+U8xQ5kUFTO0YWgtQ5kUFTOUSVExQ5kUFTOUSVExQ5kUlTJ0uzEpKmYok6JihjIpKmYok6JihjYMrWUok6JihjIpKmYok6JihjIpKmYok6Jahk5MiooZyqSomKENQ8cx9PqC5DbRQ4sZSsodydDLy2jbRMqtZehMyi1mKCm3mKH8PrSYofw+tJihDUPHMfR6Q/s200OLGcrvQ4sZyu9DixnKpKiYoUyKahl6Z1JUzFAmRcUMZVJUzFAmRcUMbRhay1AmRcUMZVJUzFAmRb0N/cl7XqYnjmX+/ZLy7c6sqJylTIuqWdqYF5WzlIlROUuZGZWzlKlROUsblg5q6f1+YimTo3KWMjsqZynTo6EsvS9PS9t+YinTo3KWMj2qZunC9KicpUyPylnK9KicpUyPylnasHRQS5flxFKmR+UsZXpUzlKmR2ktfZnEPGgAk5jw6E26T/vTpKVdmDQtt/b6wDv5PeXK1GYIm5jEdLZJvAlzZQ5TzFCmMMUMbRhay1AmMMUMZf5SzFCmL8UMZVJTzFCmOrUM3Zj/FDOUSVExQ5kUFTOUSVExQxuG1jKUSVExQ5kUFTOUSVExQ5kUFTOUSVEtQ3cmRcUMZVJUzFAmRcUMZVJUzNCGobUMZVJUzFAmRcUMZVJUzFAmRcUMZVJUy9CDHjqQoUubf712aWeG0kOLGUrKHcnQ64PmBym3mKGk3GKGknJLGbrf+H1oMUP5fWgxQ+mhAxl6fRlwv9FDixnaMLSWofw+tJihTIqKGcqkqJihTIqKGcqkqJahE5OiYoYyKSpmKJOiYoYyKSpmaMPQWoYyKept6E/ec+Dm9T4xKypnKdOicpYyLypnKROjapbOzIzKWcrUqJylzI1GtfR+P7GUyVE5SxuWVrOU6dFQll7fvN5npkflLGV6VM5SpkflLGV6VM3SO9OjcpYyPSpnKdOjUS1dlhNLmR6Vs7RhaTVLmR6ltfRlEvOgAUxiwvMBk5b1adKxXph0zI8/yzy26Zu++ZtJzGwGMIkpTGeTtFsw98YMppihTGCKGcr8pZihTF+KGdowtJahTF6KGcqUppihTHSKGcr0p5ihTIpqGbowKSpmKJOiYoYyKSpmKJOiYoY2DK1lKJOiYoYyKSpmKJOiYoYyKSpmKJOiWoauTIqKGcqkqJihTIqKGcqkqJihDUNrGcqkqJihTIqKGcqkqJahGz10IEOXNv967dLODKWHFjO0YehAhl4fM99IucUMJeUWM5SUW8xQfh9azFB+H1rL0J0eOpChgauAOz20mKH8PrSYofw+tJihDUNrGcqkqJihTIqKGcqkqJihTIqKGcqkqJahB5OiYoYyKSpmKJOi3ob+4Ccfzz9BOb5fWfi+0fpgUlTM0IahtQxlUlTMUCZFxQxlUlTMUCZFxQxlUjSSocvjtcd2+62hx41JUTFDmRQVM5RJUTFDmRQVM7RhaC1DmRQVM5RJUVpDXyYx/RnAJCY6HzDpeN6pbtN0YdI8r/fXq+d/vfplE3OaEWyamL50t+nl0vL7j7yJicoAJjElGcAkJh8DmNQwKb9JTCgGMImpQ2+TluXx4m06MYmpwwAmMXUYwCRmDvlNmpk4DGASE4cBTGLiMIBJTBwGMKlhUn6TmDgMYBIThwFMYuIwgElMHP5Hk14omQuoUN5p7zKUdGwZSpqwDCV9VYaygVKFku4nQ0lDk6GkR8lQ0nZkKGk7KpSNtvMblC88xg1mm5949u3if2nTF4fHq6d7O/nfmnGH0cM0bjF6mA2YOpjGTUYP07jL6GEatxk9TOM+o4dp3GjkMBfjTqOHSQMSwqQBCWHSgIQwGzB1MGlAQpg0ICFMGpAQJg1ICJMGpIO50oCEMGlAQpg0ICFMGpAQZgOmDiYNSAiTBiSESQMSwqQBCWHSgHQwNxqQECYNSAiTBiSESQMSwmzA1MGkAQlh0oCEMGlAQpg0ICFMGpAO5k4DEsKkAQlh0oCEMGlAQpgNmDqYNCAhTBqQECYNSAiTBiSESQPSwTxoQEKYNCAhTBqQECYNSAizAVMHkwYkhEkDEsKkAQlh0oCEMGlAKpj3240GJIRJAxLCpAEJYdKAhDAbMHUwaUBCmDQgIUwakBAmDUgIkwakgznRgIQwaUBCmDQgIUwakBBmA6YOJg1ICJMGJIRJAxLCpAEJYdKAdDBnGpAQJg1ICJMGJIRJAxLCbMDUwaQBCWHSgIQwaUBCmDQgIUwakA7mnQYkhEkDEsKkAQlh0oCEMBswdTBpQEKYNCAhTBqQECYNSAiTBqSD2WhAQpg0ICFMGpAQJg1ICLMBUweTBiSESQMSwqQBCWHSgIQwaUA6mAsNSAiTBiSESQMSwqQBCWE2YOpg0oCEMGlAQpg0ICFMGpAQJg1IB3OlAQlh0oCEMGlAQpg0ICHMBkwdTBqQECYNSAiTBiSESQMSwqQB6WBuNCAhTBqQECYNSAiTBiSE2YCpg0kDEsKkAQlh0oCEMGlAQpg0IB3MnQYkhEkDEsKkAQlh0oCEMBswdTBpQEKYNCAhTBqQECYNSAiTBqSDedCAhDBpQEKYNCAhTBqQEGYDpg4mDUgI06QBvQSbtJSXYJMm8RJskvYfgr+UuQk2Sc0vwSbJ9iXYJH2+BDc3wSYp7iXYLGlNLvfhX4IHTlovEQOnp6eIkW+Wv0QMnHJeIgZOLi8RA6eRl4hWQcTAqeElYuAk8BIx8NP9JaLCE3vkW79PESPf2H2JqPDEHvmm7EtEhSf2yDdUXyIqPLFHvhn6ElHhiT3yjcyXiApP7JFvQr5EZH9iH49Xf800pvlfIv7sN75T+ouJH5CcPQ18QHLzk5w9aXxAcvZc8gHJ2VPMByRnzzwfkJw9Ieklp78w9wHJfukr/bW2D0j2S1/pL599QLJf+kp/RewDkv3SV/qLXB+Q7Je+0l+3+oBkv/SV/lLUByT7pa/0V5c+INkvfaW/YPQByX7pK/01oA9I9ktf6S/rfECyX/pKf6XmA5L90lf6iy8fkOyXvtJfT/mAZL/0lf4SyQck+6Wv9Fc9PiDZL32lv5DxAcl+6Sv9tYkPSPZLX+kvN3xAsl/6Sn8F4QOS/dJX+osCH5Dsl77Sb+f/gGS/9JV+0/0HJPulr/Rb4z8g2S99pd/A/gHJfukr/TbzD0j2S1/pN4N/QLJf+kq/ZfsDkv3SV/qN1R+Q7Je+0m+t/oBku/Q1p99c/QHJdulrTr+9+gOS7dLXfGt+ku3S15x+i/UHJNulrzn9JusPSPZLX+m3ZH9Asl/6Sr+B+wOS/dJX+u3eH5Dsl77Sbw7/gGS/9JV+K/kHJPulr/Qbzz8g2S99pd+m/gHJfukr/ab2D0j2S1/pt8B/QLJf+kq/Yf4Dkv3SV/rt9R+Q7Je+/Hbdz3677me/Xfez36772W/X/ey3637223U/++26n/123c9+u+5nv133s9+u+9lv1/3st+t+9tt1P/vtup/9dt3PfrvuZ79d97PfrvvZb9f97LfrfvbbdT/77bqf/Xbdz3677me/Xfez36772W/X/ey3637223U/++26n/123c9+u+5nv133s9+u+9lv1/3st+t+9tt1P/vtup/9dt3PfrvuZ79d93OmXfevN5UoH73eVKIE83pTiTLG600lSgHPN5VpK/rrTSV6kr7eVKJn3etNJXoavd5UoufF601l/ETPtOH69aYyfqJn2hL9elMZP9EzbVp+vamMn+iZthW/3lTGT/RMG39fbyrjJ3qmrbmvN5XxEz3T5tnXm0r4iX7PtL319aYSfqLfM21Afb2phJ/o91vCT/R7pj2frzeV8BP9nmlX5utNJfxEv3963+TzH/r0lsfXPzT9rX9o/lv/0P1v/UPtb/1Dy9/6h9a/9Q9tf+sf2v/WP/S3Phnmv/XJMP+tT4b5b30yzH/rk2H+W58M89/6ZJj/1ifD/Lc+Gea/9ckw/61Phvvf+mS4/61Phvvf+mS4/61Phvvf+mS4/61Phvvf+mS4/61Phvvf+mS4/61Phva3Phna3/pkaH/rk6H9rU+G9rc+Gdrf+mRof+uTof2tT4b2tz4Z2t/6ZFj+1ifD8rc+GZa/9cmw/K1PBsm3ReetPf+h/fjXP/Rnf9V2l3yj8wNva835tracb2vP+baOlG9L8i3AD7ytKefbmnO+rXvOt5XzU37N+Sm/5vyUX3N+yq85P+XXnJ/yW85P+S3np/yW81N+y/kpv+X8lN9yfspvOT/lt5yf8lvOT/kt56f8nvNTfs/5Kb/n/JTfc37K7zk/5fecn/J7zk/5Peen/J7zU37P+Sl/5PyUP3J+yh85P+WPnJ/yR85P+SPnp/yR81P+yPkpf+T8lD9Sfsq3W8pP+XZL+Snfbik/5dst5ad8u6X8lG+3lJ/y7ZbyU77dUn7Kt1vKT/l2y/kpP+X8lJ9yfspPOT/lp5yf8lPOT/kp56f8lPNTfsr5KT/l/JSfcn7Kzzk/5eecn/Jzzk/5Oeen/JzzU37O+Sk/5/yUn3N+ys85P+XnnJ/y95yf8vecn/L3nJ/y95yf8vecn/L3nJ/y95yf8vecn/L3nJ/y95yf8i3np3zL+Snfcn7Kt5yf8i3np3zL+Snfcn7Kt5yf8i3np3zL+Sm/5PyUX3J+yi85P+WXnJ/yOb/72nJ+97Xl/O5ry/nd15bzu68t53dfW87vvrac331tOb/72nJ+97Xl/O5ry/nd15bzu68t53dfW87vvrac331tOb/72nJ+97Xl/O5ry/nd15bzu68t53dfW87vvrac331tOb/72nJ+97Xl/O5ry/nd15bzu68t53dfW87vvrac331tOb/72nJ+97Xl/O5ry/nd15bzu68t53dfW87vvrac331tOb/72nJ+97Xl/O5ry/nd1/XTS6T/+9U/vBB+vz/fyLEtr3fy2wvhP/rZ2219/Ohtub1e3Zb/8SfP9+Xxk+f7sb5efZt+95P34/mT54ufvLT512uXdj8xNNEhNQxVGJroCB2GKgxtGFrL0ETHDzFUYWiiw5EYqjA00dFNDFUYmuhgKYYqDE10vhtDBYZ++tgNhv5tQ5kUFTOUSdFIhu63h6HHcmIok6JihjYMrWUok6JihjIpGsnQ7WXoemIok6JihjIpKmYok6Jahq5MiooZyqSomKFMikYydNkfhq7biaFMiooZ2jC0lqFMiooZyqSomKFMiooZyqSomKFMimoZujEpKmYok6JihjIpKmYok6JihjYMrWUok6JihjIpKmYok6JihjIpKmYok6Jahu5MiooZyqSomKFMiooZyqSomKENQ2sZyqSomKFMiooZyqSomKFMiooZyqSolqEHk6JihjIpKmYok6JihjIpKmZow9BahjIpKmYok6JihjIpKmYok6JihjIpKmXodmNSVMxQeugHDJ32p6FLUxp6udF6uzUMrWUoPbSYofTQYobSQ4sZSg8tZig9tJahEz20mKH8xUIxQ/mLhWKGMikqZmjD0IEMvTzEs01MiooZyqSomKFMiooZyqRoJEMvz3xsE5OiWobOTIqKGcqkqJihTIqKGcqkqJihDUMHMvT6r/5mJkXFDGVSVMxQJkXFDGVSVMxQJkW1DL0zKSpmKJOiYoYyKSpmKJOiYoY2DK1lKJOiYoYyKSpmKJOiYoYyKSpmKJOiWoY2JkXFDGVSVMxQJkXFDGVSVMzQhqG1DGVSVMxQJkXFDGVSVMxQJkXFDGVSVMvQhUlRMUOZFBUzlElRMUOZFBUztGFoLUOZFBUzlElRMUOZFBUzlElRMUOZFNUydGVSVMxQJkXFDGVSVMxQeqje0Pm5NPPLW+kxu+uN1is9tJih9NBihtJDixlKD61l6EYPLWYoPbSYofTQYobyFwvFDG0YWstQJkXFDGVSNJKh14d4NiZFxQxlUlTMUCZFtQzdmRSNZOj1mY+dSVExQ5kUFTOUSVExQxuG1jKUSVExQ5kUjWTo9V/97UyKihnKpKiYoUyKahl6MCkqZiiTomKGMikqZiiTomKGNgytZSiTomKGMikqZiiTomKGMikqZiiTolKG7jcmRcUMZVJUzFAmRcUMZVJUzNCGobUMZVJUzFAmRcUMZVJUzFAmRcUMZVJUy9CJSVExQ5kUFTOUSVExQ5kUFTO0YWgtQ5kUFTOUSVExQ5kUFTOUSVExQ5kU1TJ0ZlJUzFAmRcUMZVJUzFAmRcUMbRhay1B6aMxQ6d7pfaYtdsFOp+uB/U7z6oKdftQFOy2mC3a6RhfsDew9sPMb3i7Y+T1sF+y01C7Yaal67JcHNfY7LbUH9kZL7YKdltoFOy1Vj/1yjfzeaKldsDew98BOS+2CnZbaBTsttQt2Wqoe+/VfDjRaag/sCy21C3ZaahfstNQu2GmpXbA3sPfATkvtgp2W2gU7LbULdlpqF+y01B7YV1pqF+y01C7YaaldsNNSu2BvYO+BnZbaBTsttQt2WmoX7LTULthpqT2wb7TULthpqV2w01K7YKel/p8e2BvYe2CnpXbBTkvtgp2W2gU7LbULdlpqD+w7LbULdlpqF+y01C7YaaldsDew98BOS+2CnZbaBXut3K7dcXTUStdiOLUysBhOraQqhlMrT4rhNOCcw6mVzcRwaiUoMZxa03gxnFozczEcEvIpnOPmm5Av1+gdN9+EHIDjm5ADcHwTcgBOs4VzufDquPkm5AAc34QcgOObkANwfBNyAI5vQr6GM/km5MvfPhyTb0IOwPFNyAE4vgk5AKcB5xyOb0IOwPFNyAE4vgk5AMc3IQfg+CbkazgzCfkNHBLyGzgk5DdwSMhv4DTgnMMhIb+BQ0J+A4eE/AYOCfkNHBLyOZw7CfkNHBLyGzgk5DdwSMhv4DTgnMMhIb+BQ0J+A4eE/AYOCfkNHBLyOZxi99nFcEjIb+CQkN/AISG/gdOAcw6HhPwGDgn5DRwS8hs4JORzONnv8O7r/oJz267g/OBnz+uT+7zu3/4SuU2/eyfH8vjR03F8fx/b/2rS9TcGs1/txaR/TEqe+zDpH5MaJuU3KXkOxqR/TEqexzHpH5OS9wJM+sek5P0Ek/4xKflvEjDpy6TsV5Ix6R+TmDgMYBITh94mXS91yX6vGZP+MalhUn6TmDgMYBITh94mXa9uyX5nGpP+MYmJwwAmMXHIb1L2i9eY9I9JTBwGMImJQ2+Trv9aKPvtbUz6x6SGSflNYuIwgElMHAYwiYnDACYxcRjAJCYO+U3Kfr0ck/4xiYnDACYxcRjAJCYOA5jUMCm/SUwcBjCJicMAJjFxGMAkJg4DmMTEIb9JBxOHAUxi4jCASUwcBjCJicMAJjVMym8SE4cBTGLiMIBJTBwGMImJwwAmMXHIblK73Zg4DGASE4cBTGLiMIBJTBwGMKlhUn6TmDgMYBIThwFMYuIwgElMHAYwiYlDfpMmJg4DmOTbk5b19jTpNl2ZdN8e3Ke23F6vXqbfgn+8eNm+/eQvQ1/gG+D7gPftM53B+3aUzuB9e0dn8L5d4pPgj+XXi9fbcgLetx/0BT/7Zv7O4H1/c9gZvO9vAz8KfnqCX0/A01w7gW+A7wOe5toJPM21E3iaayfwNNdPgN+fR4L2/QQ8zbUP+DvNtRN4mmsn8DTXTuBprp3AN8D3AU9z7QSe5toJPM21E3iaayfwNNc+4BvNtRN4mmsn8DTXTuBprp3AN8D3AU9z7QSe5toJPM21E3iaayfwNNc+4BeaayfwNNdO4GmuncDTXDuBb4DvA57m2gk8zbUTeJprJ/A0107gaa59wK80107gaa6dwNNcO4GnuXYC3wDfBzzNtRN4mmsn8OT4GPh5ao83Mu/bFfjrDU0bOb4TeHJ8J/Dk+E7gyfGdwDfAfwD89RKJjRzfCTw5vhN4fgPVCTy/geoEnubaB/xOc/0E+OtZzU5z7QSe5toJPM21E/gG+D7gaa6dwNNcO4GnuXYCT3PtBJ7m2gf8QXPtBJ7m2gk8zbUTeJprJ/AN8H3A01w7gae5dgJPc+0EnubaCTzNtQv4L8KA7wOe5toJPM21E3iaayfwDfB9wNNcO4GnuXYCT3PtBJ7m2gk8zbUP+Inm2gk8zbUTeJprJ/A0107gG+D7gKe5dgJPc+0EnubaCTzNtQ/42TfHT/vyfNftuAB/vY9jmn2TuRylb9aWo2ygVKH0zcNylL4J92coj8eL19tygtI3s8pR+qZQOUrf34ioUd59f8fxQ5RXy2WmO21HhpK2I0NJ25GhbKBUoaTtyFDSdmIor+eVd9qODCVtR4aStqNC2Wg7MpS0HRlK2o4MJW1HhrKBUoWStiNDSduRoaTtyFDSdmQoaTsqlAttR4aStiNDSduRoaTtyFA2UKpQ0nZkKGk7MpS0HRlK2o4MJW1HhXKl7chQ0nZkKGk7MpS0HRnKBkoVStqODCVtR4aStiNDSduRoaTtqFButB0ZStqODCVtR4aStiND2UCpQumbK2/3h8b5drQrlNdbCjbfXClH6Zsr1Sh331wpR+mbK+UofXPlz1BeL3zYfXOlHGUDpQql7xRdjtJ3iv5DlJdfrd9pOzKUtB0ZStqOCuVB25GhpO3IUNJ2Yiiv55UHbUeGsoFShZK2I0NJ25GhpO3IUNJ2ZChpOyKU8422I0NJ25GhpO3IUNJ2ZCgbKFUoaTsylLQdGUrajgwlbUeGkrajQml8vV2OkrYjQ0nbkaGk7chQNlCqUNJ2ZChpOzKUtB0ZStqODCVtR4Vypu3IUNJ2ZChpOzKUtB0ZygZKFUrajgwlbUeGkrYjQ0nbkaGk7ahQGl+tl6O0zZXT/qQzHW2/Qnm5pWD2vQ+uR2mbK/UobXOlHqVtrtSjtM2VP0R5ufBh9r0PLkfpex9cj9J2iq5HaTtF/ynKq6/Wz773wfUoGyhVKGk7MpS0HRlK2o4MJW0nhvJ6Xul7H1yO0vc+uB4lbUeGkrYjQ0nbkaFsoFShpO3IUNJ2ZChpOzKUtB0ZStqOCqXvfXA9StqODCVtR4aStiND2UCpQknbkaGk7chQ0nZkKGk7MpS0HRVK3/vgepS0HRlK2o4MJW1HhrKBUoWStiNDSduRoaTtyFDSdmQoaTsqlL5X6/UoaTsylLQdGUrajgxlA6UKJW1HhpK2I0Ppmyu32/r40dt2XKG83lLgex9cj9I3V8pR+uZKOUrfXClH2UAZQnn9dVHf++B6lL65Uo7Sd4ouR+k7RZejpO2IUN5974P/EOVlB7/73gfXo6TtyFDSdmQoGyhVKGk7MpS0HRlK2o4MJW1HhpK2o0Lpex9cj5K2I0NJ25GhpO3IUDZQqlDSdmQoaTsylLQdGUrajgwlbUeF0vc+uB4lbUeGkrYjQ0nbkaFsoFShpO3IUNJ2ZChpOzKUtB0ZStqOCqXvfXA9StqODCVtR4aStiND2UCpQknbkaGk7chQ0nZkKGk7KpTF7oPvx/Nnzxc/e2lPOO3f7+MFp1ZSFMOplf3EcBpwzuHUymdiOLUSlxhOrQwlhlMrFYnh1JrqauEUu0AthkNCfgPHNyHvtwecYzmB45uQA3AacM7h+CbkABzfhLy94KwncHwTcgCOb0IOwPFNyNdwil0tFsPxTcgBOL4JeXn85GXdTuD4JuQAnAacczi+CTkAxzchB+D4JuQAHN+EHIDjm5Cv4RS7dCuG45uQA3BIyG/gkJDfwGnAOYdDQn4Dh4T8Bg4J+Q0cEvIbOCTkczjFrqOK4ZCQ38AhIb+BQ0J+A6cB5xwOCfkNHBLyGzgk5DdwSMhv4JCQz+EUu/MqhkNCfgOHhPwGDgn5DZwGnHM4JOQ3cEjIb+CQkN/AISG/gUNCPoXTit0GFcNJnnO2+wvOfl8u4Bzb49t3x3Y/EdzcBCfPI3rByTOGXnDy3KAXnDwL/Ezw1/u+PV8+Hxc//dgfP/s4zj7Tk6eBzniyX8/rjSf5zKw3nuRTs954SuVJPZ4Gnnd4SmXVn+H5SbE7f9cvlKVScF+UpfJ1X5TGyV2N0jjli1FmvzA3Ekrj9qBGadw01CiNW4kaZQOlCiVtR4aStiNDSduRoaTtyFDSdlQos1+YGwklbUeGkrYjQ0nbkaFsoFShpO3IUNJ2ZChpOzKUtB0ZStqOCmWj7chQ0nZkKGk7MpS0HRnKBkoVStqODCVtR4aStqNCmf3EXRaU1wfxWvaDeCOh5LETQ3n9zdjsJ9NGQsljR4aSIZsMJUM2Fcrsp95GQkmuDKFcp/XXa9f7fIKSXClDyZBNhrKBUoWStiNDSduRoaTtyFDSdmQoaTsqlNnP9o2EkrYjQ0nbkaGk7chQNmOUP3kn9/n5k+/ff/LXf/mC6dx35DCdG48cpnPnkcN0bj1ymM69Rw0z+znGsWA6d58fwVzmJ8x1OoHp3H7kMJ37jxxmA6YOJg1ICJMGJIRJAxLCpAH9Acz9BCYNSAcz+7nNsWDSgIIwj1edPE7qZPZznmPBpAEJYTZg6mDSgIQwaUBCmDQgIUwa0P/z5tu32Q+e9sWzZD952hsPveMtHprEWzx0g7d4Gnje4al1jvfypttS7BxvQHCtc7wBwaWyakRwqfQZEFzrZG5EcKmEGBFcKvNFBJdKcRHBzU2wW9KqdfI1ItgtadU6nxoR7Ja0ap0ijQh2S1q1znpGBLslrVonMiOC3ZJWrXOTEcFuSavW6caIYLekVesMYkSwW9KqdVIwItgtadU6zxcR7Ja0ap26iwh2S1q1zsZFBLslrVon2CKC3ZJWrXNmEcFuSavWabCIYLekVevMVkSwW9JqbkmruSWtxS1p1brCFhHslrQWt6S1NDfBbkmr1mW5iGC3pFXrSltEsFvSqnXxLCLYLWnVuh4WEeyWtGpd4ooIdktata5aRQS7Ja1aF6Iigt2SVq1rSxHBbkmr1uWiiGC3pFXrClBEsFvSqnVNJyLYLWnVukoTEeyWtGpdd4kIdktata6kRAS7Ja1a10Yigt2SVq2rHRHBbkmr1vWLiGC3pFXrikREsFvSqnWNISLYLWnVumoQEeyWtGpdB4gIdktatbbsRwSbJa211ib8iGCzpLXW2lYfEWyWtNZbcxNslrRWtx3xq9uO+NVtR/zqtiN+ddsRv7rtiF/ddsSvbjviV7cd8avbjvjVbUf8WmuD+A/PUe3H853MF69d2uNe99J+f7pqrbWbvC9K5wuEYpTO1wrFKJ0vG4pRNlCqUDpfPBejdL53LkbpfO1cjNL51rkYJW1HhbLWfYAPotwfP3g5lhOUtB0ZStqODCVtR4aygTKEcnuhXE9Q0nZkKGk7MpS0HRlK2o4MJW1HhbLWjY4Polwe72NZT37jWOv6R1+UtB0ZStqODGUDpQolbUeGkrYjQ0nbkaGk7chQ0nZUKGvdyemLkrYjQ0nbkaGk7chQNlCqUNJ2ZChpOzKUtB0ZStqODCVtR4Wy1q2qvihpOzKUtB0ZStqODGUDpQolbUeGkrYjQ0nbkaGk7chQ0nZUKGvdi+uLkrYjQ0nbkaGk7chQNlCqUNJ2ZChpOzKUtB0ZStqOCmX2u3vLvj7fyHocFyiP7bFL4NhOdglkv7unF5w8o+kFNzfByfOOXnDyVPIzwT/7/A/s2cx+pa83nuTpoTee5PPPzniy3wvsjadUntTjKZU+9XhKZdXPFbvzd/1C2UCpQlkqX/dFaZzc1SiNU74apXEjUKM0bg9alFv2e5kjoTRuJWqUxg1GjZK2I0PZQKlCSduRoaTtyFDSdmQoaTsylLQdFcrsN2tHQknbkaGk7chQ0nZkKBsoVShpOzKUtB0ZStqODCVtR4aStqNCmf1+90goaTsylLQdGUrajgxlA6UKJW1HhpK2I0NJ25GhpO3IUNJ2VCizn/fNgvL6FPqW/bzvSCh57MRQXm4R2LIfUh0JJY8dFcrsh1RHQsmQTYaSIZsMJbkyhHKdHu9jvc8nKBsoVSgZsslQMmSToaTtyFDSdmQoaTsqlNkPqY6EkrYjQ0nbkaGk7chQNlCqUNJ2ZCid284P3sk/J2d/vfif01bfNN6/wXTuO3KYzo1HDtO586hhZj+oOhZM594jh+ncfOQwnbvPj2A+l6z+syHwBGYDpg6mc/+Rw6QBCWHSgIQwaUBCmDQgHczsR1Yzwtxu7QQmDUgIkwYkhEkDisHc5med3O4ndTL7sdWxYNKAhDBpQEKYNCAhTBqQECYNSAdzpwEFYa7TE+Z2O4FJAxLCpAEJYdKAhDAbMHUwaUBCmDQgIUwa0P/zZjGJ8ynoCB5ayjs8zqegI3hoEm/x0A3e4iHtv8XTKuG5Pg2+1TrCHBFcKgdHBJfKqhHBpdJnRHCpPHkteK91wjciuFTmiwguleIigkvlsojg5ibYLGnttc60RgSbJa291snTiGC3pFXrfGhEsFvSqnWKMyLYLWnVOmsZEeyWtGqdiIwIdktatc4tRgS7Ja1apwsjgt2SVq0zgBHBbkmr1km9iGC3pFXrPF1EsFvSqnXqLSLYLWnd3ZLW3S1p3d2SVq1LgBHBzU2wW9K6uyWtWncTI4LdklatG4QBwbUuBUYEuyWtWlf3IoLdklatC3YRwW5Jq9Y1uIhgt6RV67JaRLBb0qp1pSwi2C1p1br4FRHslrRqXc+KCHZLWrUuUUUEuyWtWhedIoLdklaty0gRwW5Jq9aFoYhgt6RV61JPRLBb0qp18SYi2C1p1bocExHslrRqXWCJCHZLWrUumUQEuyWtWhdBIoLdklatyxoRwW5Jq9aFiohgt6RV69JDRLBb0qp1MSEi2C1p1bo8EBHslrRqbfCPCHZLWrX25kcEuyWtWrvtI4Ldklat/fMRwW5Jy21H/O62I3532xG/u+2I3912xO9uO+IPtx3xh9uO+MNtR/zhtiP+uDU3wWZJ63DbEX+47Yg/3HbEH2474g+3HfGH2474w21H/OG2I/5w2xF/uO2IP9x2xB9uO+IPtx3xh9uO+MNtR/zhtiP+cNsRf7jtiD/cdsQfbjviD7cd8YfbjvjDbUf84bYj/nDbEX+47Yg/3HbEH2474g+3HfGH2474w21H/OG2I/5w2xF/1Nog/vW+b8+Xz8fFT9/24/lO5ovXLm3+9dql3U9QlnrC90VZKjv0RdlAqUJZKu/0RVkqSfVFWSqj9UVZKv31RVlqgtcVZa1d+31R0nZkKGk7MZT74wcvx3KCkrYjQ9lAqUJJ25GhpO3EUG4vlOsJStqODCVtR4aStqNCWeveRV+UtB0ZStpODOXy+I3jsp78xrHW9Y++KBsoVShpOzKUtB0ZStqODCVtR4aStqNCWevmTF+UtB0ZStqODCVtR4aygVKFkrYjQ0nbkaGk7chQ0nZkKGk7KpS17j71RUnbkaGk7chQ0nZkKBsoVShpOzKUtB0ZStqODCVtR4aStqNCWev2Wl+UtB0ZStqODCVtR4aygVKFkrYjQ0nbkaGk7chQ0nZkKGk7GpTLrdb9w74ok+fK1l5vZGmXS+i2xy6BY7ufCG5ugpNnNL3g5ElKLzh53tELTp5Kfib4Z5//l3s2v/AkTxqd8WS/6dcbT/L5Z288yWeavfGUypN6PA087/CUyqqfK3bn7/qFslQK7ouyVL7ui9I4uatRGqd8McrstydHQmncHtQojZuGGqVxK1GjbKBUoaTtyFDSdmQoaTsylLQdGUrajgpl9vuvI6Gk7chQ0nZkKGk7MpQNlCqUtB0ZStqODCVtR4aStiNDSdtRoWy0HRlK2o4MJW1HhpK2I0PZQKlCSduRoaTtyFDSdmQoaTsylLQdFcrs97tHQknbkaEkDIVQXp5C/0JJGJKh5LETQ3m9RSD7IdWRUPLYkaFkyCZDyZBNhrKBUoWSXBlCuU6PfUTrfT5BSa6UoWTIJkPJkE2GkrajQpn9kOpIKGk7MpS0HRlK2o4MZQOlCiVtR4aStiNDSduRoXRuOz94J/t2f7Dct7Z803j/BtO576hhZj+mOhZM584jh+nceuQwnXuPHGYDpg6mc/f5Ecx1f8LcthOYzu1HDtO5/8hh0oCEMGlAOpjZD6yOBZMGJIRJA/o5zL2dwKQBCWE2YOpg0oBiMPfbs07u00mdzH5sdSyYNCAhTBqQECYNSAZzyn50dSyYNCAhTBpQEGZ75sx92U5g0oCEMBswdTBpQEKYNCAhTBqQECYNSAiTBvRzmOvvR3CT8+FoPUwakBAmDeg37+SFh07zFk8Dzzs89I63eGgSb/HQDd7iIe2/xVMqvx/7I8ocx+9Xuky1TjFHBJfKwRHBpbJqRHCp9BkR3NwEl0qIEcGlMl9EcKkUFxFcKpdFBLslrVpnYCOC3ZJWrZOqEcFuSavWedKIYLekVevUZ0SwW9KqdTYzItgtadU6QRkR7Ja0ap1zjAh2S1q1TiNGBLslrVpnBiOC3ZJWrZN9EcFuSavW+buIYLektbglrcUtaS3NTbBb0qp1wzAi2C1pLW5Jq9YtyYDgWhcfI4Ldklat64kRwW5Jq9Ylwohgt6RV66pfRLBb0qp1IS8i2C1p1bo2FxHslrRqXW6LCHZLWrWuoEUEuyWtWhfFIoLdklat61wRwW5Jq9aVq4hgt6RV61pURLBb0qp1dSki2C1p1bpeFBHslrRqXQGKCHZLWrWu6UQEuyWtWldpIoLdklat6y4RwW5Jq9aVlIhgt6RV69pIRLBZ0pprXe2ICDZLWnOt6xcRwWZJa741N8FmSWuudY0hItgsac21rhpEBLslrVrXASKC3ZJWrS37EcFuSavWJvyIYLekVWtbfUSwW9KqtVE+ItgtabntiJ/ddsTPbjviZ7cd8bPbjvjZbUf87LYjfnbbET+77Yif3XbEz2474me3HfGz24742W1H/Oy2I3522xE/u+2In912xM9uO+Jntx3xs9uO+NltR/zstiN+dtsRP7vtiJ/ddsTPbjviZ7cd8bPbjvjZbUf87LYjfnbbET+77Yif3XbEz2474me3HfGz24742W1H/Oy2I3522xE/u+2In912xM9uO+Jntx3xc60N4l/v+/Z8+Xxc/PRtP57vZL547dLmX69d2v0EZaknfF+UpbJDX5SlUklXlLU2tfdFWSpJ9UVZKqP1RVkq/fVF2UCpQllqNtgXJW1HhpK2E0O5P37wciwnKGk7MpS0HRXKWtcS+qKk7cRQbi+U6wlK2o4MJW1HhrKBUoWStiNDSduRoaTtxFAuj984LuvJbxxrXf/oi5K2o0JZ62JJX5S0HRlK2o4MJW1HhrKBUoWStiNDSduRoaTtyFDSdmQoaTsilPdaV4P6oqTtyFDSdmQoaTsylA2UKpS0HRlK2o4MJW1HhpK2I0NJ21GhrHW5qy9K2o4MJW1HhpK2I0PZQKlCSduRoaTtyFDSdmQoaTsylLQdFcpa1/P6oqTtyFDSdmQoaTsylA2UKpS0HRnK5Lly2u4vNtvlErrtsUvg2O4ngpOnP7ng7Hf39IKTJym94OR5Ry84eSr5meCfff5f79m8Z7/S1xtP8vTQG0/y+WdvPMlnmr3xlMqTejyl0qccT/bLhZ/E85Nid/6uXyhLpeC+KEvl674ojZO7GmUDpQqlcSNQozRuD2qUxk1DjdK4lahRGjcYMcrs10NHQknbkaGk7chQ0nZkKBsoVShpOzKUtB0ZStqODCVtR4aStqNCmf2C70goaTsylLQdGUrajgxlA6UKJW1HhpK2I0NJ25GhpO3IUNJ2VCiz3+8eCSVtR4aStiNDSRgKobw+73vPft53IJTZD6mmQXn9zdjsh1RHQsljR4aSIZsMZQOlCiVDNhlKcmUI5Tqtv1673ucTlORKGUqGbDKUDNlUKLMfUh0JJW1HhpK2I0NJ25GhbKBUoaTtyFDSdmQoaTsylLQdGUrntvOTdzJvTyLzfnu9+utfecBs2U+pjgXTufHIYTp3HjlM59Yjh9mAqYPp3HzkMJ27z49gtv0Fc/oXzP9+9XF/5Ndj/fYujul37+L567jtaK/X3r955FyqRvHIua2N4hE1ML1H2U/X4tGXR5TW/B7RhfN7RMXO71HDo/QeMRDI7xFzhvweMWeIvZP7rT1+8v37q78P1rLfSh4LJs1dBzP7veSxYNKFhTAprUKYtEshzAbMGMz7+oTZlhOY9DUhTIqVECYNSAiTBiSESQPSwax1jbw3TBrQz2F+1/gvmDQgIUwakBBmA+b5JrbmfM89goeW8hYPveMtHprEWzx0g3d4rO+5B/CUyu/H/vgt93FsJ4JLZeyI4FI5OCK4uQkulT4jgkvlyYjgUgkxIrhU5osILpXiAoJrXZ6OCHZLWrWuOEcEuyWtWheRI4Ldklat68IRwW5Jq9al3ohgt6RV6+ptRLBb0qp1QTYi2C1p1brGGhHslrRqXTaNCHZLWrWuhEYEuyWtWhc3I4Ldklat65URwW5Ja2tugt2SVq2zqRHBbklrc0tam1vSqnVkNiLYLWnVOtgaEeyWtGodP40IdktatQ6JRgS7Ja1aRzkjgt2SVq0DlxHBbkmr1rHIiGC3pFXr8GJEsFvSqnXEMCLYLWnVOggYEWyWtJZap/Uigs2S1lLrRF1EsFnSWm7NTbBZ0lpqnUyLCDZLWkutY14RwW5Jq9aZqYhgt6RV6wBSRLBb0qp1mici2C1p1ToaExHslrRqXUmJCHZLWrWujUQEuyWtWlc7IoLdklat6xcRwW5Jq9YViYhgt6RV6xpDRLBb0qp11SAi2C1p1boOEBHslrRqbdmPCHZLWrU24UcEuyWtWtvqI4LdklatjfIRwW5Jy21H/OK2I35x2xG/uO2IX9x2xC9uO+IXtx3xi9uO+MVtR/zitiN+cdsRv9TaIP7Dc1T78Xwn88VrvzL4r9d+hdMTlM5XBcUonS8QilE6XysUo3S+bKhFWWsHfF+UzhfPxSid752LUTpfOxejbKBUoaTtyFDSdmIo98cPXo7lBCVtR4aStiNDSdtRoax1h+GDKLcXyvUEJW1HhpK2I0NJ25GhbKBUoaTtyFDSdmIol8dvHL9azQlK2o4MJW1HhpK2o0JZ6xZKX5S0HRlK2o4MJW1HhrKBUoWStiNDSduRoaTtyFDSdmQoaTsqlLXuEfVFSduRoaTtyFDSdmQoGyhVKGk7MpS0HRlK2o4MJW1HhpK2I0K51roJ1hclbUeGkrYjQ0nbkaFsoFShpO3IUNJ2ZChpOzKUtB0ZStqOCmWtu3x9UdJ2ZChpOzKUtB0ZygZKFcrkufI2L883ctvXC5TXuwTW7Hf39IKTZzS54Ox39/SCk+cdveDkqUQvOHl20AtO/oTXC04+ddQLTj4b1At2S1rZ7+79UPDl6pU1+909ueDsd/f0gmslrYDgWknrcvnCmv3unl5wcxNcK2kFBNdKWgHBtZJWQHCtpHU9tcx+d08uOPvdPb3gWkkrILhW0goIrpW0AoKbm+BaSSsguFbSCgiulbQCgt2SVva7e3LB2e/u6QW7Ja3sd/f0gt2S1tLcBLslrez3D/WC3ZJW9luCesFuSSv7XT69YLeklf3GnV6wW9LKfi9OL9gtaWW/vaYX7Ja0st8x0wt2S1rZb4LpBbslrez3tfSC3ZJW9ltVesFuSSv73Se94NTP4WNfHi8+vv7vC7nH9vh7+GM7+Xv43Ldq9HJTP4P1clM/gfVyUz9/9XJTP31/Jnf60ffNj31//uiTz/Hc11B6w0n9VO8NJ/WspTec1HOZ3nAKZUc5nNx3QnrDKZRLp4+tjjl/zy+QhRJvX5CFsnRfkA2QGpC2iV4N0jb9q0HaNgU1SNtWoQZp20C0ILfcdz5GAkmzEYGk2YhA0mxEIBsgNSBpNiKQNBsRSJqNCCTNRgSSZqMBmfumx0ggaTYikDQbEUiajQhkA6QGJM1GBJJmIwJJsxGBpNmIQNJsNCBz39gZCSTNRgSS+BMAeX22Y8t9mGUkkDxsIiAvvye45T4zMhJIHjYikIzRRCAZo4lANkBqQJIjAyDXaf312vU+n4AkR4pAMkYTgWSMJgJJs9GAzH3WZySQNBsRSJqNCCTNRgSyAVIDkmYjAkmzEYGk2YhA0mxEIGk2GpC5z2iNBJJmIwJJsxGB9G02P3gf87G0h8LvayWnf454/xH2BvYe2H1bU1fsvh2rK3bfRibC/kLp28nkKH1bmRpl7qN7Y6H0bWZylL7dTI6SdiZD2UCpQkmLkqGkGclQ0nYC7+N+uz8OP91v++1fKP+oZOY+OFkXOy1Kjl38Jcbchzqx6B+LaH3pLaJNpreIlpreooZF2S2iVae3iLae3iKmAOktYmKQ3iKmC9ktqnSAvKpFTBfSW8R0Ib1FTBfSW9SwKLtFTBfSW8R0Ib1FTBfSW8R0Ib1FTBeyW3QwXUhvEdOF9BYxXUhvEdOF9BbRi7paFNiOf9CLklu030h0fS263Fa930h06S0i0aW3iESX3qKGRdkt4vdF6S2iF3W16PpbevuNXpTeIn5flN4ifl+U3aKJ6UJ6i5gupLeI6UJ6i5gupLeoYVF2i5gupLeI6UJ6i5gupLeI6UJ6i5gu6C36wU+epvXx4mna1terj/ll0sx8YQCTmDAMYBIzhgFMYsowgEkNk/KbxKRhAJOYNfxFk17YmR90wc5MIIJ9uj3+Auo+fVP4pxuz95me3wP7neYux679gtV+p7ent4jWnt4iOnt6ixoWZbeIvp7eItp6eoto9uktYgqQ3iImBtktakwX0lvEdCG9RUwX0lvEdCG9RQ2LslvEdCG9RUwX0lvEdCG9RUwX0lvEdCG7RQvThfQWMV1IbxHThfQWMV1Ib1HDouwWMV1IbxHThfQWMV1IbxHThfQWMV3IbtHKdCG9RUwX0lvEdCG9RUwX0lvUsCi7RUwX0lvEdCG9RUwX0lvEdCG9RUwXslu0MV1IbxG9qKtFgaupW8Oi7BaR6PpadH2pbiPRpbeIRJfdop1El94ifl+U3iJ+X5TeInpRV4sCWx33hkXZLeL3Rekt4vdF6S1iupDeIqYL6S1iupDdooPpQnqLmC6kt4jpQnqLmC6kt6hhUXaLmC6kt4jpgt6iH/zkqT0VTu3b4ah52v/QUGYRxQxlclHMUOYcpQw9bkxF0hr6Mom5yAAmMRkZwCRmIwOY1DApv0nMRwYwiQnJACYx9RjAJCYZfU1alge7aVnXf5n0m1d/ufF49XRvJ9WXWUY1SyemGQNZOs9P0G05MZTJRzFDmZIUM5SJSjFDG4bWMpRJTTFDmeoUM5QJ0EiGLssD9DadGMq0qJihzIr6GrreH3uSpvX7x+ifz4pmZkXlLGVaNJClgWA0My0qZijTomKGNgytZSjTomKGMi0qZijTomKGMi0aydDradHMtKiWoXdmRX0N3Z4/edrm6f8VzIruzIrKWcq0aCBLA8HozrSomKENQ2sZyrSomKFMi4oZyrSomKFMi4oZyrRoJEOvp0WNaVExQ5kVdZ7nbsfL0PnC0G17jIq2ff32Lr4byqSomKFMiooZ2jC07zN0eQ7ct+93zP58PN+YFZWzlGnRQJYGumhjWlTMUKZFxQxlWlTL0IVpUTFDmRYVM5RpUTFDmRaNZOj1gH5pGFrLUGZFeQzdln8Z+jKJ6c8AJjHRGcAkpjR9Tdpvj0fStP/zzPo///NofGFOU83SlUnNQJYGeuDKpKaYoUxqihnKpKaYoQ1DaxnKpKaYoUx1ihnKBGgkQ6+H4yvTomKGMiuqZejGpKiYoUyKihnKpKiYoUyKihnaMLSWoUyK8hg6//sozsskpj8DmMREZwCTmNL8RZNe2Jml9MC+M/EIYd8fPO7zvF5gD2SqnblEF+xMD+TYt/14/uT5j9/FyyLmAektaliU3SI6e3qLaOzpLaKvp7eItp7eIpp9dosOpgDpLWJikN4ipgvpLWK6kN6ihkXZLWK6kN4ipgvpLWK6kN4ipgvpLWK6kNui9UsUFmW3iOlCeouYLqS3iOlCeosaFmW3iOlCeouYLqS3iOlCeouYLqS3iOlCdosmpgvpLaIXdbVoafOv1y7tzKKGRdktItH1tWh5fPVu+X4q418WkejSW0Siy27RTKJLbxG/L0pvEb8vSm8RvairReu0/nrtep9PLGpYlN0ifl+U3iJ+X5TeIqYL6S1iupDeIqYL2S26M11IbxHThfQWMV1IbxHThfQWNSzKbhHTBb1FP/jJ021/vHj6ev+vV8/zN5OYLwxgEhOGAUxixjCASUwZ8pvUmDMMYBKThgFMYtbQ2aTnnzJ8mTT9y6Tf/eT268Xb/v1dfOtUjclEMUMbhtYylKlHX0On+fVcbGfPRaYeA5jE1GMAk5h6DGASU4/8Ji1MPQYwianHACYx9Uhk0n5iEpOMAUxqmJTfJCYOf9GkF3ZmCF2wMxWIYJ+XF/a1XWAP/DHXQs/vgp3mLsc+z08cbfk99pUu3gU77boLdvpyF+w04C7YG9h7YKel6rEvywPHNp1gp6V2wU5L7YKdltoFOy21B/aNltoFOy01hP147OW932/L/z4K22ipXbDTUuXYA3Vpa2DvgZ2W2gU7LbULdlpqF+y01C7Yaal67Nd1aaeldsFOS+2CnZbaBTsttQv2BvYe2GmpXbDTUiPY7/fliX2fLrBPywPHtLQT7LTULthpqXLs4uugO402u0UH7Te9RTTl9BbRqtNbRANPb1HDouwW0ezTW8QUIL1FTAzSW8R0Ib1FTBeSW/SlCouyW8R0Ib1FTBfSW8R0Ib1FDYuyW8R0Ib1FTBfSW8R0Ib1FTBfSW8R0IbtFE9OF9BYxXUhvEdOF9BYxXUhvUcOi7BYxXUhvEdOF9BYxXUhvEdOF9BYxXchu0cx0Ib1F9KKuFi3t8QXWpZ1Z1LAou0Ukur4WPS98L+t2YhGJLr1FJLrsFt1JdOkt4vdF6S3i90XpLaIXdbXoem31dG9YlN0ifl+U3iJ+X5TeIqYL6S1iupDeIqYL2S1qTBfSW8R0Ib1FTBfSW8R0Ib1FDYuyW8R0Ib1FTBfSW8R0Ib1FTBfSW8R0IbtFC9OF9BYxXdBb9IOfPO3PF0/7Pz/tyW76Q0OZRRQzlMlFMUMbhtYylKlIWkNfJjEXGcAkJiMDmMRsZACTmI7kN2llPjKASUxIBjCJqccAJjHJGMCkhkn5TWLi0Nekoz2+zzYdx/1fJv2G9OUV9GllOlHMUCYZAxkqXvGzMiExNp/Ji6/5GxMdY/OZFBmbzwTK2HwmW8bmN8z3NZ9JnLH5TO2MzWfCZ2w+Ez5j85nw+Zq/M+EzNp8Jn7H5TPiMzWfCZ2x+w3xf85nwGZvPhM/YfCZ8xuYz4TM2nwmfr/kHEz5j85nwGZvfML+m+YGLsgc939h80n5V868vDx6kfVvz5xtp39h80r6x+fw+39h8fp9vbH7D/JrmX2/rnW/0fGPz+X2+sfn8Pt/YfCZ8xuYz4fM1f2LCZ2w+Ez5j85nwGZvPhM/Y/Ib5vuYz4TM2nwmfsflM+EYy/yc/eVofL56m7dtZhGP+Zj8zPmv7mfI52z8z57O2n0mftf3M+qztZ9pnbX/D/gr2vwxlhlfMUOZyXQ2db/PjxfNtmy8Mvb5wN8/M2ooZyvRsIEO1qw/mmdmZr/l3JmfG5jM3MzafqZmx+czMjM1vmO9rPtM1Y/OZxBmbz9TO2HwmfMbmM+HzNb8x4TM2nwmfsflM+IzNZ8JnbH7DfF/zmfAZm8+Ez9h8JnzG5jPhMzafCZ+v+QsTPmPzmfAZm8+Ez9h8en5R86+v1s0LPd/YfNJ+VfOvL9ispH1j80n7xuaT9o3N5/f5xuY3zPc1n55f1PzAWuOVnm9sPr/PNzaf3+cbm8+Ez9f8jQmfsflM+IzNZ8JnbD4TPmPzG+b7ms+Ez9h8JnzG5jPhG8n8H/zk0O2KjRmftf1M+Zzt35nzWdvPpM/afmZ91vYz7bO2v2F/BftfhjLDK2Yoc7nOhh6P8dmXh+3C0OnLjeeH7r2dWMq0rZylTNAGsrRNj+l5u98ufvL31+4n5jM/8zX/YHpW1Px5fprSlhPzmZ0Zm8/kzNh85mbG5jfM9zWfCZux+Uzjqpq/PN7yvE0n5jO3MzafCZ+x+Uz4bM2/35jwGZvPhM/YfCZ8xuYz4RvU/P3E0IahtQxlElfMUKZrxQxlYlbMUKZgxQxlslXL0IlpVTFDmUAVM5SpUjFDmRT1NXR6fedqalffuYp8n+M+NSytZinTonKWMi8qZykTo3KWMjMqZylTo2qWzsyNylnK5KicpcyOylnK9KicpQ1Lq1nK9KicpUyPylnK9KicpUyPylnK9KiapXemR+UsZXpUzlKmR+UsZXpUztKGpdUsZXpUzlKmR+UsZXpUzlKmR+UsZXpUzdLG9KicpUyPylnK9KicpUyPylnasLSapUyPylnK9KicpUyPylnK9KicpUyPqlm6MD0qZynTo3KWMj0qZynTo3KWNiytZinTo3KWMj0qZynTo3KWMj0qZynTo2qWrkyPylnK9KicpUyPylnK9KicpQ1Lq1nK9KicpUyPylnK9KicpUyPylnK9KiapRvTo3KWMj0qZynTo3KWMj0qZ2nD0mqWMj0qZynTo3KWMj0qZynTo3KWMj2qZunO9KicpUyPylnK9KicpUyPylnasLSapUyPylnK9KicpUyPylnK9KicpUyPqll6MD0qZynTo3KWMj0qZynTo3KWNiytZinTo3KWMj0qZynTo3KWMj0qZynTo2KWthvTo3KWMj0qZynTo3KWMj0qZ2nD0mqWMj0qZynTo3KWMj0qZynTo3KWMj2qZunE9KicpUyPylnK9KicpUyPylnasLSapUyPylnK9KicpUyPylnK9KicpUyPqlk6Mz0qZynTo3KWMj0qZynTo3KWNiytZinTo3KWMj0qZynTo3KWMj0qZynTo2qW3pkelbOU6VE5S5kelbOU6VE5SxuWVrOU6VE5S5kelbOU6VE5S5kelbOU6VE1SxvTo3KWMj0qZynTo3KWMj0qZ2nD0mqWMj0qZynTo3KWMj0qZynTo3KWMj2qZunC9KicpUyPylnK9KicpUyPylnasLSapUyPylnK9KicpUyPylnK9KicpUyPqlm6Mj0qZynTo3KWMj0qZynTo3KWNiytZinTo3KWMj0qZynTo3KWMj36i5a+sDPh6YF9YwrTBTuTki7YmWZ0wc7EoQv2BvYe2GnuEextnh/Y2/24wB5K7hv9uhN4WrAc/NdLHi9e2sVPXqf112vX+3xiEa02vUU04OwW7bTlrhbN8xNdW04solmnt4gWnt4iGnt6ixoWZbeISUB6i5gZpLeI6UJfi5bHfHTephOLmC6kt4jpQnaLDqYL6S1iupDeIqYL6S1iuvBJi9Yz7A3sPbAzBeiCnWbfBTttvQt2GngI+7Y/sR/LBfbQ374c9Oou4JcbbVkOXvvnEsuNtpzeItpyV4uuf/+x3GjL6S1qWJTdIlp4eoto7Oktot2nt4hJQF+LLn//sdyYGWS3aGK6kN4ipgvpLWK6kN4ipgvpLWpYlN0ipguftGg9w87EoAt2pgBdsNPsu2CnrffAPtPAu2CnVXfBTlPugp322wV7A3sP7LTUCPbl+WdT9+V+tRAw9LeKMz21E3iaaifwdNVO4GmrfcDf6audwNNYO4Gns3YCT2vtBL4Bvg94mmsn8DTXTuBprp3A01w7gae59gHfaK6dwNNcO4GnuXYCT3PtBL4Bvg94mmsn8DTXTuBprp3A01w7gae59gG/0Fw7gae5dgJPc+0EnubaCXwDfB/wNNdO4GmuncDTXDuBp7l2Ak9z7QN+pbl2Ak9z7QSe5toJPM21E/gG+D7gaa6dwNNcO4GnuXYCT3PtBJ7m2gf8RnPtBJ7m2gk8zbUTeJprJ/AN8H3A01w7gae5dgJPc+0EnubaCTzNtQ/4nebaCTzNtRN4mmsn8DTXTuAb4PuAp7l2Ak9z7QSe5toJPM21E3iaax/wB821E3iaayfwNNdO4GmuncA3wPcBT3PtBJ7m2gk8zbUTeJprJ/A01y7g1xvNtRN4mmsn8DTXTuBprp3AN8D3AU9z7QSe5toJPM21E3iaayfwNNc+4CeaayfwNNdO4GmuncDTXDuBb4DvA57m2gk8zbUTeJprJ/A0107gaa59wM80107gaa6dwNNcO4GnuXYC3wDfBzzNtRN4mmsn8DTXTuBprp3A01z7gL/TXDuBp7l2Ak9z7QSe5toJfAN8H/A0107gaa6dwNNcO4GnuXYCT3PtA77RXDuBp7l2Ak9z7QSe5toJfAN8H/A0107gaa6dwNNcO4GnuXYCT3PtA36huXYCT3PtBJ7m2gk8zbUT+Ab4PuBprp3A01w7gae5dgJPc+0EnubaB/xKc+0EnubaCTzNtRN4mmsn8A3wfcDTXDuBp7l2Ak9z7QSe5toJPM31v97HE85Gu3wDhwb4Bg4t7Q0cmtQbOA0453BoJG/g0BrewCHZv4FD+n4Dh4R8DmcnIb+BUyghH/v+fPF2IrdQ5o3ILZRiI3Kbl9xCSTMit1B2jMgtlAYjcgvlu4jcQoktIPcolMEicr1S1eGVqg6vVHU0L7leqerwSlWHV6o6vFLVYZWqtptVqtpuVqlqu1mlqu1mlaq2W/OSa5WqtptVqtpuVqlqu1mlqu3mlaomr1RV6Y59RK5Xqqp0sz0it3nJ9UpVla6CR+R6papKF7Ajcr1SVaVrzxG5Xqmq0mXjiFyvVFXpim9ErleqqnSxNiLXK1VVus4akeuVqipdIo3I9UpVla5uRuR6papKFyYjcr1SVaVrihG5Xqmq0uXAiFyvVFXpSl5ErleqqnQRLiLXK1VVun4WkeuVqipd+orI9UpVla5aReR6papKF5wicr1SVaVrRRG5Xqmq0mWeiFyvVFXpCk1ErleqqnRxJSLXK1VVui4SkeuVqipd0ojI9UpVla5GROR6papKFxIicr1SVaVrABG5Xqmq0lb9iFyvVFVp831ErleqqrSdPiLXK1VV2iAfkeuVqipteY/I9UpVlTaxR+R6pSqv3eqb1271zWu3+ua1W33z2q2+ee1W37x2q29eu9U3r93qm9du9c1rt/rmtVt989qtvnntVt+8dqtvXrvVN6/d6pvXbvXda7f67rVbfffarb577Vbfb81LrlWq2r12q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W/3w2q1+eO1WP7x2qx9eu9WPW/OSa5WqDq/d6ofXbvXDa7f64bVb/fDarX547VY/vHarH1671Q+v3eqH1271w2u3+uG1W/3w2q1+eO1WP7x2qx9eu9UPr93qh9du9cNrt/rhtVv98NqtfnjtVj+8dqsfXrvVD6/d6ofXbvXDa7f64bVb/fDarX547VY/vHarH1671Q+v3eqH1271w2u3+uG1W/3w2q1+eO1WP7x2qx9eu9UPr93qh9du9cNrt/rhtVv98NqtfnjtVj+8dqsfXrvVD6/d6ofXbvXDa7f64bVb/fDarX547VY/vHarH1671Q+v3eqH1271w2u3+uG1W/3w2q1+eO1WP7x2qx9eu9UPr93qh9du9cNrt/rhtVv98NqtfnjtVj+8dqsfXrvVD6/d6ofXbvXDa7f64bVb/fDarX547VY/vHarH1671Q+v3eqH1271w2u3+uG1W/3w2q1+eO1WP7x2qx9eu9UPr93qh9du9cNrt/rhtVv98NqtfljtVt9uVrvVv+Q6paovuU6p6kuuU6r6ktu85Dqlqi+5TqnqS65TqvqS65SqvuR6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXK1VZ7Vb/kuuVqqx2q3/J9UpVVrvVv+R6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXK1VZ7Vb/kuuVqqx2q3/J9UpVVrvVv+R6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXK1VZ7Vb/kuuVqqx2q3/J9UpVVrvVv+R6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXK1VZ7Vb/kuuVqqx2q3/J9UpVVrvVv+R6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXK1VZ7Vb/kuuVqqx2q3/J9UpVVrvVv+R6pSqr3epfcr1SldVu9S+5XqnKarf6l1yvVGW1W/1Lrleqstqt/iXXKlVNXrvVJ6/d6pPXbvXJa7f6lxgvuVapavLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvV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cgtl3oDcuVCKjcgtlEsjcgslzYjcQtkxIrd5yS2U7yJyCyW2iNxCGSwi1ytVzV6p6u6Vqu5eqerularuXqnq3rzkeqWqu1equnulqrtXqrp7parmlaqaV6pqXqmqeaWq1rzkeqWq5pWqmleqqnTHPiLXK1VVutkekeuVqirdJ4/I9UpVlW5xR+R6papKd6cjcr1SVaUbyxG5Xqmq0j3hiFyvVFXpdm5ErleqqnQnNiLXK1VVuokakeuVqird/4zI9UpVlW5dRuR6papKdx0jcr1SVaUbhhG5Xqmq0r2+iFyvVFXpNl1ErleqqnSHLSLXK1VVujkWkeuVqird14rI9UpVlW5JReR6papKd5Micr1SVaUbQRG5Xqmq0j2ciFyvVFXp9ktErleqqnTnJCLXK1VVuukRkWuVqtZK9ysicq1S1VrpVkNErlWqWm/NS65Vqlor7eCPyLVKVWulPfkRuV6pqtIu+4hcr1RVad98RK5Xqqq0Ez4i1ytVVdrbHpHrlaq8dquvXrvVV6/d6qvXbvXVa7f66rVbffXarb567VZfvXarr1671Vev3eqr12711Wu3+uq1W3312q2+eu1WX712q69eu9VXr93qq9du9dVrt/rqtVt99dqtvnrtVl+9dquvXrvVV6/d6qvXbvXVa7f66rVbffXarb567VZfvXarr1671Vev3eqr12711Wu3+uq1W3312q2+eu1WX712q69eu9VXr93qq9du9dVrt/rqtVt99dqtvnrtVl+9dquvXrvVV6/d6qvXbvXVa7f66rVbffXarb567VZfvXarr1671Vev3eqr12711Wu3+uq1W3312q2+eu1WX712q69eu9VXr93qq9du9dVrt/rqtVt99dqtvnrtVl+9dquvXrvVV6/d6qvXbvXVa7f66rVbfa20ffvrXd+e73o+Ln72T97H1NbnT16+vXrap9/95P14/uT54icvbf712qXdTywqlBVqWrRV2nJe1aJCmayqRYVyZFWLCmXfqhY1LMpuUaGOUdWiQtPmqhYVmpBXtYjpQnqLmC70tWh//ODlWH5vUaVrH1UtYrqQ3iKmC+ktYrrQ16LtZdF6YlHDouwWMV1IbxHThfQWMV1IbxHThfQWMV3oa9Hy+AugZf39XwBtla5eVbWI6UJ6i5gupLeI6UJ6ixoWZbeI6UJ6i5gupLeI6UJ6i5gu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38X2t+9i+9t3sf3tu9j+9l1sf/sutr99F9vfvovtb9/F9rfvYvvbd7H97bvY/vZdbH/7Lra/fRfb376L7W/fxfa372L723ex/e272P72XWx/+y62v30X29++i+1v38X2t+9i+9t3sf3tu9j+9l1sf/sutr99F9vfvovtb9/F9rfvYvvbd7H97bvY/vZdbH/7Lra/fRfb376L7W/fxfa372L723ex/e272P72XWx/+y62v30X29++i+1v38X2t+9i+9t3sf3th9j+9kNsf/shtr/9ENvfftyqmF6tfHWI7W8/xPa3H2L72w+x/e2H2P72Q2x/+yG2v/0Q299+iO1vP8T2tx9i+9sPsf3th9j+9kNsf/shtr/9ENvffojtbz/E9rcfYvvbD7H97YfY/vZDbH/7Iba//RDb336I7W8/xPa3H2L72w+x/e2H2P72Q2x/+yG2v/0Q299+iO1vP8T2tx9i+9sPsf3th9j+9kNsf/shtr/9ENvffojtbz/E9rcfYvvbD7H97YfY/vZDbH/7Iba//RDb336I7W8/xPa3H2L72w+x/e2H2P72Q2x/+yG2v/0Q299+iO1vP8T2tx9i+9sPsf3th9j+9kNsf/shtr/9ENvffojtbz/E9rcfYvvbD7H97YfY/vZDbH/7Iba//RDb336I7W8/xPa3H2L72w+x/e2H2P72Q2x/+yG2v/0Q299+iO1vP8T2tx9i+9sPsf3th9j+9kNsf/shtr/9ENvffojtbz/E9rcfYvvbD7H97YfY/vZDa3/7dtPa337XK5Wv7nql8tVdr1S+uuutYnql8tVdr1S+uuuVyld3vVL56q5XLF9p7W+/6xXLV1r72+96xfKV1v72u16xfKW1v/2uVyxfae1vv+sVy1da+9vvesXyldb+9rtesXyltb/9rlcsX2ntb7/rFctXWvvb73rF8pXW/va7XrF8pbW//a5XLF9p7W+/6xXLV1r72+96xfKV1v72u16xfKW1v/2uVyxfae1vv+sVy1da+9vvesXyldb+9rtesXyltb/9rlcsX2ntb7/rFctXWvvb73rF8pXW/va7XrF8pbW//a5XLF9p7W+/6xXLV1r72+96xfKV1v72u16xfKW1v/2uVyxfae1vv+sVy1da+9vvesXyldb+9rtesXyltb/9rlcsX2ntb7/rFctXWvvb73rF8pXW/va7XrF8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b5/E9rdPYvvbJ7H97ZPY/vZJbH/7JLa/fRLb3z6J7W+fxPa3T2L72yex/e2T2P72SWx/+yS2v30S298+ie1vn8T2t09i+9snsf3tk9j+9klsf/sktr99EtvfPontb5/E9rdPYvvbJ7H97ZPY/vZJbH/7JLa/fRLb3z6J7W+fxPa3T2L72yex/e2T2P72SWx/+yS2v30S298+ie1vL2L724vY/vYitr+9iO1vL7cqplcrXxWx/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH97EdvfXsT2txex/e1FbH/7LLa/fRbb3z6L7W+fxfa3z7cqplcrX81i+9tnsf3ts9j+9llsf/sstr99FtvfPovtb5/F9rfPYvvbZ7H97bPY/vZZbH/7LLa/fc603/vYyuPF23ymN9Hz16Q30efzse/PF29nehN9Ppv0Jvp8NulN9Pls0puo/1r0Ztr/bNKb6flr0Zvp+WvRm6j/mvRWMb1i+SrT/meT3mHz1ZuGYTPTm4bQOej+PsryfCO3ff3wX975z34pjr2puYni0FmoieLQaaiJ4tB5qIniKqc4dCZqojh0KmqiOHQuaqI4dIpqolguc8Xe3txEsVzmir3BuYliucwVe4tzE8VymSv2JucmiuUyV+xtzk0Uy2Wu2BudmyiWy1yxtzo3USyXuWJvdm6iWC5zxd7u3ESxXOaKveG5iWK5zBV7K+63ipf6+DvYpZ4qTvV0MilO9cm1LI+/1VjWs7/ViL07tYniVJ9cFsWx96c2UZyqLZoUp2qLJsWpnsd3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N6LRfLLfIwznU8pZXsCnlA+9gE8p13pdyjv/1C8sGyxlLEs57WCWxh5eztLY78tZGmcDOUvjHCFmuWW/xzkUS+N8ImdpnGXkLMk9OpYNljKW5B4dS3KPjiW5R8eS3KNjSe6Rscx+E3coluQeHUtyj44luUfHssFSxpLco2NJ7tGxJPfoWJJ7dCzJPTKW2S+ED8WS3KNjSe7RsST36Fg2WMpYknt0LMk9OpbkHh1Lco+OJblHxjL79eAsLDuurW/ZrwcPxZJnTx/Lz5sHtuxXWodiybNHxjL7ldahWNK56VjSuelY4i+7WH7R+vXa9T6fsWywlLGkc9OxpHPTsST36FiSe3QsyT0yltmvtA7FktyjY0nu0bEk9+hYNljKWJJ7dCydc88PPsm/7tn+evG/zmW9zHh/pemcfPQ0nbOPnqZz+pHTzH6tdTCazglIT9M5A+lpOqegH9F8rmn913rBM5oNmkKazklIT5MspKRJFlLSJAspaZKFhDSzX3DNSHO7tTOaZCElTbKQkiZZqI/mNj+T5XY/S5bZL7kORpMspKRJFlLSJAspaZKFlDTJQkKaO1mok+Y6PWlutzOaZCElTbKQkiZZSEmzQVNIkyykpEkWUtIkC/2Xd9tMnC9Nd/Ehr7zl43xpuosPmeI9H1LCez74/vd8WiU+HbfHt1o3nrsmLuWIuyYu5Vq7Ji7lQ7smLuUsOybea10I7pq4lPvrmriUn+uauJRD65q42U3s5rn2WldguyZ281x7rYuqXRPbea5a10m7JrbzXLUufXZNbOe5al3N7JrYznPVukDZNbGd56p1zbFrYjvPVesyYtfEdp6r1pXBrontPFeti31dE9t5rlrX77omtvNctS7JdU1s57nudp7rbue57naeq9atwa6Jm93Edp7rbue5at1m7JrYznPVunPYM3Gta4RdE9t5rlqX/bomtvNcta7kdU1s57lqXZzrmtjOc9W63tY1sZ3nqnUJrWtiO89V66pY18R2nqvWha6uie08V61rV10T23muWlejuia281y1ri91TWznuWpdMeqa2M5z1boG1DWxneeqdVWna2I7z1XrOk3XxHaeq9aVl66J7TxXrWspXRPbea5aV0e6JrbzXLWud3RNbOe5al3B6JrYznPVuibRNbGd56p1laFrYjvPVeu6QdfEdp6r1pWArontPFet3fxdE9t5rlr787smtvNctXbcd01s57ns9tDvdnvod7s99LvdHvrdbg/9breH/rDbQ3/Y7aE/7PbQH3Z76I9bs5vYzXMddnvoD7s99IfdHvrDbg/9YbeH/rDbQ3/Y7aE/7PbQH3Z76A+7PfSH3R76w24P/WG3h/6w20N/2O2hP+z20B92e+gPuz30h90e+sNuD/1ht4f+sNtDf9jtoT/s9tAfdnvoD7s99IfdHvrDbg/9YbeH/rDbQ3/Y7aE/7PbQH3Z76I9aO8q/Pvft+fL5+PDu2348P8n84bVLm3+9dmn3M5alnvTBLEt5iGCWDZYylqV8TzDLUo4qmGUprxbMspQLDGZZqtOLZVlrm38wS3KPjiW5p4/l/njj5VjOWJJ7dCwbLGUsyT06luSePpbbN8v1jCW5R8eS3KNjSe6Rsax1USOYJblHx5Lc08dyefwOuaxnv0PWui8SzLLBUsaS3KNjSe7RsST36FiSe3QsyT0ylrWu2gSzJPfoWJJ7dCzJPTqWDZYyluQeHUtyj44luUfHktyjY0nukbGsdVkqmCW5R8eS3KNjSe7RsWywlLEk9+hYknt0LMk9OpbkHh1Lco+MZa3rbsEsyT06luQeHUtyj45lg6WMJblHx5Lco2NJ7tGxJPfoWJJ7RCyXW60Li8Esk/vL1r4/yNI+brDbHtsHju1+NnGzmzi5V7tg4uSO6oKJk/uepp84uTv52cQ/ewp83tT5xSe544jmk/1mYDif5I1oOJ/kLWc4n1LO8gI+DT5v+ZRyrdelvPNP/cKylB8OZlnKaQezNPbwcpbGfl/NMvtty6FYGucIOUvjzCFnaZxP5CwbLGUsyT06luQeHUtyj44luUfHktwjY5n9vuxQLMk9OpbkHh1Lco+OZYOljCW5R8eS3KNjSe7RsST36FiSe2QsG7lHx5Lco2NJ7tGxJPfoWDZYyliSe3QsyT06luQeHUtyj44luUfGMvuF8KFYknt0LPFEXSw/X1v/Yokn0rHk2dPHsmPzQPYrrUOx5NmjY0nnpmNJ56Zj2WApY4m/7GL5RevXa9f7fMYSf6ljSeemY0nnpmNJ7pGxzH6ldSiW5B4dS3KPjiW5R8eywVLGktyjY0nu0bEk9+hYOueeH3ySfbs/YO5bW15mvL/SdE4+cprZL7UORtM5/ehpOucfPU3nBKSn2aAppOmcgn5Ec92fNLftjKZzDtLTdE5CeppkISVNspCQZvbrrYPRJAspaZKFfk5zb2c0yUJKmg2aQppkoT6a++2ZLPfpLFlmv+Q6GE2ykJImWUhJkyykozllv+g6GE2ykJImWaiTZnv6zX3ZzmiShZQ0GzSFNMlCSppkISVNspCSJllISZMs9HOa60kjNznfpb6AJllISZMs9Def5IUP6eY9nwaft3xIIO/5kCne8yElvOeD73/Pp5STP/aHpTmOk00wU61Lz10Tl3LEXROXcq1dE5fyoV0TN7uJS3nFrolLub+uiUv5ua6JSzm0rontPFetK7NdE9t5rloXW7smtvNcta6fdk1s57lqXRLtmtjOc9W6ytk1sZ3nqnXhsmtiO89V61pk18R2nqvW5cWuie08V60rhl0T23muWhcBuya281y1rut1TWznuRY7z7XYea6l2U1s57lqXUnsmtjOcy12nqvWvcqeiWtdleya2M5z1brQ2DWxneeqde2wa2I7z1XrcmDXxHaeq9YVvq6J7TxXrYt2XRPbea5a1+G6JrbzXLUurXVNbOe5al0t65rYznPVugDWNbGd56p1SatrYjvPVesiVdfEdp6r1mWnrontPFetC0ldE9t5rlqXhromtvNctS72dE1s57lqXb7pmtjOc9W6INM1sZ3nqnWJpWtiO89V66JJ18RunmuudRmka2I3zzXXurDRNbGb55pvzW5iN88117r40DWxm+eaa11O6JrYznPVukDQNbGd56q1yb9rYjvPVWvbftfEdp6r1kb8rontPFetrfVdE9t5Lrs99LPdHvrZbg/9bLeHfrbbQz/b7aGf7fbQz3Z76Ge7PfSz3R762W4P/Wy3h36220M/2+2hn+320M92e+hnuz30s90e+tluD/1st4d+tttDP9vtoZ/t9tDPdnvoZ7s99LPdHvrZbg/9bLeHfrbbQz/b7aGf7fbQz3Z76Ge7PfSz3R762W4P/Wy3h36220M/2+2hn+320M92e+hnuz30s90e+tluD/1st4d+rrWj/Otz354vn48P777tx/OTzB9eu7T512uXdj9jWepJH8yylIcIZlnKncSyrLULPphlKUcVzLKUVwtmWcoFBrNssJSxLNUWBrMk9+hYknv6WO6PN16O5YwluUfHktwjY1nrHkMwS3JPH8vtm+V6xpLco2NJ7tGxbLCUsST36FiSe3QsyT19LJfH75DL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mvmrSpcpuuY181eVrjB0zWvmrypdHOia18xfVdrc3zWvmb+qtF2/a14zf1VpA37XvGb+qtKW+q55zfxVpU3yXfOa+atK29675jXzV2b72zez/e2b2f72zWx/+2a2v30z29++me1v38z2t29m+9s3s/3tm9n+9s1sf/tmtr99M9vfvpntb9/M9rdvZvvbN7P97bvZ/vbdbH/7bra/fTfb377fmtm8Xv5qN9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W/fzfa372b723ez/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9t1sf/tutr99N9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W/fzfa372b723ez/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9t1sf/tutr99N9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W/fzfa372b723ez/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9t1sf/tutr99N9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W/fzfa372b723ez/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9sNsf/thtr/9MNvffpjtbz9uzWxeL391mO1vP8z2tx9m+9sPs/3th9n+9sNsf/thtr/9MNvffpjtbz/M9rcfZvvbD7P97YfZ/vbDbH/7Yba//TDb336Y7W8/zPa3H2b72w+z/e2H2f72w2x/+2G2v/0w299+mO1vP8z2tx9m+9sPs/3th9n+9sNsf/thtr/9MNvffpjtbz/M9rcfZvvbD7P97YfZ/vbDbH/7Yba//TDb336Y7W8/zPa3H2b72w+z/e2H2f72w2x/+2G2v/0w299+mO1vP8z2tx9m+9sPs/3th9n+9sNsf/thtr/9MNvffpjtbz/M9rcfZvvbD7P97YfZ/vbDbH/7Yba//TDb336Y7W8/zPa3H2b72w+z/e2H2f72w2x/+2G2v/0w299+mO1vP8z2tx9m+9sPs/3th9n+9sNsf/thtr/9MNvffpjtbz/M9rcfZvvbD7P97YfZ/vbDbH/7Yba//TDb336Y7W8/zPa3H2b72w+z/e2H2f72w2t/+3bz2t/+Na+Vv/qa18pffc1r5a++5m1m81r5q695rfzV17xW/uprXit/9TWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvmb/y2t/+Na+Zv/La3/41r5m/8trf/jWvl7+azPa3T2b72yez/e2T2f72r2nM5vXyV5PZ/vbJbH/7ZLa/fTLb3z6Z7W+fzPa3T2b72yez/e2T2f72yWx/+2S2v30y298+me1vn8z2t09m+9sns/3tk9n+9slsf/tktr99MtvfPpntb5/M9rdPZvvbJ7P97ZPZ/vbJbH/7ZLa/fTLb3z6Z7W+fzPa3T2b72yez/e2T2f72yWx/+2S2v30y298+me1vn8z2t09m+9sns/3tk9n+9slsf/tktr99MtvfPpntb5/M9rdPZvvbJ7P97ZPZ/vbJbH/7ZLa/fTLb3z6Z7W+fzPa3T2b72yez/e2T2f72yWx/+2S2v30y298+me1vn8z2t09m+9sns/3tk9n+9slsf/tktr99MtvfPpntb5/M9rdPZvvbJ7P97ZPZ/vbJbH/7ZLa/fTLb3z6Z7W+fzPa3T2b72yez/e2T2f72yWx/+2S2v32qtN/761Pfnp96Pj68908+x/1+X369+H7fp+/Pcaz/5jvPt/nx4vm2vbKb/u6d9+P5zvOHd17a/Ou1S7ufqV/IjaD+j9Uv5M1Q/8fqN9Q3Vr+Qb0f9H6tfKMWg/o/VL5TpUP/H6hdKuKj/Y/UL/Z6C+j9Uf650XQX1f6w+XZ+z+nR9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"}],"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":{"123":{"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, N, M>(\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<N>(&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<N>(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"},"137":{"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"},"142":{"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"},"169":{"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"},"171":{"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"},"172":{"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"},"174":{"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"},"175":{"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"},"177":{"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"},"178":{"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"},"181":{"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"},"182":{"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"},"186":{"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"},"195":{"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<N>(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"},"196":{"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"},"201":{"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"},"210":{"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"},"211":{"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"},"213":{"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"},"217":{"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"},"218":{"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"},"219":{"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"},"222":{"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"},"229":{"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"},"23":{"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 fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\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"},"239":{"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"},"241":{"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"},"242":{"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<N>(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<N>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<N>(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"},"243":{"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"},"245":{"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"},"251":{"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"},"265":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<N> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<N> 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<K>(&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, K>(&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, K, C>(&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"},"277":{"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, N, M>(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"},"291":{"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"},"292":{"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"},"400":{"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"},"57":{"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"},"95":{"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<M>(&mut self, randomness: Field, log: [u8; M], log_hash: Field) {\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<M>(&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<ARGS_COUNT>(\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<ARGS_COUNT>(\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<ARGS_COUNT>(\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<ARGS_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, 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<ARGS_COUNT>(\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<ARGS_COUNT>(\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<ARGS_COUNT>(\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<ARGS_COUNT>(\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<ARGS_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 ) {\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+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"}}}