@aztec/protocol-contracts 0.49.2 → 0.50.1

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