@aztec/accounts 0.47.1 → 0.48.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.
- package/artifacts/EcdsaKAccount.json +1 -0
- package/artifacts/EcdsaRAccount.d.json.ts +3 -0
- package/artifacts/EcdsaRAccount.json +1 -0
- package/artifacts/SchnorrAccount.json +1 -1
- package/artifacts/SchnorrSingleKeyAccount.json +1 -1
- package/dest/ecdsa/{account_contract.d.ts → ecdsa_k/account_contract.d.ts} +2 -2
- package/dest/ecdsa/ecdsa_k/account_contract.d.ts.map +1 -0
- package/dest/ecdsa/ecdsa_k/account_contract.js +33 -0
- package/dest/ecdsa/ecdsa_k/artifact.d.ts +2 -0
- package/dest/ecdsa/ecdsa_k/artifact.d.ts.map +1 -0
- package/dest/ecdsa/ecdsa_k/artifact.js +4 -0
- package/dest/ecdsa/ecdsa_k/index.d.ts +31 -0
- package/dest/ecdsa/ecdsa_k/index.d.ts.map +1 -0
- package/dest/ecdsa/ecdsa_k/index.js +32 -0
- package/dest/ecdsa/index.d.ts +2 -30
- package/dest/ecdsa/index.d.ts.map +1 -1
- package/dest/ecdsa/index.js +3 -32
- package/dest/ecdsa/ssh_ecdsa_r/account_contract.d.ts +18 -0
- package/dest/ecdsa/ssh_ecdsa_r/account_contract.d.ts.map +1 -0
- package/dest/ecdsa/ssh_ecdsa_r/account_contract.js +76 -0
- package/dest/ecdsa/ssh_ecdsa_r/artifact.d.ts +2 -0
- package/dest/ecdsa/ssh_ecdsa_r/artifact.d.ts.map +1 -0
- package/dest/ecdsa/ssh_ecdsa_r/artifact.js +4 -0
- package/dest/ecdsa/ssh_ecdsa_r/index.d.ts +31 -0
- package/dest/ecdsa/ssh_ecdsa_r/index.d.ts.map +1 -0
- package/dest/ecdsa/ssh_ecdsa_r/index.js +32 -0
- package/dest/utils/index.d.ts +2 -0
- package/dest/utils/index.d.ts.map +1 -0
- package/dest/utils/index.js +2 -0
- package/dest/utils/ssh_agent.d.ts +35 -0
- package/dest/utils/ssh_agent.d.ts.map +1 -0
- package/dest/utils/ssh_agent.js +109 -0
- package/package.json +10 -9
- package/src/ecdsa/{account_contract.ts → ecdsa_k/account_contract.ts} +6 -6
- package/src/ecdsa/ecdsa_k/artifact.ts +5 -0
- package/src/ecdsa/ecdsa_k/index.ts +37 -0
- package/src/ecdsa/index.ts +2 -37
- package/src/ecdsa/ssh_ecdsa_r/account_contract.ts +88 -0
- package/src/ecdsa/ssh_ecdsa_r/artifact.ts +5 -0
- package/src/ecdsa/ssh_ecdsa_r/index.ts +37 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/ssh_agent.ts +136 -0
- package/artifacts/EcdsaAccount.json +0 -1
- package/dest/ecdsa/account_contract.d.ts.map +0 -1
- package/dest/ecdsa/account_contract.js +0 -33
- package/dest/ecdsa/artifact.d.ts +0 -2
- package/dest/ecdsa/artifact.d.ts.map +0 -1
- package/dest/ecdsa/artifact.js +0 -4
- package/src/ecdsa/artifact.ts +0 -5
- /package/artifacts/{EcdsaAccount.d.json.ts → EcdsaKAccount.d.json.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.32.0+92ff2fa2e944722e5c3fa43fb3363f093b8f1d12","name":"SchnorrSingleKeyAccount","functions":[{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","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":"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":"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":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/+2b0W7aMBSGHRq6tGlTSAiBQgt0baXdpazt6N1eZnvuXU/aOwwHH/HXdZDRjmcsEQnFie3zf/6PbdIqRGJzJOtPpMpddT4VHw9q812d6387nhhj1S45o0A4O4FwngTCGTNyRgZOeY5VWa47ueY+ic16/FCJnWWiT6Be7AqkqyaqkGh1bKNd1W+nIIDwQsHHqo7Okfqkqh4BUzXYph3cowF34B5pncA92slIK1HmOBj3S7LF5o29no1yLGcqFvGnUMa6KVgYOxxr181Yn53laO2jwxw1q5zy0FWxE7imnJyDPuO3yxPqU+xzbX7EUJ5AW2pHbTrAK49LsV1L5zv6xVq/DNqcQr9E60fXlHfpV1+V5bmbbNtSfEc+1jJ26ib2uxzFmocpjC0Dfb45ulxJjQvx/oi0a/xiyYDp0gnTZk26Ge8ml1cQm+8p6eVZxutpvl1ovmXQ5gq87DnyMgJtYqLrXos+nyevKxmvb+FJ38DU9+BJv0Wf0ZM3GS+38CQ3MOUePMlb9Pk8+fZVxissPCkMTIUHT4oWfT5Pls3zw8DCk4GBaeDBk0GLPuPaaeZJaeFJaWAqPXhStugzevJTxhtaeDI0MA09eDJs0Wf05IeMV1l4UhmYKg+eVC36jHts83wysvBkZGAaefBk1KLP6MlSxhtbeDI2MI09eDJu0WdcO43+tYUn1wamaw+eoOY+3INAuatAuYsD4db1GddOs8dOLDyZGJgmHjxBzX24ywPh1vUZc/ki400tPJkamKYePEHNfbjzQLmLQLmHgXKXgXJXgXIfyvzW9Rmfv5s99sbCkxsD040HT1BzH+48UO5JoNzFgXDr+oxrp/n/4K2FJ7cGplsPnqDmPtyjQLn7B8Kt6zPOwVcZb2bhyczANPPgCWruwz0OlLsKlHsSKHcRKPcwUO4yUO7juvy/3PmBcMt79L7PH+dMy7dUYyINoXEKjTOFcgacc4jRZeOsa8zVHPQWTnzZ5EqfP3S9cK6/XMnYnx2NTca+dxO7+ZvjQcWidxrvDb49gn7EnLcHLTZpPUAuqfwb2lI7akP7BfHL99nuVPlxR7+Z1i+DNnfQ717rR9eUd+nfL1V2Odds5npPbNf5F2BytFc+4/vLAjSExknHDJjmbpieHI63xncaheBdjwvNszPNswza4F7uc289ch+5bbjxOeQM7lH9HO51tPHgb0UWEOMv7Ab1lOo2AAA=","debug_symbols":"ndpBattQGIXRvWgciu9v6T0pWymlOIlTDMYOsVMoJnuv3NIF9Mz0JN3ZNzq82/Cyf/r48f1wej1fhsevt+F4ft5dD+fTeroNmy81/3l7edud7i8u1937dXjctv4w7E8v61Ovz4fh9XDcr89LfX57uI8WGG03MoqMSkZbGY0ymmTUZNRlJEVspYhRihiliFGKGKWIUYoYpYhRihiliFGKGKWISYqYpIhJipikiEmKmKSISYqYpIhJipikiCZFNCmiSRFNimhSRJMimhTRpIgmRTQpoksRXYroUkSXIroU0aWILkV0KaJLEV2KmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZilikiEWKWKSIRYpYpIhFilikiEWKWKSIRYrIZkOr0KpotaXVSKuJVo1WnVYzraiNUBuhNkJthNoItRFqI9RGqI1QG6E2itooaqOojaI2itooaqOojaI2CDRDohkizZBphlAzpJoh1gy5Zgg2Q7IZos2QbYZwM6SbId4M+WYIOEPCGSLOkHGGkDOknCHmDDlnCDpD0hmizpB1hrAzpJ0h7gx5Zwg8Q+IZIs+QeYbQM6SeIfYMuWcIPkPyGaLPkH2G8DOknyH+DPlnCEBDAhoi0JCBhhA0pKAhBg05aAhCQxIaotCQhYYwNKShIQ4NeWgIREMiGiLRkImGUDSkoiEWDblokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aNlFT3LRIhctctEiFy1y0SIXLXLR+m8XXU8/d++H3dNxf7/be//4cXr+d9V3PV5/vf39sv77Gw=="},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"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":"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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NZqM1GgyUhMapzQZqdFkpEaTkRpNRjoUwPqh00MBrB87pclIhwJYP3ZKk5EOBbB+7JQmIzlNRnKajITM0e7slCYjIRO0OzulyUjI7OzOTmky0pE42xtOaTLSkTjbG05pMhINZ7vRcLadhrPtNJxtp+FsOw1n25PQOGXJSE7D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsOw1n22k4207D2XYazrbTcLadhrPtNJxtp+FsBw1nO2g420HD2Q4aznYkoXHKkpGChrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g420HD2Q4aznbQcLaDhrMdNJztoOFsBw1nO2g428HC2bbEwtm+OCXJSBenJBnp4pQkI12cCo1Tkox0cUqSkS5OSTLSxSlJRro4pclILJzti1OajMTC2b44pclILJzti1OajMTC2b44pclILJzti1OajMTC2b44pclILJzti1OajMTC2b44pclILJzti1OajMTC2b44pclILJzt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zk5pMhLyZ447O6XJSE6TkZwmIzlNRnKajBQ0GSloMlLQZKSgyUgdvrK+F6c0GelQAOvHTmky0qEA1o+dsmQkPRTA+rFTloykiSUjaWLJSJqExilLRlJkiHZnpywZSZHx2Z2d0mSkI3G2N5zSZKQjcbY3nNJkpCNxtjec0mQkGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaXhbCsNZ1tpONtKw9lWGs620nC2lYazrTScbaPhbBsNZ9toONtGw9m2JDROWTKS0XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONtGw9k2Gs620XC2jYazbTScbaPhbBsNZ9toONuNhrPdaDjbjYaz3Wg42y0JjVOWjNRoONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPdaDjbjYaz3Wg4242Gs91oONuNhrPd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"}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"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":"SchnorrSingleKeyAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::verify_private_authwit_abi"}]}},"file_map":{"127":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash, hash::{pedersen_hash, compute_siloed_nullifier, sha256_to_field}\n};\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n pedersen_hash([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n pedersen_hash(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = pedersen_hash(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = pedersen_hash(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n pedersen_hash(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x11e40f2a780822f7971803048c9a2100579de352e7dadd99981760964da65b57);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"133":{"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/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"},"146":{"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"},"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"},"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"},"242":{"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"},"243":{"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"},"247":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path, messaging::l2_to_l1_message::ScopedL2ToL1Message,\n recursion::verification_key::VerificationKey, traits::is_empty,\n utils::field::field_from_bytes_32_trunc\n};\nuse std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n pedersen_hash(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, inner_note_hash: Field) -> Field {\n let inputs = [nonce, inner_note_hash];\n pedersen_hash(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n pedersen_hash(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_encrypted_log_hash(address: AztecAddress, randomness: Field, log_hash: Field) -> Field {\n // TODO: Using 0 GENERATOR_INDEX here as interim before we move to posiedon\n // NB: A unique separator will be needed for masked_contract_address\n let mut masked_contract_address = pedersen_hash([address.to_field(), randomness], 0);\n if randomness == 0 {\n // In some cases, we actually want to reveal the contract address we are siloing with:\n // e.g. 'handshaking' contract w/ known address\n // An app providing randomness = 0 signals to not mask the address.\n masked_contract_address = address.to_field();\n }\n accumulate_sha256([masked_contract_address, log_hash])\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedEncryptedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_encrypted_log_hash(\n log_hash.contract_address,\n log_hash.log_hash.randomness,\n log_hash.log_hash.value\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n pedersen_hash([left, right], 0)\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constraint the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::from_slice(domain_generators.as_slice());\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n crate::assert_constant(starting_index);\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = crate::field::bn254::decompose_hint(scalar);\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\ntrait Hash{\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"270":{"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"},"282":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"297":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash([pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1])\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x1b6ead051e7b42665064ca6cf1ec77da0a36d86e00d1ff6e44077966c0c3a9fa;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\nglobal 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"},"391":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr","source":"use dep::authwit::auth_witness;\nuse dep::aztec::{\n protocol_types::{address::PartialAddress, utils::arr_copy_slice},\n keys::{PublicKeys, PUBLIC_KEYS_LENGTH}\n};\n\nstruct AuthWitness {\n keys: PublicKeys,\n signature: [u8; 64],\n partial_address: PartialAddress,\n}\n\nimpl AuthWitness {\n fn deserialize(values: [Field; 77]) -> Self {\n let mut signature = [0; 64];\n for i in 0..64 {\n signature[i] = values[i + PUBLIC_KEYS_LENGTH] as u8;\n }\n Self {\n keys: PublicKeys::deserialize(arr_copy_slice(values, [0; PUBLIC_KEYS_LENGTH], 0)),\n signature,\n partial_address: PartialAddress::from_field(values[76])\n }\n }\n}\n\nunconstrained pub fn get_auth_witness(message_hash: Field) -> AuthWitness {\n let witness: [Field; 77] = auth_witness::get_auth_witness(message_hash);\n AuthWitness::deserialize(witness)\n}\n"},"392":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr","source":"mod util;\nmod auth_oracle;\n\ncontract SchnorrSingleKeyAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, PrivateContext};\n\n use dep::authwit::{entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions};\n\n use crate::{util::recover_address, auth_oracle::get_auth_witness};\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\n #[aztec(private)]\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(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 let witness = get_auth_witness(outer_hash);\n assert(recover_address(outer_hash, witness).eq(context.this_address()));\n true\n }\n}\n"},"393":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/util.nr","source":"use std::{schnorr::verify_signature_slice};\nuse dep::aztec::prelude::AztecAddress;\nuse crate::auth_oracle::AuthWitness;\n\npub fn recover_address(message_hash: Field, witness: AuthWitness) -> AztecAddress {\n let message_bytes = message_hash.to_be_bytes(32);\n // In a single key account contract we re-used ivpk_m as signing key\n let verification = verify_signature_slice(\n witness.keys.ivpk_m.x,\n witness.keys.ivpk_m.y,\n witness.signature,\n message_bytes\n );\n assert(verification == true);\n\n AztecAddress::compute(witness.keys.hash(), witness.partial_address)\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::unsafe::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"58":{"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"},"59":{"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::pedersen_hash\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, 0);\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 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 AztecAddress::from_field(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 pedersen_hash(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 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 pedersen_hash(\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 pedersen_hash(\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 AztecAddress::from_field(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 AztecAddress::from_field(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"},"60":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::context::{PrivateContext, PublicContext};\nuse dep::aztec::protocol_types::{address::AztecAddress, abis::function_selector::FunctionSelector, hash::pedersen_hash};\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 fee_hash = fee_payload.hash();\n assert(valid_fn(self.context, fee_hash));\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n\n let app_hash = app_payload.hash();\n assert(valid_fn(self.context, app_hash));\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"},"61":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::pedersen_hash, traits::{Hash, Serialize}};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n pedersen_hash(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"63":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::pedersen_hash, traits::{Hash, Serialize}};\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 pedersen_hash(\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"},"71":{"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, hash::poseidon2_hash,\n point::Point, traits::{Deserialize, Serialize, Empty, is_empty}\n};\nuse crate::keys::constants::{NUM_KEY_TYPES, NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH = 12;\n\nstruct PublicKeys {\n npk_m: Point,\n ivpk_m: Point,\n ovpk_m: Point,\n tpk_m: Point,\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : Point::empty(),\n ivpk_m : Point::empty(),\n ovpk_m : Point::empty(),\n tpk_m : Point::empty()\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m == other.npk_m ) &\n ( self.ivpk_m == other.ivpk_m ) &\n ( self.ovpk_m == other.ovpk_m ) &\n ( self.tpk_m == other.tpk_m )\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(\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.is_infinite as Field,\n GENERATOR_INDEX__PUBLIC_KEYS_HASH\n ]\n )\n }\n )\n }\n\n pub fn get_key_by_index(self, index: Field) -> Point {\n assert(index as u8 < NUM_KEY_TYPES, \"Invalid key index\");\n if index == NULLIFIER_INDEX {\n self.npk_m\n } else if index == INCOMING_INDEX {\n self.ivpk_m\n } else if index == OUTGOING_INDEX {\n self.ovpk_m\n } else {\n self.tpk_m\n }\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.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: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool },\n ivpk_m: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool },\n ovpk_m: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool },\n tpk_m: 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: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: Point { x: 7, y: 8, is_infinite: false }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x146f68c0e0ba4067d61a3304bbfdec0797d5df1357db6c01247c48bfb345c7d7;\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: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: 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.x, deserialized.npk_m.x);\n assert_eq(keys.npk_m.y, deserialized.npk_m.y);\n assert_eq(keys.ivpk_m.x, deserialized.ivpk_m.x);\n assert_eq(keys.ivpk_m.y, deserialized.ivpk_m.y);\n assert_eq(keys.ovpk_m.x, deserialized.ovpk_m.x);\n assert_eq(keys.ovpk_m.y, deserialized.ovpk_m.y);\n assert_eq(keys.tpk_m.x, deserialized.tpk_m.x);\n assert_eq(keys.tpk_m.y, deserialized.tpk_m.y);\n}\n"},"99":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{enqueue_public_function_call_internal, set_public_teardown_function_call_internal}\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 // TODO(#7112): This function is called with non-zero note hash only in 1 of 25 cases in aztec-packages repo\n // - consider creating a separate function with 1 arg for the zero note hash case.\n fn push_nullifier(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_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 }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier, 0)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (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"}}}
|
|
1
|
+
{"transpiled":true,"noir_version":"0.32.0+32b4c6ed75387759b3d84df723a52679894feb2d","name":"SchnorrSingleKeyAccount","functions":[{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","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":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"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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5mF5Zx6Wd+ZheWcelnfmYXlnHpZ35mF5Zx6Wd+FheRcelnfhYXkXHpZ3CcpjlSYtFR6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXkXHpZ34WF5Fx6Wd+FheRcelnfhYXlXHpZ35WF5Vx6Wd+VhedegPFZp0lLlYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ35WF5Vx6Wd+VheVcelnflYXlXHpZ3vRbLu9iqpG6tXiotPbY6OC1Jvv2NpSz1sdVobuE2dF7m+cHqu3w5t3wFlp9T8FV++qTkLt/OLT+fW345t/wKLL+EquvQon7UZHO9N9mQNk3WaayOZli/0mrksYqcEhpbRU4Uv2r1caIfzbB+pVXkpNLYKnKqaWwVOQE1tnqltHRg9Upp6bHVcqW0dGD1SmnpwOqV0tKBVZ60NJph/UqrPGmp8KSlwpOWCk9aKjxpqfKkpcqTlipPWqo8aWk0w/qVVnnSUuVJS5UnLVWetFR50pLzpCXnSUvOk5acJy2NZli/0ipPWnKetOQ8acl50pLTpCUPNGnJA01a8kCTljzQpCUPymOVJi15oElLHmjSkgeatOSBJy1FnrQUedJS5ElLkSctjWZYv9IqT1qKPGkp8qSlyJOWIk9aSjxpKfGkpcSTlhJPWhrNsH6lVZ60lHjSUuJJS4knLSWetCQ8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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":0,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"H4sIAAAAAAAA/9WZ204yMRDHW9mFhdXlw/MBFeTTxLsFAeHOl9Hn8drEd/ARpTAT/q1IbOloaGLa3U5nfjPTw1q0WpRs9qepnVJdVV8LyzxRXW5W+hF1lZKceks4d7aEs7IlnElETr2C09QJtc26M2uuphbr8UsnDjaJrkC/WqfItfpBdeb0RfN2Uk6rYADhFcEn1Me1pr+c+hEwJ2fncvCOHd6Bd2yrAu94J2NbGQVHwO9RtsSOq3s2G40vddLF/Dm0sa8NIUwEfU1lfB2K5WhWJHOkIQ8p6a7BM+ekAfa1kH3W3XDmRwLtC5BlOZbhdcj8e2q5lhprxiXOuAJkqjCu5oyrQXxMMfFqUdvUabaUZTmhOM7nSC6j28pR4sQwB98KsB9vjg4mxsausot2nvFgKYBpT4Sp7BvdTSHdOfiwC778A3vxvpxGwwLsoY1C2fHl5yYwtUSYxhNkanky7cswTZFp35PpQITp8QGZDjyZDkWYBiUyHXoyHYkwja04HXkyHcswvSDTsSfTiQzTMzKdeDKdijA9WvvTqSfTmQzTAJnOPJnORZjGfWQ692AKXRuhedlkf8Dvv4ixs+bYRaAvvmu4LePLCJnagb74nCWh+Qzda0Jj/hfz9RLkI+4/Vo4vA30JzXHonPKN3RXIR4yd9X1yFeiLz56/yXfjtUwMxsh0HehL6BkTuvZ+Y95t45606R6P9yvvVAv+Pz/NgUeBDeWwK2A2JVer10gHdKTROEtrn+iAva5IXBb3LN/lrytufzAxunsyvs3vp/4Lxu2WdPEdZm9F3O7Avhayz7rZ1i3kkttvIMtyLMP3Pcxv7q9uqH23ZlzhjCtA5gbG9Zxx/My5MfF7pbbkXPvJXDd3UbzO74FJZl8qh/h7hQIbyuHkUgBTR4bp1+4Z6+BLF3yMZMvaS3FO+ZxXfzUOz6s6vHPPBvwtsAnvKqCbdXwC3tPG3MogAAA=","debug_symbols":"ndlBboMwFEXRvXgcVTxj/29nK1VVkYRUSBGJAqlUoey90KoL6J1h4M3O6HoJp/7w+HgfxvN1CvvXJVyux24eruN6WkLzEsvP2+nWjduLae7uc9i35rvQj6f1yeNzF87DpV+fqz/fdtuoglHbkJHIKJJRS0aJjDIZGRk5GRERLRGRiIhERCQiIhERiYhIREQiIhIRkYiIRERkIiITEZmIyEREJiIyEZGJiExEZCIiExFGRBgRYUSEERFGRBgRYUSEERFGRBgR4USEExFORDgR4USEExFORDgR4USEExGFiChERCEiChFRiIhCRBQiohARhYgoREQlIioRUYmISkRUIqISEZWIqEREJSIqEaGmQSuhVUSrFq0SWmW0MrRytCpohWwI2RCyIWRDyIaQDSEbQjaEbAjZELIRkY2IbERkIyIbEdmIyEZENiKygYKmUNEUSppCTVMoagpVTaGsKdQ1hcKmUNkUSptCbVMobgrVTaG8KdQ3hQKnUOEUSpxCjVMocgpVTqHMKdQ5hUKnUOkUSp1CrVP/jp3r6bO7D93h0m93X9vHx3j8uwpbj/PX7ffL+u83"}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"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":"SchnorrSingleKeyAccount::entrypoint_parameters"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::entrypoint_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"SchnorrSingleKeyAccount::verify_private_authwit_abi"}]}},"file_map":{"100":{"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"},"128":{"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"},"133":{"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/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"},"146":{"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"},"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"},"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"},"244":{"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"},"245":{"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"},"250":{"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"},"273":{"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"},"285":{"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"},"300":{"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\nglobal 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"},"396":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/auth_oracle.nr","source":"use dep::authwit::auth_witness;\nuse dep::aztec::{\n protocol_types::{address::PartialAddress, utils::arr_copy_slice},\n keys::{PublicKeys, PUBLIC_KEYS_LENGTH}\n};\n\nstruct AuthWitness {\n keys: PublicKeys,\n signature: [u8; 64],\n partial_address: PartialAddress,\n}\n\nimpl AuthWitness {\n fn deserialize(values: [Field; 77]) -> Self {\n let mut signature = [0; 64];\n for i in 0..64 {\n signature[i] = values[i + PUBLIC_KEYS_LENGTH] as u8;\n }\n Self {\n keys: PublicKeys::deserialize(arr_copy_slice(values, [0; PUBLIC_KEYS_LENGTH], 0)),\n signature,\n partial_address: PartialAddress::from_field(values[76])\n }\n }\n}\n\nunconstrained pub fn get_auth_witness(message_hash: Field) -> AuthWitness {\n let witness: [Field; 77] = auth_witness::get_auth_witness(message_hash);\n AuthWitness::deserialize(witness)\n}\n"},"397":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/main.nr","source":"mod util;\nmod auth_oracle;\n\ncontract SchnorrSingleKeyAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, PrivateContext};\n\n use dep::authwit::{entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions};\n\n use crate::{util::recover_address, auth_oracle::get_auth_witness};\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\n #[aztec(private)]\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(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 let witness = get_auth_witness(outer_hash);\n assert(recover_address(outer_hash, witness).eq(context.this_address()));\n true\n }\n}\n"},"398":{"path":"/usr/src/noir-projects/noir-contracts/contracts/schnorr_single_key_account_contract/src/util.nr","source":"use std::{schnorr::verify_signature_slice};\nuse dep::aztec::prelude::AztecAddress;\nuse crate::auth_oracle::AuthWitness;\n\npub fn recover_address(message_hash: Field, witness: AuthWitness) -> AztecAddress {\n let message_bytes = message_hash.to_be_bytes(32);\n // In a single key account contract we re-used ivpk_m as signing key\n let verification = verify_signature_slice(\n witness.keys.ivpk_m.x,\n witness.keys.ivpk_m.y,\n witness.signature,\n message_bytes\n );\n assert(verification == true);\n\n AztecAddress::compute(witness.keys.hash(), witness.partial_address)\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::unsafe::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"59":{"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"},"60":{"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 AztecAddress::from_field(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 AztecAddress::from_field(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 AztecAddress::from_field(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"},"61":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::context::{PrivateContext, PublicContext};\nuse dep::aztec::protocol_types::{address::AztecAddress, abis::function_selector::FunctionSelector, hash::pedersen_hash};\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 fee_hash = fee_payload.hash();\n assert(valid_fn(self.context, fee_hash));\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n\n let app_hash = app_payload.hash();\n assert(valid_fn(self.context, app_hash));\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"},"62":{"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"},"64":{"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"},"72":{"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, traits::{Deserialize, Serialize, Empty, is_empty}\n};\nuse crate::keys::constants::{NUM_KEY_TYPES, NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH = 12;\n\nstruct PublicKeys {\n npk_m: Point,\n ivpk_m: Point,\n ovpk_m: Point,\n tpk_m: Point,\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : Point::empty(),\n ivpk_m : Point::empty(),\n ovpk_m : Point::empty(),\n tpk_m : Point::empty()\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m == other.npk_m ) &\n ( self.ivpk_m == other.ivpk_m ) &\n ( self.ovpk_m == other.ovpk_m ) &\n ( self.tpk_m == other.tpk_m )\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(\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.is_infinite as Field\n ],\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field\n )\n }\n )\n }\n\n pub fn get_key_by_index(self, index: Field) -> Point {\n assert(index as u8 < NUM_KEY_TYPES, \"Invalid key index\");\n if index == NULLIFIER_INDEX {\n self.npk_m\n } else if index == INCOMING_INDEX {\n self.ivpk_m\n } else if index == OUTGOING_INDEX {\n self.ovpk_m\n } else {\n self.tpk_m\n }\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.x,\n self.npk_m.y,\n self.npk_m.is_infinite as Field,\n self.ivpk_m.x,\n self.ivpk_m.y,\n self.ivpk_m.is_infinite as Field,\n self.ovpk_m.x,\n self.ovpk_m.y,\n self.ovpk_m.is_infinite as Field,\n self.tpk_m.x,\n self.tpk_m.y,\n self.tpk_m.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: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool },\n ivpk_m: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool },\n ovpk_m: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool },\n tpk_m: 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: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: 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: Point { x: 1, y: 2, is_infinite: false },\n ivpk_m: Point { x: 3, y: 4, is_infinite: false },\n ovpk_m: Point { x: 5, y: 6, is_infinite: false },\n tpk_m: 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.x, deserialized.npk_m.x);\n assert_eq(keys.npk_m.y, deserialized.npk_m.y);\n assert_eq(keys.ivpk_m.x, deserialized.ivpk_m.x);\n assert_eq(keys.ivpk_m.y, deserialized.ivpk_m.y);\n assert_eq(keys.ovpk_m.x, deserialized.ovpk_m.x);\n assert_eq(keys.ovpk_m.y, deserialized.ovpk_m.y);\n assert_eq(keys.tpk_m.x, deserialized.tpk_m.x);\n assert_eq(keys.tpk_m.y, deserialized.tpk_m.y);\n}\n"}}}
|