@aztec/accounts 0.47.1 → 0.49.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/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 +0,0 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.32.0+92ff2fa2e944722e5c3fa43fb3363f093b8f1d12","name":"EcdsaAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"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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SydEOqGnE26v6fn8bDrKcUmY2YRxpBNKOsHSCTWd4OmElk6IdEL/IOFyTY+RTri/pp95ubBLwry9ps/Hoa8IJZ1g6YTbc/q7v0WnpxNaOiHSCT2dMNIJ6U9OXhyd/hiilPw2C0B02yyWvewN28te9obtZS97w/ayd2l72Ru2l73sDdvLXvaG7WUve8P2spdts4C9bpvFspeetbptFsteetbqtlkse+lZq9tmseylZ61um8WyZ2qzgBBVm8USkr1he9nL3rC97GVv2F72Lm0ve8P2spe9YXvZy96wvexlb9he9rI3bMNet81i2UvPWt02i2UvPWt12yyWvfSs1W2zWPbSs1a3zWLZS89aqjaLJcTUZrGEmNoslhBTm8USYplbpxBTm8USYmqzWEJMbRZLiKnNYgkxtVlAiKrNYgltXvbfXPe/lLjaLJYS1wV667gWV5vFUuJqs1hKXG0WS4mrzWIpcbVZLCWuNoulxNVmASWyNoulxNVmsZS42iyWElebxVJyPiWuNoulxNVmsZS42iyWElebxVLiarOAElmbxVLiarNYSlxtFkuJq81iKTmfElebxVLiarNYSlxtFkuJq81iKXG1WXxFmbjaLL6cuNosvpy42iy+nMhui19OXG0WX05cbRZfTnwP49jaLL6cuNosvpy42iy+nJzQiWx/stiQD35AhPPBsNfNLMFeN7MEe93MEuxd2l43swR73cwS7HUzS7DXzSzBXjcf/LAXzgfDXnrWCueDYS89a4XzwbCXnrXC+WDYS89a4Xww7KnywQ8hrnwwhHQzS7DXzSzBXjezBHuXttfNLMFeN7MEe93MEux1M0uw180sPeyF88Gwl561wvlg2EvPWuF8MOylZ61wPhj20rNWOB8Me+lZy5UPhhBVPhhCVPlgCFHlgyHEMrdOIap8MISo8sEQosoHQ4gqHwwhqnzwQ4grHwyhzcv+uwAllMjywVAiO5KI41pk+WAokeWDoUSWD4YSWT4YSmT5YCiR5YOhRJYPfiix5YOhRJYPhhJZPhhKZPlgKDmfElk+GEpk+WAokeWDoUSWD4YSWT74ocSWD4YSWT4YSmT5YCiR5YOh5HxKZPlgKJHlg6FElg+GElk+GEpk+eAVZSLLBy8nsnzwciLLBy8nvvwdXT54OZHlg5cT38M4unzwciLLBy8nsnzwcnJCJ679yY/6+HDnct3VWX7/Qo92fl2px7/+0+O//u9//l//9p//y3//b//78RX4n//n3//rf/zb//j33//zP/7f//z6P4/X/n8="},{"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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d8gyOajO5KA6k4PC7hxfTZbJQWG3ja8my+SgsHvGV5NlclDn6iTfI8vkoM7VSb5HlslBMXWSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MnuTN1kjtTJ7kzdZI7Uye5M3WSO1MneTB1kgdTJ3kwdZIHUyd5NGMiS+SggqmTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsmDqZM8mDrJg6mTPJg6yYOpkzyYOsknUyf5ZOokn0yd5JOpk3w2YyJL5KAmUyf5ZOokn0yd5JOpk3wydZJPpk7yydRJPpk6ySdTJ/lk6iSfTJ3kk6mTfDJ1kk+mTvLJ1Ek+mTrJJ1Mn+WTqJJ9MneSTqZN8MnWST6ZO8snUST6ZOsknUyf5ZOokn0yd5JOpk3wydZJPpk7yydRJPpk6ySdTJ/lk6iSfTJ3kk6mTfDJ1kk+mTvLJ1Ek+mTrJJ1Mn+WTqJJ9MneSTqZN8MnWST6ZO8snUST6ZOsknUyf5ZOokn0yd5JOpk3wydZJPpk7yydRJPpk6ySdTJ/lk6iSfTJ3kk6mTfDJ1kk+mTvLJ1Ek+mTrJJ1Mn+WTqJJ9MneSTqZN8MnWST6ZO8snUST6ZOsknUyf5ZOokn0yd5JOpk3wydZLP8k5y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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"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":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"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qXeZlj6x1LtMS8d/1VZvMy0d/q2PwVGgX2apt5mWjpd6m2np8EPHeptp6Xipt5mWjpd6m2npcKntNtPS8VJvMy0dL/U209LxUm8zLR0v9fr7at4eD8655oPyfz586f3RP59SMy2p+Sup+ytpuCvJ4NAh85KCuKS0Pf5q7udv8k9Liv5KSv5Kyv5KKv5KqvKS4kdJ0zeU3vyV1P2VNNyVNDZ/JQV/JUV/JSV/JWV/JRV/Jcln71H2eWlMt8RH81dS91fS8FZS3jZ/JQV/JUV/JSV/JWV/JRV/Jbnr3nlz173z5q57581f9w7+unfw172Dv+4d/HXv4K97B3/dO/jr3sFf9w7+unfw172jv+4d/XXv6K97R3/dO/rr3tFf947+unf0172jv+4d/XXvpO5L20dJ22jTkpK/krK/koq/kqq/ktR9KcTH313HkMK0pO6vpOGupLz5Kyn4K0ndvUMYHyXFaUnJX0nZX0nFX0nVX0nNX0ndX0nDXUll81dS8FeSvnvvH8qHUKclJX8lZX8lFX8lVX8lNX8ldX8lDXcl1c1fScFfSf66d/XXvau/7l39de/qr3tXf927+uve1V/3bv66d/PXvZu/7t38de/mr3s3f927+evezV/3bv66d/PXvbu/7t39de/ur3t3f927++ve3V/3tvh+XPympKOvsJf2+G586R8fycce94KGs4IsvhtnW1DwVlD0VlDSFlT3L+vWmKcFZW8FFW8FVW8FNW8FdW8FDXVBjzvd1a1OCirb5q2g4K2g6K2g5K2g7K2g4q2g6q2g5q2g7q0gb506eOvUwVunDt46dfDWqYO3Th28dergrVMHb506eOvUwVunjt46dfTWqaO3Th29derorVNHb506euvU0Vunjt46dfTWqZO3Tp28derkrVMnb506eevUyVunTt46dfLTqd/+0//9/t9/+P6f/vynv7494+f/8T9+/OeffvjLj+//8af/929//1/eHvv/AQ=="}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000906cb9c3"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaAccount::verify_private_authwit_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"EcdsaAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaAccount::entrypoint_abi"}]}},"file_map":{"107":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point,\n constants::{GENERATOR_INDEX__IVSK_M, GENERATOR_INDEX__OVSK_M}, hash::poseidon2_hash\n};\nuse std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\nuse std::field::bytes32_to_field;\n\nuse crate::oracle::unsafe_rand::unsafe_rand;\nuse crate::utils::point::point_to_bytes;\n\nuse crate::event::event_interface::EventInterface;\nuse crate::note::note_interface::NoteInterface;\n\nuse crate::encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n let eph_sk: Scalar = fr_to_fq(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now \n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n let eph_sk: Scalar = fr_to_fq(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now \n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field elememt to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let r_bytes = r.to_be_bytes(32);\n\n let mut high_bytes = [0; 32];\n let mut low_bytes = [0; 32];\n\n for i in 0..16 {\n high_bytes[16 + i] = r_bytes[i];\n low_bytes[16 + i] = r_bytes[i + 16];\n }\n\n let lo = bytes32_to_field(low_bytes);\n let hi = bytes32_to_field(high_bytes);\n\n Scalar { lo, hi }\n}\n\nmod test {\n use crate::{encrypted_logs::payload::compute_encrypted_note_log, test::mocks::mock_note::MockNoteBuilder};\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_compute_encrypted_note_log() {\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x1b99ba138fa7ef8a2f122a98dd80c8ee70d447218dd780f45e165ac17ca38a5e;\n let ovpk_m = Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n };\n let ivpk_m = Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n let expected_encrypted_note_log = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 159, 53, 114, 117, 237, 57, 131, 19, 111, 150, 50, 83, 173, 155, 234, 225, 71, 187, 141, 79, 245, 43, 111, 83, 219, 149, 124, 68, 12, 244, 253, 216, 0, 62, 108, 232, 118, 80, 87, 140, 215, 185, 111, 48, 128, 236, 110, 92, 46, 205, 7, 226, 131, 66, 205, 0, 103, 83, 217, 90, 60, 138, 6, 172, 246, 129, 92, 172, 69, 73, 77, 65, 147, 18, 231, 20, 35, 217, 180, 253, 72, 242, 32, 57, 45, 11, 2, 235, 24, 96, 244, 224, 33, 61, 151, 225, 136, 173, 178, 40, 2, 125, 229, 20, 220, 82, 28, 191, 147, 133, 137, 1, 45, 243, 229, 140, 115, 165, 150, 154, 96, 22, 120, 223, 237, 213, 182, 252, 192, 8, 132, 43, 21, 56, 243, 116, 144, 182, 75, 16, 30, 222, 222, 60, 205, 147, 214, 53, 41, 62, 53, 16, 147, 117, 72, 169, 220, 125, 208, 210, 45, 65, 233, 40, 87, 88, 140, 237, 200, 161, 9, 86, 82, 128, 191, 51, 4, 195, 243, 100, 102, 240, 54, 129, 176, 116, 139, 73, 27, 98, 222, 1, 243, 199, 72, 238, 213, 66, 91, 159, 183, 143, 36, 103, 94, 5, 62, 50, 13, 217, 161, 79, 30, 231, 41, 228, 109, 139, 243, 119, 166, 54, 37, 250, 193, 6, 67, 29, 148, 185, 153, 58, 64, 210, 164, 219, 165, 80, 35, 75, 109, 177, 14, 168, 136, 105, 21, 235, 62, 159, 71, 61, 245, 193, 234, 169, 100, 165, 8, 222, 157, 239, 41, 221, 223, 67, 80, 61, 252, 54, 27, 100, 1, 104, 2, 121, 62, 41, 23, 132, 15, 124, 120, 21, 198, 113, 151, 172, 42, 161, 64, 240, 166, 205, 80, 169, 58, 191, 111, 130, 55, 58, 141, 26, 97, 118, 114, 216, 69, 207, 212, 227, 250, 199, 21, 72, 144, 85, 43, 76, 213, 28, 132, 134, 16, 221, 105, 112, 82, 238, 114, 61, 36, 144, 179, 178, 68, 198, 162, 212, 85, 100, 116, 186, 131, 232, 33, 229, 101, 251, 5, 251\n ];\n for i in 0..expected_encrypted_note_log.len() {\n assert_eq(log[i], expected_encrypted_note_log[i]);\n }\n assert_eq(expected_encrypted_note_log.len(), log.len());\n }\n}\n"},"108":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL, utils::arrays::find_index\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, Point, Point, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists_index = find_index(\n context.note_hashes.storage,\n |n: NoteHash| n.counter == note_hash_counter\n );\n assert(\n note_exists_index as u32 != MAX_NOTE_HASHES_PER_CALL, \"Can only emit a note log for an existing note.\"\n );\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let header = context.get_header();\n let ovpk = header.get_ovpk_m(context, ov);\n let ivpk = header.get_ivpk_m(context, iv);\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let header = context.get_header();\n let ovpk = header.get_ovpk_m(context, ov);\n let ivpk = header.get_ivpk_m(context, iv);\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, Point, Point, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: Point,\n ivpk: Point,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, Point, Point, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"109":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::point_to_symmetric_key::point_to_symmetric_key, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: Point,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: Point) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk);\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash(\n [\n ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y,\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ]\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::encrypted_logs::outgoing_body::EncryptedLogOutgoingBody;\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = derive_public_key(recipient_ivsk);\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n let expected_outgoing_body_ciphertext = [\n 127, 84, 96, 176, 101, 107, 236, 57, 68, 8, 53, 202, 138, 74, 186, 54, 74, 193, 245, 7, 109, 59, 218, 33, 1, 31, 205, 225, 241, 209, 64, 222, 94, 245, 4, 150, 47, 241, 187, 64, 152, 20, 102, 158, 200, 217, 213, 82, 1, 240, 170, 185, 51, 80, 27, 109, 63, 231, 235, 120, 174, 44, 133, 248, 10, 97, 60, 40, 222, 190, 147, 76, 187, 48, 91, 206, 48, 106, 56, 118, 38, 127, 82, 4, 182, 188, 44, 224, 31, 129, 47, 107, 134, 252, 20, 25, 249, 193, 215, 137, 195, 43, 98, 42, 54, 96, 254, 89, 134, 31, 103, 142, 16, 43, 92, 211, 145, 113, 217, 253, 161, 240, 121, 205, 146, 200, 168, 160, 221, 32, 229, 116, 26, 216, 86, 189, 78, 120, 10, 224, 85, 52, 40, 244\n ];\n\n for i in 0..expected_outgoing_body_ciphertext.len() {\n assert_eq(ciphertext[i], expected_outgoing_body_ciphertext[i]);\n }\n assert_eq(expected_outgoing_body_ciphertext.len(), ciphertext.len());\n }\n}\n"},"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::point_to_symmetric_key::point_to_symmetric_key;\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext(self, secret: Scalar, point: Point) -> [u8; 48] {\n let full_key = point_to_symmetric_key(secret, point);\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n let expected_header_ciphertext = [\n 166, 212, 106, 246, 139, 59, 228, 9, 133, 152, 127, 172, 141, 166, 237, 199, 55, 203, 226, 19, 114, 103, 58, 237, 108, 231, 35, 198, 54, 61, 190, 255, 241, 225, 151, 180, 6, 163, 124, 27, 151, 78, 237, 65, 120, 106, 255, 236\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext);\n}\n"},"111":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::point_to_symmetric_key::point_to_symmetric_key;\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: Point) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk);\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use crate::encrypted_logs::incoming_body::EncryptedLogIncomingBody;\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, traits::Serialize, abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n context::PrivateContext\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_content_hash(_self: Self) -> Field {1}\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_note_hash_and_nullifier(_self: Self, _context: &mut PrivateContext) -> (Field, Field) {\n (1, 1)\n }\n\n fn compute_note_hash_and_nullifier_without_context(_self: Self) -> (Field, Field) {(1,1)}\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body() {\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n let expected_note_body_ciphertext = [\n 166, 212, 106, 246, 139, 59, 228, 9, 133, 152, 127, 172, 141, 166, 237, 199, 195, 85, 255, 81, 66, 72, 192, 192, 96, 10, 54, 139, 136, 153, 252, 114, 248, 128, 253, 66, 249, 16, 71, 45, 2, 213, 250, 193, 241, 75, 90, 70, 39, 26, 104, 139, 20, 45, 1, 1, 166, 72, 133, 55, 247, 142, 150, 215, 217, 224, 84, 23, 245, 71, 207, 166, 136, 34, 221, 76, 90, 166, 44, 217, 246, 98, 157, 34, 198, 164, 99, 117, 15, 185, 145, 231, 189, 140, 201, 241, 135, 94, 71, 131, 156, 86, 144, 131, 248, 242, 83, 101, 18, 189, 1, 94, 25, 238, 76, 106, 85, 205, 4, 70, 21, 9, 64, 63, 27, 164, 73, 181, 75, 199, 86, 255, 105, 239, 216, 34, 217, 184, 154, 76, 67, 1, 210, 251, 23, 185, 114, 146, 195, 28, 76, 219, 150, 175, 37, 76, 144, 227, 99, 243, 123, 161, 66, 171, 148, 181, 162, 2, 196, 53, 207, 154, 114, 166, 155, 166\n ];\n\n assert_eq(expected_note_body_ciphertext.len(), ciphertext.len());\n\n for i in 0..expected_note_body_ciphertext.len() {\n assert_eq(ciphertext[i], expected_note_body_ciphertext[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n let expected_event_body_ciphertext = [\n 166, 212, 106, 246, 139, 59, 228, 9, 133, 152, 127, 172, 141, 166, 237, 199, 195, 85, 255, 81, 66, 72, 192, 192, 96, 10, 54, 139, 136, 153, 252, 114, 248, 128, 253, 66, 249, 16, 71, 45, 2, 213, 250, 193, 241, 75, 90, 70, 19, 153, 62, 117, 71, 55, 48, 114, 160, 232, 97, 118, 93, 53, 145, 92, 0, 225, 51, 81, 156, 69, 72, 224, 10, 89, 32, 121, 167, 197, 84, 245, 188, 235, 143, 202, 179, 197, 164, 121, 11, 105, 116, 239, 46, 222, 50, 138, 112, 237, 97, 8, 176, 199, 1, 151, 89, 218, 60, 45, 91, 85, 16, 38, 195, 127, 157, 182, 0, 10, 232, 184, 148, 76, 244, 63, 40, 222, 219, 139, 236, 169, 213, 17, 32, 210, 50, 6, 5, 83, 80, 1, 111, 246, 197, 83, 166, 71, 31, 246, 234, 75, 12, 151, 227, 247, 143, 229, 95, 219, 159, 75, 174, 232, 64, 7, 102, 76, 207, 45, 143, 208, 101, 113, 175, 37, 83, 166\n ];\n\n assert_eq(expected_event_body_ciphertext.len(), ciphertext.len());\n\n for i in 0..expected_event_body_ciphertext.len() {\n assert_eq(ciphertext[i], expected_event_body_ciphertext[i]);\n }\n }\n}\n"},"115":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> Note where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n note\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, FILTER_ARGS>\n) -> BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, FILTER_ARGS>\n) -> BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n };\n }\n\n notes\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n )\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"117":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n constants::GENERATOR_INDEX__INNER_NOTE_HASH,\n hash::{\n pedersen_hash, compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_inner_note_hash_from_preimage(storage_slot: Field, note_content_hash: Field) -> Field {\n pedersen_hash(\n [storage_slot, note_content_hash],\n GENERATOR_INDEX__INNER_NOTE_HASH\n )\n}\n\npub fn compute_inner_note_hash<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let note_hash = note.compute_note_content_hash();\n\n compute_inner_note_hash_from_preimage(header.storage_slot, note_hash)\n}\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let (_, inner_nullifier) = note_with_header.compute_note_hash_and_nullifier(context);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\nfn compute_note_hash_for_read_request_from_innter_and_nonce(\n inner_note_hash: Field,\n nonce: Field\n) -> Field {\n // TODO(#1386): This if-else can be nuked once we have nonces injected from public\n if (nonce == 0) {\n // If nonce is zero, that means we are reading a public note.\n inner_note_hash\n } else {\n compute_unique_note_hash(nonce, inner_note_hash)\n }\n}\n\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let inner_note_hash = compute_inner_note_hash(note);\n let nonce = note.get_header().nonce;\n\n compute_note_hash_for_read_request_from_innter_and_nonce(inner_note_hash, nonce)\n}\n\npub fn compute_note_hash_for_consumption<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n // There are 3 cases for reading a note intended for consumption:\n // 1. The note was inserted in this transaction, and is transient.\n // 2. The note was inserted in a previous transaction, and was inserted in public\n // 3. The note was inserted in a previous transaction, and was inserted in private\n\n let inner_note_hash = compute_inner_note_hash(note);\n\n if (header.note_hash_counter != 0) {\n // If a note is transient, we just read the inner_note_hash (kernel will silo by contract address).\n inner_note_hash\n } else {\n // If a note is not transient, that means we are reading a settled note (from tree) created in a\n // previous TX. So we need the siloed_note_hash which has already been hashed with\n // nonce and then contract address. This hash will match the existing leaf in the note hash\n // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n let unique_note_hash = compute_note_hash_for_read_request_from_innter_and_nonce(inner_note_hash, header.nonce);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n // nullification, it is not strictly necessary to silo the note hash before computing\n // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n }\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n let inner_note_hash = compute_inner_note_hash(note);\n let unique_note_hash = compute_note_hash_for_read_request_from_innter_and_nonce(inner_note_hash, note_header.nonce);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n let (_, nullifier) = note.compute_note_hash_and_nullifier_without_context();\n nullifier\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [inner_note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_inner_note_hash, compute_note_hash_for_consumption}, note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n let inner_note_hash = compute_inner_note_hash(*note);\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n inner_note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(inner_note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n let inner_note_hash = compute_inner_note_hash(*note);\n\n context.push_note_hash(inner_note_hash);\n}\n\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let (note_hash, nullifier) = note.compute_note_hash_and_nullifier(context);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let note_hash_for_consumption = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a non-transient note and we don't populate the note_hash with real\n // value (if we did so the `notifyNullifiedNote` oracle would throw).\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a transient note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can find it and squash both\n // the note and the nullifier.\n note_hash\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, note_hash_for_consumption, nullifier_counter) == 0);\n\n context.push_nullifier(nullifier, note_hash_for_consumption)\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"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"},"128":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::{compute_siloed_nullifier, pedersen_hash},\n constants::GENERATOR_INDEX__CONSTRUCTOR, abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier, 0);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier, 0);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_contract_initialization_nullifier(context.this_address());\n let header = context.get_header();\n header.prove_nullifier_inclusion(init_nullifier);\n}\n\nfn compute_contract_initialization_nullifier(address: AztecAddress) -> Field {\n compute_siloed_nullifier(\n address,\n compute_unsiloed_contract_initialization_nullifier(address)\n )\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n pedersen_hash(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"129":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_nullifier_membership_witness.nr","source":"use dep::protocol_types::{\n abis::nullifier_leaf_preimage::{NullifierLeafPreimage, NULLIFIER_LEAF_PREIMAGE_LENGTH},\n constants::NULLIFIER_TREE_HEIGHT, hash::pedersen_hash, utils::arr_copy_slice\n};\n\n// INDEX_LENGTH + NULLIFIER_LEAF_PREIMAGE_LENGTH + NULLIFIER_TREE_HEIGHT\nglobal NULLIFIER_MEMBERSHIP_WITNESS: Field = 24;\n\nstruct NullifierMembershipWitness {\n index: Field,\n leaf_preimage: NullifierLeafPreimage,\n path: [Field; NULLIFIER_TREE_HEIGHT],\n}\n\nimpl NullifierMembershipWitness {\n pub fn deserialize(fields: [Field; NULLIFIER_MEMBERSHIP_WITNESS]) -> Self {\n let leaf_preimage_fields = arr_copy_slice(fields, [0; NULLIFIER_LEAF_PREIMAGE_LENGTH], 1);\n Self {\n index: fields[0],\n leaf_preimage: NullifierLeafPreimage::deserialize(leaf_preimage_fields),\n path: arr_copy_slice(\n fields,\n [0; NULLIFIER_TREE_HEIGHT],\n 1 + NULLIFIER_LEAF_PREIMAGE_LENGTH\n )\n }\n }\n}\n\n#[oracle(getLowNullifierMembershipWitness)]\nunconstrained fn get_low_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_low_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_low_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n\n#[oracle(getNullifierMembershipWitness)]\nunconstrained fn get_nullifier_membership_witness_oracle(\n _block_number: u32,\n _nullifier: Field\n) -> [Field; NULLIFIER_MEMBERSHIP_WITNESS] {}\n\n// Nullifier here refers to the nullifier we are looking to get non-inclusion proof for (by proving that a lower\n// nullifier's next_value is bigger than the nullifier)\nunconstrained pub fn get_nullifier_membership_witness(block_number: u32, nullifier: Field) -> NullifierMembershipWitness {\n let fields = get_nullifier_membership_witness_oracle(block_number, nullifier);\n NullifierMembershipWitness::deserialize(fields)\n}\n"},"130":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"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"},"134":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, hash::pedersen_hash,\n public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage, traits::{Hash, Serialize},\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _leaf_slot: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, leaf_slot: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, leaf_slot);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"135":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"139":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"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"},"142":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::PublicKeys;\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: Point { x: result[0], y: result[1], is_infinite: result[2] as bool },\n ivpk_m: Point { x: result[3], y: result[4], is_infinite: result[5] as bool },\n ovpk_m: Point { x: result[6], y: result[7], is_infinite: result[8] as bool },\n tpk_m: Point { x: result[9], y: result[10], is_infinite: result[11] as bool }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _inner_note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n inner_note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(\n storage_slot,\n note_type_id,\n serialized_note,\n inner_note_hash,\n counter\n )\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _inner_note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n inner_note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, inner_note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"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"},"162":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/scheduled_delay_change.nr","source":"use dep::protocol_types::traits::{Serialize, Deserialize, FromField, ToField};\nuse std::cmp::min;\n\nmod test;\n\n// This data structure is used by SharedMutable to store the minimum delay with which a ScheduledValueChange object can\n// schedule a change.\n// This delay is initally equal to INITIAL_DELAY, and can be safely mutated to any other value over time. This mutation \n// is performed via `schedule_change` in order to satisfy ScheduleValueChange constraints: if e.g. we allowed for the \n// delay to be decreased immediately then it'd be possible for the state variable to schedule a value change with a \n// reduced delay, invalidating prior private reads.\nstruct ScheduledDelayChange<let INITIAL_DELAY: u32> {\n // Both pre and post are stored in public storage, so by default they are zeroed. By wrapping them in an Option, \n // they default to Option::none(), which we detect and replace with INITIAL_DELAY. The end result is that a\n // ScheduledDelayChange that has not been initialized has a delay equal to INITIAL_DELAY, which is the desired\n // effect. Once initialized, the Option will never be none again.\n pre: Option<u32>,\n post: Option<u32>,\n // Block at which `post` value is used instead of `pre`\n block_of_change: u32,\n}\n\nimpl<let INITIAL_DELAY: u32> ScheduledDelayChange<INITIAL_DELAY> {\n pub fn new(pre: Option<u32>, post: Option<u32>, block_of_change: u32) -> Self {\n Self { pre, post, block_of_change }\n }\n\n /// Returns the current value of the delay stored in the data structure.\n /// This function only returns a meaningful value when called in public with the current block number - for\n /// historical private reads use `get_effective_minimum_delay_at` instead.\n pub fn get_current(self, current_block_number: u32) -> u32 {\n // The post value becomes the current one at the block of change, so any transaction that is included in the\n // block of change will use the post value.\n\n if current_block_number < self.block_of_change {\n self.pre.unwrap_or(INITIAL_DELAY)\n } else {\n self.post.unwrap_or(INITIAL_DELAY)\n }\n }\n\n /// Returns the scheduled change, i.e. the post-change delay and the block at which it will become the current\n /// delay. Note that this block may be in the past if the change has already taken place.\n /// Additionally, further changes might be later scheduled, potentially canceling the one returned by this function.\n pub fn get_scheduled(self) -> (u32, u32) {\n (self.post.unwrap_or(INITIAL_DELAY), self.block_of_change)\n }\n\n /// Mutates the delay change by scheduling a change at the current block number. This function is only meaningful\n /// when called in public with the current block number.\n /// The block at which the new delay will become effective is determined automatically:\n /// - when increasing the delay, the change is effective immediately\n /// - when reducing the delay, the change will take effect after a delay equal to the difference between old and\n /// new delay. For example, if reducing from 3 days to 1 day, the reduction will be scheduled to happen after 2\n /// days.\n pub fn schedule_change(&mut self, new: u32, current_block_number: u32) {\n let current = self.get_current(current_block_number);\n\n // When changing the delay value we must ensure that it is not possible to produce a value change with a delay\n // shorter than the current one.\n let blocks_until_change = if new > current {\n // Increasing the delay value can therefore be done immediately: this does not invalidate prior contraints\n // about how quickly a value might be changed (indeed it strengthens them).\n 0\n } else {\n // Decreasing the delay requires waiting for the difference between current and new delay in order to ensure\n // that overall the current delay is respected.\n //\n // current delay earliest value block of change\n // block block of change if delay remained unchanged\n // =======N=========================|================================X=================>\n // ^ ^ ^\n // |-------------------------|--------------------------------|\n // | blocks until change new delay |\n // ------------------------------------------------------------\n // current delay\n current - new\n };\n\n self.pre = Option::some(current);\n self.post = Option::some(new);\n self.block_of_change = current_block_number + blocks_until_change;\n }\n\n /// Returns the minimum delay before a value might mutate due to a scheduled change, from the perspective of some\n /// historical block number. It only returns a meaningful value when called in private with historical blocks. This \n /// function can be used alongside `ScheduledValueChange.get_block_horizon` to properly constrain the\n /// `max_block_number` transaction property when reading mutable shared state.\n /// This value typically equals the current delay at the block following the historical one (the earliest one in\n /// which a value change could be scheduled), but it also considers scenarios in which a delay reduction is \n /// scheduled to happen in the near future, resulting in a way to schedule a change with an overall delay lower than\n /// the current one.\n pub fn get_effective_minimum_delay_at(self, historical_block_number: u32) -> u32 {\n if self.block_of_change <= historical_block_number {\n // If no delay changes were scheduled, then the delay value at the historical block (post) is guaranteed to\n // hold due to how further delay changes would be scheduled by `schedule_change`.\n self.post.unwrap_or(INITIAL_DELAY)\n } else {\n // If a change is scheduled, then the effective delay might be lower than the current one (pre). At the\n // block of change the current delay will be the scheduled one, with an overall delay from the historical\n // block number equal to the number of blocks until the change plus the new delay. If this value is lower\n // than the current delay, then that is the effective minimum delay.\n //\n // historical\n // block delay actual earliest value\n // v block of change block of change\n // =========NS=====================|=============================X===========Y=====>\n // ^ ^ ^ ^\n // earliest block in | | |\n // which to schedule change | | |\n // | | | |\n // |----------------------|------------------------------ |\n // | blocks new delay |\n // | until change |\n // | |\n // |----------------------------------------------------------------|\n // current delay at the earliest block in \n // which to scheduled value change\n\n let blocks_until_change = self.block_of_change - (historical_block_number + 1);\n\n min(\n self.pre.unwrap_or(INITIAL_DELAY),\n blocks_until_change + self.post.unwrap_or(INITIAL_DELAY)\n )\n }\n }\n}\n\nimpl<INITIAL_DELAY> Serialize<1> for ScheduledDelayChange<INITIAL_DELAY> {\n fn serialize(self) -> [Field; 1] {\n // We pack all three u32 values into a single U128, which is made up of two u64 limbs.\n // Low limb: [ pre_inner: u32 | post_inner: u32 ]\n // High limb: [ empty | pre_is_some: u8 | post_is_some: u8 | block_of_change: u32 ]\n\n let lo = ((self.pre.unwrap_unchecked() as u64) * (1 << 32))\n + (self.post.unwrap_unchecked() as u64);\n\n let hi = (self.pre.is_some() as u64) * (1 << 33) \n + (self.post.is_some() as u64 * (1 << 32)) \n + self.block_of_change as u64;\n\n let packed = U128::from_u64s_le(lo, hi);\n\n [packed.to_integer()]\n }\n}\n\nimpl<INITIAL_DELAY> Deserialize<1> for ScheduledDelayChange<INITIAL_DELAY> {\n fn deserialize(input: [Field; 1]) -> Self {\n let packed = U128::from_integer(input[0]);\n\n // We use division and modulo to clear the bits that correspond to other values when unpacking.\n\n let pre_is_some = ((packed.hi as u64) / (1 << 33)) as bool;\n let pre_inner = ((packed.lo as u64) / (1 << 32)) as u32;\n\n let post_is_some = (((packed.hi as u64) / (1 << 32)) % (1 << 1)) as bool;\n let post_inner = ((packed.lo as u64) % (1 << 32)) as u32;\n\n let block_of_change = ((packed.hi as u64) % (1 << 32)) as u32;\n\n Self {\n pre: if pre_is_some { Option::some(pre_inner) } else { Option::none() },\n post: if post_is_some { Option::some(post_inner) } else { Option::none() },\n block_of_change,\n }\n }\n}\n\nimpl<INITIAL_DELAY> Eq for ScheduledDelayChange<INITIAL_DELAY> {\n fn eq(self, other: Self) -> bool {\n (self.pre == other.pre) & (self.post == other.post) & (self.block_of_change == other.block_of_change)\n }\n}\n"},"164":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/shared_mutable_private_getter.nr","source":"use dep::protocol_types::{\n hash::{pedersen_hash, poseidon2_hash}, traits::{FromField, ToField}, address::AztecAddress,\n header::Header\n};\n\nuse crate::context::PrivateContext;\nuse crate::state_vars::{\n storage::Storage,\n shared_mutable::{\n shared_mutable::SharedMutable, scheduled_delay_change::ScheduledDelayChange,\n scheduled_value_change::ScheduledValueChange\n}\n};\n\nstruct SharedMutablePrivateGetter<T, INITIAL_DELAY> {\n context: &mut PrivateContext,\n // The contract address of the contract we want to read from\n other_contract_address: AztecAddress,\n // The storage slot where the SharedMutable is stored on the other contract\n storage_slot: Field,\n}\n\n// We have this as a view-only interface to reading Shared Mutables in other contracts.\n// Currently the Shared Mutable does not support this. We can adapt SharedMutable at a later date\nimpl<T, INITIAL_DELAY> SharedMutablePrivateGetter<T, INITIAL_DELAY> where T: FromField + ToField + Eq {\n pub fn new(\n context: &mut PrivateContext,\n other_contract_address: AztecAddress,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n assert(other_contract_address.to_field() != 0, \"Other contract address cannot be 0\");\n Self { context, other_contract_address, storage_slot }\n }\n\n pub fn get_value_in_private(self, header: Header) -> T {\n // We create a dummy SharedMutable state variable so that we can reuse its historical_read_from_public_storage\n // method, greatly reducing code duplication. \n let dummy: SharedMutable<T, INITIAL_DELAY, ()> = SharedMutable::new((), self.storage_slot);\n let (value_change, delay_change, historical_block_number) = dummy.historical_read_from_public_storage(header, self.other_contract_address);\n\n let effective_minimum_delay = delay_change.get_effective_minimum_delay_at(historical_block_number);\n let block_horizon = value_change.get_block_horizon(historical_block_number, effective_minimum_delay);\n\n // If our context has the same header as the one we pass in via the parameter, we are trying to read the \"current\" value\n // and thus need to set the tx max block number below. If the context header is not the same as the one we pass in, this means\n // we are trying to read a historical value and thus have no constraint on the max block number that this transaction can be included in.\n if (self.context.historical_header.global_variables.block_number.eq(header.global_variables.block_number)) {\n self.context.set_tx_max_block_number(block_horizon);\n }\n\n value_change.get_current_at(historical_block_number)\n }\n}\n"},"166":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/scheduled_value_change.nr","source":"use dep::protocol_types::traits::{Serialize, Deserialize, FromField, ToField};\nuse std::cmp::min;\n\nmod test;\n\n// This data structure is used by SharedMutable to represent a value that changes from `pre` to `post` at some block\n// called the `block_of_change`. The value can only be made to change by scheduling a change event at some future block\n// of change after some minimum delay measured in blocks has elapsed. This means that at any given block number we know\n// both the current value and the smallest block number at which the value might change - this is called the\n// 'block horizon'.\nstruct ScheduledValueChange<T> {\n pre: T,\n post: T,\n // Block at which `post` value is used instead of `pre`\n block_of_change: u32,\n}\n\nimpl<T> ScheduledValueChange<T> {\n pub fn new(pre: T, post: T, block_of_change: u32) -> Self {\n Self { pre, post, block_of_change }\n }\n\n /// Returns the value stored in the data structure at a given block. This function can be called both in public\n /// (where `block_number` is simply the current block number, i.e. the number of the block in which the current\n /// transaction will be included) and in private (where `block_number` is the historical block number that is used\n /// to construct the proof).\n /// Reading in private is only safe if the transaction's `max_block_number` property is set to a value lower or\n /// equal to the block horizon (see `get_block_horizon()`).\n pub fn get_current_at(self, block_number: u32) -> T {\n // The post value becomes the current one at the block of change. This means different things in each realm:\n // - in public, any transaction that is included in the block of change will use the post value\n // - in private, any transaction that includes the block of change as part of the historical state will use the\n // post value (barring any follow-up changes)\n\n if block_number < self.block_of_change {\n self.pre\n } else {\n self.post\n }\n }\n\n /// Returns the scheduled change, i.e. the post-change value and the block at which it will become the current\n /// value. Note that this block may be in the past if the change has already taken place.\n /// Additionally, further changes might be later scheduled, potentially canceling the one returned by this function.\n pub fn get_scheduled(self) -> (T, u32) {\n (self.post, self.block_of_change)\n }\n\n /// Returns the largest block number at which the value returned by `get_current_at` is known to remain the current\n /// value. This value is only meaningful in private when constructing a proof at some `historical_block_number`,\n /// since due to its asynchronous nature private execution cannot know about any later scheduled changes.\n /// The caller of this function must know how quickly the value can change due to a scheduled change in the form of\n /// `minimum_delay`. If the delay itself is immutable, then this is just its duration. If the delay is mutable\n /// however, then this value is the 'effective minimum delay' (obtained by calling\n /// `ScheduledDelayChange.get_effective_minimum_delay_at`), which equals the minimum number of blocks that need to\n /// elapse from the next block until the value changes, regardless of further delay changes.\n /// The value returned by `get_current_at` in private when called with a historical block number is only safe to use\n /// if the transaction's `max_block_number` property is set to a value lower or equal to the block horizon computed\n /// using the same historical block number.\n pub fn get_block_horizon(self, historical_block_number: u32, minimum_delay: u32) -> u32 {\n // The block horizon is the very last block in which the current value is known. Any block past the horizon\n // (i.e. with a block number larger than the block horizon) may have a different current value. Reading the\n // current value in private typically requires constraining the maximum valid block number to be equal to the\n // block horizon.\n\n if historical_block_number >= self.block_of_change {\n // Once the block of change has been mined, the current value (post) will not change unless a new value\n // change is scheduled. This did not happen at the historical block number (or else it would not be\n // greater or equal to the block of change), and therefore could only happen after the historical block\n // number. The earliest would be the immediate next block, and so the smallest possible next block of change\n // equals `historical_block_number + 1 + minimum_delay`. Our block horizon is simply the previous block to\n // that one.\n //\n // block of historical\n // change block block horizon\n // =======|=============N===================H===========>\n // ^ ^\n // ---------------------\n // minimum delay\n\n historical_block_number + minimum_delay\n } else {\n // If the block of change has not yet been mined however, then there are two possible scenarios.\n // a) It could be so far into the future that the block horizon is actually determined by the minimum\n // delay, because a new change could be scheduled and take place _before_ the currently scheduled one.\n // This is similar to the scenario where the block of change is in the past: the time horizon is the\n // block prior to the earliest one in which a new block of change might land.\n //\n // historical\n // block block horizon block of change\n // =====N=================================H=================|=========>\n // ^ ^\n // | |\n // -----------------------------------\n // minimum delay\n //\n // b) It could be fewer than `minimum_delay` blocks away from the historical block number, in which case\n // the block of change would become the limiting factor for the time horizon, which would equal the\n // block right before the block of change (since by definition the value changes at the block of\n // change).\n //\n // historical block horizon\n // block block of change if not scheduled\n // =======N=============|===================H=================>\n // ^ ^ ^\n // | actual horizon |\n // -----------------------------------\n // minimum delay\n //\n // Note that the current implementation does not allow the caller to set the block of change to an arbitrary\n // value, and therefore scenario a) is not currently possible. However implementing #5501 would allow for\n // this to happen.\n\n // Because historical_block_number < self.block_of_change, then block_of_change > 0 and we can safely\n // subtract 1.\n min(\n self.block_of_change - 1,\n historical_block_number + minimum_delay\n )\n }\n }\n\n /// Mutates the value by scheduling a change at the current block number. This function is only meaningful when\n /// called in public with the current block number.\n pub fn schedule_change(\n &mut self,\n new_value: T,\n current_block_number: u32,\n minimum_delay: u32,\n block_of_change: u32\n ) {\n assert(block_of_change >= current_block_number + minimum_delay);\n\n self.pre = self.get_current_at(current_block_number);\n self.post = new_value;\n self.block_of_change = block_of_change;\n }\n}\n\nimpl<T> Serialize<3> for ScheduledValueChange<T> where T: ToField {\n fn serialize(self) -> [Field; 3] {\n [self.pre.to_field(), self.post.to_field(), self.block_of_change.to_field()]\n }\n}\n\nimpl<T> Deserialize<3> for ScheduledValueChange<T> where T: FromField {\n fn deserialize(input: [Field; 3]) -> Self {\n Self {\n pre: FromField::from_field(input[0]),\n post: FromField::from_field(input[1]),\n block_of_change: FromField::from_field(input[2]),\n }\n }\n}\n\nimpl<T> Eq for ScheduledValueChange<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n (self.pre == other.pre) & (self.post == other.post) & (self.block_of_change == other.block_of_change)\n }\n}\n"},"167":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_mutable/shared_mutable.nr","source":"use dep::protocol_types::{\n hash::{pedersen_hash, poseidon2_hash}, header::Header, address::AztecAddress,\n traits::{FromField, ToField}\n};\n\nuse crate::context::{PrivateContext, PublicContext, UnconstrainedContext};\nuse crate::state_vars::{\n storage::Storage,\n shared_mutable::{scheduled_value_change::ScheduledValueChange, scheduled_delay_change::ScheduledDelayChange}\n};\nuse crate::oracle::storage::storage_read;\nuse dep::std::unsafe::zeroed;\n\nmod test;\n\nstruct SharedMutable<T, let INITIAL_DELAY: u32, Context> {\n context: Context,\n storage_slot: Field,\n}\n\n// This will make the Aztec macros require that T implements the Serialize<N> trait, and allocate N storage slots to\n// this state variable. This is incorrect, since what we actually store is:\n// - a ScheduledValueChange<T>, which requires 1 + 2 * M storage slots, where M is the serialization length of T\n// - a ScheduledDelayChange, which requires another storage slot\n//\n// TODO https://github.com/AztecProtocol/aztec-packages/issues/5736: change the storage allocation scheme so that we\n// can actually use it here\nimpl<T, let INITIAL_DELAY: u32, Context> Storage<T> for SharedMutable<T, INITIAL_DELAY, Context> {}\n\n// TODO: extract into a utils module once we can do arithmetic on generics, i.e. https://github.com/noir-lang/noir/issues/4784\nfn concat_arrays<let N: u32, let M: u32, let O: u32>(arr_n: [Field; N], arr_m: [Field; M]) -> [Field; O] {\n assert_eq(N + M, O);\n let mut out: [Field; O] = [0; O];\n for i in 0..N {\n out[i] = arr_n[i];\n }\n for i in 0..M {\n out[N+i] = arr_m[i];\n }\n out\n}\n\n// SharedMutable<T> stores a value of type T that is:\n// - publicly known (i.e. unencrypted)\n// - mutable in public\n// - readable in private with no contention (i.e. multiple parties can all read the same value without blocking one\n// another nor needing to coordinate)\n// This is famously a hard problem to solve. SharedMutable makes it work by introducing a delay to public mutation:\n// the value is not changed immediately but rather a value change is scheduled to happen in the future after some delay\n// measured in blocks. Reads in private are only valid as long as they are included in a block not too far into the\n// future, so that they can guarantee the value will not have possibly changed by then (because of the delay).\n// The delay for changing a value is initially equal to INITIAL_DELAY, but can be changed by calling\n// `schedule_delay_change`.\nimpl<T, let INITIAL_DELAY: u32, Context> SharedMutable<T, INITIAL_DELAY, Context> where T: ToField + FromField + Eq {\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n\n fn hash_scheduled_data(\n value_change: ScheduledValueChange<T>,\n delay_change: ScheduledDelayChange<INITIAL_DELAY>\n ) -> Field {\n // TODO(#5491 and https://github.com/noir-lang/noir/issues/4784): update this so that we don't need to rely on\n // ScheduledValueChange serializing to 3 and ScheduledDelayChange serializing to 1\n let concatenated: [Field; 4] = concat_arrays(value_change.serialize(), delay_change.serialize());\n poseidon2_hash(concatenated)\n }\n\n // Since we can't rely on the native storage allocation scheme, we hash the storage slot to get a unique location in\n // which we can safely store as much data as we need.\n // See https://github.com/AztecProtocol/aztec-packages/issues/5492 and\n // https://github.com/AztecProtocol/aztec-packages/issues/5736\n // We store three things in public storage:\n // - a ScheduledValueChange\n // - a ScheduledDelaChange\n // - the hash of both of these (via `hash_scheduled_data`)\n fn get_value_change_storage_slot(self) -> Field {\n pedersen_hash([self.storage_slot, 0], 0)\n }\n\n fn get_delay_change_storage_slot(self) -> Field {\n pedersen_hash([self.storage_slot, 1], 0)\n }\n\n fn get_hash_storage_slot(self) -> Field {\n pedersen_hash([self.storage_slot, 2], 0)\n }\n\n // It may seem odd that we take a header and address instead of reading from e.g. a PrivateContext, but this lets us\n // reuse this function in SharedMutablePrivateGetter.\n fn historical_read_from_public_storage(\n self,\n header: Header,\n address: AztecAddress\n ) -> (ScheduledValueChange<T>, ScheduledDelayChange<INITIAL_DELAY>, u32) {\n let historical_block_number = header.global_variables.block_number as u32;\n\n // We could simply produce historical inclusion proofs for both the ScheduledValueChange and\n // ScheduledDelayChange, but that'd require one full sibling path per storage slot (since due to kernel siloing\n // the storage is not contiguous), and in the best case in which T is a single field that'd be 4 slots.\n // Instead, we get an oracle to provide us the correct values for both the value and delay changes, and instead\n // prove inclusion of their hash, which is both a much smaller proof (a single slot), and also independent of\n // the size of T.\n let (value_change_hint, delay_change_hint) = get_public_storage_hints(address, self.storage_slot, historical_block_number);\n\n // Ideally the following would be simply public_storage::read_historical, but we can't implement that yet.\n let hash = header.public_storage_historical_read(self.get_hash_storage_slot(), address);\n\n // @todo This is written strangely to bypass a formatting issue with the if that is breaking ci.\n let (a, b, c) = if hash != 0 {\n let a = SharedMutable::hash_scheduled_data(value_change_hint, delay_change_hint);\n (a, value_change_hint, delay_change_hint)\n } else {\n // The hash slot can only hold a zero if it is uninitialized, meaning no value or delay change was ever\n // scheduled. Therefore, the hints must then correspond to uninitialized scheduled changes.\n let b = ScheduledValueChange::deserialize(zeroed());\n let c = ScheduledDelayChange::deserialize(zeroed());\n (hash, b, c)\n };\n\n assert_eq(hash, a, \"Hint values do not match hash\");\n assert_eq(value_change_hint, b, \"Non-zero value change for zero hash\");\n assert_eq(delay_change_hint, c, \"Non-zero delay change for zero hash\");\n\n (value_change_hint, delay_change_hint, historical_block_number)\n }\n}\n\nimpl<T, let INITIAL_DELAY: u32> SharedMutable<T, INITIAL_DELAY, &mut PublicContext> where T: ToField + FromField + Eq {\n pub fn schedule_value_change(self, new_value: T) {\n let mut value_change = self.read_value_change();\n let delay_change = self.read_delay_change();\n\n let block_number = self.context.block_number() as u32;\n let current_delay = delay_change.get_current(block_number);\n\n // TODO: make this configurable\n // https://github.com/AztecProtocol/aztec-packages/issues/5501\n let block_of_change = block_number + current_delay;\n value_change.schedule_change(new_value, block_number, current_delay, block_of_change);\n\n self.write(value_change, delay_change);\n }\n\n pub fn schedule_delay_change(self, new_delay: u32) {\n let mut delay_change = self.read_delay_change();\n\n let block_number = self.context.block_number() as u32;\n\n delay_change.schedule_change(new_delay, block_number);\n\n self.write(self.read_value_change(), delay_change);\n }\n\n pub fn get_current_value_in_public(self) -> T {\n let block_number = self.context.block_number() as u32;\n self.read_value_change().get_current_at(block_number)\n }\n\n pub fn get_current_delay_in_public(self) -> u32 {\n let block_number = self.context.block_number() as u32;\n self.read_delay_change().get_current(block_number)\n }\n\n pub fn get_scheduled_value_in_public(self) -> (T, u32) {\n self.read_value_change().get_scheduled()\n }\n\n pub fn get_scheduled_delay_in_public(self) -> (u32, u32) {\n self.read_delay_change().get_scheduled()\n }\n\n fn read_value_change(self) -> ScheduledValueChange<T> {\n self.context.storage_read(self.get_value_change_storage_slot())\n }\n\n fn read_delay_change(self) -> ScheduledDelayChange<INITIAL_DELAY> {\n self.context.storage_read(self.get_delay_change_storage_slot())\n }\n\n fn write(\n self,\n value_change: ScheduledValueChange<T>,\n delay_change: ScheduledDelayChange<INITIAL_DELAY>\n ) {\n // Whenever we write to public storage, we write both the value change and delay change as well as the hash of\n // them both. This guarantees that the hash is always kept up to date.\n // While this makes for more costly writes, it also makes private proofs much simpler because they only need to\n // produce a historical proof for the hash, which results in a single inclusion proof (as opposed to 4 in the\n // best case scenario in which T is a single field). Private shared mutable reads are assumed to be much more\n // frequent than public writes, so this tradeoff makes sense.\n self.context.storage_write(self.get_value_change_storage_slot(), value_change);\n self.context.storage_write(self.get_delay_change_storage_slot(), delay_change);\n self.context.storage_write(\n self.get_hash_storage_slot(),\n SharedMutable::hash_scheduled_data(value_change, delay_change)\n );\n }\n}\n\nimpl<T, let INITIAL_DELAY: u32> SharedMutable<T, INITIAL_DELAY, &mut PrivateContext> where T: ToField + FromField + Eq {\n pub fn get_current_value_in_private(self) -> T {\n // When reading the current value in private we construct a historical state proof for the public value.\n // However, since this value might change, we must constrain the maximum transaction block number as this proof\n // will only be valid for however many blocks we can ensure the value will not change, which will depend on the\n // current delay and any scheduled delay changes.\n\n let (value_change, delay_change, historical_block_number) = self.historical_read_from_public_storage(self.context.get_header(), self.context.this_address());\n\n // We use the effective minimum delay as opposed to the current delay at the historical block as this one also\n // takes into consideration any scheduled delay changes.\n // For example, consider a scenario in which at block 200 the current delay was 50. We may naively think that\n // the earliest we could change the value would be at block 251 by scheduling immediately after the historical\n // block, i.e. at block 201. But if there was a delay change scheduled for block 210 to reduce the delay to 20\n // blocks, then if a value change was scheduled at block 210 it would go into effect at block 230, which is\n // earlier than what we'd expect if we only considered the current delay.\n let effective_minimum_delay = delay_change.get_effective_minimum_delay_at(historical_block_number);\n let block_horizon = value_change.get_block_horizon(historical_block_number, effective_minimum_delay);\n\n // We prevent this transaction from being included in any block after the block horizon, ensuring that the\n // historical public value matches the current one, since it can only change after the horizon.\n self.context.set_tx_max_block_number(block_horizon);\n value_change.get_current_at(historical_block_number)\n }\n}\n\nimpl<T, let INITIAL_DELAY: u32> SharedMutable<T, INITIAL_DELAY, UnconstrainedContext> where T: ToField + FromField + Eq {\n unconstrained pub fn get_current_value_in_unconstrained(self) -> T {\n let block_number = self.context.block_number() as u32;\n self.read_value_change().get_current_at(block_number)\n }\n\n unconstrained fn read_value_change(self) -> ScheduledValueChange<T> {\n self.context.storage_read(self.get_value_change_storage_slot())\n }\n}\n\nunconstrained fn get_public_storage_hints<T, let INITIAL_DELAY: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> (ScheduledValueChange<T>, ScheduledDelayChange<INITIAL_DELAY>) where T: ToField + FromField + Eq {\n // This function cannot be part of the &mut PrivateContext impl because that'd mean that by passing `self` we'd also\n // be passing a mutable reference to an unconstrained function, which is not allowed. We therefore create a dummy\n // state variable here so that we can access the methods to compute storage slots. This will all be removed in the\n // future once we do proper storage slot allocation (#5492).\n let dummy: SharedMutable<T, INITIAL_DELAY, ()> = SharedMutable::new((), storage_slot);\n\n (\n storage_read(address, dummy.get_value_change_storage_slot(), block_number), storage_read(address, dummy.get_delay_change_storage_slot(), block_number)\n )\n}\n"},"169":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::pedersen_hash};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n pedersen_hash(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier, 0);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot)\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"171":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is greater than the curve's order minus 1 divided by 2.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"189":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"201":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_leaf_preimage.nr","source":"global NULLIFIER_LEAF_PREIMAGE_LENGTH: u32 = 3;\n\nuse crate::{\n abis::{read_request::ScopedReadRequest, side_effect::Readable}, hash::compute_siloed_nullifier,\n merkle_tree::leaf_preimage::{LeafPreimage, IndexedTreeLeafPreimage}, traits::{Empty, Hash}\n};\n\nstruct NullifierLeafPreimage {\n nullifier : Field,\n next_nullifier :Field,\n next_index : u32,\n}\n\nimpl Empty for NullifierLeafPreimage {\n fn empty() -> Self {\n Self {\n nullifier : 0,\n next_nullifier : 0,\n next_index : 0,\n }\n }\n}\n\nimpl Hash for NullifierLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n std::hash::pedersen_hash(self.serialize())\n }\n }\n}\n\nimpl LeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl IndexedTreeLeafPreimage for NullifierLeafPreimage {\n fn get_key(self) -> Field {\n self.nullifier\n }\n\n fn get_next_key(self) -> Field {\n self.next_nullifier\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl Readable for NullifierLeafPreimage {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n let siloed_value = compute_siloed_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.nullifier, siloed_value, \"Value of the nullifier leaf does not match read request\");\n }\n}\n\nimpl NullifierLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.nullifier == 0) & (self.next_nullifier == 0) & (self.next_index == 0)\n }\n\n pub fn serialize(self) -> [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH] {\n [self.nullifier, self.next_nullifier, self.next_index as Field]\n }\n\n pub fn deserialize(fields: [Field; NULLIFIER_LEAF_PREIMAGE_LENGTH]) -> Self {\n Self { nullifier: fields[0], next_nullifier: fields[1], next_index: fields[2] as u32 }\n }\n}\n\nimpl Eq for NullifierLeafPreimage {\n fn eq(self, other: Self) -> bool {\n (self.nullifier == other.nullifier) &\n (self.next_nullifier == other.next_nullifier) &\n (self.next_index == other.next_index)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NullifierLeafPreimage::empty();\n let serialized = item.serialize();\n let deserialized = NullifierLeafPreimage::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"224":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr","source":"use crate::{constants::MAX_BLOCK_NUMBER_LENGTH, traits::{Deserialize, Serialize, Empty}};\n\nstruct MaxBlockNumber {\n _opt: Option<u32>\n}\n\nimpl Empty for MaxBlockNumber {\n fn empty() -> Self {\n Self { _opt: Option::none() }\n }\n}\n\nimpl Eq for MaxBlockNumber {\n fn eq(self, other: Self) -> bool {\n self._opt == other._opt\n }\n}\n\nimpl Serialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn serialize(self) -> [Field; MAX_BLOCK_NUMBER_LENGTH] {\n [self._opt._is_some as Field, self._opt._value as Field]\n }\n}\n\nimpl Deserialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn deserialize(serialized: [Field; MAX_BLOCK_NUMBER_LENGTH]) -> MaxBlockNumber {\n MaxBlockNumber {\n _opt: Option {\n _is_some: serialized[0] as bool,\n _value: serialized[1] as u32,\n }\n }\n }\n}\n\nimpl MaxBlockNumber {\n pub fn new(max_block_number: u32) -> Self {\n Self { _opt: Option::some(max_block_number) }\n }\n\n pub fn is_none(self) -> bool {\n self._opt.is_none()\n }\n\n pub fn is_some(self) -> bool {\n self._opt.is_some()\n }\n\n pub fn unwrap(self) -> u32 {\n self._opt.unwrap()\n }\n\n pub fn unwrap_unchecked(self) -> u32 {\n self._opt.unwrap_unchecked()\n }\n\n pub fn min(lhs: MaxBlockNumber, rhs: MaxBlockNumber) -> MaxBlockNumber {\n if rhs.is_none() {\n lhs // lhs might also be none, but in that case both would be\n } else {\n MaxBlockNumber::min_with_u32(lhs, rhs.unwrap_unchecked())\n }\n }\n\n pub fn min_with_u32(lhs: MaxBlockNumber, rhs: u32) -> MaxBlockNumber {\n if lhs._opt.is_none() {\n MaxBlockNumber::new(rhs)\n } else {\n let lhs_value = lhs._opt.unwrap_unchecked();\n\n MaxBlockNumber::new(if lhs_value < rhs { lhs_value } else { rhs })\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = MaxBlockNumber::empty();\n let serialized = item.serialize();\n let deserialized = MaxBlockNumber::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn zeroed_is_none() {\n // Large parts of the kernel rely on zeroed to initialize structs. This conveniently matches what `default` does,\n // and though we should eventually move everything to use `default`, it's good to check for now that both are\n // equivalent.\n let a = MaxBlockNumber::empty();\n assert(a.is_none());\n}\n\n#[test]\nfn serde_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert(b.is_none());\n}\n\n#[test]\nfn serde_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert_eq(b.unwrap(), 13);\n}\n\n#[test(should_fail)]\nfn default_unwrap_panics() {\n let a = MaxBlockNumber::empty();\n let _ = a.unwrap();\n}\n\n#[test]\nfn min_default_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::empty();\n\n assert(MaxBlockNumber::min(a, b).is_none());\n}\n\n#[test]\nfn min_default_some() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::new(13);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_some_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::new(42);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_with_u32_default() {\n let a = MaxBlockNumber::empty();\n let b = 42;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 42);\n}\n\n#[test]\nfn min_with_u32_some() {\n let a = MaxBlockNumber::new(13);\n let b = 42;\n let c = 8;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min_with_u32(a, c).unwrap(), 8);\n}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"236":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n"},"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"},"245":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n std::hash::pedersen_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"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"},"253":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"254":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\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"},"280":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"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"},"299":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::pedersen_hash, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n pedersen_hash(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"300":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::pedersen_hash, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n pedersen_hash(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\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"},"34":{"path":"std/merkle.nr","source":"// Regular merkle tree means a append-only merkle tree (Explain why this is the only way to have privacy and alternatives if you don't want it)\n// Currently we assume that it is a binary tree, so depth k implies a width of 2^k\n// XXX: In the future we can add an arity parameter\n// Returns the merkle root of the tree from the provided leaf, its hashpath, using a pedersen hash function.\npub fn compute_merkle_root<let N: u32>(leaf: Field, index: Field, hash_path: [Field; N]) -> Field {\n let n = hash_path.len();\n let index_bits = index.to_le_bits(n as u32);\n let mut current = leaf;\n for i in 0..n {\n let path_bit = index_bits[i] as bool;\n let (hash_left, hash_right) = if path_bit {\n (hash_path[i], current)\n } else {\n (current, hash_path[i])\n };\n current = crate::hash::pedersen_hash([hash_left, hash_right]);\n }\n current\n}\n"},"359":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/main.nr","source":"mod ecdsa_public_key_note;\n\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteGetterOptions, PrivateContext, PrivateImmutable};\n use dep::aztec::encrypted_logs::encrypted_note_emission::encode_and_encrypt_note;\n\n use dep::aztec::protocol_types::abis::call_context::CallContext;\n use dep::std;\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[aztec(storage)]\n struct Storage {\n public_key: PrivateImmutable<EcdsaPublicKeyNote>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let header = context.get_header();\n let this_npk_m_hash = header.get_npk_m_hash(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_npk_m_hash);\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note(&mut context, this, this));\n }\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(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes(32).as_array();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n}\n"},"360":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_account_contract/src/ecdsa_public_key_note.nr","source":"use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteInterface, NoteGetterOptions, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_consumption, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash}\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n// ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN: Field = 5 * 32 + 64;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN, ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn compute_note_hash_and_nullifier(self, context: &mut PrivateContext) -> (Field, Field) {\n let note_hash_for_nullify = compute_note_hash_for_consumption(self);\n let secret = context.request_nsk_app(self.npk_m_hash);\n let nullifier = poseidon2_hash([\n note_hash_for_nullify,\n secret,\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n ]);\n (note_hash_for_nullify, nullifier)\n }\n\n fn compute_note_hash_and_nullifier_without_context(self) -> (Field, Field) {\n let note_hash_for_nullify = compute_note_hash_for_consumption(self);\n let secret = get_nsk_app(self.npk_m_hash);\n let nullifier = poseidon2_hash([\n note_hash_for_nullify,\n secret,\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n ]);\n (note_hash_for_nullify, nullifier)\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"4":{"path":"std/cmp.nr","source":"// docs:start:eq-trait\ntrait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\nimpl Eq for Field { fn eq(self, other: Field) -> bool { self == other } }\n\nimpl Eq for u64 { fn eq(self, other: u64) -> bool { self == other } }\nimpl Eq for u32 { fn eq(self, other: u32) -> bool { self == other } }\nimpl Eq for u8 { fn eq(self, other: u8) -> bool { self == other } }\nimpl Eq for u1 { fn eq(self, other: u1) -> bool { self == other } }\n\nimpl Eq for i8 { fn eq(self, other: i8) -> bool { self == other } }\nimpl Eq for i32 { fn eq(self, other: i32) -> bool { self == other } }\nimpl Eq for i64 { fn eq(self, other: i64) -> bool { self == other } }\n\nimpl Eq for () { fn eq(_self: Self, _other: ()) -> bool { true } }\nimpl Eq for bool { fn eq(self, other: bool) -> bool { self == other } }\n\nimpl<T, let N: u32> Eq for [T; N] where T: Eq {\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0 .. self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T] where T: Eq {\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n for i in 0 .. self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B) where A: Eq, B: Eq {\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C) where A: Eq, B: Eq, C: Eq {\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D) where A: Eq, B: Eq, C: Eq, D: Eq {\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E) where A: Eq, B: Eq, C: Eq, D: Eq, E: Eq {\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3) & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\nstruct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n// docs:start:ord-trait\ntrait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else {\n if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N] where T: Ord {\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0 .. self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T] where T: Ord {\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let mut result = self.len().cmp(other.len());\n for i in 0 .. self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B) where A: Ord, B: Ord {\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C) where A: Ord, B: Ord, C: Ord {\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D) where A: Ord, B: Ord, C: Ord, D: Ord {\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E) where A: Ord, B: Ord, C: Ord, D: Ord, E: Ord {\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T where T: Ord {\n if v1 > v2 { v1 } else { v2 }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T where T: Ord {\n if v1 > v2 { v2 } else { v1 }\n}\n\nmod cmp_tests {\n use crate::cmp::{min, max};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0 as u64, 1 as u64), 0);\n assert_eq(min(0 as u64, 0 as u64), 0);\n assert_eq(min(1 as u64, 1 as u64), 1);\n assert_eq(min(255 as u8, 0 as u8), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0 as u64, 1 as u64), 1);\n assert_eq(max(0 as u64, 0 as u64), 0);\n assert_eq(max(1 as u64, 1 as u64), 1);\n assert_eq(max(255 as u8, 0 as u8), 255);\n }\n}\n"},"43":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::unsafe::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"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"},"52":{"path":"std/uint128.nr","source":"use crate::ops::{Add, Sub, Mul, Div, Rem, Not, BitOr, BitAnd, BitXor, Shl, Shr};\nuse crate::cmp::{Eq, Ord, Ordering};\nuse crate::println;\n\nglobal pow64 : Field = 18446744073709551616; //2^64;\nglobal pow63 : Field = 9223372036854775808; // 2^63;\nstruct U128 {\n lo: Field,\n hi: Field,\n}\n\nimpl U128 {\n\n pub fn from_u64s_le(lo: u64, hi: u64) -> U128 {\n // in order to handle multiplication, we need to represent the product of two u64 without overflow\n assert(crate::field::modulus_num_bits() as u32 > 128);\n U128 { lo: lo as Field, hi: hi as Field }\n }\n\n pub fn from_u64s_be(hi: u64, lo: u64) -> U128 {\n U128::from_u64s_le(lo, hi)\n }\n\n pub fn zero() -> U128 {\n U128 { lo: 0, hi: 0 }\n }\n\n pub fn one() -> U128 {\n U128 { lo: 1, hi: 0 }\n }\n pub fn from_le_bytes(bytes: [u8; 16]) -> U128 {\n let mut lo = 0;\n let mut base = 1;\n for i in 0..8 {\n lo += (bytes[i] as Field)*base;\n base *= 256;\n }\n let mut hi = 0;\n base = 1;\n for i in 8..16 {\n hi += (bytes[i] as Field)*base;\n base *= 256;\n }\n U128 { lo, hi }\n }\n\n pub fn to_be_bytes(self: Self) -> [u8; 16] {\n let lo = self.lo.to_be_bytes(8);\n let hi = self.hi.to_be_bytes(8);\n let mut bytes = [0; 16];\n for i in 0..8 {\n bytes[i] = hi[i];\n bytes[i+8] = lo[i];\n }\n bytes\n }\n\n pub fn to_le_bytes(self: Self) -> [u8; 16] {\n let lo = self.lo.to_le_bytes(8);\n let hi = self.hi.to_le_bytes(8);\n let mut bytes = [0; 16];\n for i in 0..8 {\n bytes[i] = lo[i];\n bytes[i+8] = hi[i];\n }\n bytes\n }\n\n pub fn from_hex<let N: u32>(hex: str<N>) -> U128 {\n let N = N as u32;\n let bytes = hex.as_bytes();\n // string must starts with \"0x\"\n assert((bytes[0] == 48) & (bytes[1] == 120), \"Invalid hexadecimal string\");\n assert(N < 35, \"Input does not fit into a U128\");\n\n let mut lo = 0;\n let mut hi = 0;\n let mut base = 1;\n if N <= 18 {\n for i in 0..N - 2 {\n lo += U128::decode_ascii(bytes[N-i-1])*base;\n base = base*16;\n }\n } else {\n for i in 0..16 {\n lo += U128::decode_ascii(bytes[N-i-1])*base;\n base = base*16;\n }\n base = 1;\n for i in 17..N - 1 {\n hi += U128::decode_ascii(bytes[N-i])*base;\n base = base*16;\n }\n }\n U128 { lo: lo as Field, hi: hi as Field }\n }\n\n unconstrained fn uconstrained_check_is_upper_ascii(ascii: u8) -> bool {\n ((ascii >= 65) & (ascii <= 90)) // Between 'A' and 'Z'\n }\n\n fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else {\n let ascii = ascii + 32 * (U128::uconstrained_check_is_upper_ascii(ascii) as u8);\n assert(ascii >= 97); // enforce >= 'a'\n assert(ascii <= 102); // enforce <= 'f'\n ascii - 87\n } as Field\n }\n\n // TODO: Replace with a faster version. \n // A circuit that uses this function can be slow to compute\n // (we're doing up to 127 calls to compute the quotient)\n unconstrained fn unconstrained_div(self: Self, b: U128) -> (U128, U128) {\n if b == U128::zero() {\n // Return 0,0 to avoid eternal loop\n (U128::zero(), U128::zero())\n } else if self < b {\n (U128::zero(), self)\n } else if self == b {\n (U128::one(), U128::zero())\n } else {\n let (q,r) = if b.hi as u64 >= pow63 as u64 {\n // The result of multiplication by 2 would overflow\n (U128::zero(), self)\n } else {\n self.unconstrained_div(b * U128::from_u64s_le(2, 0))\n };\n let q_mul_2 = q * U128::from_u64s_le(2, 0);\n if r < b {\n (q_mul_2, r)\n } else {\n (q_mul_2 + U128::one(), r - b)\n }\n }\n }\n\n pub fn from_integer<T>(i: T) -> U128 {\n let f = crate::as_field(i);\n // Reject values which would overflow a u128\n f.assert_max_bit_size(128);\n let lo = f as u64 as Field;\n let hi = (f - lo) / pow64;\n U128 { lo, hi }\n }\n\n pub fn to_integer<T>(self) -> T {\n crate::from_field(self.lo + self.hi * pow64)\n }\n\n fn wrapping_mul(self: Self, b: U128) -> U128 {\n let low = self.lo * b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64;\n let high = self.lo * b.hi + self.hi * b.lo + carry;\n let hi = high as u64 as Field;\n U128 { lo, hi }\n }\n}\n\nimpl Add for U128 {\n fn add(self: Self, b: U128) -> U128 {\n let low = self.lo + b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64; \n let high = self.hi + b.hi + carry;\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to add with overflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Sub for U128 {\n fn sub(self: Self, b: U128) -> U128 {\n let low = pow64 + self.lo - b.lo;\n let lo = low as u64 as Field;\n let borrow = (low == lo) as Field;\n let high = self.hi - b.hi - borrow;\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to subtract with underflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Mul for U128 {\n fn mul(self: Self, b: U128) -> U128 {\n assert(self.hi*b.hi == 0, \"attempt to multiply with overflow\");\n let low = self.lo*b.lo;\n let lo = low as u64 as Field;\n let carry = (low - lo) / pow64;\n let high = if crate::field::modulus_num_bits() as u32 > 196 {\n (self.lo+self.hi)*(b.lo+b.hi) - low + carry\n } else {\n self.lo*b.hi + self.hi*b.lo + carry\n };\n let hi = high as u64 as Field;\n assert(hi == high, \"attempt to multiply with overflow\");\n U128 {\n lo,\n hi,\n }\n }\n}\n\nimpl Div for U128 {\n fn div(self: Self, b: U128) -> U128 {\n let (q,r) = self.unconstrained_div(b);\n let a = b * q + r;\n assert_eq(self, a);\n assert(r < b);\n q\n }\n}\n\nimpl Rem for U128 {\n fn rem(self: Self, b: U128) -> U128 {\n let (q,r) = self.unconstrained_div(b);\n let a = b * q + r;\n assert_eq(self, a);\n assert(r < b);\n r\n }\n}\n\nimpl Eq for U128 {\n fn eq(self: Self, b: U128) -> bool {\n (self.lo == b.lo) & (self.hi == b.hi)\n }\n}\n\nimpl Ord for U128 {\n fn cmp(self, other: Self) -> Ordering {\n let hi_ordering = (self.hi as u64).cmp((other.hi as u64));\n let lo_ordering = (self.lo as u64).cmp((other.lo as u64));\n \n if hi_ordering == Ordering::equal() {\n lo_ordering\n } else {\n hi_ordering\n }\n }\n}\n\nimpl Not for U128 { \n fn not(self) -> U128 {\n U128 {\n lo: (!(self.lo as u64)) as Field,\n hi: (!(self.hi as u64)) as Field\n }\n }\n}\n\nimpl BitOr for U128 { \n fn bitor(self, other: U128) -> U128 {\n U128 {\n lo: ((self.lo as u64) | (other.lo as u64)) as Field,\n hi: ((self.hi as u64) | (other.hi as u64)) as Field\n }\n }\n}\n\nimpl BitAnd for U128 {\n fn bitand(self, other: U128) -> U128 { \n U128 {\n lo: ((self.lo as u64) & (other.lo as u64)) as Field,\n hi: ((self.hi as u64) & (other.hi as u64)) as Field\n }\n }\n}\n\nimpl BitXor for U128 {\n fn bitxor(self, other: U128) -> U128 { \n U128 {\n lo: ((self.lo as u64) ^ (other.lo as u64)) as Field,\n hi: ((self.hi as u64) ^ (other.hi as u64)) as Field\n }\n }\n}\n\nimpl Shl for U128 { \n fn shl(self, other: u8) -> U128 { \n assert(other < 128, \"attempt to shift left with overflow\");\n let exp_bits = (other as Field).to_be_bits(7);\n\n let mut r: Field = 2;\n let mut y: Field = 1;\n for i in 1..8 {\n y = (exp_bits[7-i] as Field) * (r * y) + (1 - exp_bits[7-i] as Field) * y;\n r *= r;\n }\n self.wrapping_mul(U128::from_integer(y))\n } \n}\n\nimpl Shr for U128 { \n fn shr(self, other: u8) -> U128 { \n assert(other < 128, \"attempt to shift right with overflow\");\n let exp_bits = (other as Field).to_be_bits(7);\n\n let mut r: Field = 2;\n let mut y: Field = 1;\n for i in 1..8 {\n y = (exp_bits[7-i] as Field) * (r * y) + (1 - exp_bits[7-i] as Field) * y;\n r *= r;\n }\n self / U128::from_integer(y)\n } \n}\n\nmod tests {\n use crate::uint128::{U128, pow64, pow63};\n\n #[test]\n fn test_not(lo: u64, hi: u64) {\n let num = U128::from_u64s_le(lo, hi);\n let not_num = num.not();\n\n assert_eq(not_num.hi, (hi.not() as Field));\n assert_eq(not_num.lo, (lo.not() as Field));\n\n let not_not_num = not_num.not();\n assert_eq(num, not_not_num);\n }\n #[test]\n fn test_construction() {\n // Check little-endian u64 is inversed with big-endian u64 construction\n let a = U128::from_u64s_le(2, 1);\n let b = U128::from_u64s_be(1, 2);\n assert_eq(a, b);\n // Check byte construction is equivalent\n let c = U128::from_le_bytes([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);\n let d = U128::from_u64s_le(0x0706050403020100, 0x0f0e0d0c0b0a0908);\n assert_eq(c, d);\n }\n #[test]\n fn test_byte_decomposition() {\n let a = U128::from_u64s_le(0x0706050403020100, 0x0f0e0d0c0b0a0908);\n // Get big-endian and little-endian byte decompostions\n let le_bytes_a= a.to_le_bytes();\n let be_bytes_a= a.to_be_bytes();\n\n // Check equivalence\n for i in 0..16 {\n assert_eq(le_bytes_a[i], be_bytes_a[15 - i]);\n }\n // Reconstruct U128 from byte decomposition\n let b= U128::from_le_bytes(le_bytes_a);\n // Check that it's the same element\n assert_eq(a, b);\n }\n #[test]\n fn test_hex_constuction() {\n let a = U128::from_u64s_le(0x1, 0x2);\n let b = U128::from_hex(\"0x20000000000000001\");\n assert_eq(a, b);\n\n let c= U128::from_hex(\"0xffffffffffffffffffffffffffffffff\");\n let d= U128::from_u64s_le(0xffffffffffffffff, 0xffffffffffffffff);\n assert_eq(c, d);\n\n let e= U128::from_hex(\"0x00000000000000000000000000000000\");\n let f= U128::from_u64s_le(0, 0);\n assert_eq(e, f);\n }\n\n // Ascii decode tests\n\n #[test]\n fn test_ascii_decode_correct_range() {\n // '0'..'9' range\n for i in 0..10 {\n let decoded= U128::decode_ascii(48 + i);\n assert_eq(decoded, i as Field);\n }\n // 'A'..'F' range\n for i in 0..6 {\n let decoded = U128::decode_ascii(65 + i);\n assert_eq(decoded, (i + 10) as Field);\n }\n // 'a'..'f' range\n for i in 0..6 {\n let decoded = U128::decode_ascii(97 + i);\n assert_eq(decoded, (i + 10) as Field);\n }\n }\n\n #[test(should_fail)]\n fn test_ascii_decode_range_less_than_48_fails_0() {\n crate::println(U128::decode_ascii(0));\n }\n #[test(should_fail)]\n fn test_ascii_decode_range_less_than_48_fails_1() {\n crate::println(U128::decode_ascii(47));\n }\n\n #[test(should_fail)]\n fn test_ascii_decode_range_58_64_fails_0() {\n let _ = U128::decode_ascii(58);\n }\n #[test(should_fail)]\n fn test_ascii_decode_range_58_64_fails_1() {\n let _ = U128::decode_ascii(64);\n }\n #[test(should_fail)]\n fn test_ascii_decode_range_71_96_fails_0() {\n let _ = U128::decode_ascii(71);\n }\n #[test(should_fail)]\n fn test_ascii_decode_range_71_96_fails_1() {\n let _ = U128::decode_ascii(96);\n }\n #[test(should_fail)]\n fn test_ascii_decode_range_greater_than_102_fails() {\n let _ = U128::decode_ascii(103);\n }\n\n #[test(should_fail)]\n fn test_ascii_decode_regression() {\n // This code will actually fail because of ascii_decode,\n // but in the past it was possible to create a value > (1<<128)\n let a = U128::from_hex(\"0x~fffffffffffffffffffffffffffffff\");\n let b:Field= a.to_integer();\n let c= b.to_le_bytes(17);\n assert(c[16] != 0);\n }\n\n #[test]\n fn test_unconstrained_div() {\n // Test the potential overflow case\n let a= U128::from_u64s_le(0x0, 0xffffffffffffffff);\n let b= U128::from_u64s_le(0x0, 0xfffffffffffffffe);\n let c= U128::one();\n let d= U128::from_u64s_le(0x0, 0x1);\n let (q,r) = a.unconstrained_div(b);\n assert_eq(q, c);\n assert_eq(r, d);\n\n let a = U128::from_u64s_le(2, 0);\n let b = U128::one();\n // Check the case where a is a multiple of b\n let (c,d ) = a.unconstrained_div(b);\n assert_eq((c, d), (a, U128::zero()));\n\n // Check where b is a multiple of a\n let (c,d) = b.unconstrained_div(a);\n assert_eq((c, d), (U128::zero(), b));\n\n // Dividing by zero returns 0,0\n let a = U128::from_u64s_le(0x1, 0x0);\n let b = U128::zero();\n let (c,d)= a.unconstrained_div(b);\n assert_eq((c, d), (U128::zero(), U128::zero()));\n\n // Dividing 1<<127 by 1<<127 (special case)\n let a = U128::from_u64s_le(0x0, pow63 as u64);\n let b = U128::from_u64s_le(0x0, pow63 as u64);\n let (c,d )= a.unconstrained_div(b);\n assert_eq((c, d), (U128::one(), U128::zero()));\n }\n\n #[test]\n fn integer_conversions() {\n // Maximum\n let start:Field = 0xffffffffffffffffffffffffffffffff;\n let a = U128::from_integer(start);\n let end = a.to_integer();\n assert_eq(start, end);\n\n // Minimum\n let start:Field = 0x0;\n let a = U128::from_integer(start);\n let end = a.to_integer();\n assert_eq(start, end);\n\n // Low limb\n let start:Field = 0xffffffffffffffff;\n let a = U128::from_integer(start);\n let end = a.to_integer();\n assert_eq(start, end);\n\n // High limb\n let start:Field = 0xffffffffffffffff0000000000000000;\n let a = U128::from_integer(start);\n let end = a.to_integer();\n assert_eq(start, end);\n }\n\n #[test]\n fn integer_conversions_fuzz(lo: u64, hi: u64) {\n let start: Field = (lo as Field) + pow64 * (hi as Field);\n let a = U128::from_integer(start);\n let end = a.to_integer();\n assert_eq(start, end);\n }\n\n #[test]\n fn test_wrapping_mul() {\n // 1*0==0\n assert_eq(U128::zero(), U128::zero().wrapping_mul(U128::one()));\n\n // 0*1==0\n assert_eq(U128::zero(), U128::one().wrapping_mul(U128::zero()));\n\n // 1*1==1\n assert_eq(U128::one(), U128::one().wrapping_mul(U128::one()));\n\n // 0 * ( 1 << 64 ) == 0\n assert_eq(U128::zero(), U128::zero().wrapping_mul(U128::from_u64s_le(0, 1)));\n\n // ( 1 << 64 ) * 0 == 0\n assert_eq(U128::zero(), U128::from_u64s_le(0, 1).wrapping_mul(U128::zero()));\n\n // 1 * ( 1 << 64 ) == 1 << 64\n assert_eq(U128::from_u64s_le(0, 1), U128::from_u64s_le(0, 1).wrapping_mul(U128::one()));\n\n // ( 1 << 64 ) * 1 == 1 << 64\n assert_eq(U128::from_u64s_le(0, 1), U128::one().wrapping_mul(U128::from_u64s_le(0, 1)));\n\n // ( 1 << 64 ) * ( 1 << 64 ) == 1 << 64\n assert_eq(U128::zero(), U128::from_u64s_le(0, 1).wrapping_mul(U128::from_u64s_le(0, 1)));\n // -1 * -1 == 1\n assert_eq(\n U128::one(), U128::from_u64s_le(0xffffffffffffffff, 0xffffffffffffffff).wrapping_mul(U128::from_u64s_le(0xffffffffffffffff, 0xffffffffffffffff))\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"},"69":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/6061): make the func return Point struct directly\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn check_point_to_symmetric_key() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n // The following value gets updated when running encrypt_buffer.test.ts with AZTEC_GENERATE_TEST_DATA=1\n let expected_key = [\n 217, 245, 196, 116, 55, 39, 202, 184, 117, 231, 19, 56, 102, 254, 94, 14, 172, 169, 123, 96, 61, 247, 209, 140, 4, 132, 119, 222, 79, 1, 154, 136\n ];\n assert_eq(key, expected_key);\n}\n"},"70":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::PrivateContext,\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{public_keys::PublicKeys, constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}},\n state_vars::{shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter}\n};\n\nglobal DELAY = 5;\n\n// docs:start:key-getters\ntrait KeyGetters {\n fn get_npk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_ivpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_ovpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_tpk_m(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Point;\n fn get_npk_m_hash(header: Header, context: &mut PrivateContext, address: AztecAddress) -> Field;\n}\n\nimpl KeyGetters for Header {\n fn get_npk_m(self, context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_master_key(context, address, NULLIFIER_INDEX, self)\n }\n\n fn get_ivpk_m(self, context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_master_key(context, address, INCOMING_INDEX, self)\n }\n\n fn get_ovpk_m(self, context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_master_key(context, address, OUTGOING_INDEX, self)\n }\n\n fn get_tpk_m(self, context: &mut PrivateContext, address: AztecAddress) -> Point {\n get_master_key(context, address, TAGGING_INDEX, self)\n }\n\n fn get_npk_m_hash(self, context: &mut PrivateContext, address: AztecAddress) -> Field {\n get_master_key(context, address, NULLIFIER_INDEX, self).hash()\n }\n}\n// docs:end:key-getters\n\nfn get_master_key(\n context: &mut PrivateContext,\n address: AztecAddress,\n key_index: Field,\n header: Header\n) -> Point {\n let key = fetch_key_from_registry(context, key_index, address, header);\n if is_empty(key) {\n // Keys were not registered in registry yet --> fetch key from PXE\n let keys = fetch_and_constrain_keys(address);\n // Return the corresponding to index\n keys.get_key_by_index(key_index)\n } else {\n // Keys were registered --> return the key\n key\n }\n}\n\nfn fetch_key_from_registry(\n context: &mut PrivateContext,\n key_index: Field,\n address: AztecAddress,\n header: Header\n) -> Point {\n let x_coordinate_map_slot = key_index * 2 + 1;\n let y_coordinate_map_slot = x_coordinate_map_slot + 1;\n let x_coordinate_derived_slot = derive_storage_slot_in_map(x_coordinate_map_slot, address);\n let y_coordinate_derived_slot = derive_storage_slot_in_map(y_coordinate_map_slot, address);\n\n let x_coordinate_registry: SharedMutablePrivateGetter<Field, DELAY> = SharedMutablePrivateGetter::new(\n context,\n AztecAddress::from_field(CANONICAL_KEY_REGISTRY_ADDRESS),\n x_coordinate_derived_slot\n );\n let y_coordinate_registry: SharedMutablePrivateGetter<Field, DELAY> = SharedMutablePrivateGetter::new(\n context,\n AztecAddress::from_field(CANONICAL_KEY_REGISTRY_ADDRESS),\n y_coordinate_derived_slot\n );\n let x_coordinate = x_coordinate_registry.get_value_in_private(header);\n let y_coordinate = y_coordinate_registry.get_value_in_private(header);\n\n Point { x: x_coordinate, y: y_coordinate, is_infinite: false }\n}\n\n// Passes only when keys were not rotated - is expected to be called only when keys were not registered yet\nfn fetch_and_constrain_keys(address: AztecAddress) -> PublicKeys {\n let (public_keys, partial_address) = get_public_keys_and_partial_address(address);\n\n let computed_address = AztecAddress::compute(public_keys.hash(), partial_address);\n\n assert(computed_address.eq(address));\n\n public_keys\n}\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n"},"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"},"85":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::pedersen_hash, address::AztecAddress,\n header::Header, utils::field::full_field_less_than\n};\nuse std::merkle::compute_merkle_root;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header { \n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_value_leaf_slot = pedersen_hash(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_value_leaf_slot\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_value_leaf_slot);\n let is_next_greater_than = full_field_less_than(public_value_leaf_slot, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_value_leaf_slot, \"Public data slot doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == compute_merkle_root(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"},"86":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/nullifier_inclusion.nr","source":"use std::merkle::compute_merkle_root;\nuse dep::protocol_types::header::Header;\n\nuse crate::{\n context::PrivateContext, oracle::get_nullifier_membership_witness::get_nullifier_membership_witness,\n note::{utils::compute_siloed_nullifier, note_interface::NoteInterface}\n};\n\ntrait ProveNullifierInclusion {\n fn prove_nullifier_inclusion(header: Header, nullifier: Field);\n}\n\nimpl ProveNullifierInclusion for Header {\n fn prove_nullifier_inclusion(self, nullifier: Field) {\n // 1) Get the membership witness of the nullifier\n let witness = get_nullifier_membership_witness(self.global_variables.block_number as u32, nullifier);\n\n // 2) Check that the witness we obtained matches the nullifier\n assert(witness.leaf_preimage.nullifier == nullifier, \"Nullifier does not match value in witness\");\n\n // 3) Compute the nullifier tree leaf\n let nullifier_leaf = witness.leaf_preimage.hash();\n\n // 4) Prove that the nullifier is in the nullifier tree\n assert(\n self.state.partial.nullifier_tree.root\n == compute_merkle_root(nullifier_leaf, witness.index, witness.path), \"Proving nullifier inclusion failed\"\n );\n // --> Now we have traversed the trees all the way up to archive root and verified that the nullifier\n // was included in the nullifier tree.\n }\n}\n\ntrait ProveNoteIsNullified {\n fn prove_note_is_nullified<Note, N, M>(header: Header, note: Note, context: &mut PrivateContext) where Note: NoteInterface<N, M>;\n}\n\nimpl ProveNoteIsNullified for Header {\n // docs:start:prove_note_is_nullified\n fn prove_note_is_nullified<Note, N, M>(self, note: Note, context: &mut PrivateContext) where Note: NoteInterface<N, M> {\n let nullifier = compute_siloed_nullifier(note, context);\n\n self.prove_nullifier_inclusion(nullifier);\n }\n // docs:end:prove_note_is_nullified\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"}}}
|