@aztec/accounts 0.50.1 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"transpiled":true,"noir_version":"0.33.0+2d702155f9341cac08a960f271e3ed5450740729","name":"SchnorrAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"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":"signing_pub_key_x","type":{"kind":"field"},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"field"},"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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"},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)"],"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"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"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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zSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSg6zSg6zSg6zSg6zSj6BUtqpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxlFpxnFoBnFoBnFoBnFoBnFuGBJHTSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjGDSjmDSjmDSjmDSjmDSjmBcsqZNm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MWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWhGMWlGMWlGMWlGMWlGMS9YUifNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKCbNKBbNKBbNKBbNKBbNKNYFS+qiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWiGcWmGcWmGcWmGcWmGcW+YEndNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPYNKPY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GUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWnGUWnGUWnGUWnGUW/YEntNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKMYNKMYNKMYNKMYNKMYFyypg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YU4/lGsb+/eC77saCfX6xXZr0VcuUP9ctV73ert247bq+O35v1Tc3GpmZzU7O1qdne1OyzP9G//bj39tZRd5pt7bfPkra5/tDq38t/unx9cPnyucvXz12+fe7y/XOXH5+7/Pzc5dfnLr8/d/mf+1O3P/enbn/uT93+3J+6/bk/dZ+urx9c/uf+1O3P/anbn/tT9yFqvK66/Tyq8+vyu9Te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xaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaQZxaQZxaQZxaQZxbxgSZ00o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o1g0o1g0o1g0o1g0o1gXLKmLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSbZhSbZhSbZhSbZhT7giV104xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04xi04zi0Izi0Izi0Izi0IziXLCkHppRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJpRHJhR9AtmFE9BrKQ+BbGS+hTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAtqWFG8RRES2qYUTwF0ZIaZhRPQbSkhhnFUxAsqYVmFIVmFIVmFIVmFOWCJbXQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLQjKLSjKLSjKLSjKLSjKJesKRWmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlFUmlE0mlE0mlE0mlE0mlE8fxqtIFhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi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KCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKCrNKBrNKBrNKBrNKBrNKJ4/jVYQLKmNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSdZhSdZhSdZhSdZhT9giW104yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiXLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRTJpRTJpRTJpRTJpRzAuW1EkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikUzikUzikUzikUzinXBkrpoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFpRrFpRrFpRrFpRrEvWFI3zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSgOzSgOzSgOzSgOzSjOBUvqoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRnFvGBG8RTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgWxkvoUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BcGSWmhGUWhGUWhGUWhGUS5YUgvNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKMrTjaJe5m9vfdX8WNB7L86s26tz6vby873au5WU3irpuL06fm82NjWbm5qtTc32pmZnUbMky/rOizOvtxdnfS/ert8/TEjy9d9SPmha+LeUb+T/Uk6D873ZFrvzX4ra+VL/Vvj5mfsPr/+tYd/WMHp++SsaRs8wf0XD6DlGZuT7p935Gu6dBr7WbJJ9+7jOmZ8+rr/WbPLrZp+utz+0WdnUrG5qFj0l/fM/T5jdKomffp54upb/0Ga/2O3Or5v9Yrc7v272i93u/LrZL3a78+tmv9jtzi+b7a81Qd1p9mtNUHea/VoT1J1mN01QT99i8aHNbpqgetME1ZsmqN40QfWmCWo2TVCzaYKaTRPUbJqgnr5d5kOb3TRBzaYJajZNULNpgppFE5ReiyYovRZNUHotmqD0WjRB6eWbml00Qem1aILSa9EEpdeiCUqvTROUbJqgZNMEJZsmKNk0QT19G9uHNrtpgpJNE5RsmqBk0wQlmyYo3TRB6aYJSjdNULppgnr6lsQPbXbTBKWbJijdNEHppglKN01QtmmCsk0TlG2aoGzTBPX07aUf2uymCco2TVC2aYKyTROUbZqgfNME5ZsmKN80QfmmCerpW4U/tNlNE5RvmqB80wTlmyYo3zRBxaYJKjZNULFpgopNE9RX2/b962Y3TVBfbdv3r5vdNEF9tW3fv2520wSVmyao3DRB5aYJir13/NHN+qZmN01Q7F3jj2520wT1xXaS32l20wT1xXaS32l20wT1xXaS32l20wS1aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJrpt2kuumneS6aSe5btpJbpt2ktumneS2aSe5bdpJfjrZ1OyiCco27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJbdNOctu0k9w27SS3TTvJfdNOct+0k9w37ST3TTvJ/fJNzS6aoHzTTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJPcN+0k9007yX3TTnLftJM8Nu0kj007yWPTTvLYtJM8Lt/U7KIJKjbtJI9NO8lj007y2LSTPDbtJI9NO8njq+0kL71V0j83+8UmqF83689u1vL21i7662YlJq63t04p+UOzvzUQn72BRDeQes2tgfM/faeB+uwN9GdvYD55A8/fxf1PNVBX++2tReJe5GbfIjdn/nXkPn8X90c2q5uatU3N+qZm2VPGP9vsr6d9ZU8kD26WPb08uFn2pPPgZtlT0WObta81Qd1p9mtNUHea/VoT1J1mv9YEdadZ39TspgnKNk1Q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lWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUlWYUjWYUjWYUjWYUjWYUz59GKwiW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7BktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEuWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmBUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFumBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj2DSj2DSj2DSj2DSj2BcsqZtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFIdmFIdmFIdmFIdmFOeCJfXQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLAjGJfMKN4CmIl9SmIldSnIFZSn4JYSX0KYiX1KYiV1KcgVlKfglhJfQqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CYEktNKMoNKMoNKMoNKMoFyyphWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUhWYUlWYUlWYUlWYUlWYU9YIltdKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotGMotGMotGMotGM4vnTaAXBktpoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFpRtFpRtFpRtFpRtEvWFI7zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSgGzSgGzSgGzSgGzSjGBUvqoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFpBnFpBnFpBnFpBnFvGBJnTSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmDSjmE83inqZv731VfNjQe+9OLNur86p28vlqncrKb1V0nF7dfzebG5qtjY125uanUXNPt2bfmizsqlZ3dSsbWrWNzWLnqDO0DffB8AWu9OsmojdChfXP7z+t4bRU9Rf0TB6kvorGkZPU39Fw+iJ6i9oONFT1V/R8CMmq/MfxltV2XbnB++y758aId9fPL8XpLSCjFaQP72gum4F/TAW3AoKWkFJK6ho/4aaVtDACnqIPX9oQbSkLlpSFy2py2kFBa0gWlJX0QpqWkEDK6ifndQq81aQquWPBb3zzvHDNUm09s8zeMtnb0A/ewP22RugfdI07ZOmk1ZQsf/NTdxSN6XknX9z/dkbmE/ewEMsf16326r0e7dV3bf7pJG+89bacvs+oeOHy6p67739mrf3dvkx4/S99x693s59VONf/t0XYQ9ZQ/A6y9/OUl9n+bCztNdZPuws/XWWDzvLeJ3lw84yP/sg8tln2fnss+x88lm2Lvgtzv0G4Lc49xtQ1sVeXUYryGkFwb55rQt2n18X7D6/Lth9fl2w+/ySi1aQ0AqiJbXQklpoSS20pBZaUgstqYWW1EJLaqUltdKSWmlJrbSkVlpSKy2plZbUSktqpSW10pLaaElttKQ2WlIbLamNltRGS2qjJbXRktpoSW20pHZaUjstqZ2W1E5LaqcltdOS2mlJ7bSkdlpSOy2pg5bUQUvqoCV10JI6aEkdtKQOWlIHLamDltRBS+qkJXXSkjppSZ20pKap+6Kp+6Kp+0paUictqZOW1EVL6qIlddGSumhJXbSkLlpS09R90dR90dR90dR9NS2pm5bUTUvqpiV105K6aUndtKRuWlI3LambltRDS+qhJfXQknpoST20pB5aUg8tqYeW1ENL6oEldV+wpO4LltRNM4pNM4p9wZK6aUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUaxaUax9Us9WyntrZDWH14b9nuzX+q5Svea/VLPVLrX7Jd6ntK9Zr/Us5TuNGtf6jlK95qFPW+6Dfa86TbY86b7IZb1oQUFraCkFVS0gppW0MAK8otWEC2pnZbUTktqpyW105LaaUnttKR2WlI7LamDltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1EFL6qQlddKSOmlJnbSkTlpSJy2pk5bUSUvqpCV10pK6aEldtKQuWlIXLamLltRFS+qiJXXRkrpoSV20pG5aUjctqZuW1E1L6qYlddOSumlJ3bSkblpSNy2ph5bUQ0vqoSX10JJ6aEk9tKQeWlIPLamHltQDS+q5YEk9Fyyp54Il9VywpJ4LltRzwZJ6LlhSzwVL6rlgST0XLamFltRCS2qhJbXQklpoSS20pBZaUgstqYWW1EJLaqUltdKSWmlJrbSkVlpSKy2plZbUSktqpSW10pLaaElNM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4pDM4oDM4pzwYziKYiV1KcgVlKfglhJfQpiJfUpiJXUpyBWUp+CWEl9CmIl9SmIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKgiW10Iyi0Iyi0Iyi0IyiXLCkFppRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRFJpRVJpRVJpRVJpRVJpR1AuW1EozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikozikYzikYzikYzikYziudPoxUES2qjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWnGUWnGUWnGUWnGUW/YEntNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKPoNKMYNKMYNKMYNKMYNKMYFyypg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUg2YUk2YUk2YUk2YUk2YU84IlddKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtKMYtGMYtGMYtGMYtGMYl2wpC6aUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUSyaUWyaUWyaUWyaUWyaUewLltRNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4pNM4r9dKOol/nbW181Pxb03osz6/bqnLq9XK56t5LSWyUdt1fH783qpmZtU7O+qdnY1Gxuahb0if7OizOvtxdnfS/errcPE9Dn/7+lfNC08G8o/+mq9p/6L0W+MZdbsy12578UNRG7FS6uf3j9bw2jZ5e/omH0/PJXNIyeYf6Khp3d8Mj3TzvReqeBrzWbZN8+rnPmX39c99eaTe40W5ua7U3NzqJmBz0l/fM/T5jdKomffp6YL3a78+tmv9jtzq+b/WK3O79u1jc1+8Vud37d7Be73fl1s19rgrrT7NeaoO40+7UmqF82O9eiCWquRRPUXIsmqLkWTVBz+aZmF01Qcy2aoOZaNEHNtWiCmmvTBCWbJijZNEHJpglKNk1QT9+486HNbpqgZNMEJZsmKNk0QcmmCUo3TVC6aYLSTROUbpqgnr4J60Ob3TRB6aYJSjdNULppgtJNE5RtmqBs0wRlmyYo2zRBPX1D3Yc2u2mCsk0TlG2aoGzTBGWbJijfNEH5pgnKN01QvmmCevrmyA9tdtME5ZsmKN80QfmmCco3TVCxaYKKTRNUbJqgYtME9fSNrh/a7KYJKjZNULFpgopNE1RsmqBy0wSVmyao3DRB5aYJ6umblj+02U0TVG6aoHLTBJWbJqjcNEHVpgnqq237/nWzmyaor7bt+9fN+qZmN01QX23b96+b3TRB1aYJqjZNUOy9449udtMExd43/uhmN01Q7D3jj2520wT1xXaS32l20wT1xXaS32l20wS1aSf5bNpJPpt2ks+mneSzaSf5bNpJPpt2ks+mneSzaSf5LNpJLte1aCn5t273zFDfut0zRH3rds8U9a1bX9XtnjnqW7d7Bqlv3e6ZpL51u2eU+tbtqllq0Xryb92umqUWLSj/1u2qWWrRivJv3a6apRYtKf/W7apZatGa8m/drpqlFi0q/9btqllq0aryb92umqUWLSv/1u2qWWrRuvJv3a6apRYtLP/W7apZatHK8m/drpqlFi0t/9btqllq0dryb92umqUWLS7/1u2qWWrR6vJv3a6apRYtL//W7apZatH68m/drpqlFi0w/9btqllq0Qrzb92umqUWLTH/1u2qWWrRGvNv3a6apRYtMv/W7apZatEq82/drpqlFi0z/9btqllq0Trzb92umqUWLTT/1u2qWWrRSvNv3a6apRYtNf/W7apZatFa82/drpqlFi02/9btqllq0Wrzb92umqUWLTf/1u2qWWrRevNv3a6apRYtOP/W7apZatGK82/drpqlFi05/9btqllq0Zrzb92umqUWLTr/1u2qWWrRqvNv3a6apRYtO//W7apZatG682/drpqlFi08/9btqllq0crzb92umqUWLT3/1u2qWWrR2vNv3W6apWTV3nNZtfdcVu09l1V7z+XyVd1umqVk1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFbtPZdVe89l1d5zWbX3XFftPddVe8911d5zXbX3XC9f1e2mWUpX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec12191xX7T3XVXvPddXec/1qe89Lb5X0z91+tb3nd7p9+ixleXtrF/11txIT19tbp5T8odvfO9BP34GhO8hzMX3r4PxP3+vAP30H8ek7yE/fQaE7qKv99tYicS95s2/JmzM/J2+v6nY2dfv8fd8f2i17hnh0t+x545/t9s7s7+zZ5NHd+qpu2TPPo7tlz0eP7vZrzVL3uv1as9S9br/WLHWn2/has9S9br/WLHWv21WzVKyapZ6/7/tDu101S8WqWSpWzVKxapaKVbNUrpqlctUslatmqVw1Sz1/3/eHdrtqlspVs1SumqVy1SyVq2apWjVL1apZqlbNUrVqlnr+vu8P7XbVLFWrZqlaNUvVqlmqVs1SvWqW6lWzVK+apXrVLPX8fd8f2u2qWapXzVK9apbqVbNUr5qlZtUsNatmqVk1S82qWer5+74/tNtVs9SsmqVm1Sw1q2ap2TRL2bVplrJr0yxl16ZZyq5Ns9RpZVW3m2YpuzbNUnZtmqXs2jRL2bVqlpJVs5SsmqVk1Swlq2ap5+/7/tBuV81SsmqWklWzlKyapWTVLKWrZildNUvpqllKV81Sz9/3/aHdrpqldNUspatmKV01S+mqWcpWzVLwfd+P7nbVLAXfI/7obn1Vt6tmKfgu80d3u2qW+mJ7z+91u2qW+mJ7z+91u2qWWrX33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbdVe89t1d5zW7X33FbtPbevtve89PbyfqfbLzZL3en26bPU+Yb87a2vmjvdTs1bITItdqdbNRG7FS6uf3j97x3buo59XcexruNc13Gt67jXdTzbOn7+XvQP71jWdbxu5nr6jnQZ/95D2Y8d/16R4yoKXEWJq6hwFT3iMzmj3/6QbLtTUdn3H+hCvr943ioaWEX+kP3Uj61IcBUpriLDVeS4igJXUeIqKlxFDfsU8ev5mV3Xrfypn89ILlxFgqtIcRUZriLanO1Cm7Ndnp3ZKvP2t6bn24cf/9beeef44SuEaO2ff75zqU/fQX/6Duazd6DXp+9AaNny9D2d9yui3QX50/dd3q8I9xmltLsgf8hux7xuFaXfu0Xtvt1zjvSdt9aWent1xw+XqPXee5+fAN7e+4yVP0SLvvfeo9dbyI3qvV8B+AcuaP0hqyNfh/n7Yc7rMB92mA9ZfPk6zN8PU16H+bjD1NdhPu4w7XWYjztMfx3m4w4zXof5uMPM12E+7jBp34a74b5ZMfit2MTt/jyl5J2/ZYffiv0DHcin70A/fQf26TvwT99BfPoO4N9U/QMdwL+p+gc6gH9T9Q90MLQp4elbLO9XhPsmKXDfJAXum6Snb1W8XxHum6TAfZMUz/8NtTu/NRONqwj3G2qJ+w21xP2GWuJ+Qy1xv6H2kO1tj60ocBUlriLc3Vfi7r4Sl9mFy+zCZXbhMrtwmf30LVF3/1sr3JxduMwu3JxduDm7cJnduMxu3N1I4+5GGnc30rjMblxmN+5upHGZ3bjMblxmDy6zBzdnD27OHtyc/ZAtGY+tCHc3Mrg5G7clwwd3NzK0zI6Lltlx0TI7Llpmx0XL7LhomR0XLbPjomV2XLQ5Oy7anB0X7fdGQmi/NxJCuxsJod2NhNDuRgK3JSNwWzJCaHcjIbjMFlxmC27OVtycrbg5W3FztuLm7IdsjXhsRbg5W3FzttLuRkJpdyOhuMw2XGYbLrMNl9mGy+yHwOiH/rdmuDnbcJltuDnbcHO24TLbcZntuLsRx92NOO5uxHGZ7bjMdtzdiOMy23GZ7bjMDlxmB27ODtycHbg5+yEO8rEV4e5GAjdnB+5uJHB3IzgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGYmbsxM3Zyfu90YK93sjhbsbKdzdSOHuRnAOMnAOMgp3N4JzkIFzkIFzkIFzkNG4Obtxc3bj5uyHOMjHVoSbsxs3ZzfubqRxdyM4Bxk4Bxk4Bxk4Bxk4Bxm4p4UH7mnhgXOQMbg5e3BzNs5BJs5B5kW7G8mLdjeSF+1uJC9aZudFy+y8aHcjiXOQiXOQiXtaeOKeFp64p4Un7mnhiXtaeD7EQT62ItrdSAptzk6h3Y2k0O5GEucgE+cgE+cgE+cgE+cgE+cgE+cgE+cgU3FztuLmbH32743oZf721lfNj58i733k1Hz/zGn53u37TxRMeyuk9YfXhv3erV2rupVV3eqqbm1Vt76q21jVba7qtlZ126u6pf0Objrtd3AT55MT55MT55MT55MT55MT55PTcXeWjruzxD2nNXHPaU3cc1oT95zWxD2nNXHPaU3cc1oT95zWxPnkxPnkDFxmJy6zE5fZicvsxGV24jI7cZmduMzGPac1cc9pTZxPTpxPTpxPTpxPTpxPTpxPTpxPTpxPzsJlduEyu3CZ3bjMxj2nNXHPaU3cc1oT95zWxD2nNXHPaU2cT06cT87GZfbgMntwmT24zB5cZuN8cuJ8cg4us3HPaU3cc1pzaJldFy2zC+eTC+eTC+eT66JlduF8cuF8cl20zK6LltmFe05r4Z7TWrjntBbuOa2Fe05r4Z7TWrjntBbuOa2F88mF88kluMxWXGYrLrMVl9mKy2zFZbbiMltxmY17TmvhntNaistsw2W24TLbcJltuMzGPae1cM9pLcNltuEy23CZjXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQjXOQjXOQjXOQjXOQfdEyu3EOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOcnAOcnAOcnAOcnAOci5aZg/OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7NQcpFc5CnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSqCZfapCJbZpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUF+e0AtriJcZtMc5LdH5+AqwmU2zUF+W+qLqwiX2TQH+W3dEK4iXGbTHOQ3CAmrSHAOUnAOUnAOUnAO8ny9jquIltmCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CCc5CKc5CKc5CKc5CKc5B60TJbcQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ5ScQ7ScA7ScA7ScA7ScA7y/HG4imiZbTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgHaTgH6TgH6TgH6TgH6TgH6Rctsx3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIB3nIAPnIAPnIAPnIAPnIOOiZXbgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTiHGTiHGTiHGTiHGRetMxOnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnINMnIMsnIMsnIMsnIMsnIOsi5bZhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQhXOQjXOQjXOQjXOQjXOQfdEyu3EOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOsnEOcnAOcnAOcnAOcnAOci5aZg/OQQ7OQQ7OQQ7OQQ7OQQ7OQQ7O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WTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgH2TgH2TgH2TgH2TgH2RctsxvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIAfnIAfnIAfnIAfnIOeiZfbgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHKRdNAd5KoJl9qkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSrCZTbN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3irpuL063rqdTd0+3W9+bLeyqltd1a2t6hb02f7OizOvtxdnfa/errfPFJKu/TfVD5ob/k31F/m/ltPhfO+2xe7816ImYrfCxfUPr/+9Y/QU85d0jJ5k/oKO80JPM39Jx+iJRmbk+6eeaL3XwdeaUrJvn9s5868/t/P6WlPKvW59Vbexqttc1S16Xvrnf7owu1US8XO3X+zG5063X+zG59fdyhe78bnT7Re78bnT7Re78bnT7Re78bnTra/q9mvNUve6/Vqz1L1uV81SsmqWklWzlK6apXTVLKWrZildNUs9faPKx3a7apbSVbOUrpqldNUspatmKVs1S9mqWcpWzVK2apZ6+qajj+121Sxlq2YpWzVL2apZylbNUr5qlvJVs5SvmqV81Sz19A1kH9vtqlnKV81SvmqW8lWzlK+apWLVLBWrZqlYNUvFqlnq6ZsBP7bbVbNUrJqlYtUsFatmqVg1S+WqWSpXzVK5apbKVbPU0zd2fmy3q2apXDVL5apZKlfNUrlqlqpVs1StmqVq1SxVq2app2/S/dhuV81StWqWqlWzVK2apWrVLNWrZqleNUv1qlmqV81ST99w/bHdrpqletUs1atmqa+2UfxOt6tmqa+2UfxOt6tmqa+2UfxOt6tmqadvFP/YblfNUrNqlmLvNn94t6tmKfZO8wd3W+x95g/vdtMsVV9s7/m9bjfNUnX5qm43zVL1xfae3+t20yxVq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nteq/ae16q957Vq73mt2nveq/ae96q9571q73mv2nvel6/qdtMs1av2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqvee9au95r9p73qv2nveqveezau/5rNp7Pqv2ns+qvedz+apuN81Ss2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3ns2rv+azaez6r9p7Pqr3n8/y955a3t3bRX3crMXG9vXVKyR+6/b2D+vQdNLqD1GtuHZz/6XsdzGfv4Pl7xB/egXz6DhTdQV3tt7cWiXvJm623hmd+St7n7/v+0G59Vbexqlv2DPHobtnzxj/b7Z35MNizyaO7Zc8xD+422TPPo7tlz0eP7vZrzVL3uv1as9S9bn1Vt19rlrrX7deape51u2qWylWzVK6apWrVLFWrZqn/r7072pEkt9ID/EZCkjzkOXwaY3dhGAKEXWNXNuALv7tjZqeqe6yarVYqxfla0TeCGpNR/Jkd/RczMr5g3motlbdaS51/3vfvOttbraXyVmupvNVaKm+1lspbraXqVmuputVaqm61lqpbraXOP+/7d53trdZSdau1VN1qLVW3WkvVrdZS+1ZrqX2rtdS+1Vpq32otdf5537/rbG+1ltq3WkvtW62l9q3WUvtGa6l4PG60lrpme6O11DXbG62lrtneaC11zTZuNdsb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DnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDjI4BxmcgwzOQQbnIOOhdXZwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjgHGRwDjI4BxmcgwzOQQbnIINzkME5yOAcZHAOMjgHGZyDDM5BBucgg3OQwTnI4BxkcA4yOAcZnIMMzkEG5yCDc5DBOcjJOcjJOcjJOcjJOcj50Dp7cg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycg5ycQ5ycQ5ycQ5ycQ5yPbTOXpyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyDXJyD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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"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":"inner_hash","type":{"kind":"field"},"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":"7Z3tbttGFkDfxb+LgvdzZvoqi8Ui7XaLAEFSNOkCi6LvvrJrUXLFQCmtXJ+a/NPGyZD38s7waIaaQ/929+8fv//1p3+9ff+fDx/vvvvHb3fvPvzw5tPbD+8PP/12J/bwdx9/fvP+/sePn9788unuu+mbux/f//vw/9+/ufvP23c/3n1nw37/5qKdttEem2qXMbcWi4XWriMfW7u1a61lUovH5oc/e5/ba7Sl9pF2bB5dT5nr4snb3Fj0SeN/fnMnvhflsiixF+WyKLkX5bIobS/KZVH6XpTLooy9KBdF0WkvymVRBFyUpqei9LxSFO1djrmMaXpWUbSwKDbGsSjeAjxSbC/KZVF8L8plUWIvymVRci/KZVEauCgv9unzrBmtjTw2PVzwKe1DzIeTj694cvsLM6z75otzDw2fezVauzYG0vI0Bk4hMpcaT6FzL015dgEJuzFM99J8rjS2l+ZzpXF8aV4KqhZ7aT5XmtxL87nStBuUprfplE5eKU3vNjeWfvXUcpoAhZ0+jlsufnjPVbcRp0sV/ePTuG/oWserutaYJ7bTWSL317r0cTOOaUua/7kyPm23MnmqTNO4qIy8osr45POjuKlfrcx0qozodNZ6idd2OnXzs6x98cw2X6RMfn2yJDl/FKicfRI8rD9c9y56+S5SzbmLbPy5i2zvInoX+d5F9C6KvYsAXeQ+d1G0P3dR7l1E76LXtLp7pV30mhalf9susjxepdjZNyePXfSa1tJfs4tiOj4WzvOnUotdZOLz8wvpZ3fFw2OpeE2LdEzJNY+NTS9Lvq/+y0u+r+bLS76vzstL7nvJq0u+r57LS76vhstLvq9uy0u+r1bLS76vPqtLnvvq88tKnnJ8spXerz6TkTw9knlS8oWk3Y7fgrqfiRSP/bMvVdn9s69r2f2zL4LZ/ePb7R+1uX/U9Un/3FdmwwvbK5XZ8PrzSmU2vEzUPn/1eJjyXqGdjDkTGf0MSsvfmb3cpuXc8Cr0lfbohhe5r7NH2+taQ4/juf3QX1d6dOjUH1sPPd9mPS3W3ETmxA/fiuuT9veVfF2r3ZesZPW61CaZHzNNbk9OfZ9P9TrsUJQja0zyQldtDssnYPkkLJ8Gy6fD8hmsfPoEy0dg+SgsHxifO4zPHcbnDuNzh/G5w/jcYXweMD4PGJ8HjM8DxucB4/OA8XnA+DxgfB4wPg8Yn2WCAfrwnR8tIRiiZYIx+vDdLC0hGKVlgmH68PSOlhAM1DLRSC00UguN1EIjtdBILTRSC43UQiO10EgtNFILjdRKI7XSSK00UiuN1EojtdJIrTRSK43USiO10khtNFIbjdRGI7XRSG00UhuN1EYjtdFIbTRSG43UTiO100jtNFI7jdROI7XTSO00UjuN1E4jtdNIHTRSB43UQSN10EgdNFIHjdRBI3XQSB00UgeN1EkjddJInTRSJ43USSN10kidNFInjdRJI3XSSN1opG40UjcaqWkmotBURKG5iEKTEYVmIwpNRxSajyg0IVFoRqLQlEShOYlCkxKFZiUKTUsUmpcoNDFRaGai0NREobmJQpMThWYnCk1PFJqfKDRBUWiGotAURaE5ikpzFJXmKCrNUVSao6gTjNRKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWlOYpKcxSV5igqzVFUmqOoNEdRaY6i0hxFpTmKSnMUleYoKs1RVJqjqDRHUWmOotIcRaU5ikpzFJXmKCrNUVSao6g0R1FpjqLSHEWjOYpGcxSN5igazVG0CUZqozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0RxFozmKRnMUjeYoGs1RNJqjaDRH0WiOotEcRaM5ikZzFI3mKBrNUTSao2g0R9FojqLRHEWjOYpGcxSN5igazVE0mqNoNEfRaI6i0xxFpzmKTnMUneYo+gQjtdMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRH0WmOotMcRac5ik5zFJ3mKDrNUXSao+g0R9FpjqLTHEWnOYpOcxSd5ig6zVF0mqPoNEfRaY6i0xxFpzmKTnMUneYoOs1RdJqj6DRHMWiOYtAcxaA5ikFzFGOCkTpojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyaoxg0RzFojmLQHMWgOYpBcxSD5igGzVEMmqMYNEcxaI5i0BzFoDmKQXMUg+YoBs1RDJqjGDRHMWiOYtAcxaA5ikFzFIPmKAbNUQyao5g0RzFpjmLSHMWkOYo5wUidNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFMmqOYNEcxaY5i0hzFpDmKSXMUk+YoJs1RTJqjmDRHMWmOYtIcxaQ5iklzFJPmKCbNUUyao5g0RzFpjmLSHMWkOYpJcxST5igmzVFsNEex0RzFRnMUG81RbBOM1I3mKDaao9hojmKjOYqN5ig2mqPYaI5iozmKrd5RtDYnZCOvnHp0eWw8xikN9YWmcjjbY1tx8fPGDxfqW7nQ2MqF5lYutG3lQvtWLnRs5ELrXdiXulDZyoXqVi50KzOjetf4pS50KzMj3crMSLcyM9KtzIx0KzMj28rMyLYyM7KtzIxsKzOjerf/pS50KzMj28rMyLYyM7KtzIxsKzMj38rMyLcyM/KtzIx8KzOj+ndpvNSFbmVm5FuZGflWZka+lZmRb2VmFFuZGcVWZkaxlZlRbGVmVP/umpe60K3MjGIrM6PYyswotjIziq3MjHIrM6Pcysyo/t1L6uN4oS6XO6Xr373k2uaEvF0m5EsJHc8/XUklc+qPTTPd5tYytT/OHs87e9P57EOenH2hLG3MRewyTq0tFlq7zgPHrV1rLZNaHMfZpN5PAy2WcpFIOzaPrqfr1MWTt7mx6JPGDzXMvYbPrmHba/jsGva9hs+u4dhr+NwaLr/HbK/hX6qhvJoazqkc/tzzSg21z1PLw9Rpel4NFVtDG8dJ6GHKF+RxaHsNn11D32v47Bpy1yl/nxpy1yl/nxpy1yl/tYYv87l8+OH7X96+e/f2p3+9+/DDm09vP7z/eH/odP+f0G+XTfXW52wPlTh1uOhSmc9b6/S09aET76N4SZQoiZIlUVpJlF4SZVREWZZibx5FSqJoSZSSe19L7n0tufe15N7XkntfS+59Lbn3reTet5J730rufSu5963k3reSe99K7n0rufet5N63knvfS+59L7n3veTe9xvc+3b6ntkOT09PrUOWljMixxWKxvS09WNODswpgDklMKcGzKkDcxq8nGIC5iTAnBSYE5DjAeR4ADkeQI4HkOMB5HgAOZ5AjieQ4wnkeAI5nkCOJ5DjCeR4AjmeQI4nkOMNyPEG5HgDcrwBOd6AHG9AjjcgxxuQ4w3I8QbkeAdyvAM53oEc70COdyDHO5DjHcjxDuR4B3K8Azk+gBwfQI4PIMcHkOMDyPEB5PgAcnwAOT6AHB9AjssEBLlMQJLL9JVRfgxzCzq3cbwa65MuhvGaMFETJmvCtJowvSbMuHWYsRRGppowUhPmFhToeQrTFvvmFv7Jl4TxmjBREyZrwrSSMLcQN6yPoy9lQ/piGKkJc4OR5hmzW5bdFsNETZisCdNqwlz9vNHzKdG8YVauWwyfOfC6mPC5A2Xtgbr2QFt7oK89MNYemGsPbGsPXDtybO3I8bUjx9eOHF87cnztyPG1I8fXjhxfO3J87cjxtSPH146cWDtyYu3IibUjJ9aOnFg7cmLtyIm1IyfWjpxYO3Ji7cjJtSMn146cXDtycu3IybUjJ9eOnFw7cnLtyMm1IyfXjpy2duS0tSOnrR05be3IaWtHTls7ctrakdPWjpy2duS0tSOnrx05fe3I6WtHTl87cvoXjJyrWt+8umlny+iY5hhRECMLYrSvHkNv8uh5mM6PAjwWlpt6i4e1rnJs7eq2GKbVhOk1YUZJmFs8rP2SMFITRmvCWE0Yrwlzi0do0se1MFkTptWE6TVhRkkYvQkF8hSm98UwUhNGa8JYTRivCRM1YW5BAbPjdyluvhym1YTpNWFGSZhbvD3oS8LcggKmp7cB+1gMozVhrCaM14SJmjBZE6bdOEzkYpheE2aUhLnFe4Q89Pj9sIcth5GaMFoTxmrC3IICPqZTmPYkzGVrOXtfq7bT5NH++EUuD0kFMakkJtWISXViUgOY1C3eEXT7pISYlBKTMmJSRKIHkehBJHoQiR5EogeR6EkkehKJnuVIiHb8LQTRT6s7HT6nlLyUygd5TsfGefYbH89SahMvJeGlpLyUvvJ05RjGb7FyzfmpQk79Gm1s/s2scfrFrHZ25cFLKXkpNV5KnZfSwKXUJ15KUp5SHn8/sPRcTEl5KRkvJeelFLyUkpdS46VUTm+djl8XH76wXUxp4FIaEy8l4aWkvJSMl5LzUrqJT6nznrNcXnWMrAnTasL0mjC3oOFVO9Ru8YaQLwkjNWG0JozVhPGaMFETJmvCtJowvSZMDQWkhgJSQwGpoYDUUEBqKCA1FJAaCkgNBaSGAlJDAa2hgNZQQGsooDUUqHnDitW8YcVq3rBiNW9YMa2hgNZQwGooYDUUsBoKWA0FrIYCVkMBq6GA1VDAaihgNRTwGgp4DQW8hgJeQwGvoYDXUMBrKOA1FPAaCngNBaKGAlFDgaihQNRQIGooEDUUiBoKRA0FooYCUUOBrKFA1lAgayiQNRTIGgpkDQWyhgJZQ4GsoUDWUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDVUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUKDXUGDUUGDUUGDUUGDUUGDUUGDUUGDUUGDUUGDUUKBm76DX7B30mr2DXrN30Gv2DvrkNWGiJkzWhGk1YXpNmBoK1Owd9Jq9g16zd9Br9g56zd5Br9k76DV7B71m76DX7B30mr2DXrN30Gv2DnrN3kGv2TvoNXsHvWbvoNfsHfSavYNes3fQa/YOes3eQa/ZO+g1ewe9Zu+g1+wd9Jq9g16zd9BrNvV5zaY+r9nU5zWb+rxmU5877mVY7riXYXn9206vp9R5KdW/Mmz+zfeptpRS/XtOr6ckvJSUl1L5G05zfp9Aqi+m5LyUgpdS8lJqvJQ6LyXcCx89cS989MS98NET98JHT+Ol5LyUgpdS8lJqvJQ6LyUevXmv63Xe63qd97pebzx6Nx69G4/ejUfvxqN349G7keh9+EnvWw7/dvnrVT89CJLTUiIfruZw0PKXpdcOkjUH6ZqD7K8ddPjBHsqR8e3yxgZpx9cW6nQ6Vnw6HHz48b9vfnn75vt3P348HHL/r7++/+HT2w/vH3/89L+f//iXQ+P/Aw=="},{"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":3,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/+29C5hlWVWgeSIzMjKysjKysrIe+Y5zI29kRGZkZNwb90Y+GoRQEVtBRG1wWimczMpMZRqqFIqiFT5QKeludXTkpY6AzjTFKIOjlkALCgiUr25tBXRatGfstm3BYhCnaFHwa+w6kWfF/e+Kdc9jn7NORFT1+b7MuHffvfd67L3Xa6+9z1h049n72L+x9POu9O9EtPGROqvp3061p1tjXx1PPMe2CZ47tgmeO7cJnuM14pngtjMafurGd5cDX+vGcWIb4Li75nEXHMfTz5OP/dvz2L+bohuyd8OPJGxHOnGS35MBThi4G3VGdXpgbNCHPG/B58Pp3y998Ysvf2f8gnuuXvun8b0vvS++93p85d6X3nP1JWz4YGjDd4Q2fPdYYMMPhDb816ENPxLa8OYdgQ0PhjY8EtrwdGjDJ+8MbPiP0LCV/r18333XXvTt98X33Ru/5KVX7nvx5bvvi1/2gvu+Lb73/msvvv7Ce1/GDv5xKORXjgc2fON4RZR/IhTyT+8KbPgLoQ1/JbThh0MbfjG04a6JwIY3hzY8GtpwZXdgw69Bw6Cp9/WhkF9eFfKrQyH/i9CG/xsaHtuI8uWrV0dj+wuhQP9VaMOHK2D770OB/mlow89UwHb3ZCDQA6END4U2nJ0MJ/PpoUCfXwHoC0OBvim04XtCG/56BTKX9gQC/aY94UC/LRToPaENX14B29eFAn1zaMO3hjb8hQpkfjQU6CMVgO7eGwh0Gg2DtGg7FPLXVIX8nFDI3xza8CVoWHaEXh0K9F+ENnxjBWz/r1Cg7wxt+MEK2H48FOh/Cm34SGjDv6lA5qGbA4F2bg4H+pRQoPeENvyB0IY/VoHMsX2BQM/uCwf6D0KBroY2/JoK2F4LBXpvaMP7Qxu+ugKZbw0F+isVgP7BVCDQT6NhkBZ9NBTynbcENly6pSLK/VDId1WFfC0U8j8JbfhqNCxtcIcC/fHQhm+rgO37Q4E+HNrwIxWw/YtQoJ8NbfiF0Ia7D4STOX8gEOhqBaDPCgX6ytCGPxHa8KcrkHng1kCgT741HOhXhwJ9dmjDuypg+9JQoK8Kbfia0Iavq0DmO0OB/nYFoP8RbYOU4V+EYv2Z0Ia7D4aTe+fBQKDHQxueqYDtl4UC/YehDZ9TAdsXhQJ9WWjDV4Y2/IEKZL4jFOjDFYB+NBTojtsCG06HNjx7WziZbwgF+qsVgP7bUKC/H9rwP1bA9vOhQHfeHtjwptCGd94eTubFUKDPrgD0SijQ++8IbPhDaBikfl8XCvn3qkL+w1DI/29ow8+hYdmhnbgzEOjNoQ0P3xmObTcU6IXQhk+rgO3zQoFeD234otCG31WBzJ8IBfqLFYB+MBTo/x/acOpQYMOjh8LJfCAU6M9VAPq+UKAfDm34exWw/WQo0EdDG34+tOHE4XAy5w4HAn1qBaBfibZiaX9VNrivDsXzGyvg+c3l8Xx+KJ73VMDz1WgbZFz8QCjWPxLa8GcqkPueUKAfCG342xWw/bNQoI+ENvybCtjuPxII9HBowzi04eKRcDKfFQr0egWg94UCfWtoww+GNvy3Fci8cDQQ6JWj4UC/PRTo/aENX10B258IBfpgaMN3hDZ8TwUy/ygU6KMVgO4+NvgcpAz3HwvE+vbQhovHwsn9klCgXx7a8NkVsP22UKD3hDZ8eQVsXxcK9M2hDd8a2vAXKpD50VCgj1QA+rehQOePBzb8itCGX388nMxfDgX65xWA/pdQoF8Ibbj7RDi20ycCgZ4ObdgJbfglFch8fijQ+ysAfSXaFvRgvycUzx+qgOdry+P5hlA8H6yA58+FAn1XaMMPlcR2/Qj4J9OGyfkaOc+b/FbjPQddfXy9tr4v9q8npyq/fHJAA5+Enq9MC+XvWPovyfWWw8DSfm80ODr/NJTJIdOvQJmc5nw6yuSY21cCn0kfui/K0f7a+35svBJabooGNAh98ll+S+g9hnq7fGi9Mgl+10xr322MOjfueZAx2pX2LbAmwLebAH8sqveOmj2qb4El5eP4fBR1pZ7U2Ql8kydJqJb5flNGu12q3VQ0PH+k3aRqJ99FJiX9SEJf8vcZk4O60j+SvCvz8PLlqyvXr56/kvRxM3CYAP0CX35/OerFwIvzq8bx7UwqHnrNnfFoeIx2g7ZxwK9v7XT7lLERYPAZNz67yaFULgocrt+dgFfffUsrK1OAt1PRRLrl+w7gdLMLTuevEaebS+K0zwenK8RpXwmcqtAy5UPLdeI0VRKn/S44XbhAnPY3xN9bXGhZ7hCnWxqgpcp4HnDhwYU+cTpQEqdbXXA6PyTrbg3kb+h4luXBQRceXLhEnA6WxOk2H5yG1sttgfxtYjwTHtzuwoP+0LjcXhKnO3xwGlrDdwAHsdn+CXC4U+FcDw7dlb2KBwIjUnyRR/DYi8+02w6hjzrvLZwCPMK4U+Ep3zl+h314t2bf7kwN6gnwZXxyI692pWWCS2J//9YJfxyzeCQwb4k2rg2/OddZ4xsu41iHESk85bkTOB3ywanL+bwH8IhHTbCG5jJ9r7y5vBXaMa60B2Vy74KMT7L235MKNe031Dhuywlc3EuwDiNStMkjeGhbu0acenuj4ThGHk77gdOUD05r83u/wQOceq11fgss6v/9in75zvlWV7uk7GZFL3lwc2D/HJ89qt0e1c5xjnUYWxEYyZr7EcB2mku9MfBUYqITij/jqPPTJwZ135CW7cPvMhah47MPcMlvHVu3xscrbqzjN3Xzn2POWOvNBp9+Mv3LtR5l8JfyQfi7R/HXkb6ujh3UzbsDinc3K/6Mo87b1G+adwdG8I6yR3h2ALxzom9Z+/d18+6g4p3QcSt4IHV+Nod3B0fw7hbwTnh2ELxzsiXWdOSUgWek8IyAn+B00BGnMrYE+eQ0D9ZwOlgCp1uB022OON1aAqfbgNPtjjjdVgIn+l53OOJ0ewmc7gBOTv7gGk53lMBJ8JiKBut1D8pkvdBmk/l6AGUyX3ai7DYFLykTfu1CGfkif3Gqp9Z3IdwJ+ILDIcCVDO669yaTvg6DH/QZjwD+ccCvb170riTzAunB6zD4cF4cB07HXHC6MVcFzlHAOwF4Ne4f9qYAjzCOKx7Id9q20y443dh7EHjTJXGKXXC6secm8OKSOLV8+LRMnFolcZrx4VOXOM2UxOmkD04XiNPJkji1fXBaIU7tkjjNuuB0Y99T4M2WxOmUC04XhuTTqZI4zbngdP5u4jRXAqdQGRIqD6uM5zzq18i7q8RpviROp11wujC0Fk8H8vdUYLumxvMM6tc4nkM66EwgLe3AdrOB7ULHKhTPJsa46XFI5tQC6tc4p84Tp4VAWuLAdq3Adk3M4YTnZ1G/Rp4P6dmzgbTEge3K6oFFFx5cGLJ/FgNpCdUfZf2ccy48OH+JOJ0ridOSD07XiNNSIH9PBrYLlcGheMaB7UJ1TFNyq4P6Nc6Ni8SpE0hL2Xne9aFlKO7RbYCW7biuQuVyHNiuaX5Oo57ERl+UBiWTubeMfmuMhd69V+EpMCKFuzyCx158lvYJnj30UXeensAjjGWFp3znuu378O4K8/SOgi+Sp0deSZ6e4KLz9LxwzOKRwEz2RWUMnwy++ezLLHf0PKm7b5+1ciNGj4uR1mFEir/yCI3JflGy17MLjaSfGP1oeXFY9ZPAX0k/M6/zfPpZ9s6lDtflBdSvcS+nS/jSt8A6D1rk8ytThiV7aTL/BN8dKON6SMqnUI+/SVmkaN8Bnrx0bFC/iLw4jv7rnj/9aPjJmj+CxxTacX9uxRHPMjphBXgeN/A874jnSgk8zxs4RTXiwzkq/TOfTvZ0kzn5Q9DtHRf+dNf2WbuAyXy6Dvgjdb4T+XSvxTqVujIHuXYpY8RmqpOn9Ptr7LfDmEqFfru6IAIfduAzYeX9btVdRJslo17yHDfq9Ef021Ft+Jn5ANKG9utPpXPDyr9ylJ9r+c+a5iLy0/vcr46fUQ4yV7SMP7A/sB1zAX3GoXde78nUmWeY8JPrXWBEigfynAa953xw6jrS20vGOZkjZxU92u/dAfjnFC/OqTqO93909NnTOsc+6U9iwqKvhI4DoFfq/KsMOcS+pJ3wUvpkDu08eMfc29V6aOtEijYrd3fOh69dvU9f95jNgq5x0HEKvJc6v5ozZrP4zjGTPjlmrDubwduxaDi3n3NjFrCkzsfHBn39Ouw07o/UvaYWfPpeG58z4M046FgA7VLn3+SMzxl85/hIn8n4iO0hdR3p85TNpjwSOk6DB1Lno4HyaAG8E55J3UQfiv+/hLJlg8fUfzX6+GtngsRHOAd+/AnWhuAW1Qw3i/Ylf9q7RWhnbLpue5d8FRh8aAstjuBH3fbuosH/BeBRGFa/u7zc6/YvXDl/sXNxpXP17ovL1y5eXlm5fGll+Wr/KvNXyvR7fbmzvHL++rXOyqXe1Uv9S4911+/effmxHzqXr1zvrlBmlMJX8UIXRODDjmijrCjyu1X3DNqcNeol9r+Ww2PRsB1NeUM7MYS/ncsX776wfO1852rnsf+ur1y92Omv9C9d7V+83uv0b4xb0Hw43+13rly6eO3qhe6Fy5eurPSWL18/3+vc3V3pdS5c6jI/rVS/BcaNPNYyuMjvVl2O9WmjHseNOqzIuDF3ok5ZT5xoEzO3aDP9vSZsir2AI7hNoYzxOm0PcZ7odn3g3vbBvbdX4SQwRvGzDZw8/Q8venX+eJ1zM/EHqIOFBpkTAlf4zXvYhJfCb/k+Kjeibn9ixonfSX+ttC+xiYWOGdArdfalBI+yiVuKT3qNMdbcAu+c6OvqsyR1825a8U7oiMEDqXNbDu+mR/BuBrwTnk2Dd7EPfcv6vFLdvDuueCd0nAAPpM7RHN4dH8G7GLwTnjHeekbxU/Rv8pusccrfHag7p9o4nidb0wOUQQIjUnTLw7t6nXR9N5Gnyfl18enEjxP/Sq9zzTfK1zy9q8+p1T0XBXctA5nHs+6j58xFvSct9FIGap456uvlsjbEHHByyr1YLjufySenedBlLKIITpTBPvk+N3CaLoETbdKWD069snkP1PNdRz61DB7gnSK10T8FWJT32vaR75RhR+vHp0N8jpbAx2pn+Tfk7ZnA/rvggc8ddjfuiyNOAiNSeMpzGDgd8cFpKMesBb5IGcfrsMLzsMHPJtvVdFdBTxcQn0PAUfSB8Im8mwuk9wjKRLbPoExkK/cFnrdj8PmuHQNeOMVg1+Sp2AYRYESKTnkED8bpPeatwOkAnkPuzpo81XkxRffFa8j52fAQn7Ml8LHaWXEm8vZMYP+M1Tvtl/X3KpwERqTwlIe5G56xPIFzDnyRMo7XaYXnaYOfTbarKd5tylMdj6Y8FT6Rd3OB9C6AFqd5N7Q/KTASWfw9kMVOcm9tj7gDmMynXAKPpM6njw3qfl+K3z60kfXNuCPXPPcDx/FdeM98TdLcUe06qh3lTrciDlMoow8rZXPoX+d3FNn/SPoKkf+c40sVceA+yTngJWXTKJM1T5/Uay0k/TGvg/kehHkW9JBetpU6b4F983/uGNBvzRfph/OlDC87KPMcK8d9+6GzStyTp+yve89O5pvA4FhZ81Lr3DpzJsYMWhcUPzi/fh7zq79z0C5UZkm/nINnVV9njb6kjPsyoTJF+uA8LUKPlHGeOvkRHa4n5ra8D3rTaY9qLYaqzyZoGUBd+n7ozQ/64zdkU1C/P+xvU/TK2hTfC978Jta8/E6bIsSPoO6mrpPPyyjL0n/U+yF2ZdKXzpnx9Gcc95bXfCXa9gIjUjyQ5yTodcrl7XrSm+z9JHdlnlX0zCtaOZanomFeyHdL/tNX1nlT1D/S14LRl5QtoWxO4UmbmHO3jE18CmWyduibytppIJ+vdP4N9dK8D069snEE5il5rQ2uVyueFkX12nMCizpG5w/Ld86xutpZNjN5sBjYv4yP4/wZ0t2M035+C+ruu6C7/6uhu4XPXBNlfN5Rulv7aaF2M+0AK/Y5loGXp11AmS84aJlfNJ4ifYqspt7h+MhcI//KrA3qAKH/LPqX38mbMjHgBZQJLaPsqDr9Qeq0BmK+Q+tfYCTr6+jOAWyvnH2OiV7/i8Y4dbD+p1P8vOOB3rE4yw/w9tW3sR/eK2oHMj7i7d95xsd0LKzu9cc1zznLs+xS50tSfo7KzdJ+g9bLnP/c6/DcZ9X2RELnl+10h13atvnro4O6T99k2aZtjaK2jXW+UT4zxiFjzxi/k33bpU2kbRvCFFt7Ihq2PRjjlzrPyVgH1NVRVK8caPvwaG2uSoxB5qrwrA36pc43ZdDPe76YjyZ3esk+i9Yjyc9yF1jd9CX3h/3BiQF+62M9OYA968PbLnkr9At84fEU6mTZndbexZiB+6ziLe0Jgc3cR8oRnSc/bfQlZYSr9Z+1r2TZHNLHnEFPlEGPlDHu47VvXTbuw/wRz7zjMuddmXfsNdfL5h3PAifPWNRsCZwYc/HKiacMKoIT9yG9zhtQHpAHDjlg/VFyrIzsWajYjjE7SyYuBvbPM5dO+f39snnrDeRSDOX304+VMo5X3r2CTbfj3mgUzhMzd0xg0fcWuS18su5pKEsvbQS9D6PnYo3xqg51Mc/5vGXn4PNPwt/y8mXp60WAESkeynMWvHHaF+/Sl2KOvoN/0Gech3M/z2+jTqkRnw7xCY1XnUHZouIjebsY2D9zr538z/7eqNw9fFyznrJa4DCXumpMvol2tBWjqF5ZrffdKKu5t1B135Bxfad516FO4b7ehyGLneTespWvpPUg42EvODKo+xuIfem8QMaouebzYtSMo5HmrmrXVe0od5Yr4sA4eRd46ZgcczI4v/JyMhhrKyP/rfzjUByYF8IYoJTNokzWPP1Sr7XAGKDEn/S9NGPR8Llo0su2Uuc/wL759M4B/dZ80fmcZXnZRZnnWHnuM9IuZeyfst/LLuWdfp+GfNHz0nNfd8ygVZ/74Px6FPPr/vFBu1CZpffgiY+GnZUzXEWm6P2PovRIGeep1/2SXE/MD/976E2nc9bmXQlaBlCX/gPozZ3j7vgN2RTU7xOA3WQOdJZN8cXDg7o3pfjRDqBNEeJHUHdb+128gzVL/1Hvh9iVzLmh7+DlzyR9t5z6LhsXbYHetg9OXU9690c38nzPKHpOKVo5lu1omBfy3ZL/9JVljnCOlzmbaMWvGDcNPUcnZW2U6Xwu6nLaDk46YJk6IAKMSNETKTwd9zFK3+fPGL7X2uB6teJpUVSvPSewqGOK5L3X1c6ymcmDhcD+ZXwc58+Q7hYYiW580hbU3R+H7n6qobuFz1wTZXzeUbpb+2mhdjPtACv2OZaBl6ddYOXCaJlfNJ4ifYqspt7h+MhcI//KrA3qAJ33xPEnb8rEgPP2Tci7Ov1B6rQGYr5D65/n/u/C+nfy/XscE73+F4xxegfW/2Wsf894oHcszvIDvH31beyH94ragYyPePt3nvExx9yOHuW+jiucAQ+kzqtSft4SbXwsv0HrZc5/7nV47rNqeyKh84EtaNt8B2TbP8+ZtyFxY85bS/ZQtp1WZUV8Qtoop1Emnxnj0DaCpy9Cu0L6FviEKXmWkucrv82DZqnzoxnrgLZBFNUrB1o+PFqbq3Hal8xV4VkL9EudN2XQvx3yfNfHGnm+Mz687ZK3Qr/A536y1JlH2ZxRT9YR7UGN+4ziLe0JgV1H7IdwtY6y7BCRJ/QDBDZlzaLCYTGDHuqp3ennd6XzM5nLDxnx7+RZTf92Kj6jYt9vv+PGZ8rdqWhQxs/yVz4fRJl8vhVl8vk2lMnn21Emn1NU3M5aE8Yu4GK926bu/TzOl/G0b8GFMUGfuPeN95eXuee56Twe5p0y53xHbfBWesxhIYwyOTv14nShb+XtFMVp1gWn89eJ02xJnNo+fFomTu2SOJ304VOXOJ0sidOMD04XiNNMSZxaPjitEKdWSZxiF5yWh/Ll4pI4TbvgdGFIPk2XxOmEC07n7yZOJ0rgFCpDQuVhlfHku5Nr5N1V4nS8JE7HXHC6MLQWjwXydzqwXVPjyXvMaxzPIR10NJCWVmC7OLBd6FiF4tnEGDc9Dsmc4jsAapxT54nTkUBaQuVrO7BdE3M44TnfBVEjz4f07OFAWkJ5XlYPHHLhwYUh++dQIC2h+qOsn3OnCw/OXyJOd5bE6YAPTteI04FA/s4EtosD24Xi2bRd2JTcugX1a5wbF4nTLYG0lJ3n+31oGYp77G+Alu24rkLlcui6apqfzBOV2Ojzd934m8y9m9FvjbHQu/cqPAVGpHCXR/DYi8/SPsFzD/rYVRueN3IGBR5h3KzwlO9ct5M+vLvCfTPmMcmeGHkle2mCS7Lv8Vsn/HHM4pHATOSnjOGT8dsdLjgtd/Q8qbtvn7VyI0Zf5u4YoTGR6cm+zm1oJP3E6EfLi0XVTwJf9su4/zeRfpZ9YKnDdbkL9Wvcy+kSvvQtsCZAi3y+N/1xXzS8FpJnB8q4HpLyKdTjb1IWKdp3gCfXdw3qF5EX8+i/7vkzGQ0/WfNH8JhCO+7P7XbEs4xO2A085w08Jxzx3F0CzwkDp6hGfDhHCWuXD/1D973uwt/vht3gk+PWXdvD5T2MVu7YOOp8GXKlHoAM4H6vlMlnyq/TDuOV9DtXf79rOqiGew26uiCKhnM75DNh5f1u1Z1DmzNGveSZN+pMjuh3QbXhZ+Ya0OaV31+bzo28PK2a19LamZzbFLwisplj7SmHBTfKWOZBlvE1pgLb7QPNPuPQO5/07fQujtLv0ua7R7zyPhzp7SV2Z2I73qbokbHjuhf4Rd7N6PXuoaTvGZ++1+4xaaV96XfXz4BeqfMzGXKIfUk76931ss5a4N0M2q3WQ1snUrRNKboSuHHkwte1+et0t+LamJ0AXcxnnQbvpc5DOWN2At85ZnH6l2PGuicyeDuGsh3R8Nw4AVhS59/sGvT1S7DTnM4LdBx15tr48Pwhc0jnQbvUeV/O+OizZDI+0ifzMht4n8ra3J515F1b8U7HLMdR5+Ec3rVH8I66W59Rpf/AM0VLBo+d7lIZehcfz7V8BGvD4wxyHu28T87pXpuheNKZEbR72rvbJQc2yJfqd5eXe93+hSvnL3YurnSu3n1x+drFyysrly+tLF/tX+XaLtPv9eXO8sr569c6K5d6Vy/1Lz3WXb979+XHfuhcvnK9u5L02w7BV/FCF0TR8NlavZaL/G7V5X3cc0a9KnnCIfztXL5494Xla+c7VzuP/Xd95erFTn+lf+lq/+L1Xqd/Y9yC5sP5br9z5dLFa1cvdC9cvnRlpbd8+fr5Xufu7kqvc+HSkB1eqt8C40Yey2fCyvvdqsuxbhv16soRrlPWWznCnjq2bByz6TvM6Y/rs7BjUbm78yfx1/Ouc+IkMEbxk3edO/l1nv5HL+n7hE/fy4lvTh0sNMicELjC753AY0bxW75zDXuebT7uxO+kP8mj0mebj4NeqfP3OTbxMcUnvcYYaz4G3jnRtzZXjzry7ojindBxFDyQOhMT2bw7MoJ3x8E74dkR8M6JvuWk78OOvDukeCd0HAYPpM6+HN4dGsG7o+Cd8EzqUvcz91X2P2WNU/7uQN0Z1SbhF3NY6tYDlEECI1J0yyN4OOr6biJPk71cfR8G3ymTPHrOCh2Ur3l6dzIazvesey7yvXeUgceAk9Q5ljMX9blcoZcyUPOKPBhP/92u2k2q+nXnFOj5LLBmDVo+nSZIJPw6OWHjV7ddWeb9BJyDTnq59HuNRt3bW7etu1ACJ/r8njGGMnEP3nni9P6nHs/1F8GpgXu2h97/RB7UsK+9gX7r3oSxaHivjjHNyjGGnIf4zJbAx2rHu5aEj+RtN7B/xuOc9g/7VfZL2z44dXkXCO+rkzKOl35X30mDn022q2n/z3zfhcCaAY6iD/g+UKm3GEhvG7Q4zbsu7+bknGoBXt1xKX1vb2JLPGdi8Pm5sCs874UtE6/i/oyTbhq6F5Yyx0Hu9nhXJNdV3h2TNcXcNzzWva5F8LHaUQ8IH8nbbmD/tAWcYmyl7/Jm3oGXjKAPyruWpIzjlRcva7odZVkU1asHBFYLOFrvRpR6i4H0Ui47zbsO7WKBkcji74Is9nonK/dKxA/X+ZLcP7k8Oaj7yhQ/+ta8v31elRGW7ld4n3cHcKRw5JjpmEgoDty/4X2BUsb7DkPuCk76CvEDOMfnK+JgyVbmTjAXxbrH3knedZjjITEZvVfIuM0ORS/bSp0fhX3z1okB/dZ8qaqneDez51g52mcd2qW0vWireNmlAoNjZc1L7XvVHZfTtLYVPzi/fgbza3H3oF2ozJJ+OQfL7JEyphQqU6rev8h56qS7OlxPAiMZg3dDbzrF19bi1/pciJYB46izDL35Xn/8OszxYr7Z+wDbK+dqLNp4d7PgwnxJqfO53YO6H8Sal99pU4TEk6x7famDuUeQpf+o90PiC0lfIkdoV3rFtRz39ftl98ZOgN6WD05dT3rlvUezip4ZRSvHsqV4Id8t+c+YqcwRzvG26qtt9CVlzLdZVHjSJubcLWMT0+eStcMYpT5b5em/lPXZG4gj9MrGkxlH8FobXK/WvkoU1WvPCSzqmDJ+d9V2ls1sxVLK9i/j4x0PEH3JeMCjW1B3fwS6+3OG7mYsJsTnHaW7tZ8WajfTDrD2wMYy8PK0CyjzBQct84vGU6RPkdXUO1asjPwrszas9yrNon/5nbwpsxfIGLO1b+KUz9ulTmtg729o/QuMtfPEuwewvfZmOCZ6/Z8yxumtWP+H0s/e8UDvWJzlB3j76tvYD+8VtQMZH/H27zzjY475fT3KfR1XsM7LnU/5WfS8nNbLnP/c8/bMt9H2RELnk3a7wy5t27wAsu2pmyzbtK1R1LbRc4d2C2McMvaM8TvZt13aRNq2IUyxtSeiYduDMX6p86yMdeC1b+55JiPpT58JF55ZZ8K/IYN+3t/Gd9no9x5ZdyA09d6j9bGeHMCOIxfYXfJW6Bf4wuMp1MmyO629izED91jxlvaEwGbOJuVImfcoxmin9Z+1r2TZHPq9bmNRuXct0qeQ88W0KT+T5jFT/jFfWO9H6zg2ZemLIKPfnGNbhOztUR5b9iFldFuVFYnbUR63UablMf047oF5xYvo+0nfMg6EGaefRUbLb0ugWeq8IkNG7UM9jtkJVWatXflOnoqMZNy5yfNcQr91nuuBHJtNn+eK089LoE/o4nkuz7MaxxV9Mwr+OOp8f0FdxL0vrYu0rdSkLpK505QuEr4J/QJfeDyFOidQJmtiGrwNWS/UdTHKrHwq+Z0yLlb9x0b/UsZ8cZFt1K86zkK57umXWH619g2oLyai0bpJ6vzvOevA2p99EnSY9oWrxDiz/ACP+KUVd0zKZE5Th8WAVbfckrWh5XIMeqTOQzlyeVrxQb+LNqFP9B/PhDvtSZpyWXDhnUxS55cKymXGibRctnKSn2hyWXhMucx9Ia8cdcteFVwIU/vNVvxW6vxaxpwYpWOkbdeAqfunDpCyGGXWPoH8Hqpjivpr3BPXPGK8vYn9LL03Uqc/4ZljQj9By6CTwFPq/D85MlbvNwlfKGN1rMhzL5/6T9PH3A+p85+2ue0rc4cy1lOeadtC4FPGWmeyPO1AvcYsO1DGT8tYxialzl/lyFhtm3Hf55QBU/efte8zai/x0U3Is/OOZ9POFFoZ4z5p4NEy8MjTZbRjqfdj9FG3jC1jx06ma7eoHSt8ybJjSTPnybQqs/qX71ZOAu3kGH14x9It/kmdW3P4p/1p4Qv5p+NPUTQs6yw/wUmH9bPonzHoP5xB/xb0E/pF/ATPOKmeD5afIHWYP7LZfoLgkuUnSJ1TGXNiVB6rtO0aMHX/1GH6/m76CfRDPPJYGZ8S3dEGTMtPeJ9xDo77GXrPWdry3SG0LZJ/q+n3TrVnbS4sqb4FlnVO4eLkANdvmtxI13bY89b5fEVtBPpJybOa/u1UfJqOccn8isEnqfOVBWX7Vt0nFn3VlGzXtozOH55CHcYYZE0wxqDt7LI2PeWVtW8bYssyLsPcrSLykDJiMvK7y4gyTOjQZ60oeyYiW85SHn1LzjrQbfW5Mqf8r9Lv7hA8HPPdhu5y5RyRslsBt0zuI/WfFz/pz+vz7VY+3YtybP+2ok/fHUVd1kaZfKb+DLGPqMus89DSzuJ7V+FVh41GHevpX1uxQSsXXeCcrIgD5eIM8JIy2gzMAavbdotV39OKL8SJuXuee07MPyPvThj83RENx+/ZVup8DDbn98PmnDN43XLk9SnVt9aL1plRb9uupXgt8GPA95x/c6pvPf+ssdbnrjjWv4ixfkPGWJPWH0Obh/zj0o3b63pMaa+/uaC93ga+2l7XuqBJe309X2KT7HU9F2mvM75g5S5WPdth2eseeskxdjh0Rx3heb47wcoBeggy4KOG3Mg7w9+0jtR5GVpHjqPOe7f5Go/TfrnGnfLizbwMgc/1JnXmwY+2I05aLugzNVzbE6oO/RCp8xsF461x+jd0z47nK6dRZskr+Z3yKm+vh/J2BmVZ8QXGVj+Kdf+0PQO4of5O1fud6KeG+iMhcU3qlQbkfofzifkd/wFr3PMMHOfAqLUidd6Pe9H/DPh5nf+zcn8S2J/Ygrz5XvDmU9Cb1vl5HaOw4h3yPSvfqOj5Bfr5jBnEqoz+o+ARG3iI7JTfPPfkk76d3gHSp6yNACNSPJDnKOh1smk83+myfrfOjKJnWtEaA36RnHbLppc5Epq7SH1l7UlWle3M7y+SH+9o1ywzPhgBRqToiRSejvZfj3KqCE4N5GF3uV7JA457TbA6tKeoY8rYYVXbWTl55MHJwP55Vstp/gzpbsZhju0ZwN4quvsu6O4YZyY9z4XoOKhlD3ufHaHdIThYdod1HtLLHvaUadRn+nyddda7k86F7XqOY90Pbugcx6iz3vRHpY4VE2yBtyE5L8w5ilHmefbBM95R5uze0yC3NO+qnMnOOnsh9FqxDs93E4zKdQ69l0hwJI3zikZrri0qvEJxII2Mo3nmLeq1pPPZifeEqjNv0PLNObJSt03m7HcZ904zfpOlrwR+WT/58ZCTnrWP9YKMcbDsROEL15bQRZveUyfHI+ijTpY69xbUyVzLWymGb+XVecbL42jw0N7hPp3U4Xx2ss271hqz7oXUsmdO4UjZ84qMOUEfijmCWt6UldP0xzRu9HOajAFStul4X5E4Om195uLIZ8YYhVbGGGMDjxMGHlvsXpE1GavvFZExte4VeX2OjB11rwhlrL5XhDRznhxTZVb/8p38i1X/jvxbk+ESS8zin9R5Sw7/jir6hC/kn9DFujE+W/e2OOmwfhb90wb9DxbUYdQLWodZ7wJs6tyP8JQ6zCvmZ80HgU8dJnVi8MNTr+p4i7UPLbhoHcbz2lLnoRwdZsXYpW3XgKn7t3xYK8Z+DP17xNgZC9DvSKQupW/7CWM/bcHASa893ovPcUn+rabfO9UeM59RYFmxxocRa/zzJ5iNQD8peVbTv52Kj7duK2MbfGyb+yfWmU5P2a5tGa3rp1AnRpl1X0rVPELKK1kTtPNDbFnrTGpReUgZ4e2Tad/H8smEF1qf8Ryr1PlUzjqw8jok54X3WfJc0GfAi0UfXqy9F4/nmJJ/t6ffBWYCn/qnbn1yu+p7QfGCOH1g34A/f+3Pn2WezY0Ag884Po/iWd04LZbAibmpZ3xwWturXiiBE3Wk1/m+vdHwHbd5OJ0GTl532jM2XAQn3js/78inOYMHlJE1weozL7TM/VaeeQ+W7C+T30q/Qt+9SN4uBfbPPRKv+7bKng9tIE+oy71/2kf6jKDlnxY5W+jZjjkDUThPzHdUa39k1N5cSN7EqHuxvN5Dbt2l53gerzPK7py7afB5/qYBHk65vj3u+UeAEanxkYe+vdc+KfcJKHMc5G5/VO573p4E5U2N+HSsvY7QPRLqASsfYCmwf9oCTvlI/b0KJ4ERKTzlmQFOXjKCsRvejyFlHK+8eE7T7SjLoqhePaD35UfdrR0S92L/lMtO865Du1hgJLL4mZDFTnJv7S4H5mmMRxvzQ8ZRp3fzoO6zU/wSt1T78JTxXPN5eV3WXUZjUbE7XQROpyIOzC2z7qCoIw8pxA8YdUdN1Twk7rVZ5zxFR9GXdpJ3HcaedIzUuptjh6KXbaXOC2Df3H/TgH5rvlTVU3nvnqtrrBztsw7tUtpetFW87FLu79wP+aLnpfc+j6a1rfjB+fVyzK+/v2nQLlRm6bt8iI+GbcW2GVMKlSnb4B2JHa4ngZGMwT+H3nSKr63tFXUAk+uWdwBKnXHozR/0x6/DuDrvSvxhwHaKqZnvBBRcmE8qdX5z76Du67Dm9bsgQuNJ1N1Z987k6T+PcxmecS3H/bw+besIMCLFA3mY29XywanrSa+cp9T7hzOKVo5lS/FCvlvynzFTmSOc423VV9voS8p43mJR4UmbmHO3jE1Mn0vWDmOU+s4BT/+lrM/eQByhVzaezDiC19rgerX2VaKoXntOYFHHlPG7q7azbGYrllK2fxkf73iA6EvGAx7egrr7X0J3/6ahuxmLCfF5R+lu7aeF2s20A6w9sLEMvDb7vGbReIp+Zxj1jhUrI//KrA3qAOscnj7HVXYvkDFma9/E6f6sbsN3BAytf4Gxlh/UwN4Mx0Sv/1PGON2P9f9IQ/FA71ic5Qd4++rb2A/vFbUDGR/x9u8842OO+Xk9yn0dV2CO8fr+dLr+it6trPUy5z/3vD3zbbQ9kdC5b6877NK2zZMg2w7sHfBrM2RbSH6+dRcF7RbGOGTsGeN3sm+HzlRo24YwxdaeiIZtD8b4pU6csQ689s0dzxmZ91fo9zuNo85sBv3MRe8A3630Dor1sUYuehy5wM68v4J521Iny+609i7GDNxjxVvaEwK7DnsiRjut/6x9JcvmENiUNfpdEUsZ9NCnkPx82pTfmCY0U/4xX1jvR+s4NmXpUyGj7927sV/K6JC9PevOCMpVyui2KisSt8s7w8PYtHU3j1e8iL6f9C3jQJhx+llktPy2vu+BOs/KkFE8x8oxO6HKrLW7yWeKzXNDQr91bui5OTbbqDPFHdBnnXk95kifvnt5RsEfR53nFdRFW/V9rVvlndjCY969zHNLsias97eF5rvEKLPyqeR3yrhY9R8b/UsZ88VFtlG/Wvcd3evvG3Qtv1r7BtQXE9Fo3SR17stZB9b+7D7oMO0LV4lxZvkBHvFLK+7Is6PWOVEPuaXv0xGex6BH6jyQI5f1fToybpTLov8auCPTlMuCi3Un/vcXlMtb9Y67rSKXhceUy9wXcoo7mffp6Ngs42VaRrXQTur8aMacGKVjqp7piVFm7RPI76E6pqi/xj1xzSPG25vYz7LuuKvLn/DMMaGfoGUQ776QOj+XI2P1fpPwhTJWx4o89/Kp/zR9zP2QOu/a5ravzB3KWM+7CbVtIfApY60zWZ52oF5jlh0o46dlLGOTUudDOTJW22bc9zllwNT9Z+37jNpLfHgT8uy849m0M4VWxrg936XoaIv0y9qxf1TSjhW+ZNmxpJnzRL+X3epf30/OsaCdHKMP71i6xT+p82c5/NPxJ+EL+afjT1E0LOssP8FJh/Wz6J8x6P/U9vIT+kX8BM84qZ4Plp+g74Xx9hO0Xi3jJ9Bukzp/W9BP8Dj7Tz/BinXVmcfK+JR+Nzd1KW3CHzbyXrifofecZQykrrZnkn+rUqeGudBRfQss65zCTTincPbmjXRthz1vnc9X1Eagn5Q8q+nfTsWn6RiXzK8YfJI6h9Mx3a77xKKvNuvdpzp/mO9aYYxB1gRjDNrOLmvTU15Z+7YhtuxUtPGdzEXlIWXEZOR3lxFlmNChz1pR9kxEtpylPOrmrAPdVp8rc8r/Wi57dkDw8LQnKIs5R6TsIOCWyVWg/vPiJ/15kY+nFe8YR3tqxrxgX9JO3x1FXdZGmXym/jypyorutWSdh5Z2Ft+XFF6hOFj3Ann711Zs0MpFFzge74SmX0ybwfNd8bHqW78rnjgxd89zz4n5Z+TdCYO/O6Lh+D3bSp0HYXM+DzbnnMHrliOv9d2+Wi9aZ0a9bbuW4rXeQ/Gef3Oqbz3/rLHW56441t+Hsf7WjLEmrf8T2jwAe8PrXHnT9roeU9rr9xa019vAdyvdMbyeL7FJ9rqei7TXGV+wcher5mJa9rqHXvLM1bbuL9b7iTXKnM6oHKAHIAPeasiNvDP8TetInZehdeQ46vzgNl/jcdov17hTXryZlyHwud6kzjz44eRjmO9Ys86UyvhNqDo8eyJ1fjxjTlBexenfOuKt0yiz5JX8TnlV5l20MyiTdUgZbJ0XeyvW/R37BnBD/Z2q9ztxPEP9kZC4JvVKA3J/6J2+zO94CPaX5xk4zgFrPXGc/pd9g7rvBn5e5/+s3J8E9nu2IG/+EXjzPuhN6/y8jlFQZkm/8j0r36jo+QX6+YwZxKqM/qPgERt4iPyX3zz35JO+jzr1TVkbAUakeCDPUdDr9f4OT3r3RzdiiDOKnmlFawz4Rd7FYdn0Mkc4x8vY3IyHW3uSVWW79R6lNsoavIdgmfHBCDAiRU+k8HS0/3qUU0VwaiAPu8v1Sh5w3GuC1aE9RR1Txg6r2s7KySMPTgb2z7NaTvNnSHczDvOXW1B3L0F3P2r4vB7nQnQc1LKHvc+O0O4QHCy7wzoP6WUPe8o06jN9vs46670jnRfb9RyH6NLNPutNf1TqWDHBFnjrcb7O4+yDo13QLXN2T3x27ovWcSY76+yF0GvFOjzfTTAq1zn0XiLBkTTqvHdrri0qvEJxII2Mo3meB9BrSeezE+8JVWfeoGUxR1bqtsmcfaZx7zTjN1n6SuCX9ZMfDznpWftYT8oYB8tOFL5wbQldtOk9dXI8gj7qZKnzpQV1MtfyVorhW3l1XvrD0mkCn/t0Uofz2TOGr9eYFcPXsmdO4UjZ86yMOUEfijmCWt6UldP0xzRu9HOajAFStul4X5E4Om195uLIZ8YYhVbGGGMDj5D3u1rnOpI56XSvyJqMLfM+4us5MnbUvSKUsfpeEdLMeXJMlVn9y3fyL1b9O/JvTYZLLDGLf1Ln23P4p99Nr99fvA90sW6Mz9a9LU46rJ9F/7RB/8sK6jDqBa3DrHcBNnXuR3ja1Pus9XwQ+NRhUicGP7zeFWbpVcHFslW1DovRTuo8kKPDrBh7iA7h/fVWjP0Y+veIsTMWoN+RSF0ap3+530ddumDgpNce78XnWkr+rabfO9UeM59R85e2xBsRa/ylfRvpejzbCPSTkmc1/dup+HjrtjK2wYPb3D+xznR6ynZty2hdP4U6Mcqs+1Kq5hFSXsmaoJ0fYstaZ1KLykPKCG+fTPs+ZfKqeF+51Hlfzjqw8jqY87KA+qv10Ll2DGYR8G5NPy8Af/n9G24f1Pvwvo141TwGa3vAi9HwM6a+j+Mz8yvPOOK0UAInynmvM2p7AacITnzX/LwjTqdL4MQYr1Pu1BP93c+9UbmEeTEe2oo14lP7u5+tc6lV9x54p7/T/u5/f/dzze14ziMK50nhdz+LPqAfqm3/svQ28O7nrnUfnd63qdEv7PA8ucBIbIm/hv/3OX/brvQ70jbrnLOT3O3Rvue6yvMLKG9qxKdDfMqeK9btRu1BV43b0BZooY+69QBxEhiRwlMe7k15yQjuCTM2JmVl3znZZLuaYiumHhBYMXDU91aQdwuB9FIuO827Du1i+tlHpgawneTe2h0J+p1fOveEfvVvHBzUPZHil6gMuc+BsTydD0NYul8r94U2f5E8K4HTqYiDdQ+Vdd6Q8sKK/Ur/ZXMvpZ1lFwucuYo4WLKVcVreaSE6qolcy6Q/3kHG+A1hMsZMetlW6lxI52kyZ582NaDfmi9V9RRzCD3HytE+GzqHS9vLab9iyC4VGBwra15q36vu/RNNq77zhPPrqzC/fmdq0C5UZul9EeKjYVt7aIwphcoU6YPztEyuK+ep51k8vS6SMXgu9KZTfG1tD4b3Q3HdMhdR6vwY9OY3+eM39B5R5jfeBdhOMbXeWDT6PU68F0TqPA+8uYw1L7/XkU+rY/uj7grI0n/U+yHxBWuf0jOu5ZmfRNs6AoxI8UCe46A39sGp60mvnFNsK3pailaOZRwN80K+W/KfMdOQszTMKbTu8muhf23HlrWJY5Tpc/vU5Q3EbZbL+uwNxBF6ZePJjCPEPjgNxRGsfZUoqteeE1jUMWX87qrtLJvZiqWU7T9O/3rHA6x3krx2C+ruC9DdbzR0N2MxIT7vKN1tnUEMsZtpB1h7YGMZeHnaBZT5goOW+UXjKdIn32dunT+TuVbm7AnXBnWAPiPG8SdvyuwFZr3HR9tRdfqD1GkN7P0NrX+ep3sn1n+T55QFFyt38Cas/19qKB7oHYuz/ABvX30b++G9onYg4yPe/p1nfEzHwupef/qdU3qvkLrg/075OercgvYbtF62zjl659toeyKh84+3oG3zu7cO6v7JJss2bWsUtW2y8q4Z49js90sLfMKM088T0bDtwRi/1PnLjHXgtW/umIec+d5l6x7Jz2bQzxzvrHc7aD3SZI53nPa72fdICo+nUCfL7rT2LsYM3K27b0RWxNGAD9IX5UiZ90QQrtZ/1r6SZXNIHwsGPVEGPfquIEdZXjruw5wez3zpMnlNzJf2mutl86UbeCfb0J1ZRXCKgZNTDnePMqgITtyHXHTk02mDB9T7NcHqj5JjZWTPyYrtGLOL07/kwWxg/zI+jucS+mXz7RvIpRg6l0A/Vt/VMxYNn18Yx/cdm9SOe6NROE/M3DGBRd9bv8uFvJsLpJc2gt6H0XOxxnjV0D2BAiOxIS/sH3y+uH+Ah6dMLXN+6PQI3njJVMqFGuaafoZkKvf582SXk4zv1CHj2yizYvBVZXUDcrG0rG4g5jt03oOyWso4Xnn7CY/38x6WrJZ6c4H0NnDeYyiuLzASWfw8yGKvc5NJfzxnytgX37sjdb78wKDu/5jix9gX9410rmARPbkPsEjzomq3qNpR7nQq4kBdvQi8tN5nHL5MTnLSV4j85xw/UxEH7gVY76njO771/pznHhfjlxJ/yrr/aoeil22lznfCvnnN/gH91nzRcfCyvFxEmedY0Tapewxol84Dnr47pE54Mt+4x/gayBc9L/VeS537umPR6HtSmMMpdX4A82v/LYN2oTIr9AyAtUcWKlP0Wa2i9EgZ56mTHzF0Pobv0/4x6E2nGIyZ56tlAHXpbdCbb/LHb8imoH7/SX+bolfWpvjDWwZ1/yXWvJWLEuJHUHdT18nnBZRl6T/qfZ1Tae2pFrnX3FGXuuf50o4WGJHigTzM82354NRInu8pRc+MorXs+cmsfDXO8bbqq230JWXM59Lva6ojfkWfS9YOfVP9LkVHHbBMHRABRqToiRSejv5cr0ocwWttWHEE6oAoqteeE1jUMWX87qrtLJuZPJgP7J9x2qbjAb+/BXX3L0J3/6Ghu3l+IcTnHaW768wjln5PGXiNZeDlaRdQ5gsOWuYXjadInyKrrXOpXBvkX5m1QR2g8+44/uRNaIxZaBllR9XpD1KnNfCOraH1LzCS9fU5rH8n37/HMdHrf94Yp9dg/X+hoXigdyzO8gO8ffVt7If3itqBjI94+3ee8TEdC6t7/XHNc85ad1ceSvk5Ks9X+w1aL3P+t8E7z31WbU8kdB6/xR12advmGZBtLczbzZBt2tYoatvouUO7hTEOGXvG+J3s2y5tIm3bEKbY2pLnq/cg6VN3MtaB175503m+wjMrz3clg/6ieb5ajzSZ57s+1sjzjSMX2Gaer8BnzpnUybI7rb2LMQP3WPGW9oTArsOeiNFO6z9rX8myOQQ2ZU3eealRPoXcb02b8jnpfcWUf8y9pV6gjGZcXep8LWT0q3Jsi5C9Pcpjyz6kjG6rsiJxO+ucqSWP6cdxD8wrXkTfT/rWZ485z/VZjA5oljrPz5BR+1CPY3ZclVlrV76TpyIjGXc+puhZFVyrPeY7ZYT+Y8BT6lzPsdn0O0RiwRP0CV18z7fTu7jN9wrMKPjjqPPCgrqIe19aF1l5n03pIpk7Teki/V4BgS88nkKd4yiTNXECvA1ZL9R1Mcr0XXfMhaeMi1X/sdG/lGWdBbfiLJTrnn6J5Vdr34D6YiIarZukzgM568Danz0OHaZ94Soxziw/wCN+acUdeedAA+dJzHcoC89j0CN1Xp8jl/X7M2TcKJdF/zXwLjhTLgsu1vte/teCcplxoq10FnCryGXhMeUy94W83idh2auCC2Fqv9mK30qd/yNjTozSMdK26l05o/YJ5PdQHVPUX+OeuHUn3uca3M/SeyN1+hOeOSb0E7QM4nlsqfOBHBmr95uEL5SxOlbkuZdP/afpY+6H1Pm1bW77ytyhjPWUZ9q2EPiUsVKnifi0tcYsO1DGT8tYxialzkdzZKy2zbjvM2/A1P1n7fuM2kv8/U3Is/OOZ9POFFoZ4z5p4NEy8MjTZbRjqfdj9FG3jC1jxz5S0o4VvmTZsaSZ8+SEKrP6t96ZrGPZ3n6AjqVb/JM6/yWHf9qfFr6Qfzr+FEXDss7yE5x0WD+L/hmD/r/bXn5Cv4if4Bkn1fPB8hP0nSFbwU8QXLL8hHV80/z1PD+Beaz6bvQisQTqeyuPlX6IRx4r41OiO9qAafkJP2nkvXA/Q+85S1upq+2Z5N+q1KlhLnRU3/psG8f+CM4pPPnARrq2w563zucraiPQT0qe1fRvp+LTdIxL5lcMPkmd0xnreDvsE4u+akq2a1tG5w9PRfY7c2VNMMag7eyyNj3llbVvG2LLMi7D3K0i8pAywvEs05AMEzqE/4QpvJiIbDlLefSlOetAt9Xnypxyy5YpVyPAiBT98jRwxqJLflj59QcBN28/3fJ3PflJfz4rn1XqfG3GvGBf0k74Qdtf5mQbZfKZ+jPEPqIPzJheEb7rOx/rsNGYE+HpX1uxQSsXXeCcrIgD5eIM8JIy2gzMAavbdotV3ycUX4gTc/c895yYf0beHTf4uyMajt+zrdR5F2zOF8LmPGPwuuXI69Oqb4Fl2ankdRz58bqleC3wY8D3nH/aL9HzzxprfWcPx/oNGOuXZYw1af0utHk97A2nGHDj9roeU9rrrypor7eB71bas5W5sFn2up6LtNd59kL0H+PmIfmCtG8se91DLznGDrv0BQjP6axVZ1QO0OshA95pyA369frO283QkTovQ+vIcdR50zZf43HaL9e4U168mZch8LnepM4i+NF2xEnLBZmXhCn4Tag6Vl7GzxSMt8bp39B4HOOhJ1BmySv5nfIqb6+H8nYGZfp+Ia575oq/E+v+1K0DuKH+TtV7COmnhvojOne8rF5pQO53OJ+Y3/Eh2F9OPrt5BtVaK1Lnp/A+hl8Hfp73Dul97gT2b21B3lwFb34HetPKLdUxCiveId+teIQV78g6v0A/nzGDWJXRfxQ8YgMPkZ3ym+eefNL3Eae+KWsjwIgUD+Q5AnqdbJquJ71yt86MoueEojUG/CI57ZZNL3MkNHeR+srak6wq25nfXyQ/3tGuWWZ8MAKMSNETKTwd7b8e5VQRnBrIw+5yvZIHHPeaYHVoT1HHlLHDqrazcvLIg5OB/fOsltP8GdLdjMN8cQvq7qdCd+9IP9PnreNsY1YO81hk28Ojzj82effNqPOQXvawp0yjPtPn66yz3remcyEvXsD4qI4XWHfLP9HOetMflTpWTLAF3lbdw49R5nG+jvrHK95R5uzeKcgtzzxjvVcxKtZh5anV9W6CUXlMIfdekV+kUedYWHPNyg2pevcW42ibfQZzfU9B1Vk0aPmSHFlpncF8HvL5pB/Gb7L0lcAv6yc/HnLSs/axnpExDpadKHzh2hK6aNN76uR4BH3UyVLn6wrq5K16ttLKq/OMl8fR4KG9w306qcP57GSbd601pm1zS/boXGLKnudnzAn6UMwR1PKmrJymP6Zxo5/TZAyQsk3H+4rE0WnrMxdHPjPGKLQyxhgbeBw38Nhi94qsyVh9r4iMqXWvyP05MnbUvSKUsfpeEdLMeXJUlVn9y3fyL1b9O/JvTYZLLDGLf1Lnu3P4d0TRJ3wh/4Qu1o3x2bq3xUmH9bPoP2HQ/88K6jDqBa3DtH/vqMM2nPsRnlKHecX8rPkg8KnDpE4MfnjqVR1vsfahBRetw6z3Z78+R4dZMXZpO2vA1P1bPqwVYz+K/j1i7IwFiO6g3695xP0+6tIFAye99nhHKccl+beafu9Ue8x8RoFlxRrfhljjb966ka7Hs41APyl5VtO/nYqPt24rYxu8a5v7J9aZTk/Zrm0ZreunUCdGmXVfStU8QsorWRO080NsWetMalF5SBnh7ZNp38fyyYQXWp+dRjup8zs568DK6/gQ5LzAZTxqDnUZj6KclTofg5zdeXBjv4xL6ljlWJR/D+c+wJpFmXxeQP/6fq7Q/RrKXtrCMoeo72LA8vLfpW99xj8pl7ksc0V+4xkxqfOnGXNlH+pxzPQ+whb0K0vfV/lISb9S+LKV7qtsKfjjqPNXBXUjZY7WjbLmtopunPbhbea9aMLjUfdVypqw7hLjemmp/nWsm/k4fD+DyDHaqvI7Zdy06n/a6F+fdWWeLPWlyDbmSIpcT8aBOrnucdA2hKw3697mrDsepM5kinfeXgn9mj+euvGZZ+wpD9uqrKivoHN3rZxC+goc36q+grXnQB3mtLYy76vkuSipcyhjvNiXtJNxo1yO089b8b7KEznzUeQy713XclnbR09EuWzdVxmDH7OOOMUKJ32PSFJn/c65yLbbxlFnIWNOjNIx1ntxy9ypb+kY+l9VdQz1ic65p45hPErzaO2sBGSx9jnJB4v3gqd1n4q+o9O6T6VOf8Ixj6tP+yLrLiyp8+U5MlbbKvr+QuqaFuhr+dDXo/7T9LWAp9T5qoIydqvavuu+P2Ss07uZupZtIfApY6UO57OnHajXmGUHyvhpGcuYv9R5bo6Mtc5VVY1x8e5LjVsyj19ryDbamSEyvoxs07ZnHXYs7Uyhlfdmzhh4xAYeUiZ4xAYesvblN0dbpF/Wjr2npB0rfMmyY0kz54k++231b91XqfNxvf2AUfc1kn9S55/m8G9U/mvefZWUdbFBv5MOy7yvsmXQ/6rt5ScUuq8yjlxgl76vcgb88PQTtF4t4yfQbpM6P1jQT2DudVU/YQ5lIp/ph8jvlN1zqv85o38pi1Gm9/XpJzBXVfMoWU93QZdmveNE1p6MAe+rpG2R/FuVOjXMBX1fpc6T59i/5eAA1189uJEuyv45VVaE/9ZZF9oNddgIWe//yrIR6Cclz2r6t1PxaTrGJfPLsg1+tqBsz7qvcjP3rUVfNSXbtS0j8IXHo+5jkDXBGIO2s8va9DHKZE1Y57zL2LLME+LdlEXkIWWE9761vq9S+E+YwouJyJazlEe/lrMOdNuE1udODWht+9C6TL0ZAUak6JdH8PC0JyiLOUek7FbAzZPPbEf958VP+vP6Pt828JQ6H8ux/Ue9X0P6pC6z9vOpP2dUWdG9FsGbMb0ifF9UeIXiwJgMdaynf23FBlsGXjrfpg652AJeUkabwfO+wGnV9wnFF+J0Bjg1eV+lwD9u8HdHNBy/t876XLrtxt9kff4VbM5TBq9jR17Pqr4FlhXLIq89bbs4Gua13kPxnn+nVN96/lljPav4xrE+jLH+u4yxJq1fhE9y6LYB3U5x6cbtdT2mtNd3pvTm2es836Ttda0LmrTX1/MlNsle13OR9jrjC9ZZauFbmVwL2jcxyjz1kmPssEtfgPBoe9QoczqjcoAOQW5cTD9b8ph7BIz9x6pe03kZAt/Ky4i3+RpfzwHFGm/yvkqBH6d/mZcxB344+Rhd+p6Ck45B0XeYUHXm0G7dT8iYE5RXQnsd8VbeV2nJK/md8qrMfUQtlOl7HbjuZf1yrSef337bAG6ovxOSA27t0VbxR0LimtQrDcj9DueTwEjG4Omwv5zWU49jom0k+uzrY3L7oO5XAz+neEjHyv1JYH/NFuTNJ7F+vg5607q3RccoKLOk3zrPL9DPZ8wgJP+LOp6+kdeefNL3f7+vsh565b7KlqLnhKKVY1nkPJZl08fpZ87xWPUVG31JGePh1p5kVdnO/P4i+fGTkdu7qJcZH4wAI1L0RApPR/uvRzlVBKem76u07hGNonr9I303Zlk7rGo7KyePPJgJ7L+p+yq1vZvoxu/dgrr7w9DdrzF8Xo9zIToOatnD3mdHaHcIDpbdoe0JT3vYU6ZRn+nzddZ9lW8sGC/Yquc44rTfps5xaFtB4NMf1We+rTsm6/Afmzr74GgXdMuc3Xs75JbOF6pyJjvr7IXQa8U6BM5cRRw4pnm5zvqseFEa5wwadd67ld+2oPAKxYE0Mo7meR5Ax9HmFS3EW7+XdM6g5YM5slK3TebsEeTzST+M32TpK4Ff1k9+POSkZ+1j/W7GOFh2ovCFaytOPzd1X+X0CPqok6XOHxTUyVzLWymGL3OHOtlLf1g6TeBb70eOwQ/PGH6scLJi+Fr2nFI4Uvb8aU4MX+SH0E45PWPA1P1bcpr+mMaNfk6TMUDKNh3vKxJHp63fQpl8ZowxTj8zxjht4HHcwGM73FcpY2rdK/KFHBk76l4Rytis+yo5T46qMqt/677KadW/I//M+yot/kmd8XQfoex9leSfdV8lZd1m31dp6TCpszeD/qL70Nq/b/Lcz1a5r5I6TOo08E4NU68KLpatqnUY7TapcyhjToyKsYfoEOsdOPRleF+lR4ydsQDRHTFgah5xv4+69IyBk1576/fDRG7vfTXzGTV/aUucwR7qM2/fSNfj2Uagn5Q8q+nfTsXHW7eVsQ0uFZTtW9U/2Sr3VVK2Sx3G9GRNWHuCoXmE1v26tPNDbFnrTGpReUgZ4e2Tad+nTF7VLNpJna/LWQdWXofkvCS/Lwlt+P05tw9+76blS/j9G8ErnmNalb4qPkm/Tu9m7ZPmCDD4jOMzZeqiD07dmx7r4860r2+9dt8zrn3ncy+/8AVXL9/3gnvv+fpr3/HSay+5bwyglxSa/G0UKTtQtg+fO8bvfMai/NdXOQ5Xz/EYXp/hWVE5+nV3DEnfneNO6VCvjBNdd+E9w89LPvStpTssGnhGCk95loCT03U0y2WXH/nkdRyTR7+L4DQPnLy2DhjKL4LTKeDkpL562+UoJ92QqDZYvRWaMGVe7WUdEQ1tR5OM22FVTTK6cC30UbfqJU4CI1J4ytMCTl4hBrpndNOljOOV57I13Y5Hj6JwnvR0AfGJgaPIbeETebcUSC/T/pzmXZdXpHBO6aOoNcHr8IoDhlfeiJDEj8KE9rKdkvERFyoCjEiNjzw0db1e4bg32vgqFOrRKKpXXgss6um816VRX9WHz/BRsNkS+FjtqAcYatKv4yzbP4+TOW2X9vcqnARGpPCUp4FX2XcZBjwNvkgZx6tM6LeJdtSPUVSvHtCpIdQDfKWT1FsKpJe2otO86/C6K16h8cuQxU5yb+3ajgXAHI82Xq01jjrvvnNQ9wMIX0s4huHrBVVGWLpfhpcFPsNs+loaHR+g3OlWxIHhP141KGVL6P+0Kisi15K+sl4DLe2s10ALnIWKOFiydV+0Mc7AVLsGjnh2GIqUcLgVimTKIellW6nzh7Bv/vPtA/qt+VJVT9Ef8hwrR/usQ7uUtpe+oqJOeDr9kGNlzUvtu9e9padp1UfdOb8ewfy6545Bu1CZVfV4MX21UJkifXCeFqFH6w5H3dXhehIYyRj8jbEN4LEt2AVMrltegyZ1/hn05t/549fhFgm3UL4I2AuOvOko3gguC+CN1HkGeLMjXT+0A2hTnFFlReY4dTd1nT4an6f/qPfbqqxIXMs6BuSoS/ueaclljwc2kZbjSa8cndXpKScVrRzLGcULnbJF+S9zvY5jEgsoW1J40ibm3C1jE9PnkrXD10vK2mkgbrNc1mdvII7Qo5wqglMDrw8ZiiOQBxz3mmAN+efUMWX87qrtLJvZiqWU7Z9xYc94gOhLxgN6dwxgbxXdfQq6+4KhuxmLCfF5R+lu7aeF2s20A04ZeI1l4OVpF1DmCw5a5heNp0if1pFLK1YWmk5KHSD0cy9QfidvivgnUsYYs36dsLaj6vQHqdMa2DseWv9Mj3oO1r/X3gzHRK//08Y4ff6OQd1/jPXvGQ/0jsVZfoC3r76N/fBeUTuQ8RFv/84zPuaYX2NeXaH3CqkLXpbyc1Tul/YbtF7m/GeuhZN90aVs477DK7agbfN+yLbv3mTZpm2NoraNnju0WxjjsI6fex5L1TEPfayS/rOkG+s9SPrUP5yxDrz2zZnn4jFX9bFo4VkM+qXO6zPo57GDLvDVxw60Hmny2MH6WOPYQcuHt+bxLYEvPOax6Cy709q7GDNwt3KNRFYI7DrsCcLV+s/aV7JsDoFNWZOXaz3Kp1hOP9OmfDtkvVOOcZ96JgKMSNERKVodY/Jd5hh3wTcp6wHuksJTvltjdy6w3dnAdjKmCT03KXr2pv+Sh7r2PXcMft+Tlt+ENpP4LH93pp/3oEzGbBK/UY8yP5z2BXU992ekzoeg6x/NsVFD9oip1y0/g7p+VpUVif9Sr8+iTOt1xgO4l+oVd2QMQfqWcSBMkVui6+W3LmiWOh/J0HU8isgxm1Zllg4oetVpk9eTCf3W9WQfz7H9R70+swv6hC5es9DEK02EvpMK/jjq/ElBmybrFWra5t7s69c8bRp9tY/A59VhUsc6ShmDtyHrhTZTC2VWXp78HpqfzeOh+vouK15Hue7p31rxGe1jUl9MRKN1k9T5m5x1YO3zvwI6TMdUqsTKs/xJjzi4Fb/mcXbqMKe1NfR6IC2XW6BH6uxO90RGyeVY8UHGjXJZ9F8M+pp8VY7gYl0xti+DPsplxhu1XLZy259ocpk+gL7S1zF+ab62WMf4GXfVMmoG7aTOkYw5MUrHhMR6Rx2dt/abquqYon4/cys0j7hv08S+qN5jq9Of8MxVop+gZVAbeEqd5RwZq/cthS+UsTrm6JkTQv2n6WMOkdS5WFDGblXbV+YOZazX2S3LthD4lLFSh/PZK9bD+IPgpO00rkMtY7kfIXW+IkfGatuMa/+0AVP3b+WSMXfG2rfpbUK+pve+CO1M4QP3StoGHjMGHnn5f7RjqfedbJF+WTv2rpJ2rPAly44lzZwnsSqz+pfvVm6L/ObtB+g9GYt/Uudbc/in/WnhC/kXp59Zl7LO8hO8zkdm0X/SoP+e7eUn9IvsScWRC+zMPSnqMKnTBj88/QStV8v4CbTbpM7LC/oJzIeu6idY+dDcc6uaDx2jTHQH41OiO3h1o+YRz2Ywx4D7GTp3QcZA6uq4VvJvNf3eqfaszYWu6ltgWedd/mfkhf7cnRvp2g65EzovtKiNQD8peVbTv52KT9MxLplflm3wpoKyfavmG6xfZQfZ7rkHFkeDh7qeZ/qlDmMMsiYYY9B2NmVDNIK3zAmcQZm1/x9iy/KadeYAFpGHlBHePllX0aHP7FH2TES2nKU8emfOOtBt9flEpzzCZerNCDAiRb88vKPKy56gLOYc0b56EfnMdvuAuxc/6TfrexKsvMwP5dj+2gcXflj3DVj7+dSfbVVWdK8l61y9tMt6tc9sRRwYk+FYevrXVmzQOtNg3SlVVS7yOmYpo80Qo9+6bbeW6jtWfCFOzAH13HOKwTfybtrg745oOH7Ptuu8PHTjb7I+/wQ25xmD1zOOvD6t+tZ6kTiR15623Yzitd5D8Z5/Z1TfAovjoMdan9/jWE9irB/JGGvS+mn4JLsPDej2up+gaXtdjynt9UcL2us806Ttda0LmrTX1/MlNsle13OR9jrjC1YObIh/O+q8tade8sz5py8w6t60GmVOZ1QO0G7Ijbn0syWPrTNgm6EjdV6G1pHjqLM/pWe7rnGRW03FW3VehsDnepM6C+CHZ+6YXrc6hkkbfULVoY5ff0VFxpygvBLa64i3xiiz5JX8TnkVq/5jo38pYz6jrEOOmXXucA7r/scPDeCG+jtV7wmjnxrqj4TENek3NyD3O5xPzO9Ygf3leZaSc4Dzlj671Dl4eFD3EvDzOkdq5f4ksJ+8BXnz77B+VqE3rXsYQu6vqXJ+gX4+YwYtVUb/UfBoGXiILKFv5GTHr93R5PVaQ8raCDAixQN5joFer9eEe9K7P7pxR9NJRU+saOVYFslpt2x6mSOc42VsbsbDlxSedch25vcXyY/nGVmPWHQ7Gn6y5iHzs2IfnHqUU0VwioGT19rgeiUP6r+D/IZ/JLCoY2JFv3y37LCq7aycPPKgHdg/z2rF6MNLdwuMRDd+xxbU3Q9Bd7/U8Hk9zoXoOKhlD3ufHaHdIThYdoe2JzztYU+ZRn2mz9fF4J3U+b6C8YKteo5DdOlm3xlAf1S/AnvUOf+qMcEWyjzPPjjaBd0yZ/d+HHJL867KmeyssxdCrxXrEDgLFXEYdQ+7lescer/VgkGjjmFZc21J4RWKA2lkHM3zPIBeS/o+LOI9oeosGLT8fI6s1G2TOfvLxv3ljN9k6SuBX9ZPfjzkpGftY70/YxwsO1GfYxh1tjL2oa9Huavpi4Gn1Hm4oE7mWt5KMXwrr85Lf1g6zbqLUsf1vXOmtb1s6Zh12yUabb9LnY/kxPBFfjBHUNq2DZi6fys+QX9M40Y/p8kYIGVbyHt9aOtbr0ZnjHE9pwRlLQOPaQOPLXavyJqM1feKyJha94r8RY6MHXWvCGWsvleENHOeHFdlVv/6ldocC95b4nkvi8QSs/gndT6bw79jir44/Uz+CV2sS1ln3dsSRy7097Pojw36v1DDPrT275s89yO8pQ5zuhOna80HgU8dJnVa4EfbESetVwUXy1bVOox2m9TZne6t5e1DM8YeokN4dtWKsU+j/6ox9uMo07kt9GPp92secb+PunTOwEmvPb5fgWsp+beafu9Ue8x8Rs1f+kmHsYf6pMMb6Xo82wj0k5JnNf3bqfh467YytsF8xjreDv5JnPZL2e61n2PZMgKfsl3qMKYnayIGb6veDco9QVkTtPNDbFnrTGpReUgZ4bhfMiTDhA7rnQ+j9BnvvZc6qznrwMrrWIGc532jAp+xowSWnIe5A3W1LF5Nv3eqPUM52uMKH+ve/3+YQT/70rTsMfp6RsG+pJ3Mf56T1/dF7Ig25s7purtRPpfTjjgsqTbJ3J5U9UadO/C577a79t7MOeBInlvnmvVZ7Tm0kzr/Q8646PkqfdyBOrQRRs0pqfO8HHinRsDbY/T1LQX7knYyp6jfBVfKVPm9yJzKa8fx0vKI8pI4zSk4LvkB3U6HOBF/4rdb4T4ZDdutdctwLQesM/Kj5jdlm9S5N0eG67bJvPvuXTc+Fz2jL3cl8+yo1HkpbOUHD2/st8kz8h7vTuG81Wd+vf1XbUvIOBDmeqw6Go45LINmqfNAxlyhf8Axa6kyy6/We7Cj8g/jaJie1fR7p9pj5gwI/THwlDo/mCNXR91pswz6hC7GPps4Zyj0aXuYdvlrC/o32+k9Cp7v8YijwcM9BeoJqWP5N4yNhKwX7u/Q17DuNQiJB4x6v5l+PzbjTiLrKNebvtdA1lvWvQaWbpI6b89ZB7ptQusD4zc+J2tc3i1Aeeh9F9y8KhtDmfQ/b/RvnfOybC/rPkzP+yLpJ3O8eNeW1HlvjlzWe38ybpTLov8a2Pc35bLgwvix1PnVgnKZ77TYSvdhbhW5LDy27puZVPyrGydtrwouhCm4aBnFnByp8zsF9xSoY6Rt6D0Vlo5hflRVHUN9IrJnHmU69k5ZTH/8LshifW9n0uasKhtDmeB5VuFJf+IsyuSzhz+RzMl59FH3vqaOKQgveX+A1PnPJWMKwhfKWJ0n7Z0nPj+CPsZlpM6ntrntu34PIWSspzzTtoXAp4zVZ1G97UC9xiw7UMZPy1jG5KTO3+bIWG2bMW6yYMDU/VMGStlZ9KVxW9szMGQb7Uxte9Yt27TtWYcda907wP3NeQOPtoFHni6jHUu973lnbBk79pYj6d9o42PZscKXLDuWNHOezKgyq38rP1bvY3n7AWIPZ/FP6hzJ4Z/2p4Uv5J+OP0XRsKyz/AQnHdbPov+UQX8rg/4t6CcUunPYM06q54PlJ0gd7mNttp8guGT5CVLnXMacoJ/AdxhK20UDpu6fOkzKrPd60w+p+l7vNsqsd2+L7rDexUk/YQK6VH7nfgbjO1wbUlfbM3XvSS+rvvW7kjj2q0cGuF45spEuyv6QO1Rpb/CeRj2WVWwEmeNlbQT6ScmzKnhWfJqOccn8smyDry0o2zlntGzXdmeT/on1ThRP2a5tGYHPs4k6h43ykDEGbWeXtekpr2RN8I73EFuWcZmzKCsiDykjJqNhn7bucViOhukQ/hOm8GIisuUs5dG35qwD3Tah9e93Dmhd8KF1mXI1AoxI0S8PzwJ62RPkB3WylO0E3Lz9dLY7B9y9+EmdoW1f2jlS56U5tr/WP8IP2v4654H6p47ztjr/pyjfFxVeoThYZ1GpT+t4b4DIUvpERWxH6z2pVXPUuaeVt39Vt+3WVn2fVHwhTrxPcQbt6rY3aFeQdzMGf3dEw3qIbaXOH8PmfC1szo7B61OOvD6r+hZYlp1KXjvZHz3ioGPDo+JOdfNE+yV6/lljfVbxjWP9yxjrN2eMNWn9KbR5L+wNpxhwx3tM9Tsa9Zhyf+vBgvZ61v0im7lnK3OB9rpnjrreJ9RzkfuEfCeU6D/GzUPyBWnfWGenPPSS4/5e19pDdcyh74zyM94LGfBHhtygXy9jyNh/0zqyBdwtHcl464e2+RoXudVUXobwTegX+FxvUofv9drsu1L0ncPWXSlS53cLxluF9tB4HOOhVl4G5VXVvAzGR3QuP9e9rF+u9eTzM48O4Ib6OyH7mlORnesR6o/o3PGyeqUBud/hfGL+wydhfzn57D2OibaRuFakzq8fHdT9/4CfUzxkiDfE8zNbkDffD958FnqzqdzSzd6Td7Lj+4759n3K2ggwIsUDeXgGwMmm6XrSuz+6cefwvKLnpKKVY5mXYzDKpq96/pf6aknhWYdsn0FZkRi8o12zzPhgBBiRoidSeHrud1FOFcGJ9/N7rQ2uV/KA414TrA7tKeqYMnZY1XbWfYvkwenA/hvIBRrS3YzDtI8OYG8V3X0Nuns+/Uyft46zjVk5zGORbQ97n3+k3SE4WHZH1v69R0ywyT18ocPaw7+YzoW8eAHjozpeoMf0ibiHT39U6lgxQe89/AX0H2L7cg+f+scr3lEmP+CZkFueecZ6r2JUrMPKU6saE8jLY9L5z0Vp7Bo06hwLa65ZuSEhOJBGxtE2+wzm+p6CqtM1aLk7R1ZaZzA/nCY0UD8yfpOlrwR+lTOYde2Ze/q/ZfexviNjHCw7UfjCtSV0NfDOrR7lrqaPOlnqvKygTt6qZyvXc4Ghkz3j5VqnWTm/Oq7vaJubdw5r29ySPdb7y6XOAxlzgj6U0E45fdqAqfu35DT9MY0b/ZwnyvlynmV5PNzrLmPaAp5S5005MjZW9AlfKGOFrtigmfMkVmVW//Kd/Gur/h35Z97LYvFP6rwth3+j7mUh/+L0M+tS1s0Y9HueGxtF/0mD/p8tqMO2yLts+kXupfSK+VnzQeBTh+l7Hb31qo63WPvQgovWYTy7KnXem6PDrBi7tA29H8CKscfo3yPGzliAdT+A5hH3+6hLrXvU9NqTunouJP9W0++dao+Zz6jvZKQt8duINf7lE8xGoJ+UPKvp307Fx1u3xWlfRWyDP97m/on1ThRP2R5Hg8fS9dbdL5SH1p5gaB4h5ZV1X0qILcuYZ9n7UigjvH0y7ftYPtn6nRWRLWcpjz6bsw6svI5PGvmGPB+3hLqMyTH/Wep8HnL29LGN/XJcdf7SGMqkX/lOOSiwFlEmn+fQ/4IqKzIvrT0jynbrnhbmJ3jm/uq9HxmHrPup5TfGDtf1Qjo+o+6rlHrWHijHLOS+/KbzU4V+Kz/1lgw+sC9pJ3zh3dJCVwv0eerGUftp1I1S544M+orup8ma2yr5t7M+vDX30wS+tZ/GnFL9/hPaelwvRfIqpWwWZSLHaKvK75Rxs6r/rPef8EysPjdI/45+gcj1ZBx87iofPpsjdFh3lQsv9F3O1E1S51zOOtBtE1q/DHsl59JyK9+W41tk70v7lZaPxZwDjm/IGUrqK+ownZPmuLbMPQfhOc9FSZ2n5MjltuKDvvdhVM5kk3kOgouV5/C0gnL5HPDVclnbR09EucycBqnDPZVFR5z0noqVPyHjp2UU91SkztdlzIlROkbLJcLU/VMHSJmlYxjvqqpjqE/0XW3UMdwn0jxK1tNRyGIrR+ycKivCB/oT51Amnz38CX2+rO6YOM8zcL4x/il1XpAjY7WtInyx3qvSwLmNHvWfpm8eeEqde7e57WudLz3nw1szvq7zY6y7EbztQL3GLDtQ342i75ekffCKHBlrxfyrnj07h740bsk8/nzaaFSsJETGl5FtVny/qh1LO1NonUbZaQOPUwYeoblBTrZIv6wd+/qSdqzwJcuOJc2cJ21VVmRvimNBO9nTD9C5VRb/pM5bcvin40/CF/JPx5+iaFjWWX6Ckw7rZ9E/b9D/4PbyE/pF/IQm70iw/AR9lsPbT9B6tYyfQLtN6jxU0E9gjmxVP2EJZSKf6Yfod95x70D6XzL6lzKeb9f3edJPYD655lGynh6GLtXvsKDelrWnc6a1PVP3vnVX9a3zmTn2Dx8b4PrnxzbSRdmv986K8N/K6abdUIeNIPOnrI1APyl5VtO/nYpP0zEumV+WbfCxgrJ9q96nL/qqKdmubRmBLzxmng1jDPo9m7TpuV7K2PSUV7ImrDz3MrYsz+KeQ1kReUgZ0fQ5BuE/YQovJiJbzlIefSpnHei2Ca3v2zGg1Ul3L1OuRoARKfrlETw8/XTygzp5UeHD/REp13Yg2/WAuxc/qTO07Uv8pc7nc2x/rX+EH7T9dc4D9Q/1p87fKhrfE7yZs1GE72cUXqE4MJeGORE6Xkl5TZkUkntWZB/KugcnFAfuiXJPK2//qm7bTd/PqN/nR5x4/3kb7eq2N2hXkHdtg787omE9xLZS51vSl80n6/OO4wO6lgxezzvy+pzqW+dNEifyuol3JenY8Ki4U9080X6Jnn/WWGv/jWP9VIx1K2OsSWsbbZ5yfEC3Uwy44z2mwsNdkT2m3N86ndJbJc90M/ds12MMsNed4lxd8lbot2IJUoe5p6L/GDcPyRekfcP8HU+95Li/17X2UHWOao0ypzPKz3gKZMDzDblBv17GkLH/pnWkjrdqHcl469O3+Rq37p/wzMvQ8Vbr/gmdX+4db9V+vM4Zpu8woeowDid1viFjTlBe8UxNSDyO8VArL4PyqmpeBuMj+h4CrntZv1zryeffOz6AG+rvVI1JczxD/RGdO15WrzQg9zucT4x1vxD2l9N66nFMtI1En13qfPWJQd1vB35O8ZAh3hDPl2xB3kyBNy+D3mwqt3Sz9+S93gGY9N1y6puyNgKMSPFAnhbodbJpup707o9u3Fd5WtEzq2jlWLajYV7oHINRNr3OYShrczPuP6fwrEO2t1FWJAY/Gbndy7vM+GAEGJGiJ1J4eu53UU4Vwck6k+oRH581eMBxrwnW0H3+1DFl7LCq7Rj/tfJ2FwL7l/FxnD9DuptxmJ/egrr7L2D7vsPwees425iVwzwW2fYwdb5HvjLtDsEh685Ma//eIybY5B6+vouTOu5XCsYLGB/V8QI9pk/EPXz6o1LHiglyD7+q/2jt4fNMQdU9fOofr/cXlskP+D3ILc88Y71XMSrW4ZmnNiqPSec/F6WxY9BY5E5OKzckBAfSyDjaZp/BHJW32DFo+USOrLTOYH4P8vmkH8ZvsvSVwK9yBrOuPXNP/7fsPtZfZ4yDZSfq+1Xp39Om99TJp0bQR50sdf6uoE7eIjnTG3SyzB3qZC/9Yek0fdc5dRrns2cMX68xK4avZc+SwpGyZzLl76gYvj4zTTm9YMDU/Vtymv6Yxo1+TpMxwM08X86zLMSjbeCh7cS2gYflq3reNziT9qVlkHW+O86Yb+xL2ul7kXluZcag2boj6UxG//Kd/NPv7XPkn3kvi8U/qXMmh38tRZ/whfwTuliXsq5t0O95bmwU/bMG/d0M+ovuQ2v/3lGHbTj3Izxt6j0Iej4IfOowqbNZdy7rdyJk7UNbdy4/JUeHWTH2EB0yFW28G5G+zAz694ix590PoHnE/T7q0mUDJ7321u2DaOOdkqvp9061x8xn1PylLfFs7BO++MRGuh7vd9Bw3aymfzsVH2/dVsY2+JaCsn2r+ieirzbrHTda109FG+9+oTy09gRD8wgpr6z7UkJsWcY8F1BWRB5SRnj7ZNr3KZNXdQ7tpM7LctaBldfxQsh5iRf1AV+f75xIv98ZDXikZfFq+r1T7RnK0R5X+JB+qfOqHBt3aQQtPaOv7y3Yl7Q7nH6WPhnjZKxW58XpuisoX8xpx8/63E8yt/uqHuGkw742fvo9QavSrtrwdSxZMKHwJS8nVB3qcqnzwyXHWPq4E3V41yvbWGvqdTnwzo6A1zP6emPBvqSdzCmeQxJcaYPI75yTrMs5ldeOn/VZr2ROHVf1LDiT0fDcXJX+qk2njsZfr4kp4MC9Is+Yvh6zCcUfrgE9vzkPpc7bcmS4bpvMux9Kk0T2pf+S52a02a/KxlAm8OU7bc6p9LP8Ngm8PGy+A6CJfLoFeEqdn89ZSwcUfalpNSSfha4DoO9WR/oOjqDvVuApdd5d0KbdB3y1TSvjtxk2rfCUNq3T3OmSt0L/Ovz07xTqcD5POeKk1xhxEZj7gCfr7Ec7qfPhnHiFrG+hfW+0UR4Qpu6f9rOU3YK+NG7JPP6R9HPCy90+c2vNjpicHMAcB6xdmF97AL9uO3RS9S2wJrHm5PPvnxjUlXpSR9btbqxfWSPEX7cbV+2mUGcC7XardvJdxjbh379O8duT1hEe/jvEST6OtSz978QYfML4XZ6x4a9rMNY/Y7wmHefLHjVf1scJ8G9ynC96Lt6kxngcn/8c8+WmEfNlEvNFxpT463YTqt0U6nCdTqp2k8Z8+feYF5/A3PlvLa2wd59wBAA=","debug_symbols":"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f/V5x8qD+rxj5UF13rF2xcy5LMe8MlXnHcxfqfMO5q/UeQfzV+q8EmzesfyVzM95pZZ/x9oH8oV5x/JX+rxj+St93rH8lTpvGctf6fOO5a/0ecfyV/q8Y/krfV4JNm8wf1WC+auxdmp9Yd5g/mqs/VT1ecfaIvWFeYP5q7E2Mn1h3mD+aqztRl+YN5i/GmtT0BfmDeavxtq684V5Y/mr9N496I5/ZP2Jf2T7iX+k/MQ/sv/AP/LezbyOf2T+iX/kb7eQ63RsrbOuIsp/snM+/6Oa8/JpI55dKkcv23n0si2L9tnTfpz2/PgiaEfPxxP6s5TfzuNAk0HTQiOgaaFZQNNCs4KmhWYDTQtNAU0LzQ6aBpo0gaaFZgZNCw1uuIkGN9xEI6BpocENN9HghptocMNNNLjhJhrccAtNxg030eCGm2hww000uOEmGgFNCw1uuIkGN9xEgxtuosENN9HghltoBDfcRIMbbqLBDTfR4IabaAQ0LTS44SYa3HATDW64iQY33ESDG26hWXDDTTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWmhU33ESDG26iwQ030eCGm2gENC00uOEmGtxwEw1uuIkGN9xEgxtuodlww000uOEmGtxwEw1uuIlGQNNCgxtuosENN9HghptocMNNNLjhFpqCG26iwQ030eCGm2hww000ApoWGtxwEw1uuIkGN9xEgxtuosENt9DsuOEmGtxwEw1uuIkGN9xEI6BpocENN9HghptocMNNNLjhJhrccANNnnDDTTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWmhk33ESDG26iwQ030eCGm2gENC00uOEmGtxwEw1uuIkGN9xEgxtuoeFddG00uOEmGtxwEw1uuIlGQNNCgxtuosENN9HghptocMNNNLjhFhreRddGgxtuosENN9HghptoBDQtNLjhJhrccBMNbriJBjfcRIMbbqHhXXRtNLjhJhrccBMNbriJRkDTQoMbbqLBDTfR4IabaHDDTTS44RYa3kXXRoMbbqLBDTfR4IabaAQ0LTS44SYa3HATDW64iQY33ESDG26h4V10bTS44SYa3HATDW64iUZA00KDG26iwQ030eCGm2hww000uOEWGt5F10aDG26iwQ030eCGm2gkKpok8nFwnrJyHjLJMaNM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"},{"name":"lookup_validity","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"consumer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"kind":"boolean"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000aad5fd6b"},{"kind":"string","value":"PublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"signing_public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"field"}},{"name":"signing_pub_key_y","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::constructor_parameters"}}],"kind":"struct","path":"SchnorrAccount::constructor_abi"},{"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"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_abi"}]}},"file_map":{"101":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"},"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"},"115":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"116":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_current_public_keys, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, OvpkM, IvpkM, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"117":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"123":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"125":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"126":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"127":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\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"},"136":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"137":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_nullifier_membership_witness.nr","source":"use dep::protocol_types::{\n abis::nullifier_leaf_preimage::{NullifierLeafPreimage, NULLIFIER_LEAF_PREIMAGE_LENGTH},\n constants::NULLIFIER_TREE_HEIGHT, utils::arr_copy_slice\n};\n\n// INDEX_LENGTH + NULLIFIER_LEAF_PREIMAGE_LENGTH + NULLIFIER_TREE_HEIGHT\nglobal NULLIFIER_MEMBERSHIP_WITNESS: Field = 24;\n\nstruct NullifierMembershipWitness {\n index: Field,\n leaf_preimage: NullifierLeafPreimage,\n path: [Field; NULLIFIER_TREE_HEIGHT],\n}\n\nimpl NullifierMembershipWitness {\n pub fn deserialize(fields: [Field; NULLIFIER_MEMBERSHIP_WITNESS]) -> Self {\n let leaf_preimage_fields = arr_copy_slice(fields, [0; NULLIFIER_LEAF_PREIMAGE_LENGTH], 1);\n Self {\n index: fields[0],\n leaf_preimage: NullifierLeafPreimage::deserialize(leaf_preimage_fields),\n path: arr_copy_slice(\n fields,\n [0; NULLIFIER_TREE_HEIGHT],\n 1 + NULLIFIER_LEAF_PREIMAGE_LENGTH\n )\n }\n }\n}\n\n#[oracle(getLowNullifierMembershipWitness)]\nunconstrained fn get_low_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_low_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_low_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n\n#[oracle(getNullifierMembershipWitness)]\nunconstrained fn get_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"140":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage,\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"142":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\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"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"152":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\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"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"160":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"176":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"178":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"195":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = unsafe {\n // Safety: These indices are asserted to be the sorted element indices via `find_index`\n let sorted_index: [u32; N] = self.get_sorting_index(ordering);\n\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n\n sorted_index\n };\n\n // Sort the array using the indexes\n let mut result = self;\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"210":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_leaf_preimage.nr","source":"global NULLIFIER_LEAF_PREIMAGE_LENGTH: u32 = 3;\n\nuse crate::{\n abis::{read_request::ScopedReadRequest, side_effect::Readable}, hash::compute_siloed_nullifier,\n merkle_tree::leaf_preimage::{LeafPreimage, IndexedTreeLeafPreimage}, traits::{Empty, Hash}\n};\n\nstruct NullifierLeafPreimage {\n nullifier : Field,\n next_nullifier :Field,\n next_index : u32,\n}\n\nimpl Empty for NullifierLeafPreimage {\n fn empty() -> Self {\n Self {\n nullifier : 0,\n next_nullifier : 0,\n next_index : 0,\n }\n }\n}\n\nimpl Hash for NullifierLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash(self.serialize())\n }\n }\n}\n\nimpl LeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl IndexedTreeLeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn get_next_key(self) -> Field {\n self.next_nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl Readable for NullifierLeafPreimage {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n let siloed_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.nullifier, siloed_value, \"Value of the nullifier leaf does not match read request\");\n }\n}\n\nimpl NullifierLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.nullifier == 0) & (self.next_nullifier == 0) & (self.next_index == 0)\n }\n\n pub fn serialize(self) -> [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH] {\n [self.nullifier, self.next_nullifier, self.next_index as Field]\n }\n\n pub fn deserialize(fields: [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH]) -> Self {\n Self { nullifier: fields[0], next_nullifier: fields[1], next_index: fields[2] as u32 }\n }\n}\n\nimpl Eq for NullifierLeafPreimage {\n fn eq(self, other: Self) -> bool {\n (self.nullifier == other.nullifier) &\n (self.next_nullifier == other.next_nullifier) &\n (self.next_index == other.next_index)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NullifierLeafPreimage::empty();\n let serialized = item.serialize();\n let deserialized = NullifierLeafPreimage::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"245":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"251":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"252":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\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"},"263":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"264":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"276":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\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"},"292":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"294":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"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"},"309":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"310":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\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"},"393":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr","source":"mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys;\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness, auth::{compute_authwit_nullifier, compute_authwit_message_hash}\n };\n use dep::aztec::{hash::compute_siloed_nullifier, keys::getters::get_current_public_keys};\n use dep::aztec::oracle::get_nullifier_membership_witness::get_low_nullifier_membership_witness;\n\n use crate::public_key_note::{PublicKeyNote, PUBLIC_KEY_NOTE_LEN};\n\n #[aztec(storage)]\n struct Storage {\n // docs:start:storage\n signing_public_key: PrivateImmutable<PublicKeyNote>,\n // docs:end:storage\n }\n\n // Constructs the contract\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: Field, signing_pub_key_y: Field) {\n let this = context.this_address();\n let this_keys = get_current_public_keys(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.signing_public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts file\n #[aztec(private)]\n #[aztec(noinitcheck)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(context);\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify signature of the payload bytes\n let verification = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n outer_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n /**\n * @notice Helper function to check validity of private authwitnesses\n * @param consumer The address of the consumer of the message\n * @param message_hash The message hash of the message to check the validity\n * @return True if the message_hash can be consumed, false otherwise\n */\n unconstrained fn lookup_validity(consumer: AztecAddress, inner_hash: Field) -> pub bool {\n let public_key = storage.signing_public_key.view_note();\n\n let message_hash = compute_authwit_message_hash(consumer, context.chain_id(), context.version(), inner_hash);\n\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n let valid_in_private = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n\n // Compute the nullifier and check if it is spent\n // This will BLINDLY TRUST the oracle, but the oracle is us, and\n // it is not as part of execution of the contract, so we are good.\n let nullifier = compute_authwit_nullifier(context.this_address(), inner_hash);\n let siloed_nullifier = compute_siloed_nullifier(consumer, nullifier);\n let lower_wit = get_low_nullifier_membership_witness(context.block_number(), siloed_nullifier);\n let is_spent = lower_wit.leaf_preimage.nullifier == siloed_nullifier;\n\n !is_spent & valid_in_private\n }\n}\n"},"394":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/public_key_note.nr","source":"use dep::aztec::prelude::{AztecAddress, NoteHeader, NoteInterface, PrivateContext};\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal PUBLIC_KEY_NOTE_LEN: Field = 3;\n// PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal PUBLIC_KEY_NOTE_BYTES_LEN: Field = 3 * 32 + 64;\n\n// Stores a public key composed of two fields\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct PublicKeyNote {\n x: Field,\n y: Field,\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<PUBLIC_KEY_NOTE_LEN, PUBLIC_KEY_NOTE_BYTES_LEN> for PublicKeyNote {\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl PublicKeyNote {\n pub fn new(x: Field, y: Field, npk_m_hash: Field) -> Self {\n PublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\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"},"50":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"64":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"65":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"66":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext, protocol_types::constants::GENERATOR_INDEX__COMBINED_PAYLOAD,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\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"},"69":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_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 bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\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 if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"75":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"76":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"77":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\nuse crate::keys::constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\ntrait ToPoint {\n fn to_point(self) -> Point;\n}\n\nstruct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nstruct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : NpkM { inner: Point::empty() },\n ivpk_m : IvpkM { inner: Point::empty() },\n ovpk_m : OvpkM { inner: Point::empty() },\n tpk_m : TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m.inner == other.npk_m.inner ) &\n ( self.ivpk_m.inner == other.ivpk_m.inner ) &\n ( self.ovpk_m.inner == other.ovpk_m.inner ) &\n ( self.tpk_m.inner == other.tpk_m.inner )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nmod test;\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(hash_storage_slot, CANONICAL_KEY_REGISTRY_ADDRESS)\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(CANONICAL_KEY_REGISTRY_ADDRESS, block_number);\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"93":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"}}}
1
+ {"transpiled":true,"noir_version":"0.33.0+61d6f251ea67204af2d17175f120e17f2e9e9156","name":"SchnorrAccount","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)"],"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"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"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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RtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFpRtFpRtFpRtFpRvH8D1pBsKR2mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlEMmlEMmlEMmlEMmlGMC5bUQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKSTOKSTOKSTOKSTOKecGSOmlG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rbSkNlpSGy2pjZbURktqoyW10ZLaaElttKQ2WlIbLamdltROS2qnJbXTktppSe20pHZaUjstqZ2W1E5L6qAlddCSOmhJHbSkDlpSBy2pg5bUQUvqoCV10JI6aUlN22ChtA0WSttgobQNFkrbYKG0DRaatKROWlInLamLltRFS+qiJXXRkrpoSV20pC5aUtM2WChtg4XSNlgobYOFNi2pm5bUTUvqpiV105KattFBaRsdlLbRQWkbHZS20UFpGx10aEk9tKQeWlIPLamHltRDS+qhJfXAktouWFLb9aWeaZH25nhbf3ht5O/NfqnnWdxr9ks9y+Jes76p2S/1DIt7zX6p51fca/ZLPbviXrNf6rkV95r9Us+suNOsfKnnVdxrdtMEJbDfo01gv0cbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSUbzSU7zSX7BUtqpz0b12nPxj3fgVYQLKn9giW1X7Ck9guW1H7RklpoSS20pKYZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi04xi04xi04xi04xiX7CkbppRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRHJpRHJpRHJpRHJpRnAuW1EMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzigMzinrBjOIpiJXUpyBWUp+CWEl9CmIl9SmIldSnIFZSn4JYSX0KYiX1KYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqCJbXQjKLQjKLQjKLQjKJcsKQWmlEUmlEUmlEUmlEUmlGU5xvF/v7iuezHgn5+8bfPYuqtkHPJ/73+U/j73eqt247bq+P3ZmVTs7qpWdvUrG9qNjY1m5uarU3N9qZmZ1GzummCUvQE9W0Dat5e3WJ3mlU7g8OtcHH9w+t/axg9Rf0dDaMnqb+jYd/WMHqi+jsaRk9Vf0fDz7+Hse/vGiE/3TJ8gGu/U9DACqK5dqG5dqG5dvkA137n35DTCgpaQUkriJbURktqoyX1B7j2OwXRkvrprl3PlPX2pdXyzrwVP/yKG6398/z0dAf/8Ab8szcQn70B2juN095pnPZO83SX/0/+m5u4pW5Kyc//5p7u+B/egHz2Bh7yznfJ7bt43mmg+3YXMNJ3vrS23O6CO364aKj3vrZf8/a1XX7MOM13Xj16vZ37qMa//rsvMR6z4uB1lv84S3+d5cPOMl5n+bCzzNdZPuws63WWDzvL/uyDyGefZfOzz7L52WfZhN/i3G8AfotzvwGHXezRNrUIbVOL0Da1CG1Ti9A2tQhtU4vQNrUIbVOL0Da1CG1Ti9A2tQhtU4vQNrUIbVOL0Da1CG1Ti9A2tQhtU4vQNrUIbVOL0Da1CG1Ti9A2tQhtU4vQNrUIbVOL0Da1CG1Ti9A2tQhtU4vQNrUIbVOL0Da1CG1Ti9A2tShtU4vSNrUobVOLXl9KaKW9feLY+sNrI39v1jc1+6Vk1r1mv5TKutcs2ro/ulm0dX90s7R3dKG9owvtHV1o7+gC+91Ln79h5l5BsN+9VGC/e6nAfvdSgf3upUJLaqUltdKSWmlJrbSkVlpSKy2plZbUSktqpSW10pKatp1BadsZlLadQY2W1EZLaqMltdGS2mhJbbSkNlpSOy2padsZ1GlJ7bSkdlpSOy2pnZbUTktqpyW105I6aEkdtKQOWlIHLamDltRBS+qgJXXQkjpoSR20pE5aUictqZOW1ElLapplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplVZplNZplNZplNZpltQuW1Oe70QqCJbVdsKS2C5bUdsGS2mhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WlG0WlG0WlG0WlG8XwHWkGwpHaaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUQyaUQyaUQyaUQyaUYwLltRBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4rxfKPY3188l/1Y0M8v1iuz3gq58of6Ra73u9Vbtx23V8fvzfqmZmNTs7mp2drUbG9q9tnv6N9+3Xv70lF3mm3tt/eStrn+0Oo/yn+6fH1w+fK5y9fPXb597vL9c5cfn7v8/Nzl1+cuvz93+Z/7Xbc/97tuf+533f7c77r9ud91n66vH1z+537X7c/9rtuf+133IWq8rrr9Pqrz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TXuiotKeqKg0rag0rag0rag0rag0rag0rag0rag0rahOS2qnJbXTktppSU17oqLSnqiotCcqKu2Jikp7oqLSnqioNK2oNK2oQUvqoCV10JI6aEkdtKSmaUWlaUVNWlLTnqiotCcqatKSOmlJTdOKStOKStOKStOKStOKStOKWrSkLlpS056oqLQnKirtiYpKe6Ki0p6oqLQnKirtiYpKe6Ki0rSi0rSiNi2pm5bUTUvqpiV105K6aUk9tKQeWlLTnqiotCcq6tCSemhJPbSkHlpSDy2paU9UNNoTFe2CJbVdsKS2C5bU57vRCoIltdGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotOMotOMotOMotOM4vkOtIJgSe00o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0o+g0oxg0oxg0oxg0oxg0oxgXLKmDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSTZhSTZhSTZhSTZhTzgiV10oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0Yxi0Yxi0Yxi0YxiXbCkLppRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRbJpRbJpRbJpRbJpR7AuW1E0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zikMzikMzikMzikMzinPBknpoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRtEvmFE8BbGS+hTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPN+AltQwo3i+AS2pYUbxfANaUsOM4vkGtKSGGcXzDWhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBaUsOM4imIltQwo3gKoiU1zCiegmhJDTOKpyBYUgvNKArNKArNKArNKMoFS2qhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWhGUWlGUWlGUWlGUWlGUW9YEmtNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKOoNKNoNKNoNKNoNKNoNKN4vhutIFhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0onu9AKwiW1E4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zikEzikEzikEzikEzinHBkjpoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFpRjFpRjFpRjFpRjEvWFInzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgWzSgWzSgWzSgWzSjWBUvqohnFohnFohnF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0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0oyi0Yyi0Yyi0Yyi0Yzi+W60gmBJbTSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSjaDSj6DSj6DSj6DSj6DSjeL4DrSBYUjvNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKAbNKAbNKAbNKAbNKMYFS+qgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWkGcWkGcWkGcWkGcW8YEmdNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKNYNKNYNKNYNKNYNKNYFyypi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUm2YUm2YUm2YUm2YU+4IlddOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOM4tCM4tCM4tCM4tCM4lywpB6aURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyYUcwLZhRPQaykPgWxkvoUxErqUxArqU9BrKQ+BbGS+hTESupTECupT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLKmFZhSFZhSFZhSFZhTlgiW10Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0IyiPN0o6mX+9qWvmh8Leu/FmXV7dU7dXn4utt6tpPRWScft1fF7s7apWd/UbGxqNjc1W5uaBb2jv/PizOvtxVnfizfp38sHvf//G8onOdl/S/lC/i/lNDjfm22xO/+lqJ0PQm6FnznlD6//rWH07PJ3NIyeX/6Ohn1bw+g5Rmbk+7vdubp8p4GvNZtk396uc+Z/fbuOrzWb3Gm2NzU7i5p9ujr/0GbRU9I///uE2a2S+On3ifxitzu/bvaL3e78ulnf1OwXu935dbNf7Hbn181+sdudXzf7tSaoO81+rQnq183W15qg7jS7aYKqTRNUbZqgnr5940Ob3TRB1aYJqjZNULVpgqpNE1RvmqB60wTVmyao3jRBPX0rzoc2u2mC6k0TVG+aoHrTBNWbJqjZNEHNpglqNk1Qs2mCevq2qg9tdtMENZsmqNk0Qc2mCWoWTVB6LZqg9Fo0Qem1aILSa9EEpZdvanbRBKXXoglKr0UTlF6LJii9Nk1QsmmCkk0TlGyaoGTTBPX07Y4f2uymCUo2TVCyaYKSTROUbJqgdNMEpZsmKN00QemmCerpW1c/tNlNE5RumqB00wSlmyYo3TRB2aYJyjZNULZpgrJNE9TTtyF/aLObJijbNEHZpgnKNk1QtmmC8k0TlG+aoL7atu9fN7tpgvpq275/3eymCeqrbfv+dbObJijfNEH5pgkqNk1Q7L3jj2520wTF3jf+6GZ9U7ObJqgvtpP8TrObJqgvtpP8TrObJqgvtpP8TrObJqhNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y3bSTXDftJNdNO8l1005y27ST3DbtJLdNO8lt007y08mmZhdNULZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2klum3aS26ad5LZpJ7lt2knum3aS+6ad5L5pJ7lv2kl+qt/U7KIJyjftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8njq+0kL71V0j83+8UmqF83+/QJyvL2pV30181KTFxvXzql5A/N/taAffYGHN1A6jW3Bs7/6TsNxGdvID97A/XZG2h0A3W13760SNyL3Oxb5ObMT5E7i5p9/i7uj2xWNjXLnhwe3Cx7yvhnm/31tP/8Xdwf2Sx7enlws+xJ58HNsqeiBzf7tSaoO81+rQnq183q15qg7jT7tSaoO81+rQnqTrObJqjn7+L+yGY3TVC6aYLSTROUbpqgdNMEZZsmKNs0QdmmCco2TVDP38X9kc1umqBs0wRl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RaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaMZRaMZRaMZRaMZxfPdaAXBktpoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFoRtFpRtFpRtFpRtFpRvF8B1pBsKR2mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlEMmlEMmlEMmlEMmlGMC5bUQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKSTOKSTOKSTOKSTOKecGSOmlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGsWhGsWhGsWhGsWhGsS5YUhfNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKDbNKDbNKDbNKDbNKPYFS+qmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWhGcWhGcWhGcWhGcW5YEk9NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4MKPYF8wonoJYSX0KYiX1KYiV1KcgVlKfglhJfQpiJfUpiJXUpyBWUp+CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFhSC80oCs0oCs0oCs0oygVLaqEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaUZRaUZRaUZRaUZRb1gSa00o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o2g0o2g0o2g0o2g0o3i+G60gWFIbzSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSgazSg6zSg6zSg6zSg6zSie70ArCJbUTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOKTjOK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FJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFJVmFI1mFI1mFI1mFI1mFM93oxUES2qjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWjGUWnGUWnGUWnGUWnGcXzHWgFwZLaaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUYxaEYxaEYxaEYxaEYxLlhSB80oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oJs0oJs0oJs0oJs0o5gVL6qQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaIZxaIZxaIZxaIZxbpgSV00o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o9g0o9g0o9g0o9g0o9gXLKmbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhT76UZRL/O3L33V/FjQey/OrNurc+r2cpHr3UpKb5V03F4dvzfbm5qdRc0+3W1+aLOyqVnd1CzoHf2dF2deby/O+l68Sf9evn/u8kHTwr+l/CT/lyLf/pzq1uz55O7OfylqInYrXFz/8PrfGkbPLn9Hw+j55e9oGD3D/A0NJ3qOkRn5/m4nWu808LVmk+zb23XO/K9v1/m1ZpM7zdqmZn1Ts7GpWfSU9M//PmF2qyR++n0iv9jtzq+b/WK3O79u9ovd7vyy2fpitzu/bvaL3e78utkvdrvz62a/1gR1p1nf1OzXmqDuNLtpgqpNE1RtmqBq0wTVmyao3jRB9aYJqjdNUE/fpPKhzW6aoHrTBNWbJqjeNEH1pglqNk1Qs2mCmk0T1GyaoJ6+4ehDm900Qc2mCWo2TVCzaYKaRRPUXIsmqLkWTVBzLZqg5lo0Qc3lm5pdNEHNtWiCmmvRBDXXoglqrk0TlGyaoGTTBCWbJijZNEE9fSPghza7aYKSTROUbJqgZNMEJZsmKN00QemmCUo3TVC6aYJ6+qbOD2120wSlmyYo3TRB6aYJSjdNULZpgrJNE5RtmqBs0wT19A26H9rspgnKNk1QtmmCsk0TlG2aoHzTBOWbJijfNEH5pgnq6ZutP7TZTROUb5qgvtq27183u2mC+mrbvn/Z7Ffb9v3rZjdNUF9t2/evm900QT19N/iHNrtpgmLvHX90s5smKPa+8Uc3u2mCYu8Zf3SzmyaoL7aT/E6zmyaoL7aT/E6zmyaoTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9NO8tm0k3w27SSfTTvJZ9FOcrmuRUvJv3W7Z4b61u2eIepbt3umqG/d+qpu98xR37rdM0h963bPJPWt2z2j1LduV81Si9aTf+t21Sy1aEH5t25XzVKLVpR/63bVLLVoSfm3blfNUovWlH/rdtUstWhR+bduV81Si1aVf+t21Sy1aFn5t25XzVKL1pV/63bVLLVoYfm3blfNUotWln/rdtUstWhp+bduV81Si9aWf+t21Sy1aHH5t25XzVKLVpd/63bVLLVoefm3blfNUovWl3/rdtUstWiB+bduV81Si1aYf+t21Sy1aIn5t25XzVKL1ph/63bVLLVokfm3blfNUotWmX/rdtUstWiZ+bduV81Si9aZf+t21Sy1aKH5t25XzVKLVpp/63bVLLVoqfm3blfNUovWmn/rdtUstWix+bduV81Si1abf+t21Sy1aLn5t25XzVKL1pt/63bVLLVowfm3blfNUotWnH/rdtUstWjJ+bduV81Si9acf+t21Sy1aNH5t25XzVKLVp1/63bVLLVo2fm3blfNUovWnX/rdtUstWjh+bduV81Si1aef+t21Sy1aOn5t25XzVKL1p5/63bTLCWr9p7Lqr3nsmrvuazaey6Xr+p20ywlq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957pq77mu2nuuq/ae66q953r5qm6/2CxVequk3+n2i81Sd7p9+ixlefvSLvrrbiUmrrcvnVLyh25/76A/fQeD7iBPgbcOzv/pOx08f+f4wzuQT9+BfvoODN1BXe23Ly0S95I3+5a8OfNT8j5/3/eHdhurus1V3bJniEd3y543/tlu78z+wp5NHtytsueYR3fLnnke3S17Pnp0t19rlrrXra/q9mvNUve6/Vqz1L1uv9Ysda/bVbOUrpqlbNUsZatmKVs1S9mqWer5+74/tNtVs5StmqVs1Sxlq2YpWzVL+apZylfNUr5qlvJVs9Tz931/aLerZilfNUv5qlnKV81SvmqWilWzVKyapWLVLBWrZqnn7/v+0G5XzVKxapaKVbNUrJqlYtUslatmqVw1S+WqWSpXzVLP3/f9od2umqVy1SyVq2apXDVL5apZqlbNUrVqlqpVs1St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cA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScA7ScQ7ScQ7ScQ7ScQ7yfAtcRbTMdpyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDDJyDDJyDDJyDDJyDjIuW2YFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIlzkIlzkIlzkIlzkHnRMjtxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDrJwDrJwDrJwDrJwDrIuWmYXzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkE2zkE2zkE2zkE2zkH2RcvsxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIwTnIwTnIwTnIwTnIuWiZPTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHqRfNQZ6KYJl9KoJl9qkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJaZgvOQQrOQQrOQQrOQcpFy2zBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjFOUjFOUjFOUjFOUi9aJmtOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAdpOAdpOAdpOAdpOAd5vh2uIlpmG85BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5BGs5B2tMdpF7mb1/6qvmxovdenFm3V+fU7eUi17uVlN4q6bi9Ot66rVXd9qpuZ1O3T3enH9utrOpWV3Vrq7r1Vd3Gqm7Rs9SZ/+b7LNhid7r9dlNlt8LF9Q+v/71j9Dz1t3SMnqn+lo7Rc9Xf0bGjZ6u/pWP0fPW3dPyIGSuj38rKtju/iZd9f/MI+d6xvlVkuIocV1E8vaK6bhX9MCB8ryhxFRWuosb9OxpaRQ/x7Y+tSHAV4TI7cJkduMyOwFWUuIpwmR2Nq2hoFeWFq+jZmf3tgT5vX/p8+x8reucrxw8XKNHa78zlqZ++A/v0Hfin7wD3npO495wsXEXN/nc3cUvflJL3/t3NZ++grk/fwUPeA6/bXVb6vbus7ttt00jf+dLacvvMoeOHq6x672v7NW9f2+XHqNN859Wj19vBj2r867//muwhqw5eh/n7YdrrMB93mP46zMcdZrwO83GHma/DfNxh1qefRz79VFuffqrtTz/VNvxm5y90AL/Z+QsdGO2+7yEbWx5bEe4T2sZ9Qtu42/7G3fY37rZ/cLf9I7iKFFcRLrMHl9mDy+zBZfbgMntwmT20zPaLltl+0TLbL1pm+0XL7PMtcBXRMtsvWmb7Rctsv2iZ7RcuswWX2YLLbMFltuAyW3CZLbjMFlxmCy6zBZfZgstsxWW24jJbcZmtuMxWXGYrLrMVl9mKy2zFZbbiMttwmW24zDZcZhsusw2X2YbLbMNltuEy23CZbbjMdlxmOy6zHZfZjstsx2U2TvY7TvY7Tva74zLbcZkduMwOXGYHLrMDl9mBy+zAZXbgMhsn+x0n+x0n+x0n+z1xmZ24zE5cZicusxOX2YnL7MRlduIyO3GZXbjMLlxmFy6zC5fZhcvswmV24TK7cJlduMwuXGY3LrMbl9mNy2ycg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scgwycgwycgwycgwycg4yLltmBc5BxfamnQKW9FdL6w2sj37r9Uk+Autvtl3r6091uv9STn+51K1/qqU93u/1ST3y62y3tadkhtKdlx0O87GMroj0tOyRxFRWuosZVNLSK9MJVJLiKcJmtuMxWXGYrLrMVl9mKy2zFZbbiMttwmW24zDZcZhsusw2X2YbLbMNltuEy23CZbbjMdlxmOy6zHZfZjstsx2W24zLbcZntuMx2XGY7LrMDl9mBy+zAZXbgMjtwmR24zA5cZgcuswOX2YHL7MRlduIyO3GZnbjMTlxmJy6zE5fZicvsxGV24jK7cJlduMwuXGYXLrMLl9mFy+zCZXbhMrtwmV24zG5cZjcusxuX2Y3L7MZlduMyu3GZ3bjMblxmNy6zB5fZg8vswWX24DJ7cJk9uMweXGYPLrMHl9lDy+y8aJmdFy2z86Jldl60zM6Lltl50TI7L1pm50XL7LxomZ0XLrMFl9mCy2ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycg0ycgyycgyycgyycgyycg6yLltmFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CFc5CNc5CNc5CNc5CNc5B90TK7cQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ6ycQ5ycA5ycA5ycA5ycA5yLlpmD85BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs5BDs1B2kVzkKciWGafimCZfSqCZfapCJbZpyJYZp+KYJl9KoJl9qkIltmnIlxm0xzkqQiX2TQHeSrC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tld1O5u6fbps/9hu0fPSP//bhdmtkvj5t4v6Yjc+d7r9Yjc+d7r1Vd1+sRufO91+sRufO91+sRufO91+rVnqXrdfa5a6021/rVnqXrerZqleNUv1qlnq6Rs+PrbbVbNUr5qletUs1atmqV41S82qWWpWzVKzapaaVbPU0zfvfGy3q2apWTVLzapZalbNUrNplspr0yyV16ZZKq9Ns1Rem2apvHxVt5tmqbw2zVJ5bZql8to0S+W1apaSVbOUrJqlZNUsJatmqadvqvvYblfNUrJqlpJVs5SsmqVk1Sylq2YpXTVL6apZSlfNUk/fIPmx3a6apXTVLKWrZildNUvpqlnKVs1StmqWslWzlK2apZ6+2fVju101S9mqWcpWzVK2apayVbOUr5qlfNUs5atmKV81Sz194/LHdrtqlvJVs5SvmqV81Szlq2apWDVLxapZ6qttFL/T7apZ6qttFL/T7apZ6qttFL/T7apZKlbNUrFqlspVsxR7t/nDu101S7F3mj+8W1/V7apZ6ovtPb/X7apZ6ovtPb/X7apZ6ovtPb/X7apZatXe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPc9Xe81y19zxX7T3PVXvPa9Xe81q197xW7T2vVXvP6/JV3W6apWrV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8Vu09r1V7z2vV3vNatfe8V+0971V7z3vV3vNetfe8L1/V7aZZqlftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve89n1d7zWbX3fFbtPZ9Ve8/n8lXdbpqlZtXe81m193xW7T2fVXvP5/l7zy1vX9pFf92txMT19qVTSv7Q7e8dyKfvQNEdpF5z6+D8n77XgX36DvzTdxCfvoNEd1BX++1Li8S95M3WW8MzPydvreq2V3U7m7pV9gzx6G7Z88Y/2+2d+VDZs8mju2XPMY/u1ld1y56PHt3t15ql7nX7tWape91+rVnqXrdfa5a60619rVnqXrerZilbNUvZqlnq+fu+P7TbVbOUrZqlbNUsZatmKVs1S/mqWcpXzVK+apbyVbPU8/d9f2i3q2YpXzVL+apZylfNUr5qlopVs1SsmqVi1SwVq2ap5+/7/tBuV81SsWqWilWzVKyapWLVLJWrZqlcNUvlqlkqV81Sz9/3/aHdrpqlctUslatmqVw1S+WqWapWzVK1apaqVbPU/9Pe3e1IkqPnAb6lJPn9kFdjyIJhLCBIhiQb8IHv3TG7U92z6trpnVJWzNPKOVlsYzKTH6OCb7GY8ZD9UnOp+/f7/l17+1JzqX6puVS/1FyqX2ou1S81l9ovNZfaLzWX2i81l9ovNZe6f7/v37W3LzWX2i81l9ovNZfaLzWX2i81lzovNZc6LzWXOi81lzovNZe6f7/v37W3LzWXOi81lzovNZc6LzWXOi80l4rH44XmUldvX2gudfX2heZSV29faC519TZe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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"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":"inner_hash","type":{"kind":"field"},"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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"},{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"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":"signing_pub_key_x","type":{"kind":"field"},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"field"},"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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"},{"name":"lookup_validity","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"consumer","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"kind":"boolean"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":3,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"7f3RjuTIkmWJ/st57gdSKSSV/SsXF4PqmZ5BAYXqQXfNBS4a/e/jmR5G80iaUtJx1FxEVNbLIGqaYaGy9knq3ptmyv/5j//jv/6X/+f/+t/+9d//z//2P/7xn/8///Mf//bf/vd/+Y9//W///vF//c//9Z/+8V/++7/+27/96//1v339//2P6Y//T6l/Xv8//u9/+fc//s//8R//8t//4x//eZ32//SP//rv/8fHn+r08ff/z3/9t//6j/8sk/yv/+9/+kc5vv1XlvLqr9Rl+vVX6rJe/sry/b8i3/8r6/f/yvb9v7J//6/U7/+V49t/Rabv/5X5+3/l++rL99WX76sv31dfvq++fF99+b768n311++rv35f/fX76q/fV3/9vvrr99Vfv6/++n311++rv35f/e376m/fV3/7vvrb99Xfvq/+9n31t++rv31f/e376m/fV3//vvr799Xfv6/+/n319++rv39f/f376u/fV3//vvr799Wv31e/fl/9+n316/fVr99Xv35f/fp99ev31a/fV79+X/3j++of31f/+L76x/fVn6eX82/T4+/s+/Lb3/lP12vndf518TYfz6vnUl9cPc91+3X1XP74vF9Xl8/lzJOv5cy+llN8LWfxtRzxtZzV13I2X8vZfS2n+lqOr7ty8XVXLr7uysXXXbn4uisXX3fl4uuuXHzdlZcf/g993Z+t93Feu0zb52pmV6v54f8hPz95+1jBZTWrq9Vsrlazu1pNdbWaDs5i+bIa0W44y3m/WeXLJ69/rkYmV6uZXa2muFrN4mo14mo1q6vVbD+8mq0+VlO362p2V6uprlZzeFrNOrlazexqNcXVan74Xlym49fFpezX1Yir1ayuVrO5Ws3uajXV1WoOT6vZ3nov/vNfmN/+L5S3/wvL2/8Fefu/sL79X9je/i/sb/8X6tv/hePd/8L+9v+m97f/N72//b/p/e3/Te9v/296f/t/0/vb/5ve3/7f9P72/6b3t/83Xd/+33T95/+bLs9CsMyrljzuHxDU4ms5i6/liK/lrL6Ws/lazu5rOf/87XApj9ZgW9aqLucRQD5asUsAqYen1RyTq9XMrlZTXK1mcbUacbWa1dVqNler2V2txtW9+PB0L/7Y8lytxtO9uEye7sVl8nQv/nA8rlbj6V5cJk/34jJ5uheXydO9uEyu7sWzq3vx7Ope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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000aad5fd6b"},{"kind":"string","value":"PublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"signing_public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::verify_private_authwit_abi"},{"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"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"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"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"field"}},{"name":"signing_pub_key_y","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrAccount::constructor_parameters"}}],"kind":"struct","path":"SchnorrAccount::constructor_abi"}]}},"file_map":{"104":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"},"110":{"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"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_current_public_keys, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, OvpkM, IvpkM, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"120":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"122":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"126":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"128":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"129":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"130":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"138":{"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"},"139":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"140":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_nullifier_membership_witness.nr","source":"use dep::protocol_types::{\n abis::nullifier_leaf_preimage::{NullifierLeafPreimage, NULLIFIER_LEAF_PREIMAGE_LENGTH},\n constants::NULLIFIER_TREE_HEIGHT, utils::arr_copy_slice\n};\n\n// INDEX_LENGTH + NULLIFIER_LEAF_PREIMAGE_LENGTH + NULLIFIER_TREE_HEIGHT\nglobal NULLIFIER_MEMBERSHIP_WITNESS: Field = 24;\n\nstruct NullifierMembershipWitness {\n index: Field,\n leaf_preimage: NullifierLeafPreimage,\n path: [Field; NULLIFIER_TREE_HEIGHT],\n}\n\nimpl NullifierMembershipWitness {\n pub fn deserialize(fields: [Field; NULLIFIER_MEMBERSHIP_WITNESS]) -> Self {\n let leaf_preimage_fields = arr_copy_slice(fields, [0; NULLIFIER_LEAF_PREIMAGE_LENGTH], 1);\n Self {\n index: fields[0],\n leaf_preimage: NullifierLeafPreimage::deserialize(leaf_preimage_fields),\n path: arr_copy_slice(\n fields,\n [0; NULLIFIER_TREE_HEIGHT],\n 1 + NULLIFIER_LEAF_PREIMAGE_LENGTH\n )\n }\n }\n}\n\n#[oracle(getLowNullifierMembershipWitness)]\nunconstrained fn get_low_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_low_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_low_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n\n#[oracle(getNullifierMembershipWitness)]\nunconstrained fn get_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"143":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage,\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"148":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"151":{"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"},"152":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"156":{"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"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"161":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"163":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"179":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"181":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"198":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = unsafe {\n // Safety: These indices are asserted to be the sorted element indices via `find_index`\n let sorted_index: [u32; N] = self.get_sorting_index(ordering);\n\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n\n sorted_index\n };\n\n // Sort the array using the indexes\n let mut result = self;\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"213":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_leaf_preimage.nr","source":"global NULLIFIER_LEAF_PREIMAGE_LENGTH: u32 = 3;\n\nuse crate::{\n abis::{read_request::ScopedReadRequest, side_effect::Readable}, hash::compute_siloed_nullifier,\n merkle_tree::leaf_preimage::{LeafPreimage, IndexedTreeLeafPreimage}, traits::{Empty, Hash}\n};\n\nstruct NullifierLeafPreimage {\n nullifier : Field,\n next_nullifier :Field,\n next_index : u32,\n}\n\nimpl Empty for NullifierLeafPreimage {\n fn empty() -> Self {\n Self {\n nullifier : 0,\n next_nullifier : 0,\n next_index : 0,\n }\n }\n}\n\nimpl Hash for NullifierLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash(self.serialize())\n }\n }\n}\n\nimpl LeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl IndexedTreeLeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn get_next_key(self) -> Field {\n self.next_nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl Readable for NullifierLeafPreimage {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n let siloed_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.nullifier, siloed_value, \"Value of the nullifier leaf does not match read request\");\n }\n}\n\nimpl NullifierLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.nullifier == 0) & (self.next_nullifier == 0) & (self.next_index == 0)\n }\n\n pub fn serialize(self) -> [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH] {\n [self.nullifier, self.next_nullifier, self.next_index as Field]\n }\n\n pub fn deserialize(fields: [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH]) -> Self {\n Self { nullifier: fields[0], next_nullifier: fields[1], next_index: fields[2] as u32 }\n }\n}\n\nimpl Eq for NullifierLeafPreimage {\n fn eq(self, other: Self) -> bool {\n (self.nullifier == other.nullifier) &\n (self.next_nullifier == other.next_nullifier) &\n (self.next_index == other.next_index)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NullifierLeafPreimage::empty();\n let serialized = item.serialize();\n let deserialized = NullifierLeafPreimage::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"248":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"254":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"258":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"260":{"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"},"266":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"267":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\nmod sha256;\nmod sha512;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n// Kept for backwards compatibility\nuse sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"279":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"},"283":{"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"},"304":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"306":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"318":{"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"},"320":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"321":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"404":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/main.nr","source":"mod public_key_note;\n\n// Account contract that uses Schnorr signatures for authentication.\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\ncontract SchnorrAccount {\n use dep::std;\n\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys;\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness, auth::{compute_authwit_nullifier, compute_authwit_message_hash}\n };\n use dep::aztec::{hash::compute_siloed_nullifier, keys::getters::get_current_public_keys};\n use dep::aztec::oracle::get_nullifier_membership_witness::get_low_nullifier_membership_witness;\n\n use crate::public_key_note::{PublicKeyNote, PUBLIC_KEY_NOTE_LEN};\n\n #[aztec(storage)]\n struct Storage {\n // docs:start:storage\n signing_public_key: PrivateImmutable<PublicKeyNote>,\n // docs:end:storage\n }\n\n // Constructs the contract\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: Field, signing_pub_key_y: Field) {\n let this = context.this_address();\n let this_keys = get_current_public_keys(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n // docs:start:initialize\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.signing_public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n // docs:end:initialize\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts file\n #[aztec(private)]\n #[aztec(noinitcheck)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // docs:start:entrypoint\n // Load public key from storage\n let storage = Storage::init(context);\n // docs:start:get_note\n let public_key = storage.signing_public_key.get_note();\n // docs:end:get_note\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify signature of the payload bytes\n let verification = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n outer_hash.to_be_bytes(32)\n );\n assert(verification == true);\n // docs:end:entrypoint\n true\n }\n\n /**\n * @notice Helper function to check validity of private authwitnesses\n * @param consumer The address of the consumer of the message\n * @param message_hash The message hash of the message to check the validity\n * @return True if the message_hash can be consumed, false otherwise\n */\n unconstrained fn lookup_validity(consumer: AztecAddress, inner_hash: Field) -> pub bool {\n let public_key = storage.signing_public_key.view_note();\n\n let message_hash = compute_authwit_message_hash(consumer, context.chain_id(), context.version(), inner_hash);\n\n let witness: [Field; 64] = get_auth_witness(message_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n let valid_in_private = std::schnorr::verify_signature_slice(\n public_key.x,\n public_key.y,\n signature,\n message_hash.to_be_bytes(32)\n );\n\n // Compute the nullifier and check if it is spent\n // This will BLINDLY TRUST the oracle, but the oracle is us, and\n // it is not as part of execution of the contract, so we are good.\n let nullifier = compute_authwit_nullifier(context.this_address(), inner_hash);\n let siloed_nullifier = compute_siloed_nullifier(consumer, nullifier);\n let lower_wit = get_low_nullifier_membership_witness(context.block_number(), siloed_nullifier);\n let is_spent = lower_wit.leaf_preimage.nullifier == siloed_nullifier;\n\n !is_spent & valid_in_private\n }\n}\n"},"405":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_account_contract/src/public_key_note.nr","source":"use dep::aztec::prelude::{AztecAddress, NoteHeader, NoteInterface, PrivateContext};\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal PUBLIC_KEY_NOTE_LEN: Field = 3;\n// PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal PUBLIC_KEY_NOTE_BYTES_LEN: Field = 3 * 32 + 64;\n\n// Stores a public key composed of two fields\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct PublicKeyNote {\n x: Field,\n y: Field,\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<PUBLIC_KEY_NOTE_LEN, PUBLIC_KEY_NOTE_BYTES_LEN> for PublicKeyNote {\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl PublicKeyNote {\n pub fn new(x: Field, y: Field, npk_m_hash: Field) -> Self {\n PublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\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"},"53":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"68":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"69":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext, protocol_types::constants::GENERATOR_INDEX__COMBINED_PAYLOAD,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"70":{"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"},"72":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_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 bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\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 if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"78":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"80":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\nuse crate::keys::constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\ntrait ToPoint {\n fn to_point(self) -> Point;\n}\n\nstruct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nstruct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : NpkM { inner: Point::empty() },\n ivpk_m : IvpkM { inner: Point::empty() },\n ovpk_m : OvpkM { inner: Point::empty() },\n tpk_m : TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m.inner == other.npk_m.inner ) &\n ( self.ivpk_m.inner == other.ivpk_m.inner ) &\n ( self.ovpk_m.inner == other.ovpk_m.inner ) &\n ( self.tpk_m.inner == other.tpk_m.inner )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"82":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nmod test;\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(hash_storage_slot, CANONICAL_KEY_REGISTRY_ADDRESS)\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(CANONICAL_KEY_REGISTRY_ADDRESS, block_number);\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"96":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"}}}