@aztec/protocol-contracts 0.45.0 → 0.46.1

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+bb5cbab945cfd61f6a0da79f8874a0fcdc59361a","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/fmhkpWymlOIlTDMEJsVMoJnuv3dIF9LxpJN237+kwl+lp//Dx4/vh+Px6mu6/XqaX18fd+fB6vJ4u0+ZLLX/ent52x9uL03n3fp7ut33cTfvj0/Vp1Ofd9Hx42V+f1/b57e42WmG03cgoMioZbWU0y6jJqMtoyEiK2EoRsxQxSxGzFDFLEbMUMUsRsxQxSxGzFDFLEU2KaFJEkyKaFNGkiCZFNCmiSRFNimhSRJciuhTRpYguRXQpoksRXYroUkSXIroUMaSIIUUMKWJIEUOKGFLEkCKGFDGkiCFFLFLEIkUsUsQiRSxSxCJFLFLEIkUsUsQiRaxSxCpFrFLEKkWsUsQqRaxSxCpFrFLEKkVks6FVaFW02tJqplWjVafVoNVCK2oj1EaojVAboTZCbYTaCLURaiPURqiNojaK2ihqo6iNojaK2ihqo6gNAs2QaIZIM2SaIdQMqWaINUOuGYLNkGyGaDNkmyHcDOlmiDdDvhkCzpBwhogzZJwh5AwpZ4g5Q84Zgs6QdIaoM2SdIewMaWeIO0PeGQLPkHiGyDNkniH0DKlniD1D7hmCz5B8hugzZJ8h/AzpZ4g/Q/4ZAtCQgIYINGSgIQQNKWiIQUMOGoLQkISGKDRkoSEMDWloiENDHhoC0ZCIhkg0ZKIhFA2paIhFQy5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWnbRk1y0yEWLXLTIRYtctMhFi1y0/ttFr6efu/fD7uFlf7vbe/v4cXz8d9X3ejz/evv75frvbw=="},{"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"}},{"name":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"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"}},{"name":"side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"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"}}],"kind":"struct","path":"authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint"}},{"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":"new_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":"new_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":"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":"new_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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/vCMDhn/GR1y+DM6ZOVndAI6T+g0ysrH/f748LGf6W2UflN6G+XZlN5GCTWlt1HmTOi9XRqlyJTeRrkwpbdR0kvpbZTdUnrDTK9XvrpdvPLV7eKVr24Xr3x1u5jlq8UsXy1m+Woxy1eLWb5awkyvWb5azPLVYpavFrN8tZjlq6tZvrqa5aurWb66muWra5jpNctXnS7Up/Sa5atO19hTes3yVafL4ym9Zvmq05XtlF6zfNXponRKr1m+6nQ9OaXXLF91uhSc0muWrzpdxU3pNctXnS7ApvSa5atO105Tes3yVafLnim9Zvmq0xXLlF6zfNXpYmNKr1m+6nSdMKXXLF91usSX0muWrzpdnUvpNctXnS6spfSa5atO18RSes3yVafLWSm9Zvmq05WolF6zfNXpIlJKr1m+6nT9J6XXLF91unST0muWrzpddUnpNctXnS6YpPSa5atO1zpSes3yVafLFCm9Zvmq0xWGlF6zfNXp4kBKr1m+6rS5P6XXLF912q6f0muWrzptwE/pNctXnbbUp/Sa5atOm+RTes3yVadt7ym9ZvnKbH/7zWx/+81sf/vNbH/7bra/fTfb376b7W/fzfa375cw0+uVr3az/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9t1sf/tutr99N9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W/fzfa372b723ez/e272f723Wx/+262v30329++m+1v3832t+9m+9t3s/3tu9n+9r3Tfu+vb335/tbX48XPfud7LHH7/snbj08v+/5XP/l+fP/k64ufvMX112e3WM88apQZ2noUeDS8R42yWVuPGuXJth41ysBtPWqU29t61KhrdPWo0/2Fth41mpm39Yg5w/geMWeo9ej++MHbsZ15FHg0vEfMGcb3iDnD+B4xZ6j1aP/t0e3MI+YM43vEnGF4jzrdIWrrEXOG8T1izjC+R8wZaj3aHn8vaLud/b2gTne12nrEnGF8j5gzjO8Rc4bxPWLOML5HzBmG96jTPb62HjFnGN8j5gzje8ScYXyPAo+G94g5w/geMWcY3yPmDON7xJxhfI+YMwzvUae7tG09Ys4wvkfMGcb3iDnD+B4FHg3vEXOG8T1izjC+R8wZxveIOcP4HjFnGN6jTvfZ23rEnGF8j5gz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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":{"120":{"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\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 event_selector: Field,\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 event_bytes = event_selector.to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = event_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[36 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[40 + 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() < ARGS_HASH_CHUNK_COUNT * ARGS_HASH_CHUNK_LENGTH);\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..800 {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x05a1023fef839ac88731f49ae983e172c1b600a3c8f3393ad0ac25d819ac0f0f);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00846d6969c8c2f61d39cd2762efcb0abb14f88d59c2675910251ef2bcffe9a7);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00880a801230ea08c98a802a11b4786cba474513875f0fc69a615e81c5f9f21c);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00a78b5347813624ecfd26e5b8bc6146f418b0cfcc8296b5112d09b8ebba9496);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x001f3390ea242afee7ce46dafdbdc4bd4f1cf20cd63850d12d60ff9956712c4f);\n}\n"},"134":{"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"},"139":{"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_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_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 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 new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0,\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"},"166":{"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}, 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: 0 }\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"},"168":{"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, nullifier_counter: u32, contract_address: AztecAddress) -> ScopedNoteHash {\n ScopedNoteHash { note_hash: self, nullifier_counter, contract_address }\n }\n}\n\nstruct ScopedNoteHash {\n note_hash: NoteHash,\n nullifier_counter: u32,\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.nullifier_counter == other.nullifier_counter)\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 nullifier_counter: 0,\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.nullifier_counter as Field, 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 nullifier_counter: reader.read_u32(),\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 assert(\n (self.nullifier_counter == 0) | (read_request.counter() < self.nullifier_counter), \"Read request counter must be less than the nullifier 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"},"169":{"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"},"170":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr","source":"use crate::abis::{function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs};\nuse crate::address::AztecAddress;\nuse crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM;\nuse crate::traits::Hash;\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n // WARNING: if updating, see comment in public_call_stack_item.ts's `PublicCallStackItem.hash()`\n let public_inputs = self.public_inputs;\n let mut request_public_inputs = PublicCircuitPublicInputs::empty();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs\n };\n call_stack_item\n }\n}\n\nmod tests {\n use crate::{\n abis::{\n function_data::FunctionData, function_selector::FunctionSelector, note_hash::NoteHash,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem\n },\n address::AztecAddress, constants::GENERATOR_INDEX__CALL_STACK_ITEM, traits::Hash\n };\n\n #[test]\n fn compute_call_stack_item_request_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: true, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item request hash\" test\n let test_data_call_stack_item_request_hash = 0x022a2b82af83606ae5a8d4955ef6215e54025193356318aefbde3b5026952953;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_request_hash);\n }\n\n #[test]\n fn compute_call_stack_item_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: false, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item hash\" test\n let test_data_call_stack_item_hash = 0x23a1d22e7bf37df7d68e8fcbfb7e016c060194b7915e3771e2dcd72cea26e427;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);\n }\n}\n"},"171":{"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_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_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 new_note_hashes: u32,\n new_nullifiers: u32,\n new_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 new_note_hashes: validate_array(public_inputs.new_note_hashes),\n new_nullifiers: validate_array(public_inputs.new_nullifiers),\n new_l2_to_l1_msgs: validate_array(public_inputs.new_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 new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_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 new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_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.new_note_hashes == other.new_note_hashes) &\n (self.new_nullifiers == other.new_nullifiers) &\n (self.private_call_requests == other.private_call_requests) &\n (self.public_call_stack_hashes == other.public_call_stack_hashes) &\n (self.new_l2_to_l1_msgs == other.new_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.new_note_hashes.len() {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..self.new_nullifiers.len() {\n fields.extend_from_array(self.new_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.new_l2_to_l1_msgs.len() {\n fields.extend_from_array(self.new_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 new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_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 new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_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 new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_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 new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_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 = 0x1eb5048b5bdcea5ba66519ecd1cbdb9e18fd957d52830b2bcb309f4ce9bcfbd3;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"173":{"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"},"174":{"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"},"177":{"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"},"178":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{\n constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize},\n grumpkin_point::GrumpkinPoint\n};\n\nstruct KeyValidationRequest {\n pk_m: GrumpkinPoint,\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: GrumpkinPoint::zero(),\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.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: GrumpkinPoint::new(fields[0], fields[1]),\n sk_app: fields[2],\n }\n }\n}\n\n"},"182":{"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"},"191":{"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"},"192":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_request.nr","source":"use crate::{\n abis::{caller_context::CallerContext, side_effect::{Ordered, RangeOrdered, Scoped}},\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 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.hash == other.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 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.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 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\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"},"197":{"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"},"206":{"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 = 0x157022d579f892f06461fb895cdf5550b24329e15e7a41df14f9dad582fa1bc5;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"207":{"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"},"209":{"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) -> LogHash {\n // Hide the counter when exposing to public.\n // The log hash must already be siloed when we call this.\n LogHash { value: self.log_hash.value, counter: 0, length: self.log_hash.length }\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"},"213":{"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"},"214":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{CALL_CONTEXT_LENGTH, GENERATOR_INDEX__CALL_CONTEXT}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n abis::{gas_settings::GasSettings, gas::Gas}, 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 side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl CallContext {\n fn assert_is_zero(self) {\n let serialized: [Field; CALL_CONTEXT_LENGTH] = self.serialize();\n\n for i in 0..CALL_CONTEXT_LENGTH {\n assert(serialized[i] == 0);\n }\n }\n}\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 serialized.push(self.side_effect_counter 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 side_effect_counter: reader.read() as u32,\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 side_effect_counter: 0,\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 assert_is_zero() {\n let context = CallContext::empty();\n context.assert_is_zero();\n}\n\n#[test(should_fail)]\nfn not_zero_assert_is_zero() {\n let mut context = CallContext::empty();\n context.is_delegate_call = true;\n context.assert_is_zero();\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"},"215":{"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"},"216":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, note_hash::NoteHash, nullifier::Nullifier, read_request::ReadRequest,\n gas::Gas, global_variables::GlobalVariables, log_hash::LogHash\n},\n address::AztecAddress,\n constants::{\n MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL, MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n hash::pedersen_hash, header::Header, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Hash, Serialize, Deserialize, Empty}, utils::reader::Reader\n};\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\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 nullifier_non_existent_read_requests: [ReadRequest; MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n l1_to_l2_msg_read_requests: [ReadRequest; MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n\n unencrypted_logs_hashes: [LogHash; MAX_UNENCRYPTED_LOGS_PER_CALL],\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n\n // Global variables injected into this circuit\n global_variables: GlobalVariables,\n\n prover_address: AztecAddress,\n\n revert_code: u8,\n \n start_gas_left: Gas,\n end_gas_left: Gas,\n transaction_fee: Field,\n}\n\nimpl Eq for PublicCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Serialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_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 for i in 0..MAX_NOTE_HASH_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.note_hash_read_requests[i].serialize());\n }\n for i in 0..MAX_NULLIFIER_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_non_existent_read_requests[i].serialize());\n }\n for i in 0..MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.l1_to_l2_msg_read_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.extend_from_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.extend_from_array(self.contract_storage_reads[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_NOTE_HASHES_PER_CALL {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL {\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n for i in 0..MAX_NEW_L2_TO_L1_MSGS_PER_CALL {\n fields.extend_from_array(self.new_l2_to_l1_msgs[i].serialize());\n }\n\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n\n for i in 0..MAX_UNENCRYPTED_LOGS_PER_CALL{\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.global_variables.serialize());\n fields.push(self.prover_address.to_field());\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 fields.push(self.transaction_fee);\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn deserialize(serialized: [Field; PUBLIC_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 = PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\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 nullifier_non_existent_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL]),\n l1_to_l2_msg_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_L1_TO_L2_MSG_READ_REQUESTS_PER_CALL]),\n contract_storage_update_requests: reader.read_struct_array(StorageUpdateRequest::deserialize, [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL]),\n contract_storage_reads: reader.read_struct_array(StorageRead::deserialize, [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_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 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 global_variables: reader.read_struct(GlobalVariables::deserialize),\n prover_address: reader.read_struct(AztecAddress::deserialize),\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 transaction_fee: reader.read(),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PublicCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PublicCircuitPublicInputs {\n fn empty() -> Self {\n PublicCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\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 new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0 as u32,\n end_side_effect_counter: 0 as u32,\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 as u8,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PublicCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PublicCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PublicCircuitPublicInputs::empty();\n let hash = inputs.hash();\n\n // Value from public_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x2e08158f3f0d9a94e3f17338aadc3733a15bf5d163f94cef1afd8a47b446d789;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"218":{"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"},"22":{"path":"std/field.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"},"226":{"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"},"237":{"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"},"239":{"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"},"240":{"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\npub fn 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"},"241":{"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"},"243":{"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"},"247":{"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"},"261":{"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"},"273":{"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"},"286":{"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"},"287":{"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, grumpkin_point::GrumpkinPoint,\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"},"395":{"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"},"4":{"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);\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 // TODO: Allow imports from \"super\"\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 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"},"55":{"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"},"93":{"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_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_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 new_note_hashes: BoundedVec<NoteHash, MAX_NEW_NOTE_HASHES_PER_CALL>,\n new_nullifiers: BoundedVec<Nullifier, MAX_NEW_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 new_l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_NEW_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 new_note_hashes: BoundedVec::new(),\n new_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 new_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_new_note_hash(&mut self, note_hash: Field) {\n self.new_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_new_nullifier(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.new_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 new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_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 new_l2_to_l1_msgs: self.new_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.new_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_new_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.call_context.side_effect_counter, start_side_effect_counter);\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 { hash: item.hash(), caller_context, start_side_effect_counter, end_side_effect_counter }\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.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.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.call_context.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 new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\n new_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.31.0+6237d96a0bc23a5ed656e7ba172fb57facd9c807","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/f0swoWymlOIlTDMEJsVMoJnuv3dIF9LxpJN237+kwl+lp//Dx4/vh+Px6mu6/XqaX18fd+fB6vJ4u0+ZLjT9vT2+74+3F6bx7P0/329bvpv3x6frU6/Nuej687K/P6/j8dncbrTDabmQUGZWMtjKaZbTIqMmoy0iK2EoRsxQxSxGzFDFLEbMUMUsRsxQxSxGzFDFLEYsUsUgRixSxSBGLFLFIEYsUsUgRixSxSBFNimhSRJMimhTRpIgmRTQpokkRTYpoUkSXIroU0aWILkV0KaJLEV2K6FJElyK6FDGkiCFFDCliSBFDihhSxJAihhQxpIghRaxSxCpFrFLEKkWsUsQqRaxSxCpFrFLEKkVks6FVaFW02tJqptVCq0arTqtBK2oj1EaojVAboTZCbYTaCLURaiPURqiNojaK2ihqo6iNojaK2ihqo6gNAs2QaIZIM2SaIdQMqWaINUOuGYLNkGyGaDNkmyHcDOlmiDdDvhkCzpBwhogzZJwh5AwpZ4g5Q84Zgs6QdIaoM2SdIewMaWeIO0PeGQLPkHiGyDNkniH0DKlniD1D7hmCz5B8hugzZJ8h/AzpZ4g/Q/4ZAtCQgIYINGSgIQQNKWiIQUMOGoLQkISGKDRkoSEMDWloiENDHhoC0ZCIhkg0ZKIhFA2paIhFQy5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWuSiRS5a5KJFLlrkokUuWnbRk1y0yEWLXLTIRYtctMhFi1y0/ttFr6efu/fD7uFlf7vbe/v4cXz8d9X3ejz/evv75frvbw=="},{"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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NVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXGNVu9cc1Wb1yz1RvXbPXONVu9c81W71yz1TvXbPW+Ja5yqVxV55qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3rlmq3eu2eqda7Z655qt3qlmq9eNarb6rVwmV3Url8lV3cplclW3chNXuUyu6lYuk6u6lcvkqm7lMrmqW7lcropqtvqtXC5XRTVb/VYul6uimq1+K5fLVVHNVr+Vy+WqqGar38rlclVUs9Vv5XK5KqrZ6rdyuVwV1Wz1W7lcropqtvqtXC5XRTVb/VYul6uimq1+K5fLVVHNVr+Vy+WqqGar38rlclVUs9Vv5XK5KqrZ6rdyuVwV1Wz1W7lcropqtvqtXC5XRTVb/VYul6uimq1+K5fLVVHNVr+Vy+WqqGar38rlclVUs9Vv5XK5KqrZ6rdyuVwV1Wz1W7lcropqtvqtXC5XRTVb/VYul6uimq1+K5fLVVHNVr+Vy+WqqGar38rl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/mW5XK9UlXz3slyuV6pKvndZLtcrVSXfuSyX65Wqku9blsv1SlXJdy3L5XqlquR7luVyvVJV8h3LcrleqSr5fmW5XK9UlXy3slyuV6pKvldZLtcrVSXfqSyX65Wqku9Tlsv1SlXJdynL5XqlqrtXqrp7parkW7Llcr1SVfNKVc0rVSXfgS6X65Wqku9Al8v1SlXJd6DL5XqlquQ70OVyvVJV8h3ocrleqSr5DnS5XK9UlXwHulyuV6ry2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Wev3eqz12712Wu3+uy1W32+NS+5Vqlq9tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9dlrt/rstVt99tqtPnvtVp+9dqvPXrvVZ6/d6rPXbvXZa7f67LVbffbarT577VafvXarz1671Wev3eqz12712Wu3+uy1W3322q0+e+1Wn712q89eu9Vnr93qs9du9bvXbvW71271u9du9bvXbvX7rXnJtUpVd6/d6nev3ep3r93qd6/d6nev3ep3r93qd6/d6nev3ep3r93qd6/d6nev3ep3r93qd6/d6vdK27ePbX68eLufyC303I3ILfTJfOz788XbidxCn8wRuYU+mSNyC30yR+QW6rsBuZX2M0fkVnruBuRWeu4G5BbquxG5zUuuV6qqtJ85InfYVPWS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ybVKVdvNKlVtN6tUtd2sUtV280pVk1eqqnTHPiLXK1VVutkekdu85HqlqkpXwSNyvVJVpQvYEbleqarSteeIXK9UVemycUSuV6qqdMU3ItcrVVW6WBuR65WqKl1njcj1SlWVLpFG5HqlqkpXNyNyvVJVpQuTEbleqarSNcWIXK9UVelyYESuV6qqdCUvItcrVVW6CBeR65WqKl0/i8j1SlWVLn1F5HqlqkpXrSJyvVJVpQtOEbleqarStaKIXK9UVekyT0SuV6qqdIUmItcrVVW6uBKR65WqKl0Xicj1SlWVLmlE5HqlqkpXIyJyvVJVpQsJEbleqarSNYCIXK9UVWmrfkSuV6qqtPk+ItcrVVXaTh+R65WqKm2Qj8j1SlWVtrxH5Hqlqkqb2CNyvVKV1271zWu3+ua1W33z2q2+ee1W37x2q29eu9U3r93qm9du9c1rt/rmtVt989qtvnntVt+8dqtvXrvVN6/d6pvXbvXNa7f67rVbfffarb577VbfvXar77fmJdcqVe1eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q2+e+1W3712q+9eu9V3r93qu9du9d1rt/rutVt999qtvnvtVt+9dqvvXrvVd6/d6rvXbvXda7f67rVbfffarb577VbfvXar71671Xev3eq712713Wu3+u61W3332q1+eO1WP7x2qx9eu9UPr93qx615ybVKVYfXbvXDa7f64bVb/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/rhtVv98NqtfnjtVj+sdqtvN6vd6l9ynVLVl1ynVPUl1ylVfcltXnKdUtWXXKdU9SXXKVV9yXVKVV9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+S65WqrHarf8n1SlVWu9W/5HqlKqvd6l9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+S65WqrHarf8n1SlVWu9W/5HqlKqvd6l9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+S65WqrHarf8n1SlVWu9W/5HqlKqvd6l9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+S65WqrHarf8n1SlVWu9W/5HqlKqvd6l9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+S65WqrHarf8n1SlVWu9W/5HqlKqvd6l9yvVKV1W71L7leqcpqt/qXXK9UZbVb/UuuV6qy2q3+JdcrVVntVv+Sa5WqJq/d6pPXbvXJa7f65LVb/UuMl1yrVDV57VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93qk9du9clrt/rktVt98tqtPnntVp+8dqtPXrvVJ6/d6pPXbvXJa7f65LVbffLarT557VafvHarT1671Sev3eqT1271yWu3+uS1W33y2q0+ee1Wn7x2q09eu9Unr93q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29++i+1v38X2t+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+9t3sf3tu9j+9l1sf/sutr99F9vfvovtbz/E9rcfYvvbD7H97YfY/vbjVsX0auWrQ2x/+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/vZDbH/7Iba//RDb336I7W8/xPa3H1r727eb1v72u16pfHXXK5Wv7nql8tVdbxXTK5Wv7nql8tVdr1S+uuuVyld3vWL5Smt/+12vWL7S2t9+1yuWr7T2t9/1iuUrrf3td71i+Uprf/tdr1i+0trfftcrlq+09rff9YrlK6397Xe9YvlKa3/7Xa9YvtLa337XK5avtPa33/WK5Sut/e13vWL5Smt/+12vWL7S2t9+1yuWr7T2t9/1iuUrrf3td71i+Uprf/tdr1i+0trfftcrlq+09rff9YrlK6397Xe9YvlKa3/7Xa9YvtLa337XK5avtPa33/WK5Sut/e13vWL5Smt/+12vWL7S2t9+1yuWr7T2t9/1iuUrrf3td71i+Uprf/tdr1i+0trfftcrlq+09rff9YrlK6397Xe9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+atKl2665jXzV5WuunTNa+avKl0w6ZrXzF9VutbRNa+Zv6p0maJrXjN/VekKQ9e8Zv6q0sWBrnnN/FWlzf1d85r5q0rb9bvmNfNXlTbgd81r5q8qbanvmtfMX1XaJN81r5m/qrTtvWteM39ltr99M9vfvpntb9/M9rdvZvvbN7P97ZvZ/vbNbH/7Zra/fTPb376Z7W/fzPa3b2b72zez/e2b2f72zWx/+2a2v30z29++m+1v3832t+9m+9t3s/3t+62Zzevlr3az/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+9t1sf/tutr99N9vfvpvtb9/N9rfvZvvbd7P97bvZ/vbdbH/7bra/fTfb376b7W8/zPa3H2b72w+z/e2H2f7249bM5vXyV4fZ/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/e2H2f72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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":{"121":{"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"},"135":{"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"},"140":{"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"},"167":{"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"},"169":{"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"},"170":{"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"},"172":{"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"},"173":{"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"},"175":{"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"},"176":{"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"},"179":{"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"},"180":{"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::new(fields[0], fields[1], fields[2] as bool),\n sk_app: fields[3],\n }\n }\n}\n\n"},"184":{"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"},"193":{"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"},"194":{"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"},"199":{"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"},"208":{"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"},"209":{"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"},"211":{"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) -> LogHash {\n // Hide the counter when exposing to public.\n // The log hash must already be siloed when we call this.\n LogHash { value: self.log_hash.value, counter: 0, length: self.log_hash.length }\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"},"215":{"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"},"216":{"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"},"217":{"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"},"220":{"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"},"227":{"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"},"237":{"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"},"239":{"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"},"240":{"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\npub fn 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"},"241":{"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"},"243":{"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"},"249":{"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"},"263":{"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"},"275":{"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"},"289":{"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"},"290":{"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"},"398":{"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);\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 // TODO: Allow imports from \"super\"\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 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"},"56":{"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"},"94":{"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"}}}