@aztec/protocol-contracts 0.45.1 → 0.46.2
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.
- package/artifacts/AuthRegistry.json +1 -1
- package/artifacts/ContractClassRegisterer.json +1 -1
- package/artifacts/ContractInstanceDeployer.json +1 -1
- package/artifacts/GasToken.json +1 -1
- package/artifacts/KeyRegistry.json +1 -1
- package/artifacts/MultiCallEntrypoint.json +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.31.0+10076d9663dcf40ac712df69e3a71a1bb54866e2","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":"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":"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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uk5o0lssX2W6xGfSWyxfZbo6Z9JbLF9lurBm0lssX2W6JmbSWyxfZbqcZdJbLF9luhJl0lssX2W6iGTSWyxfZbr+Y9JbLF9lunRj0lssX2W66mLSWyxfZbpgYtJbLF9lutZh0lssX2W6TGHSWyxfZbrCYNJbLF9lujhg0lssX2Xa3G/SWyxfZdqub9JbLF9l2oBv0lssX2XaUm/SWyxfZdokb9JbLF9l2vZu0lssXxXb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb374U29++FNvfvhTb396K7W9vxfa3t2L721ux/e3t1orprZWvWrH97a3Y/vZWbH97K7a/vRXb396K7W9vxfa3t2L721ux/e2t2P72Vmx/eyu2v70V29/eiu1vb8X2t7di+9tbsf3trdj+9lZsf3srtr+9Fdvf3ortb2/F9re3YvvbW7H97a3Y/vZWbH97K7a/vRXb396K7W9vxfa3t2L721ux/e2t2P72Vmx/eyu2v70V29/eiu1vb8X2t7di+9tbsf3trdj+9lZsf3srtr+9Fdvf3ortb2/F9re3YvvbW7H97a3Y/vZWbH97K7a/vRXb396K7W9vxfa3t2L721ux/e2t2P72Vmx/eyu2v70V29/eiu1vb8X2t7di+9tbpv3eX5/69vjU8/nme3/yOeZ5Wh8K//mK++c45//6nW/z/Yvn2/7Mbv/bdz7Ox3ee33zntc2/v3Zty5X7idII7n/sfsP9wu4nSqq4/7H7iXI77n/sfqIWg/sfu5+o0+H+x+4nari4/6n7me6J4P7H7if66RLuf+w+s77K7jPry+r+cYexnuuV+w33C7vPrK+y+8z6KrvPrC+r+/u3+9uV+8z6KrvPrK+w+5lu2+H+x+4z66vsPrO+yu4z68vq/nr/nd51u/qd3kw3MXH/Y/eZ9VV2n1lfZfeZ9VV2n1lfZfeZ9dV1f810Zxn3P3afWV9l95n1VXafWV9l9xvuF3afWV9l95n1VXafWV9l95n1VXafWV9h9ydmfZXdZ9ZX2X1mfZXdZ9ZX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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, 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"},"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_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 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 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, 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"},"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, 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"},"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.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.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_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 = 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_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_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 note_hashes: [NoteHash; MAX_NOTE_HASHES_PER_CALL],\n nullifiers: [Nullifier; MAX_NULLIFIERS_PER_CALL],\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\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_NOTE_HASHES_PER_CALL {\n fields.extend_from_array(self.note_hashes[i].serialize());\n }\n for i in 0..MAX_NULLIFIERS_PER_CALL {\n fields.extend_from_array(self.nullifiers[i].serialize());\n }\n for i in 0..MAX_L2_TO_L1_MSGS_PER_CALL {\n fields.extend_from_array(self.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 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 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 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 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 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/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"},"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_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.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 note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"}}}
|
|
1
|
+
{"transpiled":true,"noir_version":"0.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"}}}
|