@aztec/protocol-contracts 0.39.0 → 0.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- { "transpiled": true, "noir_version": "0.29.0+5b9b1fab51e35c2112c0136785b5b69cd8529a92", "name": "GasToken", "functions": [{ "name": "constructor", "is_unconstrained": true, "custom_attributes": ["aztec(public)", "aztec(initializer)"], "abi": { "error_types": {}, "param_witnesses": { "inputs": [{ "end": 40, "start": 0 }], "portal_address": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "portal_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress" }, "visibility": "private" }], "return_type": { "abi_type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "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", "debug_symbols": "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vhtCfTeE+m4I9d0Q6rsh1HdDqO+GUN8Nob47hPou8+8wRXzm22Pai7WY0Fq60FpcaC0htJYhtBbm72rrcx7CiPZiLVNnLcy/N/TlWkxoLV1oLS60lhBayxBaC7G/5OMzU57pf/3FX7uImH+d6IdXvnZdOfMvH/3bK/9lLcQ7wMjH51oer9ZiQmvpQmtxobWE0FqG0FpSaC1TaC1LZy3Mv3z05VqE+u4S6rtLqO8uob67hPruEuq7S6jvLqG+u3T6bns8dBrvczE6nfe5GJ3W+1yMTu99Lkan+T4Xo9N9n4vRab/Pxej03+didBrwczFKHbgpdeCm1IGbUgduSh24KXVgZmJsts/E2Gz5ajFDaTGptJiptJgltBhmbOzrxTSlxZjSYrrSYlxpMUod2JQ6sCl1YFPqwKbUgbtSB+5KHbgrdeCu1IG7UgfuSh24K3XgrtSBu1IH7kod2JU6sCt1YFfqwK7UgV2pA7tSB3alDuxKHdiVOrArdeBQ6sCh1IFDqQOHUgcOpQ4cSh04lDpwKHXgUOrAodSBh1IHHkodeCh14KHUgYdSBx5KHXgodeCh1IGHUgceSh04lTpwKnXgVOrAqdSBU6kDp1IHTqUOnEodOJU6cCp14KnUgadSB55KHXgqdeCp1IGnUgeeSh14KnXgqdSBp1IHXkodeCl14KXUgZdSB15KHXgpdeCl1IGXUgdeSh14CXXg9hDqwO0h1IHbQ6gDt4dQB37+lqy0GKEO3B5CHbg9hDpwewh14PZQ6sBNqQM3pQ7clDpwU+rATakDK2XimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXiTCkTZ0qZOFPK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KZPzSpmcV8rkvFIm55UyOa+UyXmlTM4rZXJeKZPzSpmcV8rkvFIm5zVlcl5TJuc1ZXJeUybnNR8qPXbK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvJZMzmvJ5LyWTM5ryeS81kOlxy6ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZWclz1Ucl7PlYj02OdKRHrscyUiPfa5kj/UY1ebHyvp9kdXEjIrGTIrSZmVTJmVLJWV/LGc14+upMmsBOixH2/p+Fscf0vgbxn4WxJ/y8TfsuC3IHmZj7c0/C24+oarb7j6hqtvuPqGq2+4+oar33H1O65+x9XvuPodV7/j6ndc/Y6r33H1O66+4+o7rr7j6juuvuPqO66+4+o7rr7j6juu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s76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461sw6+sPmPU939Lwtxj+lo6/xfG3BP6Wgb8l8bdM/C24+g1Xv+HqN1z9hqvfcPUbrn7D1W+4+g1Xv+HqG66+4eobrr7h6huuvuHqG66+4eobrr7h6ndc/Y6r33H1O65+x9XvuPodV7/j6ndc/Y6r77j6jqvvuPqOq++4+o6r77j6jqvvuPqOqx+4+oGrH7j6gasfuPqBqx+4+oGrH7j6gas/cPUHrv7A1R+4+gNXf+DqD1z9gas/cPUHrn7i6ieufuLqJ65+4uonrn7i6ieufuLqJ67+xNWfuPoTV3/i6k9c/YmrP3H1J67+xNWfuPoLV3/h6i9c/YWrv3D1F67+wtVfuPoLVx9nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNaXOOtLnPUlwvr+9l+9zlrmLy816/b56pUvXvyXv637y4v/8scW//qL1/z44Paw8fna1vxz5X3blfu2K49tVz62XXluu/K57crXritHfiMQW3nbduXb3kPbtvdQ5PcjsZVvew9t295D27b30LbtPbRtew+1be+htu091La9h9q291DkV3ixlW97D7Vt76G27T3Utr2H2rb30L7tPbRvew/t295D+7b3UMTLJLbybe+hfdt7aN/2Htq3vYf2be+hvu091Le9h/q291Df9h6KOELFVr7tPdS3vYf6tvdQ3/Ye6tveQ2Pbe2hsew+Nbe+hse09FPHVi61823tobHsPjW3vobHtPTS2vYeObe+hY9t76Nj2Hjq2vYci6SSxlW97Dx3b3kPHtvfQse09dGx7D81t76G57T00t72H5rb3UCTjKbbybe+hue09NLe9h+a299Dc9h46t72Hzm3voXPbe+jc9h6KJOXFVr7tPXRuew+d295D57b30LntPXRtew9d295D17b30LXtPRSZNyK28m3voWvbe+ja9h66tr2Hrl3vofOx6z10Pna9h85t5xTNbecUzceu99C57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corXtnKK17Zyite2corXtnKL12PUeuradU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7R2nVPkj13nFD1Xvuk99LnyTe+hz5Vveg99rnzTe+hz5ZveQ58r3/Qe+lz5pvfQ58o3vYc+V77tPXTXOUXPlW97D911TtFz5dveQ3edU/Rc+bb30F3nFD1Xvu09dNc5Rc+Vb3sP3XVO0XPl295Dd51T9Fz5tvfQXecUPVe+7T101zlFz5Vvew/ddU7Rc+Xb3kN3nVP0XPm299Bd5xQ9V77tPXTXOUXPlW97D911TtFz5dveQ3edU/Rc+bb30F3nFD1Xvu09dNc5Rc+Vb3sP3XVO0XPl295Dd51T9Fz5tvfQXecUPVe+7T101zlFz5Vvew/ddU7Rc+Xb3kN3nVP0XPm299Bd5xQ9V77tPXTXOUXPlW97D911TtFz5dveQ3ed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qmUUUy2jmGoZxVTLKE61jOJUyyhOtYziVMsozodYp55qGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxaWWUVxqGcWlllFcahnF9RDr1Esto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSyyjOB5iGcXngrQ69XNBWp36uSCtTv1ckFanfi5Iq1M/F6TVqZ8L0urUzwVpderngtQ6tVhG8bkgtU4tllF8LkitU4tlFJ8LUuvUYhnF54LUOrVYRvG5ILVOLZZRfC5IrVOLZRSfC1Lr1GIZxeeC1Dq1WEbxuSC1Ti2WUXwuSK1Ti2UUnwtS69RiGcXngtQ6tVhG8bkgtU4tllF8LkitU4tlFJ8LUuvUYhnF54LUOrVYRvG5ILVOLZZRfC5I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" }, { "name": "mint_public", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "amount": [{ "end": 42, "start": 41 }], "inputs": [{ "end": 40, "start": 0 }], "to": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }, { "name": "amount", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271] }, "bytecode": "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", "debug_symbols": "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68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta3f9s/76NP/emTZ62vz651vvms1edn/fnluZ5flYRMJSlTyZappGQqaZlKjkolv+0f7fFTK1kylZhMJTIZWzIZWzIZWzIZWzIZWzIZWzIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZe2Qy9shk7JHJ2COTsUcmY49Mxh6ZjD0yGXtkMvaoZGw9Khlbj0rG1qOSsfWoZGw9Khlbj0rG1qOSsfWoZGw9Khlbj0zGLpmMXTIZu2Qydslk7JLJ2CWTsUsmY5dMxi6ZjF0yGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGesyGesyGesyGesyGesyGesyGesyGesyGesyGesyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGbtlMnbLZOyWyVgZz6tkPK+S8bxKxvMqGc+rZDyvkvG8SsbzKhnPq2Q8r5LxvErG8yoZz6tkPK+S8bxKxvMqGc+rZDyvkvG8SsbzKhnPq2Q8r5LxvErG8yoZz6tkPK+S8bxKxvMqGc+rZDyvkvG8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zkcuvfORS+985NI7H7n0zkcuvfORS+985NI7H730XnrpvfTSe+ml99JL76WX3ksvvZdeei+99F566b300tv00tv00tv00tv00tv00tv00tv00tv00tv00tv00tv10tv10tv10tv10tv10tv10tv10tv10tv10tv10jv00jv00jv00jv00jv00jv00jv00jv00jv00jv00jv10jv10jv10jv10jv10jv10jv10jv10jv10jv10nvrpffWS++tl95bL723XnpvvfTeeum99dJ766X31kvv0ktvPdcy9VzL1HMtU8+1TD3XMvVcy9RzLVPPtUw91zL1XMvUcy1Tz7VMPdcy9VzL1HMtU8+1TD3XMvVcy9RzLVPPtUw91zL1XMvUcy1Tz7VMPdcy9VzL1HMtU8+1TD3Xcuu5llvPtdx6ruXWcy33I5feW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPdey9FzL0nMtS8+1LD3Xsh659C4917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw9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" }, { "name": "check_balance", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "fee_limit": [{ "end": 41, "start": 40 }], "inputs": [{ "end": 40, "start": 0 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "fee_limit", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "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", "debug_symbols": "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zuQ3MdbW8/H1tvpntk1/9uHnMfv49PNkfP14789mvuLju5f/4rvX4598Oifnp0/Xs/zffPrjp64f56f6j/NT48f5qfnj/NT6cX5q/zg/df84P3V+lJ9avy2ovOun/jB/Wqrnh/nTUj0/zJ+W6okf56f+MH9aqueH+dNSPdI/LVV8/an25C9/6sd03vUnmo/vn/d+vz1v/n578/evN3+/v/n7483fn2/+/nrz9/ebv//Nz6+9+fldb35+15uf3/Xm53e9+fldb35+15uf3/Xm53e9+fldb35+15ufX3/z8+tvfn79zc+vv/n59Tc/v/7m59ff/Pz6m59ff/Pz629+fuPNz2+8+fmNNz+/8ebnN978/Mabn9948/Mbb35+483Pb7z5+c03P7/55uc33/z85puf33zz85tvfn7zzc9vvvn5zTc/v/nm57fe/PzWm5/fevPzW29+fuvNz2+9+fmtNz+/9ebnt978/Nabn99+8/Pbb35++83Pb7/5+e03P7/95ue33/z89puf337z89tvfn73m5/f/ebnd7/5+d1vfn73m5/f/ebnd7/5+d1vfn73m5/f/ebnd978/M6bn9958/M7b35+583P77z5+Z03P7/z5ud33vz8znuf336eN3+/vfn715u/39/8/fHm7883f3+9+fv7zd+/3/z9b35+3+xf9ef+1Z//d+vHdV8e8W+M4v7V+HP3/vrp+Ezh6/xo03p+dgPX+jqhRZuQ0yYUtAklbUL1PSaU9XVCFb+c0McoLRllf49Rxr+OMvPZKPNdRvn4tMezPxnlcxntu4/yOdL6axRrnfONUcY+/gub+lkztmWfQnatnyH7fOPT31aY+3Pn7aYf4Lf/gLj9B+TtP6Bu/wF9+w/Yt/+AufwHfO5+3vQDbn8T++1vYr/9Tey3v4n99jexf4c3sT3+9dPP5Dcm9dfubnz5y92Puc8v/2v5eep979T3vVOfa6cez71Tt3unvu6dut879bh36nnv1O99m8a9b9O4920a975N8963ad77Ns1736Z579s0732b5r1v07z3bZr3vk3z3rdp3vs2rXvfpnXv27TufZvWvW/TuvdtWve+Tevet2nd+zate9+mde/btO99m/a9b9O+923a975N+963ad/7Nu1736Z979u0732b9r1v033v23Tf+zbd975N971v033v23Tf+zbd975N971v033v23Tf+zade9+mc+/bdO59m869b9O59206975N59636dz7Np1736Zz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz79vU7n2b2r1vU7v3bWr3vk3t3rep3fs2tXvfpnbv29TufZvavW/Tde/bdN37Nl33vk3XvW/T73Gm0t9q6ve+Tde9b9N179t03fs2Xfe+Tf3et6nf+zb1e9+mfu/b9Huci/S3mvq9b9N7z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIc29ZyHNvWchzb1nIc29ZyHNc+3bdO49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2muPQtpPdeehfRl6re+Tb9M/da36Zep3/o2/TL1W9+mX6Z+69v0y9RvfZt+mfqtb9MvU7/1bfpl6ve+Ta89C+nL1O99m157FtKXqd/7Nr32LKQvU7/3bXrtWUhfpn7v2/Tas5C+TP3bb9Oqb03dLD8+bVH/Zphff9p7/fThsF9M6emPKf0VZxzJp2S8KS3elJw3peBNKXlTKt6UmjelzZsSj97Oo7fz6O08ejuP3s6jt/Po7Tx6O4/ezqO38+gdPHoHj97Bo3fw6B08egeP3sGjd/DoHTx6B4/eyaN38uidPHonj97Jo3fy6J08eieP3smjd/LoXTx6F4/exaN38ehdPHoXj97Fo3fx6F08eheP3s2jd/Po3Tx6N4/ezaN38+jdPHo3j97No3fz6L159N48em8evTeP3ptH782j9+bRe/PovXn03jx6D4/ew6P38Og9PHoPj97Do/fw6D08eg+P3oOjtz04etuDo7c9OHrbg6O3PTh624Ojtz04etuDo7c9OHrbw6O38ehtPHobj97Go7fx6G08ehuP3sajt/HozWstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLRevtVy81nLxWsvFay3Xg6P34rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXi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d9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO6gadxB07iDpnEHTeMOmsYdNI07aBp30DTuoGncQdO4g6ZxB03jDprGHTSNO2gad9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO6gadxB07iDpnEHTeMOmsYdNI07aBp30DTuoGncQdO4g6ZxB03jDprGHTSNO2gad9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO7g0riDS+MOLo07uDTu4HpCM0xqhinNMK0ZZmuG0VBA4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo076Bp30DXuoGvcQde4g/6EZpjUDFOaYVozzNYMo6GAxh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNOxgadzA07mBo3MHQuIPxhGaY1AxTmmFaM8zWDKOhgMYdDI07GBp3MDTuYGjcwdC4g6FxB0PjDobGHQyNOxgadzA07mBo3MHQuIOhcQdD4w6Gxh0MjTsYGncw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" }, { "name": "pay_fee", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "fee_limit": [{ "end": 41, "start": 40 }], "inputs": [{ "end": 40, "start": 0 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "fee_limit", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "H4sIAAAAAAAA/+3dB5wVRbY/8L7DDFy4zJBzGpKKIk5ihsxFgjlhFgMIQ5CcBAxIxsCqgGKOmNMmV5ddV10V9bn73uoaNv3fY6Orbl43B/bf1VOH+U1RPd4eu66n4fTn059bfaa661unq+vmOymvbilJeV5Kl4v07SBv/4XqZPVt2adbymM8VplLZyohzoKEOJslxFmYEGdRQpzNE+JskRBnOiHOlglxtkqIM5MQZ+uEOIsT4ixJiLNNQpxtE+JslxBn+4Q4OyTE2TEhzk4JcXZOiLNLQpxdE+LslhBn94Q4eyTE2TMhzl4JcfZOiLNPQpylCXH2TYizX0Kc/RPiHJAQ58CEOA9JiPPQhDgPi9E5HJz03tfh+vYIfTtY3x6pb4fo26PIoPtYqLfVG1wV/lrpr1XG34b6a7W/1vjrMP23Uv03ZRnhryP9dZS/jvbXMf46Vvd3nL8e7a/j/XWCv07010n+eoy/Huuvx/nr8f56gr+e6K8n+evJ/nqKv57qr6f562R/Pd1fz/DXM/31LH8921/PMSzn+ut5/jrFX8/31wv89UJ/vchfp/rrNH+92F+n++sMf63115n+OstfZ/vrHH+9xF/n+us8f53vrwv8daG/LvLXxf66xF+X+usyf13ur5f66wp/XaktbbVllb9e5q+X++sV/nqlv67216v8dY2/rvXXdf663l83+OtGf93kr5v99WqjX9f467X+ep2/bvHXz/nr9f56g7/e6K9b/XWbv27315v89WZ/3eGvt/jrrf56m7/e7q93+Oud/nqXv97tr/f4673+ep+/3u+vO/31AX990F8f8teH/fURbaGL41F/fcxfH/fXJ/z1SX99yl8/769f8Ncv+uuX/PXL/vq0v37FX5/x12f99av+ustfv+avX/fX5/z1G/76vL++4K8v+us3/fUlf33ZX1/x193++qq/vuavr/vrf/nrG/76LX/9tr/+t7/+j79+x1/f9Ne3/PW7/vq2v77jr+/663v++j1//b7uS3Pdlx/46w/99Uf++v/89X/99f/03/bo2x/rfdJ6+yf++lN//Zm//txff+Gv7/vrL/31A13nQ337kb79lb79tb79jb79rb79nb79vb79g779o779WN/+Sd/+Wd/+Rd/+Vd/+Td/+Xd/+Q9/+U9/+S9/+W9/u1bf/0bc06aX0bYG+baZvC/Vtkb5trm9b6Nu0vm2pb1vp24y+ba1vi/Utvpe/b8nq27JPt5TjBIYfEFBx9eZzM/139YakGhDqjTR1ktUbQOrNFfXGhXpTQL3grl7MVi8Uq4tbvcCpXjxUL8ypF73UC0rqxRr1Qoh6kUE9gVdPjtUTT/WkTj1hUk9G1AP9Un9VD1DVgz/1wEo9aFEPCNSdrbojOwyc74NdTe5qYleTuprQ1WSuJnJ1UZoTtzlZf9YT9Gc9KX/aifiznnyTPuGGTbJqgv2x98kTqppM1USqJlE1garJU02catJUE6aaLNVEqSZJNUGqyVFNjGpSVBOimgzVRKgmQTUBqslPTXzBpJeqm+zURKcmOTXBqclNTWxqUlMTmprM1ESmJjE1ganJS01cdEePE9iEZvXlbvp23JIl01aVzlkwo3Zl6cLly0oXziy9eOHyBTOW4o4nFdeXe+jb6dPmzStdtrB02tKltUuWXTR/2sqLLp6z7KKlcy6rxV3Pbvquj7dvIvdL7Zvc5oSBTWxzw+D6cgd9e1zju1w9uIltPQE79tS305Ytq52/aFnQxRkzSlfMWTa7dOGltUtmzlu4Avd9oamN/unIpje67+F97skpHNJE52FDmu4c2dRGFx0VrdF9l+UmvWMaDpb1YnqYMbRsZvBYUj/OMD+HqB5mFOi/0W2pjjfT23RLD0sK9XahES/S20XGcVro7RZGvFhvFxvxNnq7jRFvp7fbGfEOeruDEe+it+k2q+N99HYfIz5Abw8wjjNQbw804ofo7UMgntF/CxYdVzGadVMQo4d+BRCjz4s2gxg9FyiEWAsdK4IYjZ/mEGupYy0g1krH0hDL6FhLiLXWsVYQo5k8A7ESHWsNsTY6VgwxujsqgVg7HWsDMZq520KMZox2EOuoY+0h1knHOkCss451hFgXHesEsa461hliNAN0gVh3HesKMbqL6QYxmgS6Q6yXjvWAWG8d6wmxPjrWC2KlOtYbYn11rA/E+ulYKcT661hfiA3QsX4Qo7u+/hA7RMcGQOxQHRsIMXpqcAjEaL45FGL0OtBhNC949c9Hg31oPoLY4TQXQewImocgNpjmIIgdqWPNITYE2qbYUTqWhliZjtF1pP42QZezXkxzdFVl8NnDiXEf1z+yOu4x8R+3TM35x3r1uc5COxMhV8fpcsqL92nzsXDcFLRD8UIonwp1qR7lg+ZCsqv5bZIuH9fIfhOM/UqgziRL/7NevP0/xvAcY5jVOcHz4GDMDpUxm/MSecxeCHXNsUf3ywfimD0dHA7G7HA3Y7aiTMZs3Utfnmcfe/QY8UAcs9PAEf+YHSpjNvcl8pi9DOqaY4+erxyIY3YhOOIfszWOxmy5jFmv7iV/z7OPPXrufCCO2SvBEf+YHSbzbO5L5DG7A+qaY49exzkQx+x14Ih/zE5zNGYrZcx6dW91ep597NFrigfimL0NHPGP2RmOxmxZtYzZurfZPc8+9uj17QNxzD6sy+o12z36NdvuEPuxjvUAb/xju9bV67jDZGzXfQTE8+xjlN5rORDH9rO6rMbxh3oc94bYR/R+JsR+Be9JUuzXOtYXYr/RsX4Q+62O9YfY7+i9UYj9nt4Xhdgf6D1RiP1Rxw6F2Mc6dhjE/mS8R61if9axwyH2Fx07AmJ/1bHBEPubjh0Jsb/r2BCI/UPHjoLYP3WsDGL/0rFyiP1bxyogtlfHKiH2Hx2rghi9STUUYikdq4ZYgY7VQKyZjg2DWKGODYdYkY6NgFhzHRsJsRY6NgpiaR0bDbGWOjYGYq10bCzEMjqWhVhrHRsHsWIdOxpiJTo2XsfUe8T0niB95FBdk5S3rBffNanap3NES8rYzkJ5KHiq4/dUZqCNXDzVbj3BbyZUWdqqcdBW1HNRA55hDjzquMPjP25wHzzC6BP1m9orgTqHQz9HOOhnCtqlY9P2CPDQuMQ5jeoNZWKkGM6dIyzGkfEbK2znlbZHgpFiw9zmrCLqXDLCaX6qyvBc5OIZCR4H12G5o3EQvJZC96t7vXjnjdFGrmzji+qMgvyNdpC/FLRLx6Ztak/MYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxizkrZjGLWcxiFrMn5rJPt4hZzGIWs5jFLGYxi1nMYhZzIs34HQT8fhPVG8rESLHhbj0VGcOjlpSxnYXyaPCMjd1T9/n+0RE8Y8EzJnZP3ef74+9n3efws0afRht9wv81i9dO1kE/U9AuHRv77XkNv8crZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi/ngMeNn3MmagXojmRgpNsaxJ2N41JIytrOWMhrxvI5zZMxGMI5z6ynDMU3HV8YjjJj61zCDmtVbHHyPIvg8P42RQn1ccoyGONX565H1tiO1rdhr+B0G194s5CcL7Zj9UEtFs/q6Myxe/H9Eo4yY6oOr/+dBbdGxaZvaK/b2//5RMZTHQsyce/B/k+B85OL/xKS88P9NMgyM1C/8XhDZSmPzVEx308+qsjb+MVpBrocZ+aV+FUBfR4FDueL/v0FVwfVA/5uIrgdqn9orhDoT9TVA/+8bl7Tn4v8oVZW56Xvd2KuCPqrjjrb0neocD3PBibqM1/0YyOMUy99paey+A/9PlIv7DtX20eDMQjvY9niwxtR2Obad0iu1Q/FCKJ/XrL4u1aN8UK7JXgxOtJv7jTL2K4E6WUv/szH3f5zhGWeY1Tk5BcbZFLj/HuvIlPXsOcL/DUV18H9s0f0c1Q/7f1Guvk8a9v+i8PukFBsL+cX78SrDq/pQY+mDq/u+Gq9hH2gb7/vousT/2Ua20tg87u/7qoy+DTX6pXI/2Iip87Wg2f79znrxnYem/h/DEtivwKs3uvhfgk3934Z4nTYDo6v/QVgdwVgDRtqvEIwurjm8vnMxDgMjjkkyuvjfahloNxcjzsm0X3MwungOgs8RcjHa/s9gCzCOdGQcEcGIv92A/8+Pbkc5Mkb5HYJRYKT9WoLRxX1t1MeweP9L+7UCo4vfK4j6+wljwIivw5HRxWOtDLSbixFfw6T9WoMx68j4aV+PKwYjp9fjSgwvGY92ZBwXwXg0uGi/NmB08XwkA+3mYhwPRtqvLRgnODKOj2CcAEb8n9hknOjIOCGCcSIYab/2YJzkyDgxgnESGGm/DmA8xpFxUgTjMWCk/TqC8VhHxmMiGI8FI+3XCYzHOTIeG8F4HBhpv85gPN6R8bgIxuPBSPt1AeMJjozHRzCeAEbarysYT3RkPCGC8UQw0n7dwHiSI+OJEYwngZH26w7Gkx0ZT4pgPBmMtF8PMJ7iyHhyBOMpYKT9eoLxVEfGUyIYTwUj7dcLjKc5Mp4awXgaGGm/3mCc7Mh4WgTjZDDSfn3AeLoj4+QIxtPBSPuVgvEMR8bTIxjPACPt1xeMZzoynhHBeCYYab9+YDzLkfHMCMazwEj79Qfj2Y6MZ0Uwng1G2m8AGM9xZDw7gvEcMNJ+A8F4riPjORGM54KR9jsEjOc5Mp4bwXgeGGm/Q8E4xZHxvAjGKWCk/Q4D4/mOjFMiGM8HI+03CIwXODKeH8F4ARhpPxyPFzoyXhDBeCEYab/BYLzIkfHCCMaLLJ698XmCz7FdaGlrWvx9D37vd6qXe9+ngefi+D3BuZgWwXOxW09wLqZZ2poRf1vBuZju5d73GeCpjd8TnIsZETxkKIH9MGcz4zcGOauNYJwJnlnxe4KczYzgmQU5m2nJ2ez4jUHOZkUwzgbPnPg9Qc5mR/DMgZzNtuTskviNQc7mRDBeAp658XuCnF0SwTMXcnaJJWfz4jcGOZsbwTgPPPPj9wQ5mxfBMx9yNs+SswXxG4OczY9gXACehfF7gpwtiOBZCDlbYMnZoviNQc4WRjAuAs/i+D1BzhZF8CyGnC2y5GxJ/MYgZ4sjGJeAZ2n8niBnSyJ4lkLOllhytsyRcWkE4zIw0n74eH65I+OyCMblYFwGNrq91JFxeQTjpWCk/fCzPSscGS+NYFwBRtoPP9uz0pFxRQTjSjDSfvjZnlWOjCsjGFeBkfbDz/Zc5si4KoLxMjDSfvjZnssdGS+LYLwcjOgl4xWOjJdHMF4BLtoPP9tzpSPjFRGMV4KR9sPP9qx2ZLwygnE1GGk//GzPVY6MqyMYrwIj7Yef7VnjyHhVBOMaMNJ++NmetY6MayIY14KR9sPP9qxzZFwbwbgOjLQffrZnvSPjugjG9WCk/fCzPRscGddHMG4AI+2Hn+3Z6Mi4IYJxIxhpP/xszyZHxo0RjJvASPvhZ3s2OzJuimDcDEbaDz/bc7Uj4+YIxqvBSPvhZ3uucWS8OoLxGjDSfvjZnmsdGa+JYLwWjLQffrbnOkfGayMYrwMj7YfPXbc4Ml4XwbgFjNeJ8VMb0VMan6cM+45tfY5B3z9n8cT43e4Gfce2rmfQdzIkzbglAcaLEmCUPIpRjAeeUa5rySMno+RR8ijGA894cQKMcq7FKMYDz5iE+0IxyuMeMR54RrlmDh5jEl4Pl+ta3vuIyVjRVKPy3BC/J8jZ9RE8N0DOaL+L3RormmpUnhvj9wQ5uyGC50bI2Q2WnDkwVjTVqDxb4/cEObsxgmcr5OxGS84cGCuaalSebfF7gpxtjeDZBjnbasmZA2NFU43Ksz1+T5CzbRE82yFn2yw5c2CsaKpReW6K3xPkbHsEz02Qs+2WnDkwVjTVqDw3x+8JcnZTBM/NkLObLDnjarzIrbGiqUbl2RG/J8jZzRE8OyBntN/FCTBelADjlgQYk5BHMYqRk1Gua8kjJ6PkUfIoxgPPKI/DxXgQGSuaalSeW+L3BDnbEcFzC+SM9rvYrbGiqUbluTV+T5CzWyJ4boWc3WLJGVfjRWKMxfi5BBjlXItRjE033ha7saosqvE2xzlz08+6/zt9u9GnW4w+lUAdzPvtDvqZgnbp2LR9O5yHKOYtCTRLniXPYWbJs+Q5zCx5ljyHmSXPkucws+RZ8hxmljxLnsPMkmfJc5hZ8ix5DjNLniXPYWbJs+Q5zCx5ljyHmSXPkucws+RZ8hxmljxLnsPMkmfJc5hZ8ix5DjNLniXPYWbJs+Q5zCx5ljyHmSXPkucws+S5aWb8bTuyZqDedUyMFLsVPHfE76nKGB61pIztLJTvcJwfR/0MPvd+p2fP+x2Qd6qD19edDvqZgnbp2LR9J5yHKOYtCTRLnptmxt+bJGsG6l3PxEix28FzV/yeyozhUUtj89hdjvPjqJ/BPHa3Z8/7XZB3qoPX190O+pmCdunYtH03nAcxuzfj76mSNQP1bmBipNid4Lkndk9FWcbwqKWxOeEex/lx08+6OeFez573eyDvVAfH6r0O+pmCdunYtH0vnId7I5i3JNAseZY8h5klz5LnMLPkWfIcZpY8S57DzJJnyXOYWfIseQ4zS54lz2FmybPkOcwseZY8h5klzwdPnpWH/k8YWTNQ70YmRordDZ77YvdUlmUMj1oae9/hPsf5cdPPuvcd7vfseb8P8k518Pq630E/U9AuHZu274fzEMW8JYHmJOZZxobk+UAyy9gQc5hZxoaYw8wyNsQcZpaxIeYws4wNMYeZZWyIOcwsY0PMYWYZG2IOM8vYEHOYWcaGmMPMMjbEHGaWsSHmMLOMDTGHmWVsNM2sPFt1mawZqLeViZFi94JnZ/yeqozhUUvK2M5Ceafj/DjqZ/C5nQc8e953Qt6pDo7VBxz0MwXt0rFp+wE4D2IWs82sPNt0mawZqLeNiZFi94Pnwdg95WUZw6OWxuaxBx3nx00/6+axhzx73h+EvFMdHKsPOehnCtqlY9P2Q3AexCxmMYtZzGIWs5jFLObPwqw823WZrBmot52JkWIPgOfh+D3VGcOjlsaeNz3sOD+O+hk8b3rEs+f9Ycg71cGx+oiDfqagXTo2bT8C5+FAN29JoFnGRn7MHMaG8tyky2TNQL2bmBgp9hB4Ho3fMyxjeNTS2P3Fo47z46ifwf3FY549749C3qkOXl+POehnCtqlY9P2Y3Aeopi3JNAseZY8h5klzwdPnpXnZl0mawbq3czESLFHwPN4/J5hGcOjlsbulx93nB9H/Qzul5/w7Hl/HPJOdfD6esJBP1PQLh2btp+A8xDFvCWBZsmz5DnMLHk+ePKsPDt0mawZqLeDiZFij4Hnyfg9FRnDo5bG7pefdJwfR/0M7pef8ux5fxLyTnWaQT+fctDPFLRLx6btp+A8JM2M5680vrZr1HE/H3+fKtr4x2gFef28kV/ql6rTUZenz66dPvfk5fPmzZk5p3bJxJVzli5bitfMF/QtxvYa20+F1FH9/CJsZ+PpZzm2WQRGaku1+7QXe35nqvnlS17DpbH55WnwfDl+T7mjfpap434F7PEct6pW5eoZI1dfMnJVAnXQ8IyD/KWgXTo2bT9jaTu+XFTPVG0/m0MunrV4ns1zLp61tB1fLmqqVNtfzSEXX7V4vprnXHzV0nZ8uagI7tt35ZCLXRbPrjznYpel7RivkeGq7a/lkIuvWTxfy3MuvmZpO8ZcBHPn13PIxdctnq/nORfUXlTzrgSan02gmUOe00Y5nrarg7afyyEXz1k8z+U5F89Z2o4xF9NV29/IIRffsHi+kedcUHtRzbsYmNNGOZ62a6aptp/PIRfPWzzP5zkXz1vajnEsD1Vtv5BDLl6weF7Icy5esLQdYy6Cx8sv5pCLFy2eF/OcC2qv0Kt/zt6llUtP3ffT0KOWxp6nv6hvM1DG5+7fjN1YVobn55vQ1kvxt1VuGy+0/ZLbtmeq474S/3GD50m79bGK9HFfsfTpVV1OxZzP3XDcFLRD8UIod2xVX5fqUT7ouiV7sb++rMtoN/d70divBOq8bOl/1ou3/68YnlcMszonLeE6dzG2chnXbb36a7kt5MXBNR18v/8LXsOlsXkHr3sXr3G7mrtsef+C0Sec3/D9vRcd9DMF7dKxaftFOA8vRjBvSaBZ8tw0s/JM1WWyZqDeVCZGiuH7Uw5e/6/KGB615Po+x4sO8uPqfQ7Vp5c8e97xcTTVwevL1eO0sMfRL8F5iGLekkCz5LlpZuWZrstkxedC05kYzeeGyvNy7J6KyM8DX3acHzf9rJvHXgnJ+8uQd6qD15eD52bBOHjZ8ND2K3AexCxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcy8zcpTq8tkzUC9WiZGir0Ent2xe+red0CPWhp732G34/y46Wfd+w6vhuR9N+Sd6uBYdfW5pN2Gh7Yb+yyVmMUsZjGLWcxiFrOYxVz26RYxi1nMYhazmMUsZjGLWcwxm5Vnli6TNQP1ZjExUuwV8LwWu6fue+/oUUtj7zu85jg/bvpZ977D6549769B3qkOjtXXHfQzBe3SsWn7dTgPYhazmMUsZjGLWcxiFvNnYVaeObpM1gzUm8PESLFXwfNfsXvqPq+FHrU09rzpvxznx00/6543veHZ8/5fkHeqg2P1DQf9TEG7dGzafgPOQxTzlgSaJc+S5zCz5FnyHGaWPEuew8ySZ8lzmFnyLHkOM0ueJc9hZsmz5DnMLHmWPIeZJc+S5zCz5PngybPyzNVlsmag3lwmRoq9Dp5vxe6pLMsYHrU09r7Dtxznx00/6953+LZnz/u3IO9UB6+vbzvoZwrapWPT9rfhPEQxb0mgOYl5lrEheT6QzDI2xBxmlrEh5jCzjA0xh5llbIg5zCxjQ8xhZhkbYg4zy9gQc5hZxoaYw8wyNsQcZpaxIeYws4wNMYeZZWyIOcwsY0PMYWYZG00zK898XSZrBurNZ2Kk2Bvg+e/4PdUZw6OWxj6389+O8+Oon8Hndv7Hs+f9vyHvVAfH6v846GcK2qVj0/b/wHk40M1bEmiWsZEfM4exoTwLdZmsGai3kImRYt8Gz3fi9wzLGB61NHZ/8R3H+XHUz+D+4k3PnvfvQN6pDl5fbzroZwrapWPT9ptwHqKYtyTQLHmWPIeZJc8HT56VZ7EukzUD9RYzMVKM7vsKIHa4vt1rOPdGcM78hEUd4y19rBYWYyH8/eTiutu23v6LzZ3VcTrWd8CP2ynYh+qq/n63Cf01z4MZwP42A8N3Lf0YBO0rz9tN8OSS/3f0sTD/1FYh/P2cHPNP7qyO07Eay/8go110heXpXaNe1nC8C+1h/e8Y9d/T22+FHOc94zjvWY6D11uRjr1r7F8IdRYV19et1eUU9I+O8Z7Rl0KoMxeOMVuXYxq3+41jNXcdqY+FxgVu2634pHbV34fo+JHw96VuXWXY7nct7RZAnMZ01ms4rnDex+eedO5pf6pfCHXWw7lfCePHPIZ53eAxVsMxLs/D+DnK2z9fa/MwfhprV/29TMePgr9vysP4KbO4sN3vODgPZns0hnGM0d+3wPi4FvJVrv8+BI5zveXvZZa/O+pXhdmvcqNf+LptKr52G7xuW+g1nMPxtWgH3yGdrnKN729Q33DJQhlfq/9W/J5yR/0sw9/oTMd23KpqlavXjVx928hVCdRBw+sO8pfy9v+eOW2/bmk7vlxUD1Vtv5ZDLl6zeBz834lGc0HtJdGcNsrxtF1h/f/gtly8avG4+n8tYbl41dJ2fLmoqVJt784hF7stnt15zsVuS9sxXtczVduv5JCLVyyeV/KcC2rvYDC/xsCcNsrxtF09TLX9cg65eNnieTnPuXjZ0naMuRiu2n4ph1y8ZPG8lOdcvGRpO8Zc1Ki2v5lDLr5p8Xwzz7mg9qKaX2Fgxuf4HxQ79czIGB7KmWcYPcOYgTI+L3kxfmMZnp8Xoa0X4m+r3DZeaPsFt21PV8f9RvzHDR5bPqePRa8rfcPSp6/rcozPr8ux7ZReqR2KF0L5F/BaGNWjfNB1S3ZV9XldRru53zeN/UqgzvOW/me9ePv/DcPzDcOszskP4Tp3MbZyGdfqfYE3ILfkeTF+T/C63ne9hktj886L4HH1OQ8H/SzDeTvO1wFt9yPfNXKFv2n3Tcifq9+Le9Hw0HZjv8PXmLmAgRnHRakX77hwcJ1XtPGP0Qry+oKRX+wXzUNxvi6ujkFzahG0R23h/QG93kr18fXWXbHnpjJ4vRXvG8iDSxbKu8Dztdg9dXNO/P2sG1tfBXs8xx1aqXL1rJGrrxu5KoE6aHjWQf5S0C4dm7apvajmVxNo3s3AnDbK8bRdU6HafiaHXDxj8TyT51w8Y2k7xuffQdtfySEXX7F4vpLnXFB7Uc0vJdD8egLNrzEwp41yPG3XBPdTT+eQi6ctnqfznIunLW3HOGcEz/u+nEMuvmzxfDnPuaD2opp3J9D8agLNrzEwp41yPG1XBq+RfSmHXHzJ4vlSnnNB7UU1v8bAnDbK8bRdXava/mIOufiixfPFPOeC2otq3p1A86sJNL+WQPMzCTQ/Lea8mDnMG2mjHE/bNcF70l/IIRdfsHi+kOdcUHtRza8zMKeNcjxtVwef9fp8Drn4vMXz+Tzn4vOWtmP8DGDwGOapHHLxlMXzVJ5zQe1FNb+WQPNXE2h+NYHm3Qk0P5tA8zMJNL+UQPPrCTQncX7+SgLNTyfQnMT5OYn3g0kczxzmjbRRjqft6hmq7SdzyMWTFs+Tec7Fk5a2Y3y+HXzP7IkccvGExfNEnnNB7UU1fyWB5lcTaH4tgWYZG/kxP5NA87MJNMu80TRz2ijH03Z18J32x3PIxeMWz+N5zgW1F9X8bALNuxNofiqB5tcYmNNGOZ62K4O2H8shF49ZPI/lORfUXlTz5xmY8ftkXdu49FQG359ED+XMM4yeYcxAeRfk7NHYjXXfn6S2HoW2Hom/LesYp+1HnLZdGXx/8qH4+xR8NuxBfSz6/uRDlj49oMupmPP5IBw3Be1QvBDKndrU16V6lA+6bsmuvuP3sC6j3dzvMWO/EqjzsKX/WS/e/j9keB4yzOqctILr3MXYymVcq+9P0rU8GnJFSwHk6vnYjXW58gwjLc9bPEcz89zIzHM5M081M89CZp6+zDzTmXnOZObpxMzTkpnnOGaedcw8o5l5LmXmqWDmOYyZ5xJmnp7MPOcz87Rl5jmVmecaZp5CZp4JzDxbmXmuZOYZxsyzmJnnKGae/sw8tcw8NzPzdGHmOZuZ5wRmngwzz03MPBuYecYy86xk5nmLmWceM8/hzDxDmHl6M/NcyMzTnplnMjNPc2aeScw825h5rmLmGcHMs5SZZyAzzyxmnh3MPN2Yec5l5ilm5jmJmWcTM884Zp7LmHmGMvMsYOYpZeaZxszTkZnnDGaeY5l50sw825l51jLzjGLmuY6ZZzkzz5vMPIcy88xh5unBzDOFmacNM88pzDyDmXmaMfOMZ+a5mpnnCmaeGmaed5h5Kpl5FjHz9GPmmcHM05mZ5yxmnlbMPMcz86zXt1w8Y5h5rmfmWcHMM4iZZy4zz5HMPL2YeS5g5mnHzHMaM8+1zDwTmXmKmHneYOZZzcwznJlnCTNPGTPPAGaemcw8XZl5zmHmac3McyIzz0Zmniwzzw3MPKuYeaqYed5m5pnPzNOHmWcqM08HZp7TmXlaMPMcw8yzhplnJDPPEcw8y5h5DmHmmc3M052Z5zxmnpOZeUqYeTYz86QYeDLe/r83nIG/vwGxAmNf9Xhg6VH1f6ffBi6Afeg3TptZjv0oxOj3lm2/b4x5cvD7xkGesK2st//vHReD4zEmns3MPCXMPCcz85zHzNOdmWc2M88hzDzLmHmOYOYZycyzhpnnGGaeFsw8pzPzdGDmmcrM04eZZz4zz9vMPFXMPKuYeW5g5sky82xk5jmRmac1M885zDxdmXlmMvMMYOYpY+ZZwswznJlnNTPPG8w8Rcw8E5l5rmXmOY2Zpx0zzwXMPL2YeY5k5pnLzDOImWcFM8/1zDxjmHnWM/Mcz8zTipnnLGaezsw8M5h5+jHzLGLmqWTmeYeZp4aZ5wpmnquZecYz8zRj5hnMzHMKM08bZp4pzDw9mHnmMPMcyszzJjPPcmae65h5RjHzrGXm2c7Mk2bmOZaZ5wxmno7MPNOYeUqZeRYw8wxl5rmMmWccM88mZp6TmHmKmXnOZebpxsyzg5lnFjPPQGaepcw8I5h5rmLm2cbMM4mZpzkzz2RmnvbMPBcy8/Rm5hnCzHM4M888Zp63mHlWMvOMZebZwMxzEzNPhpnnBGaes5l5ujDz3MzMU8vM05+Z5yhmnsXMPMOYea5k5tnKzDOBmaeQmecaZp5TmXnaMvOcz8zTk5nnEmaew5h5Kph5LmXmGc3Ms46Z5zhmnpbMPJ2Yec5k5pnOzNOXmWchM081M8/lzDw3MvMczcxTYPG84chDv29Kx6btN9zmokwdd5ejPj2ij1Wkj0t+aq8Q6jyh39yj5yy44LHIaf5GLP6eA9UtsORxr87l87CdzbHPMz9hwbZbQNvPW/r75Ub6a3NndZyO9Rz4cTsF+1DdNLQbpb/mOTUD6GsGBjxXOK4fMVxYxmvgbcjDLqNe1muYn13QL9wu8vbPFeYvbD/MH31fzoNYymLC45rny6y719gugjp4rT8Ix8nqctmnWioq1PshD3sNl5SxnYXyg+B5KHZPWbmbftbNaQ+APZ7jVgdz2k4jVw8buSqBOmjY6SB/KWiXjk3bOy1tx5eLmirV9v055OJ+i+f+POeC2kuiOW2U42m7eqhq+74ccnGfxXNfnnNxn6XtGHMxQ7V9bw65uNfiuTfPubjX0naM13WZavueHHJxj8VzT55zQe1FNe9kYE4b5XjargjO39055OJui+fuPOeC2otq3snAnDbK8bRdPVO1fVcOubjL4rkrz7mg9qKa72FgThvleNquqVRt35lDLu60eO7Mcy7utLQdYy6Cxxh35JCLOyyeO/Kcizssbcd4XVeotm/PIRe3Wzy35zkX1F5U804G5rRRjqftmuD83ZZDLm6zeG7Lcy6ovajmBxiY00Y5nrarg3n51hxycavFc2uec0HtRTXvTKD5HgbmtFGOp+2aGtX2LTnk4haL55Y85+IWS9sxXn/DVdufyyEXn7N4PpfnXFB7Uc07GZjTRjmetquHqba35JCLLRbPljzngtqLar4ngeY7GZjTRjmetqtrVdsX55CLiy2ei/Oci4stbceYi+D19otyyMVFFs9Fec4FtRfVfH8CzbczMKeNcjxtV1ertt/NIRfvWjzv5jkX71rajjEX01Xb7+WQi/csnvfynAtqL6r57gSab2VgVp/roPfzr+jg0lNRmTE8lDPPMHqGMQNlfF//e7Eby8rw/HwP2vp+/G2V28YLbX/fadsVFeq4P4y/T8F7OD/SxyrSx/2hpU//T5dTMefzR3DcFLRD8UIor+pQX5fqUT7ouiW7+ozWD3QZ7eZ+7xn7lUCdH1j6n/Xi7f8PDc8PDbM6JwvgOncxtnIZ1+qzY3Qt94e8OLimg88OveE1XBqbd/C6d/G/613NXThvf4rPyu3ntd2PvGHkqsTb/77F0WekAs/3DA9tU3tRzQUMzDguSr14x4WD+68K9ZvYrSCv3zfyi/2ieSjGcRl8hpPm1CJo74fQroP7mQb3cYX62OZ9g2p7T+w5r5yu5rL/9Roujc1le8Dzf7F76uay+PtZN2Z/DPZ4jjs0eC/lJ0au/tfIVQnUQcNPHOQvBe3SsWmb2otq3plA890JNN+eQPMDDMxpoxxP29XBe1Y/zSEXP7V4fprnXFB7Uc33J9B8TwLNdyXQ/G4CzXcn0LwzgWYO12DaKMfTdmXwePxnOeTiZxbPz/KcC2ovqvmeBJq3JNB8dwLNOxNoTuJ4fiCB5nfFnBdzEueNWxNovj+B5osZmNNGOZ62K4LPOf08h1z83OL5eZ5zQe1FNd+TQPOPE2jemUDz3Qk0355A8wMJNP8kgeb7E2hO4vx8VwLN7ybQnMT5OYn3g0kcz0mcN+5LoPnOBJqTOJ6TOG/IfXd+zEkcGw8k0JzE51Yyb+THfFECzUkcz0l8zJ/Ex3UcrsG0UY6n7cqg7V/kkItfWDy/yHMuqL2o5p8xMBd69Z+lfqCjS0/ljIzhoZx5htEzjBko74GcvR+7se77Z9TW+9DWL+NvyzrGafuXTtuunK6O+2H8fQo+C/SRPhZ9/+xDS59+pcupmPP5ERw3Be1QvBDK93Wsr0v1KB903ZJdff/sA11Gu7nfL4z9SqDOB5b+Z714+/+h4fnQMKtzsgOucxdjK5dxrb5/RtfyaKhL3+Mo8Op/2/oR+PsuKD9n7KP686PY+1NWnvEa/ha5Whqbt34Enh848DjqZ3Dtvm/06TmjTyVQZxf008Fc3OD7pHRs2n4fPLQUgMfFOMjlnKPnaGaeG5l5LmfmqWbmWcjM05eZZzozz5nMPJ2YeVoy8xzHzLOOmWc0M8+lzDwVzDyHMfNcwszTk5nnfGaetsw8pzLzXMPMU8jMM4GZZyszz5XMPMOYeRYz8xzFzNOfmaeWmedmZp4uzDxnM/OcwMyTYea5iZlnAzPPWGaelcw8bzHzzGPmOZyZZwgzT29mnguZedoz80xm5mnOzDOJmWcbM89VzDwjmHmWMvMMZOaZxcyzg5mnGzPPucw8DzLzFDPznMTMs4mZZxwzz2XMPEOZeRYw85Qy80xj5unIzHMGM8+xzDxpZp7tzDxrmXlGMfNcx8yznJnnTWaeQ5l55jDz9GDmmcLM04aZ5xRmnsHMPM2YecYz81zNzHMFM08NM887zDyVzDyLmHn6MfPMYObpzMxzFjNPK2ae45l51jPzjGHmuZ6ZZwUzzyBmnrnMPEcy8/Ri5rmAmWcXM087Zp7TmHmuZeaZyMxTxMyzmplnODPPEmaeMmaeAcw8M5l5ujLznMPM05qZ50Rmno3MPFlmnhuYeVYx81Qx87zNzDOfmacPM89UZp4OzDynM/O0YOY5hplnDTPPSGaeI5h5ljHzHMLMM5uZpzszz3nMPCcz85Qw82xm5kkx8GS8/X97NgN/fxBi9Bupz0GMfof3BxArsLRBny16H2L0e0N0DPX4YvVR+x8b8+Tqd2Gxray3/292F4PjF0w8m5l5Sph5TmbmOY+Zpzszz2xmnkOYeZYx8xzBzDOSmWcNM88xzDwtmHlOZ+bpwMwzlZmnDzPPfGaet5l5qph5VjHz3MDMk2Xm2cjMcyIzT2tmnnOYeboy88xk5hnAzFPGzLOEmWc4M89qZp4iZp6JzDzXMvOcxszTjplnFzPPBcw8vZh5jmTmmcvMM4iZZwUzz/XMPGOYedYz8xzPzNOKmecsZp7OzDwzmHn6MfMsYuapZOZ5h5mnhpnnCmaeq5l5xjPzNGPmGczMcwozTxtmninMPD2YeeYw8xzKzPMmM89yZp7rmHlGMfOsZebZzsyTZuY5lpnnDGaejsw805h5Spl5FjDzDGXmuYyZZxwzzyZmnpOYeYqZeR5k5jmXmacbM88OZp5ZzDwDmXmWMvOMYOa5iplnGzPPJGae5sw8k5l52jPzXMjM05uZZwgzz+HMPPOYed5i5lnJzDOWmWcDM89NzDwZZp4TmHnOZubpwsxzMzNPLTNPf2aeo5h5FjPzDGPmuZKZZyszzwRmnkJmnmuYeU5l5mnLzHM+M09PZp5LmHkOY+apYOa5lJlnNDPPOmae45h5WjLzdGLmOZOZZzozT19mnoXMPNXMPJcz89zIzHM0M09BXjxVZep1SvouuQcuXLJQfh88D8buKSt3lPcydVz6Ddq9MR5X5WqPkatdRq5KoM6PIH97HOQvBe3SsWl7j6XtUi/eXPwyh1z80uL5ZZ5zQe1FNf8ogWbJs+Q5zCx5ljyHmSXPkucws+RZ8hxmljxLnsPMkmfJc5hZ8ix5DjNLniXPYWbJs+Q5zCx5ljyHmSXPkucws+RZ8hxmljxLnsPMkmfJc5hZ8ix5DjNLniXPYWbJs+Q5zCx5ljyHmSXPkucws+RZ8hxm5pBn5aHflCZrBupdx8RIsQfdeqoy0GdaUsZ2Fsq/BM/7DvLjqJ/BZ8g/MPp0nSXvVAevrw8c9NN27dD2B3Aeopj3JNAseW6aWXmu12WyZqDe9UyMFHvfracyA32mpbF57APwuJjnHfUzmMc+NPp0vSXvVAevrw8d9NN27dD2h3AexOzerDw36DJZM1DvBiZGiv3Sqaci+A7iDV7DpbE54UPwuJgzHeU9mBM+Mvp0gyXvVAfH6kcO+mm7dmj7IzgPUcx7EmiWPEuew8ySZ8lzmFnyLHkOM0ueJc9hZsmz5DnMLHmWPIeZJc+S5zCz5FnyHGaWPEuew8yS54Mnz8pDv7tI1gzUu5GJkWIfOPVUBu873Og1XBp73+Ej8Lh4X8ZR3oP3HX5l9OlGS96pDl5fv3LQT9u1Q9u/gvMQxbwngeYk5lnGhuT5QDLL2BBzmFnGhpjDzDI2xBxmlrEh5jCzjA0xh5llbIg5zCxjQ8xhZhkbYg4zy9gQc5hZxoaYw8wyNsQcZpaxIeYws4wNMYeZZWw0zaw8W3WZrBmot5WJkWIfuvUEv4Wy1Wu4NPa5nV+B5yMH+XHUz+BzO782+rTVkneqg2P11w76abt2aPvXcB7ELGabWXm26TJZM1BvGxMjxT5y6ikPPn+4zWu4NDaP/Ro8LuZ5R3kP5rHfGH3aZsk71cGx+hsH/bRdO7T9GzgPYhazmMUsZjGLWcxNXMQs5k9lVp7tukzWDNTbzsRIsV+59VRnoM+0NPa86TfgcfG80lE/g+dNvzX6tN2Sd6qDY/W3Dvppu3Zo+7dwHg50854EmmVs5MfMYWwoz026TNYM1LuJiZFiv3brGZaBPtPS2P3Fb8Hj4v7UUT+D+4vfGX26yZJ3qoPX1+8c9NN27dD27+A8RDHvSaBZ8ix5DjNLng+ePCvPzbpM1gzUu5mJkWK/cesJ7pdv9houjd0v/w48Lh63OOpncL/8e6NPN1vyTnXw+vq9g37arh3a/j2chyjmPQk0S54lz2FmyfPBk2fl2aHLZM1AvR1MjBTD56cU29t0T7kZwD570MabEKNyCuq+rW8LIPYm9KkA6uwAN24XwT54vDc/YT/leEuX3/Hql3cszjctx33HcJp19xrbRVCH9lXn4w9wnKwul32qpaIiA33zoD+4ZKH8B/C4GK9u+llWpo77R7DHc9zq4Pr62MjVW0auSqAOGj52kL8UtEvHpu2PLW3Hl4uaKtX2n3LIxZ8snj/lORfUXhLNaaMcT9vVQ1Xbf84hF3+2eP6c51z82dJ2jLmYodr+Sw65+IvF85c85+IvlrZjvK6D55h/zSEXf7V4/prnXFB7Uc0fMzCnjXI8bVcE5+9vOeTibxbP3/KcC2ovqvljBua0UY6n7eqZqu2/55CLv1s8f89zLqi9qOa/MjCnjXI8bddUqrb/kUMu/mHx/CPPufiHpe0YcxE8xvhnDrn4p8Xzzzzn4p+WtmO8ritU2//KIRf/snj+ledcUHtRzR8zMKeNcjxt1wTn79855OLfFs+/85wLai+q+Y8MzGmjHE/b1cG8vDeHXOy1ePbmORfUXlTzxwk0/5WBOW2U42m7pka1/Z8ccvEfi+c/ec7Ffyxtx3j9DQ9eZ0x9ci6oDhoolvXykwtqL6r5YwbmtFGOp+3qYeqQqRxysa8OGFJ5zkUKzl8UM85FSTH/g4E5bZTjabu6Vh2yIIdcUB00FOQ5FwWWtmPMRfB6e7McckF10NAsz7loBmM5ihlfY06K+V8MzGmjHE/b1dXqkIU55ILqoKEwz7kotLQdYy6mq0MW5ZALqoOGojznogjGchQzvpaYFPNeBuZCr/79/MU9XXoqKjOGh3LmGUbPMGag/AfIWfP4c1aG56c5XActHJ0fc7zQdgunbVdUqOO2dJA/dchW+rhF+rgtLX3KwDUTZz5b4WNRaKcVjHcqL+hZXzcTct2SvVi5aTymwvej80f7lUCdtKX/WS/e/rc0PC0Nszon0+E6dzG2chnXbb36a7l/fdV9nyMq8Oo/W4SfC8PPZL1t7JP2Gn6GKRtLf8rKM9AWLY3NW+h5M35PMI++E8HzpltPeQnkB9tyMD9HPhfNHT+WcfU5MEVtYVxD1G98LEF18POZru6rwh5LtIC5jsYlWfE+/x0mRoo1h8cX9Hc0puM3VtjOawvj/gHPaxGMXwfjrCrqXIKPv1ok7HpKG3l/x+hTCdTBz5Gn8zxW0/D4Iop5TwLNkuemmZVnqo6RFefaqUyM5vzr6HlHVdTnli1TbvOTj+dXZt7xOUcry/XVKs/POfC5WBTzngSaJc9NMyvPdP13smag3nQmxpZ5eQ5fUZYxPGppbB7LpNzmx9FrFcE81voTXqsogTp4fbV2NA7M13JouzVcX2IWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxm3mblqdV/32eFerVMjObnF5WnOHZP3fsO6FGLsbmvLQ8MrvLjpp917zuUhOS9GPJeYhmrJY7GQbHh2eeA60vMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFzNusPLP038magXqzmBgpRq/tK0+b2D3lZRnDoxZjc19bHhhc5cdNP+ved2gbkvc2kPe2lrHa1tE4aGN4aLstXF9iFrOYxSxmMYtZzGIW82dhVp45+u9kzUC9OUyM+/KXqve0i91T93kt9KjF2NzXlgcGV/lx08+6503tQ/LeDvLe3jJW2zsaB+0MD223h+srinlPAs2SZ8mz5FnyLHmWPEueJc+SZ0/yLHmWPEueJc+SZ8mz5FnyLHmWPCc8z8ozV/+drBmoN5eJkWL02r7ydIjdU1mWMTxqMTb3teWBwVV+3PSz7n2HjiF57wB572i5vjo6GgcdDA9td4TrK4p5TwLNScyzjA3J84FklrEh5jCzjA0xh5llbIg5zCxjQ8xhZhkbYg4zy9gQc5hZxoaYw8wyNsQcZpaxIeYws4wNMYeZZWyIOcwsY0PMYWYZG2IOM8vYaJpZeebrv5M1A/XmMzFSjD4bozyd4vdUZwyPWozNfW15YHCVH0f9DD630zkk750g750tY7Wzo3HQyfDQdme4vg508x7Js5g9vmNDeRbqv3eA+wuqt5CJsZNxH6I8XeL3DMsYHrU0dn/RJeU2P476GdxfdA3JexfIe1fL9dXV0TjoYnhouytcX1HMexJoljxLniXPkmflWaz/3gnul6neYibGLsZ9tStPxvCoxdhscL/cFTzdHN0vd4//uMH9co+QvHeHvFOdHV59P3s4GgfdDQ9t9wAPLQXg6e7Ig0sWyt0tnqOZeS5n5qlm5lnIzNOXmWc6M8+ZzDydmHlaMvMcx8yzjplnNDPPpcw8Fcw8hzHzXMLM05OZ53xmnrbMPKcy81zDzFPIzDOBmedKZp5hzDyLmXmOYubpz8xTy8zThZnnbGaeE5h5Msw8G5h5xjLzrGTmmcfMczgzzw5mniHMPL2ZeS5k5mnPzDOZmac5M88kZp6rmHlGMPMsZeYZyMwzi5mnGzPPucw8xcw8JzHzbGLmGcfMcxkzz1BmngXMPKXMPNOYeToy85zBzHMsM0+amWctM88oZp7lzDyHMvPMYebpwcwzhZmnDTPPKcw8g5l5mjHzjGfmuZqZ5wpmnhpmnkpmnkXMPP2YeWYw83Rm5jmLmacVM8/xzDzrmXnGMPOsYOYZxMwzl5nnSGaeXsw8FzDztGPmOY2Z51pmnonMPEXMPKuZeYYz8yxh5ilj5hnAzDOTmacrM885zDytmXlOZObZyMyTZeZZxcxTxcwzn5mnDzPPVGaeDsw8pzPztGDmOYaZZw0zz0hmniOYeZYx8xzCzDObmac7M895zDwnM/OUMPNsZuZJMfBkvP1/Cy4Df38TYvSbZV1g35663BVivXS5G8QKLO3S5zN6QIx+o6AnxOh1Ozquehyy4aj928N89nSUT2wrC9vUXjE46G+ftWczM08JM8/JzDznMfN0Z+aZzcxzCDPPMmaeI5h5RjLzrGHmOYaZpwUzz+nMPB2YeaYy8/Rh5pnPzFPFzLOKmSfLzLORmedEZp7WzDznMPN0ZeaZycwzgJmnjJlnCTPPcGae1cw8Rcw8E5l5rmXmOY2Zpx0zzwXMPL2YeY5k5pnLzDOImWcFM88YZp71zDzHM/O0YuY5i5mnMzPPDGaefsw8i5h5Kpl5aph5rmDmuZqZZzwzTzNmnsHMPKcw87Rh5pnCzNODmWcOM8+hzDzLmXlGMfOsZeZJM/Mcy8xzBjNPR2aeacw8pcw8C5h5hjLzXMbMM46ZZxMzz0nMPMXMPOcy83Rj5pnFzDOQmWcpM88IZp6rmHkmMfM0Z+aZzMzTnpnnQmae3sw8Q5h5djDzHM7MM4+ZZyUzz1hmng3MPBlmnhOYec5m5unCzFPLzNOfmecoZp7FzDzDmHmuZOaZwMxTyMxzDTPPqcw8bZl5zmfm6cnMcwkzz2HMPBXMPJcy84xm5lnHzHMcM09LZp5OzDxnMvNMZ+bpy8yzkJmnmpnncmaeo5l5CiyeHvF7KvD31mgxNve15YFBeXrH7qkqw9+Ey8XTGzwufu/OTT/LytRx++jj7o3xuOqQpamGuaJ8Uj9KoE4fyF+po/He2/DQdilcB2IWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYDz6z8tDn2fF/gFO9nkyMFOvu1lORMTxqMTb3tYVG5ekXu6fu8/2lETz9wNPXwfly08+6z+H3N8YB9bsfjIP+lmunv6Nx2c/w0HZ/uN7FLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMR98ZvyMO1kzUK83EyPF+jr2ZAyPWozNfW2FGfG8DnBk7B/BOMCtpwzH9AAYQxVG+0X+OmhgvaXUgUUdksZIoT4uOUohTnUuH1xvO1LbiuHv/VPuvf0hP1loB/tBdSoG1tedYfH2hPz3MWKqD70cXcN9jGuYtqm9YuhXH4j1MebHYm//uQf/1wTOR90d9aWH0Rfa7g5G6pft/2yUxuapmO6mn1VlbfxjtIJcdzfyS/0qgL72AYdydXPgUofsalwP1H43uB6ozkR9DdD/DcQlDfWyMRrd9L1u7HUx5q5SS9+pzvEwF5yoy3jd94U8TrH8nZbG7ju6wvju5Gj+62icb2oH2+4Aj7Fiarsc207pldrpCPmm8nkD6+t2MOYIynUnmCM66zLaO4TMk53gcQTV6Wzpf9aLt/+dDE8nw6zOySkwzqbA/Xc/R6bOn3BfUgJ1ekCspzFPZbz9/2eTo/vxwN3LcNN2KRh7Gfd35v14D8v9eDdLH7o66kM3ow/djGtRGbsbc1IabKVevPd9LuZvuu/rYfStp9EvlftKr2FMna8F+nyp81ml/17g1ceG6nIziNH/dSuEWI1Xf0yK0f+Xbg6x4brcAmIjdDkNsZG63BJio3S5FcTof25mIDZGl1tDbKwuF0MsC2W6HafLbSB2tC63hdh4XW4HMfp/0e0hNlGXO0Bski53hNgxutwJYsfqcmeI0f/Q7AKx43W5K8RO0OVuEDtRl7tD7CRd7gGxk3W5J8RO0eVeEKP/t9wbYqfpch+ITdblUoidrst9IXaGLveDGP0Pyv4QO0uXB0DsbF0eCLFzdPkQiJ2ry4dC7DxdPgxiU3R5EMTOtxzvAl0eDLELdZmutzTEsl68z1Wn6WNdCO3PsMRmWmKzLbFLLLF5ltgCS2yRJbbEiKUhFuf/oFNtLdXHWgLtL4N2KbZcl3Fuof8ljHPLCl3GuWWlLuPcskqXcW65DMp0S/9/EueWK3QZ55YrdRnnltW6jHPLVbqMc8saXca5Za0u49yyTpdxblmvyzi3bNBlnFs26jLOLZt0GeeWzbqMc8vVuoxzy77/Iw+xa3WZzmUa9s16sY2bqgy0RUtjzyGuBs818XvKHfUzeG6y2ejTtUaf8Jxh3jc76GcK2qVj0/ZmS9ulXry52JRDLjZZPJvynAtqL6p5SQLNHPKsPFN1mawZqDeViZFi17j1BPPjVK/h0tj8uAk8Duaxckf9DOaEjUafpnr7553q4PW10UE/bdcObW+E8xDFvDmBZslz08zKM12Xp+rbDNSbzsRIsaudeiqC3wCb7jVcGpvHNoLHxTzvKO/BPLbB6NN0S96pDl5fGxz003bt0PYGOA9iFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZt5m5anVZbJmoF4tEyPFNjn11L3vUOs1XBp732EDeFy8L+Mo78H7DuuNPtVa8k51cKyud9BP27VD2+vhPIhZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYeZuVZ5YukzUD9WYxMVJso1NPefC+wyyv4dLY+w7rwePifRlHeQ/ed1hn9GmWJe9UB8fqOgf9tF07tL0OzoOYxSxmMYtZzGIWs5jF/FmYlWeOLpM1A/XmMDFSbINTT93nteZ4DZfGnjetA4+L55WO8h48b1pr9GmOJe9UB8fqWgf9tF07tL0WzkMU8+YEmiXPkucws+RZ8hxmljxLnsPMkmfJc5hZ8ix5DjNLniXPYWbJs+Q5zCx5ljyHmSXPkucws+T54Mmz8szVZbJmoN5cJkaKrXfqqQzed5jrNVxSxnYWymvBsy52T937Dg7yHrzvsMbo01xL3qkOXl9rHPTTdu3Q9ho4D2simDcn0JzEPMvYkDwfSGYZG2IOM8vYEHOYWcaGmMPMMjbEHGaWsSHmMLOMDTGHmWVsiDnMLGNDzGFmGRtiDjPL2BBzmFnGhpjDzDI2xBxmlrEh5jCzjI2mmZVnvi6TNQP15jMxUmydW091BvpMS8rYzkJ5DXjWOsiPo34Gn9u5yujTfEveqQ6O1asc9NN27dA2tXcwmDcn0CxjIz9mDmNDeRbqMlkzUG8hEyPF1rr1DMtAn2lp7P7iKvCscZAfR/0M7i9WG31aaMk71cHra7WDftquHdpeDechinlzAs2SZ8lzmFnyfPDkWXkW6zJZM1BvMRMjxda49VRloM+0NHa/vBo8Lh63OOpncL98pdGnxZa8Ux28vq500E/btUPbV8J5iGLenECz5LlpZtX2FfG3HcwH2DblxzM8tFzhOBeO+hnMB5d79hxTeyVQB8fp5Q76mYJ26di0fTmchyjmzQk0S56bZlZtXxZ723W/C4ltU348w0PLZY5z4aafdfPBKs+eY2qvBOrgOF3loJ8paJeOTdur4DyIWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmHmbVdsrY2+77vV7bJvy4xkeWlY6zoWbfta9fr/Cs+eY2iuBOnjOVzjoZwrapWPT9go4D2IWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxm3mbV9qWxt10evH6PbVN+PMNDy6WOc+Gmn3Wv3y/37Dmm9kqgDp7z5Q76mYJ26di0vRzOg5jFLGYxi1nMYhazmMX8WZhV28tib7vu80PYNuXHMzy0LHOcCzf9rHv+sdSz55jaK4E6eM6XOuhnCtqlY9P2UjgPUcybE2iWPEuew8ySZ8lzmFnyLHkOM0ueJc9hZsmz5DnMLHmWPIeZJc+S5zCz5FnyHGaWPEuew8yS54Mnz6rtRbG3XRm8fo9tU348w0PLIse5cNPPutfvF3j2HFN7JVAHx+kCB/1MQbt0bNpeAOchinlzAs1JzLOMDcnzgWSWsSHmMLOMDTGHmWVsiDnMLGNDzGFmGRtiDjPL2BBzmFnGhpjDzDI2xBxmlrEh5jCzjA0xh5llbIg5zCxjQ8xhZhkbYg4zy9homlm1PS/+tqszRtuUH8/w0DLPcS4c9TP4/Mslnj3H1F4J1MFzfomDfqagXTo2bV8C5+FAN29OoFnGRn7MHMaGant2/G0PyxhtU348w0PLbMe5cNTPYN6d6dlzTO2VQB0cpzMd9DMF7dKxaXsmnIco5s0JNEueJc9hZsnzwZNnnPf3xtd2VdpoI6bjBp/Xn6GPVaBvVWyaLjeD2AW6XAix83W5CGJTdLk5xM7T5RYQO1eXB0PsHF2uhNjZurwYYmfp8lUQO1OXV0PsDF2+EmKn6/IVEJusy5dD7DRdvgxip+ryKoidossrIXayLq+A2Em6fCnETtTl5RA7QZeXQex4XV4KseN0eRHEjtXlBRA7RpcPgdgkS2yiLs+D2ARdvgRiF+vybIhdpMtpiF2nyy0htkWXW0Hsc1Cm2+t1uTXEbtDlYojdqMslENuqy20gtk2X20Jsuy63g9hNutweYjfrcgeI7dDljhC7RZc7QexWXe4Msdt0uQvEbtflrhC7Q5e7QexOXe4Osbt0uQfE7tblnhC7R5d7QexeXe4Nsft0uQ/E7tflUojt1OW+EHtAl/tB7EFd7g+xh3R5AMQe1uWBEHtEl5dA7FFdngmxx3T5UIg9rsuHQewJS70nLfWe0uVBEKP5cQbEaH6cBjGaHy+AGM2P50OM5scpEKP58TyI0TV1LsTomjoHYnRNnQ0xuqbOghhdU2dCjK6pMyBG19TpEKNrajLE6Jo6DWJ0TZ0KMbqmToEYXVMnQ4yuqZMgRtfUiRCja+oEiNE1dTzE6Jo6DmJ0TR0LMbqmjoEYXVOTIEbX1ESI0TU1AWJ0TV0MMbqmLoJYqS5fBzG6prZAjK4pnC/pmroeYnRN3QAxuqZuhBjN/VshRtfFNojRdbEdYnRd3ASxw3X5Zogdocs7IEb397dA7EhdvhViQ3T5Nogdpcu3Q6xMl++AWLku3wmxCl2+C2L0OONuiFXp8j0QG6rL90KsWpfvg1iNLt8PsWG6vBNiw3X5AYiN0OUHITZSlx+C2Chdfhhio3X5EYiN0eVHITZWlx+DWFaXH4fYOF1+AmJH6/KTEBuvyzRfqnlJzSV99YsvvVP1dfsYMTWv9dLlrBfv4/Q+8OJPFrapPWUs1eU+EKNyfzD2iN8YvI5DlkJ9XBqfPSBOdTbqi4bmWlyUsVvsxqrA2FUft8jIYzcwUp1rPsHY1YHRTd/rxlAX4/yUWvpOda4fXJ+nG3U5uF/Qf+8LebzH8ndajM0Gr1l2hTHZydGY7Gicb2oH2+6QqrfG1HY5tp3SK7XTEfJN5bsH19ftYFzrlOtOcF131mW0m/v1MvYrgTqdLf3PevH2v5Ph6WSY1TnZDuOMxpEydXdk6hySoz6QI6pD9/Eq1tuYb8Pm/9I8z/+l4KZY90+Y//s6MpaGGPvCGKXrrnlIP3D+fbKR+bcE+lQKfXMxJ2P+zbmzK8SpzpdgTP9ePxDExxA9LWOop9v750bHUI8cH0P0sxhLYzNWTHd1/tRzPPVcspdxznoY93/q+XB3o/9Z3d8ujsZVZ+P+idrH+2qq8+InPB7p7OjxSBdH47FTyDWFfac6u+Gaeg0eb/SxPB55z/J3WozNBo9HHN8nBue7vXG+bffH7Rw9HmlvPB6hdtpDvqn8LjweaRfyeKQDzBH0OAbt7ULmmw5wn9XOeEyE/c968fbffHzUwTCrc/IGjLP34PGIq+d1HUNy1B1y1NGYp1SspzFPZeDvPfPweKSb4e5meTzSzXjM5Op5XdTnHd3A08dBfhw9hyvD8xnje3HBvNTXOJ+9LGOur+XxVt88jy98LClmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGL+eAzh32/j+r1ZmKkGH43i2L43Sz67kCMnxEvR4sH7eL3FPoZZkf5KsPv/tHx8bt2Lr/3YI5t+o57KYx/Oj/NjTq0L35X8M/abPtOV8ayr+rnIP3jF+r8028ijIR9RhkxlY8Rnpt8jPIa5oO2qT1lpN9yGAWxUbAPGYfHbwy+20AW+p4Z/YbHcIhTndSQutuw79jVxG6s+x4g/fZGkZHHGjDuq/MJxmoHRjd9rxtDVdBHddzRlr5TnVZD6vPUWpfxt0bGQB57WP5OS8rYzkK5GnJ5dPx9Ds73eHBmoR1sewJYY2q7HNtO6ZXaoXghlLsPqa9L9SgflGuyq+t6nC6j3dxvhLFfCdQZZ+l/1ou3/0cbnqMNszonbWCc0ThSpmGOTONCcjQKckR1DocYzfFUP2z+H+3IHTb/jwYjxSh3YfP/GEfG0SFGag/n3+Yh/cD5d1Aj828J2EdD31zMyZh/c+6shjjVGQJjep7+4Sl8DEG/CYVjaCj0wcH9c6NjiNr7pMcQYy3G0tiMdb9L4OL80e8S0LVbbfSb7v8KvPprB68b5apy4ML5iO6fqH28r6Y6oz7h8cg4B0Y3fW94/2BeU9h3qjMOrqnx8HjDnGPU3ydb/k5LY49HHN8nBud7Ijiznv3+eBJYY2q7HNumxyPUDsULoXwaPB6hepQPyjXZ1RxBj2PQbu43ytivBOqMt/Q/68Xbf/Px0QTDrM7JJBhnk+HxiKvndeNDcjQMckR1aiBG9xdUH39DEO9LXD0eqTHctI2PRyg2AjwuntdFfd5RA55RsXvqfpfAwXO4Mjyfcf8uwRgjVyOMXJVAHXy85eqxZNj4wseSYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5gPPnPY9/uo3kgmRorhd7Moht/Nou8O7I3RiBYP2sXvKYw1zI7yVYbf/aPj43ftXH7vwRzb9B13ai8F56e5UYf2xe8KLtbmsN8lOMLSz0HN6vupi7Ge67S2x52/jO47LiljOwtlMqR1v+P2tNI5VsvSZQuXTJtVO7l22owU0AoNJt4ifS9sF0Acy80ssb1wm4EuU7sq1kKXiyBWYKQoA8en+i29utTRdtaL91SSh5bGTiUZXA0tdSpb62PpU3n2kjnLavF8FRnOpp5L9bdmxjEKLPuHHVOdFxx6i6ZNnzu5dtnyJQuW4i7NjSboMDZSAZAKjb+pJau3zWMpyv8HpNBE5d6RCAA=", "debug_symbols": "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qr2Hq/Yertp7uGrv4aq9h6v2Hk6e9iLu9RHpf0T7H7H+R7z/kdP/SPQ/kv2P3P5H+q8v/deX/utL//Wl//rSf33pv770X1/6ry/915f+62v/9bX/+tp/fe2/vvZfX/uvr/3X1/7ra//1tf/61n9967++9V/f+q9v/de3/utb//Wt//rWf33rv773X9/7r+/91/f+63v/9b3/+t5/fe+/vvdf3/uvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvH/3Xj/7rR//1o//60X/96L9+9F8/+q8f/deP/utn//Wz//rZf/3sv372Xz/7r5/918/+62f/9bP/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+tV//eq/fvVfv/qvX/3Xr/7rV//1q//61X/9/q5P+rs+6e/6pL/rk/6u7/VPvf2PnP5Hov+R7H/k9j/Sf/3+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5PO7u+v0yPuPWRO14iP/5W/vy/Luov/lbz42/t+fVcOz8qUZpKjKYSp6nk0FQSNJUkTSWXppJiqeT3/e93+amV0Gis0mis0mis0mis0mis0mis0mis0mis0mis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis02is02is02is02is02is02is02is02is02is02jsodHYQ6Oxh0ZjD43GHhqNPTQae2g09tBo7KHR2EOjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsZdGYy+Nxl4ajb00GntpNPbSaOyl0dhLo7GXRmMvjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWi8baw6Kx9rBorD0sGmsPi8baw6Kx9rBorD0sGmsPi8baw6Kx9tBorNBoLI3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2l8Xk7j83Ian5fT+Lz8YdFYp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+Lycxud1aHxeh8bndWh8XofG53UeFo09ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6v8/nVXI/KjH9vZU4TSWHppKgqSRpKrk0lRRLJb/P5/VTK2lo7MdHtP8R63/E+x85/Y9E/yPZ/8jtf6S6H4mOseXjI9L/iPY/Yv2PeP8jp/+R6H8k+x+5/Y/0X1/6ry/915f+60v/9aX/+tJ/fem/vvRfX/qvL/3X1/7ra//1tf/62n997b++9l9f+6+v/dfX/utr//Wt//rWf33rv771X9/6r2/917f+61v/9a3/+tZ/fe+/vvdf3/uv7/3X9/7re//1vf/63n9977++91//9F//9F//9F//9F//9F//9F//9F//9F//9F//9F8/+q8f/deP/utH//Wj//rRf/3ov370Xz/6rx/918/+62f/9bP/+tl//ey/fvZfP/uvn/3Xz/7rZ//1b//1b//1b//1b//1b//1b//1b//1b//1b//1b//1q//6/V1f9Hd90d/1RX/XF/1dX/R3fdHf9UV/1xf9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3vXp0971vT4i/Y9o/yPW/4j3P3L6H4n+R7L/kdv/SP/1pf/60n996b++9F9f+q8v/deX/utL//Wl//rSf33tv772X1/7r6/919f+62v/9bX/+tp/fe2/vvZf3/qvb/3Xt/7rW//1rf/61n9967++9V/f+q9v/df3/ut7//W9//ref33vv773X9/7r+/91/f+63v/9U//9U//9U//9U//9U//9U//9U//9U//9U//9U//9aP/+tF//ei/fvRfP/qvH/3Xj/7rR//1o//60X/97L9+9l8/+6+f/dfP/utn//Wz//rZf/3sv372X//2X//2X//2X//2X//2X//2X//2X//2X//2X//2X7/6r1/916/+61f/9av/+tV//eq/fvVfv/qv39/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Wl/16f9XZ/2d33a3/W9/g13/yOn/5HofyT7H7n9j/Rfv7/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+7s+7+/6vL/r8/6uz/u7Pu/v+ry/6/P+rs/7uz7v7/q8v+vz/q7P+7s+7+/6vL/r8/6uz/u7Pu/v+ry/6/P+rs/7uz7v7/q8v+vz/q7P+7s+7+/6vL/r8/6uz/u7Pu/v+ry/6/P+rs/7uz7v7/q8v+vz/q7P+7s+7+/6vL/r8/6uz/u7Pu/v+ry/6/P+rs/7uz7v7/q8v+vz/q7P+7s+7+/6vL/r8/6uz/u7Pu/v+ry/6/P+rs/7uz7v7/q8v+vz/q7P+7s+7+/6vL/r886u72/+4u9En/zlT0VTfvx15Wd//DwiH3/9PMd//HneT/78z4zuL3/959XXr5U89slfnzr1y1/Ho/av/vrjq/of56ueP85XjT/OV80/zle9f5yvWn+Yr9r5dx7bv6r8cb6q/nG+6h/nn5Y6/05v+1f94/zTUv5x/mkp/zj/tJR/nH9aytF/Wgr/8VXlOb/9qr+Uc1H/RPNxvoDPV/D5Bj7fwecf8PkBPj/B51/w+YU9v8D9W+D+LXD/Frh/C9y/Be7fAvdvgfu3wP1b2P49zwM+X8DnK/h8A5/v4PMP+PwAn5/g8y/4fHD/Crh/Bdy/Au5fAfevgPtXwP0r4P4VcP8KuH8F3L8K7l8F96+C+1fB/avg/lVw/yq4fxXcvwruXwX3r4H718D9a+D+NXD/Grh/Ddy/Bu5fA/evgfvXwP3r4P51cP86uH8d3L8O7l8H96+D+9fB/evg/nVw/x5w/x5w/x5w/x5w/x5w/x5w/x5w/x5w/x5w/x5w/wa4fwPcvwHu3wD3b4D7N8D9G+D+DXD/Brh/A9y/Ce7fBPdvgvs3wf2b4P5NcP8muH8T3L8J7t8E9y+Yvzpg/uqA+asD5q8OmL86YP7qgPmrA+avDpi/OmD+6oD5qwPmrw6Yvzpg/uqA+asD5q8OmL86YP7qgPmrA+avAsxfBZi/CjB/FWD+Kh4Hn3/A5wf4/ASff8Hng/sXzF8FmL8KMH8VYP4qwPxVgPmrAPNXAeavAsxfBZi/CjB/FWD+KsD8VYD5qwDzVwHmrwLMXwWYvwowfxVg/irA/FWA+asA81cB5q8CzF8FmL8KMH8VYP4qwPxVgPmrAPNXAeavAsxfBZi/CjB/FWD+KsD8VYD5qwDzVwHmrwLMXwWYvwowfxVg/irA/FWA+asA81cB5q8CzF8FmL8KMH8VYP4qwPxVgPmrAPNXAeavAsxfBZi/CjB/FWD+KsD8VYD5qwDzVwHmrwLMXwWYvwowfxVg/irA/FWA+asA81cB5q8CzF8FmL8KMH8VYP4qwPxVgPmrAPNXAeavAsxfBZi/CjB/FWD+KsD8VYD5qwDzVwHmrwLMXwWYv0owf5Vg/irB/FWC+at8HHz+AZ8f4PMTfP4Fnw/uXzB/lWD+KsH8VYL5qwTzVwnmrxLMXyWYv0owf5Vg/irB/FWC+asE81cJ5q8SzF8lmL9KMH+VYP4qwfxVgvmrBPNXCeavEsxfJZi/SjB/lWD+KsH8VYL5qwTzVwnmrxLMXyWYv0owf5Vg/irB/FWC+asE81cJ5q8SzF8lmL9KMH+VYP4qwfxVgvmrBPNXCeavEsxfJZi/SjB/lWD+KsH8VYL5qwTzVwnmrxLMXyWYv0owf5Vg/irB/FWC+asE81cJ5q8SzF8lmL9KMH+VYP4qwfxVgvmrBPNXCeavEsxfJZi/SjB/lWD+KsH8VYL5qwTzVwnmrxLMXyWYv0owf5Vg/irB/FWC+asE81cJ5q8SzF8lmL9KMH+VYP7qgvmrC+avLpi/umD+6j4OPv+Azw/w+Qk+/4LPB/cvmL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+6oL5qwvmry6Yv7pg/uqC+asL5q8umL+6YP7qgvmrC+avLpi/umD+qsD8VYH5qwLzVwXmr+px8PkHfH6Az0/w+Rd8Prh/wfxVgfmrAvNXBeavCsxfFZi/KjB/VWD+qsD8VYH5qwLzVwXmrwrMXxWYvyowf1Vg/qrA/FWB+asC81cF5q8KzF8VmL8qMH9VYP6qwPxVgfmrAvNXBeavCsxfFZi/KjB/VWD+qsD8VYH5qwLzVwXmrwrMXxWYvyowf1Vg/qrA/FWB+asC81cF5q8KzF8VmL8qMH9VYP6qwPxVgfmrAvNXBeavCsxfFZi/KjB/VWD+qsD8VYH5qwLzVwXmrwrMXxWYvyowf1Vg/qrA/FWB+asC81cF5q8KzF8VmL8qMH9VYP6qwPxVgfmrAvNXBeavCsxfFZi/KjB/VWD+qsD8VYH5qwLzVwXmrwrMXxWYvyowf1Vg/qrA/FVh+St7sPzV63wBn6/g8w18voPPP+DzA3x+gs+/4PPB/Svg/hVw/wq4fwXcvwLuXwH3r4D7V8D9K+D+FXD/Krh/Fdy/Cu5fBfevgvtXwf2r4P5VcP8quH8V3L8G7l8D96+B+9fA/Wvg/jVw/xq4fw3cvwbuXwP3r4P718H96+D+dXD/Orh/Hdy/Du5fB/evg/vXwf17wP17wP17wP17wP17wP17wP17wP17wP17wP17wP0b4P4NcP8GuH8D3L8B7t8A92+A+zfA/Rvg/g1w/ya4fxPcvwnu3wT3b4L7N8H9m+D+TXD/Jrh/E9y/F9y/F9y/F9y/F9y/F9y/F9y/F9y/F9y/F9y/F9y/Be7fAvdvgfu3wP1b4P4tcP8WuH8L3L8F7l8wfyVg/krA/JWA+SsB81fyOPj8Az4/wOcn+PwLPh/cv2D+SsD8lYD5KwHzVwLmrwTMXwmYvxIwfyVg/krA/JWA+SsB81cC5q8EzF8JmL8SMH8lYP5KwPyVgPkrAfNXAuavBMxfCZi/EjB/JWD+SsD8lYD5KwHzVwLmrwTMXwmYvxIwfyVg/krA/JWA+SsB81cC5q8EzF8JmL8SMH8lYP5KwPyVgPkrAfNXAuavBMxfCZi/EjB/JWD+SsD8lYD5KwHzVwLmrwTMXwmYvxIwfyVg/krA/JWA+SsB81cC5q8EzF8JmL8SMH8lYP5KwPyVgPkrAfNXAuavBMxfCZi/EjB/JWD+SsD8lYD5KwHzVwLmrwTMXwmYvxIwfyVg/krA/JWA+SsB81cC5q8EzF8JmL8SMH8lYP5KwPyVgvkrBfNXCuavFMxf6ePg8w/4/ACfn+DzL/h8cP+C+SsF81cK5q8UzF8pmL9SMH+lYP5KwfyVgvkrBfNXCuavFMxfKZi/UjB/pWD+SsH8lYL5KwXzVwrmrxTMXymYv1Iwf6Vg/krB/JWC+SsF81cK5q8UzF8pmL9SMH+lYP5KwfyVgvkrBfNXCuavFMxfKZi/UjB/pWD+SsH8lYL5KwXzVwrmrxTMXymYv1Iwf6Vg/krB/JWC+SsF81cK5q8UzF8pmL9SMH+lYP5KwfyVgvkrBfNXCuavFMxfKZi/UjB/pWD+SsH8lYL5KwXzVwrmrxTMXymYv1Iwf6Vg/krB/JWC+SsF81cK5q8UzF8pmL9SMH+lYP5KwfyVgvkrBfNXCuavFMxfKZi/UjB/pWD+SsH8lYL5KwXzVwbmrwzMXxmYvzIwf2WPg88/4PMDfH6Cz7/g88H9C+avDMxfGZi/MjB/ZWD+ysD8lYH5KwPzVwbmrwzMXxmYvzIwf2Vg/srA/JWB+SsD81cG5q8MzF8ZmL8yMH9lYP7KwPyVgfkrA/NXBuavDMxfGZi/MjB/ZWD+ysD8lYH5KwPzVwbmrwzMXxmYvzIwf2Vg/srA/JWB+SsD81cG5q8MzF8ZmL8yMH9lYP7KwPyVgfkrA/NXBuavDMxfGZi/MjB/ZWD+ysD8lYH5KwPzVwbmrwzMXxmYvzIwf2Vg/srA/JWB+SsD81cG5q8MzF8ZmL8yMH9lYP7KwPyVgfkrA/NXBuavDMxfGZi/MjB/ZWD+ysD8lYH5KwPzVwbmrwzMXxmYvzIwf2Vg/srA/JWB+SsD81cG5q8MzF85mL/yz/krqUc/Plcmb275MwXyy1//+V8o/Phrt0/+OM/95W+z/NeD9UdBylaQsRXkbAUdtoLiZxR04kdB4b8t6OOWHLnl/oxbyn7cUvXZLfVTbvn46z+X/cktn8NoP/2Wf0PSjvy4pWzy5yjKVpCxFeRsBR22guJnFPRObCRHbrk/45Z3kib1U255Izaf83mq9lGd6vE3t8Tz+C9/HY98eouM3KIjt9jPuEXPj1v8+ewWH7nljNwSP+Vd7Ndb9N8Xoz//r535+NlL/vrHv1ZU0xWp/mhENf/Livyn/KpSflR0zycv4T/lV/VDU0Ke/OyWn/KryufXW+p3vvfnFAiyonfvHT9Dq8R+vLeE/fsV6auOj6PtPJ9UZGwVZXs2fXxQvvtB/e4H7bsf9O9+8Hz3g/HdD+Z3P3i/+8H65gfvd38597u/nPvdX8797i/nfveXc7/7y7nf/eXc7/5y7nd/Ofe7v5z67i+nvvvLqe/+cuq7v5z67i+nvvvLqe/+cuq7v5z67i+nvvnLOc/z3Q/Kdz+o3/2gffeD/t0Pnu9+ML77wfzuB+93P/jdX45895cj3/3lyHd/OfLdX45895cj3/3lyHd/OfLdX45895cj3/3l6Hd/OfrdX45+95ej3/3l6Hd/OfrdX45+95ej3/3l6Hd/OfrdX45995dj3/3l2Hd/OfbdX45995dj3/3l2Hd/OfbdX45995dj3/3l+Hd/Of7dX45/95fj3/3l+Hd/Of7dX45/95fj3/3l+Hd/Of7dX8757i/nfPeXc777yznf/eWc7/5yznd/Oee7v5zz3V/O+e4v53z3l/O5i0btBx302rHef/n3d5MlH7fUbzaTovIpd/RjfSuaz5u/PnXqx95df/Pv5B778QVk+xfQ7V/Atn8B3/4FzvYvENu/QG7/Anf7F6jlXyC3T+LcPolz+yTO7ZM4t0/i3D6Jc/skzp8wieWxD+ZSnjpvivqq5SLyg36M+u3/WH4t/e4tvdaWfp+9pcve0nVv6ba3dN9b+tlbeuwtfe80vXun6d07TWvvNK2907T2TtPaO01r7zStvdO09k7T2jtNa+80rbXTNJ610zSetdM0nrXTNJ610zSetdM0nrXTNJ610zSetdM0nrXTNJ6901T2TlPZO01l7zSVvdNU9k5T2TtNZe80lb3TVPZOU9k7TXXvNNW901T3TlPdO0117zTVvdNU905T3TtNde801b3T1PZOU9s7TW3vNLW909T2TlPbO01t7zS1vdPU9k5T2ztNfe809b3T1PdOU987TX3vNPW909T3TlPfO0197zT1vdP07J2mZ+80PXun6dk7Tc/eaXr2TtOzd5qevdP07J2mZ+80jb3TNPZO09g7TWPvNP0ZyUp/rdL3TtPYO01j7zSNvdM09k7T3DtNc+80zb3TNPdO05+RjvTXKn3vNM2903RvFlLszUKKvVlIsTcLKfZmIcXeLKTYm4UUe7OQYm8WUuzNQoq9WUixNwsp9mYhxd4spNibhRR7s5BibxZS7M1Cir1ZSLE3Cyn2ZiHF3iyk2JuFlHuzkHJvFlLuzULKvVlI+aydprk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1Cyr1ZSLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1Cyr1ZSLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1Cyr1ZSLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1CunuzkO7eLKS7Nwvp7s1Cus/aaXr3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0v1CFtI570oXOR+li8e/uuYv/9pSf/ljl9+U9OSPkg5fScFXUvKVdPlKKrqSvpANNF6S8JWkfCUZX0l86p186p186p186p186p186n351PvyqfflU+/Lp96XT70vn3pfPvW+fOp9+dT78ql38al38al38al38al38al38al38al38al38al30al3PXTqXQ+detdDp9710Kl3PXTqXQ+detdDp9710Kl3PXTqXQ+fegufegufegufegufegufegufegufegufegufegufeiufeiufeiufeiufeiufeiufeiufeiufeiufeiufehufehufehufehufehufehufehufehufehufehufejufejufejufejufejufejufejufejufejufejufeh8+9T586n341PvwqffhU+/Dp96HT70Pn3ofPvU+fOodfOodfOodfOodfOrN57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti85r6Q+d1/JVEpt6v0piU+9XSWzq/SqJTb1fJbGp96skNvV+lcSm3q+S2NT7VRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l0am38Hkthc9rKXxeS+HzWspDp97C57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L5vJbK57VUPq+l8nkt9aFTb+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9raXxeS+PzWhqf19L4vJb20Km38Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57V0Pq+l83ktnc9r6XxeS3/o1Nv5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWh4+r+Xh81oe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Wszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVMWixUvjuh8t0Jle9OqHx38jBpsVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9ORn138fyo5uqn1RyqaoKqmkEtLq2PasqeT6u5TNVMOt2+UI1QVaNU1RhVNU5VzacdrpEflzz+42OvleWvn7vf/Fx973Ofe5m+8Dn55uf0m5/79H8uoR8zMeJ+/rn63uc+9xV84XPyzc/pNz/36a9ejv3yObnym8/Zv/zH1//t//nb//H3f/uf/tvf/dPrE3/+//yf//Cf//nv//Effvm//vP/+9////+f19/+fw==" }, { "name": "balance_of_public", "is_unconstrained": true, "custom_attributes": [], "abi": { "error_types": {}, "param_witnesses": { "owner": [{ "end": 1, "start": 0 }] }, "parameters": [{ "name": "owner", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }], "return_type": { "abi_type": { "kind": "field" }, "visibility": "public" }, "return_witnesses": [1] }, "bytecode": "H4sIAAAAAAAA/+2cXW/bNhSGJX/Ectwk9bedD0eJ06a7GRS7dTBgA7y/sJvtaoEbO0OArgZiF+j244OVis7ymjvIqPaIEIEQCETR1HkfvqKO7NiU7z0UP/lTpQxteqG2abKNvq1cCMaKfI3zP/xS0CpwSTOEM0ltC0y/X2Gnn2x/vrub/RXefpwvPofLT+tweRO+X376OF/hgb/DzkGyvZ59+BCul+FstVrcra/+nH2+en+7vlrd/r34V3SdVAJv04yphCFvo9GW9+iIbkgNTKA+lS9/W/C6n7RTvzq0UTzFXpZmj6KR0i9qzPoYplAvA09Jnucio3FGAXh+78leDBXNq6Lm1S702QL/Khn454MuxaZ90kvLXMgBM86L0JOdF4H8mEZ7X2Jsg6+B5i+OazupC87LSMWogibpbYPui6Tue7J3oVoSq5TEJo4XoL0n7vn4WunueJvlqVy2Bzy74jwPuUx+nA9z9iWwy8R9N1Ze1TWvdjSvdqEPMtQz8M8HXYpN+3VGW86Ly7dKu2HgRYPhaVj2osFoy3kxuVHaTQMvmgxP07IXTUZbcF6MlHbLwIsWw9Oy7EWL0RacF7F228CLNsPTtuxFm9EW9OJSaXcMvOgwPB3LXnQYbUEv3introEXXYana9mLLqMt58Uofj/UM/Cix/D0LHvRY7QFc2f8/qJv4EWf4elb9qLPaAteI9dKe9/Ai32GZ9+yF6SXlrnhIHPdQeZuDpgDrS6jPY7z54GBFwcMz4FlL0gvLXM3B8yBVpfRniyU9qGBF4cMz6FlL0gvLXPDQea6g8xdB5lbDjL3n5mtMOchbwRaXUb7Mv48fGTgxRHDc2TZC9JLy9zJAXOg1WW0J/H/PwcGXgwYnoFlLwaMtuBn+Pg9zLGBF8cMz7FlL0gvLXPXQeaXDjLXHWRuOMjcdJC55SBz20HmjoPMLubnnoPMfQeZXczPLt4HXZzPecgbgVaX0Z7MlXZo4EXI8ISWvQgZbcHP2/F3ricGXpwwPCeWvSC9tMw9B5nrDjJ3HWR+nht2mFsOMjcdZH7OG1/HHGh1Ge3JRGmfGnhxyvCcWvaC9NIyNx1kbjjIfOwgczcHzIFWl9Eex9pDAy+GDM/Qshekl5Z5kANmtR6E1ob86GfJM57XNB7yzNMYPY2xBvU98OxMnDGK8PycgdYreS12jtP+q0y1x9cq7rn8mOLfhr1JYpWTuOfMmL5L6r6wn28grg861F6C+g/+Y1/qR37QdUvsav91Ukd2/bihdtwu9HnNjH/qyY7/XOM515jVOfkervMs5pbJvFbfE9K1/BN4RQXX4lXFGR+88jRGKlWGx88BT83j1zJXNc9wfTO+dus/vk65rQDH0DkqMrHPoI3uF1x+Rp8yyM8bOZNyh56vd4BjmBOeCsOT1bpdOj8Um/Yr2XoRZbS2Mh4T5Q26pxA/6ZWgz2/JyaffImDBWMSpz3E8X9S3wPh4723mgzRrhW/+p6B2BbSrzHivnhgvxz1N2jGvED/u+3AM9cV7xjesjb7QG5CvCAx4rmowpgrzOq6f18dWY3zAPIn+Bt5jDpR8LoGKS88amArGVewlb7M8dT/B5x1k8FyHi23wc7Ve3s3+WPyymM19QNOfVYJbRL+H/QK0Y73ItN3DtgZDJl3VRtOgDG0FzSJ8FAdeCv8AMDZ9CKVGAAA=", "debug_symbols": "5dzdahtXGIXhe9GxKXutb//mVkopTuIUgZFDrBSKyb133GpkhyhValx3v/jMSkbS2ibMaznw3G3eX739/Nuv292Hm9vNm5/vNtc37y7325vd8uhuk36qf/3h7cfL3f3j2/3lp/3mjWvUi83V7v39l9VfLjYfttdXy4O8fP3N1UNxuHjUOF4r68S1sn24WG7pzNVllHG4uiY/vLZTfPnlYlnf0Os7ev1Ar1dizxd7vtnzgz0/s+cX9nx2csVurtjRFbu6ZlfX7OqaXV0/Q3WVoq+T0ihnJqXDpenMq9a2Tqjj8TdlHZ6pwwt1eKUOb9ThnTp8QIdHog4Xdbipw6nlDGo5g1rOoJYzqOUMajmDWs5MLWemljNTy5mp5czUcmZqOTO1nJlazkwtZ6aWs1DLWajlLNRyFmo5C7WchVrOQi1noZazUMtZqOWs1HJWajkrtZyVWs5KLWellrNSy1mp5azUclZqORu1nI1azkYtZ6OWs1HL2ajlbNRyNmo5G7WcjVrOTi1np5azU8vZqeXs1HJ2ajk7tZydWs5OLWenlnNQyzmo5RzUcg5qOQe1nINazkEt56CWc1DLOajlVKKmU4naTiVqPJc3xS6n5lOJ2k8lakCVqAVVoiZ0eSfqcmEbKmxDhW2osA19Dojof1qObaiwDRW2ocI2VNiGGttQYxtqbEOxtpCwuJCwupCwvJCwvpCwwJCwwpCwxJCwxpCwyJCwypCwzJCwzpCw0JCw0pCw1JCw1pCw2JCw2pCw3JCw3pCw4JCw4pCw5JCw5pCw6JCw6pCw7JCw7pCw8JCw8pCw9JCw9pCw+JCw+pCw/JCw/pCwAJGwApGwBJGwBpGwCJGwCpGwDJGwDpGwEJGwEpGwFJGwFpGwGJGwGpGwHJGwHpGwIJGwIpGwJJGwJpGwKJGwKpGwLJGwLpGwMJGwMpGwNJGwNpGwOJGwOpGwPJGwPpGwQJGwQpGwRJGwRpGwSJGwSpGwTJGwTpGxTpGxTpGxTpGxTpETtaHGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkWBdYoC6xQF1ikKrFMUidrQwDpFgXWKAusUBdYpCqxTFFinKLBOUWCdosA6RYF1igLrFMWPOEXj3HKprMuV61fv8u3V0Xy4OOvRotTWRW26RX26RWO2RT/iAL3wIk23yNMtiukW5ekWlekWTXfP9nT3bE93z/Z09+yY7p4d092zY7p7dkx3z47p7tkx3T07prtnx398zz68S3+Rd3mWe2upx3dp/cx3V7WtH8GWLx9eWyMfNuU04SZNuMkTbooJN+UJN5UJN9WX31R03NTTV5tO3JeX34oerl5a3o5X51Mv3cr6O6F2/2LraK9nba/orP0VnXW8nrOW9IrOqtnPenzt5SfW/PishwOYfoCY/QAjjgcY48QB8vQHWD93LD8C9xMHKPQDnP8Bo5/7bxm1hx9jWm+PJpVTk8rxA9DyDzidmNReflL650nf4yTa+qyUT3wo/R7lcOZZ8aRn5Sc9qzzpWfVfPmt59Pvlp+3l2+ur2+UZ93/5efduv73ZHR7u//j4998s1/4J" }, { "name": "compute_note_hash_and_nullifier", "is_unconstrained": true, "custom_attributes": [], "abi": { "error_types": {}, "param_witnesses": { "contract_address": [{ "end": 1, "start": 0 }], "nonce": [{ "end": 2, "start": 1 }], "note_type_id": [{ "end": 4, "start": 3 }], "serialized_note": [], "storage_slot": [{ "end": 3, "start": 2 }] }, "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": "serialized_note", "type": { "kind": "array", "length": 0, "type": { "kind": "field" } }, "visibility": "private" }], "return_type": { "abi_type": { "kind": "array", "length": 4, "type": { "kind": "field" } }, "visibility": "public" }, "return_witnesses": [4, 5, 6, 7] }, "bytecode": "H4sIAAAAAAAA/+2byW7bMBCGJa9yVC+SZXlf4uTSm+w6tnPzy7Rv3XuBvkPRjMKpx8QkoNARIQImYGhMUfy/+blECRjfey/tt4+v4qZ2pQXbXNQ1+7+yE+wrK5PTd4Sz5ghnXZDTZzjh2lAxXGEut7zbef6vXAQnCRWlUDAwdVL3EdzNQ1BaKgg04IsE9CE7twgNhYYSKnB6MySJ+KQOn62ROtxB6o1rDi35HA4BMU+s37cBDb2r7y3iCcZ4D7RnpK5RUo5N+RzL8i5flehPU/XbJt/Rq46KBXfYHdX21adDND01RhhPSVtsh37UyBhD6XrX8e988lxDe65H2rSY/C+ebP5tjaetMTcVE5QIeLU9oKSxyaDfB/l+b8a8oY3JA8mpK+73/gx7QujdFv2nzIXEXcLzRZwn25WT5/vY9Qi7TL8vB/Cqr3kVal71SBvK0C/BP5/oYt/4vc9oy3lxPIP2wMCLAcMzsOzFgNEW9OIVtCMDLyKGJ7LsRcRoy3lx+gbasYEXMcMTW/YiZrTlvNjn7xZDAy+GDM/QshdDRltwjeTzIjHwImF4EsteJIy2oBc/QHtk4MWI4RlZ9mLEaAt68R20UwMvUoYntexFymgL7p35+8XYwIsxwzO27MWY0Rb0Yg/aEwMvJgzPxLIXE0ZbcI3k2lMDL6YMz9SyF/R31CLMQweZUweZ4wowB1oso33M98+ZgRczhmdm2QvUK8qcVIA50GIZ7eMLaM8NvJgzPHPLXqBeUebIQebYQeaRg8yJg8ypg8xVmM+BFston/I9dGHgxYLhWVj2AvWKMkcOMs8cZI4rwBxosYz2Kf/b3NLAiyXDs7TsBeoVZR47yDyoAHOgxTLapyNorwy8WDE8K8teoF5R5omDzKmDzDMHmWMHmUcOMicOMt/XoB3mqALM9EzT71J59q+hxoOeeRqjpzGGJKbnYNbijFlGx2dNtDbyWjtuvuD3Tana+zP0u5XPKX+Xf1J94Rm+LZPTs4qlz3M9kX59ooP1DRL/Im2xHfqB6xbZYd49qvj5k+dW2nM90uaRyf/iyea/1Xi2GjOMyU/CsRHn2J9N5vXAu67lr4SnhH3wQM/kYjHZd0raY3Yl5ZnRM3x/PNk1vdG8CjSveqQN3aM3JfhnMr/uzHfmj5jp+0RA6vD+mtTVtFzo/zJgezgz/BdsuDj5FjUAAA==", "debug_symbols": "ndpBattQGIXRvWgciu+vpycpWymlOIlTDMYOsVMoJnuv3dIF9Mz0JN3ZNzq86/Cye/r48X1/fD2dh8ev1+Fwet5e9qfj7XQdNl+q/3l7ftse7y/Ol+37ZXgcKw/D7vhyf+qfD8Pr/rAbHqvV57eH+2iW0SKjFUbjRkaRUclolFGT0SQjKWKUIkYpYpQimhTRpIgmRTQpokkRTYpoUkSTIpoU0aSISYqYpIhJipikiEmKmKSISYqYpIhJipikiC5FdCmiSxFdiuhSRJciuhTRpYguRXQpYpYiZililiJmKWKWImYpYpYiZililiJmKWKRIhYpYpEiFilikSIWKWKRIhYpYpEiFililSJWKWKVIlYpYpUiVililSJWKWKVIlYpIpsNrUKrotVIq0ariVadVjOtFlpRG6E2Qm2E2gi1EWoj1EaojVAboTZCbRS1UdRGURtFbRS1UdQGcWbIM0OgGRLNEGmGTDOEmiHVDLFmyDVDsBmSzRBthmwzhJsh3QzxZsg3Q8AZEs4QcYaMM4ScIeUMMWfIOUPQGZLOEHWGrDOEnSHtDHFnyDtD4BkSzxB5hswzhJ4h9QyxZ8g9Q/AZks8QfYbsM4SfIf0M8WfIP0MAGhLQEIGGDDSEoCEFDTFoyEFDEBqS0BCFhiw0hKEhDQ1xaMhDQyAaEtEQiYZMNISiIRUNsWjIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFy6552j1Pu+hJLlrkokUuWuSiRS5a/+2it9PP7ft++3TY3W/23j9+HJ//XfS9HS+/3v5+uf37Gw==" }, { "name": "claim_public", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "amount": [{ "end": 42, "start": 41 }], "inputs": [{ "end": 40, "start": 0 }], "leaf_index": [{ "end": 44, "start": 43 }], "secret": [{ "end": 43, "start": 42 }], "to": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }, { "name": "amount", "type": { "kind": "field" }, "visibility": "private" }, { "name": "secret", "type": { "kind": "field" }, "visibility": "private" }, { "name": "leaf_index", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273] }, "bytecode": "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", "debug_symbols": "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VP60EsdUEphKFqaSDalk/Bnn9amVDEwlgqnkQGPvPzLPf8TOf8TPfyTOf2Sd/8g+/pETDOf+I+P8R+T8R86//XH+7Y/zb3+cf/vj/Nsf59/+OP/25fzbl/NvX86/fTn/9uX825fzb1/Ov305//bl/NuX829fz799Pf/29fzb1/NvX8+/fT3/9vX829fzb1/Pv309//bn+bc/z7/9ef7tz/Nvf55/+/P825/n3/48//bn+bc/z799O//27fzbt/Nv386/fTv/9u3827fzb9/Ov307//bt/Nv382/fz799P//2/fzb9/Nv38+/fT//9v382/fzb9/Pv/04//bj/NuP828/zr/9OP/24/zbj/NvP86//Tj/9uP821/n3/46//bX+be/zr/9df7tr/Nvf51/++v821/n3/46//b3+be/z7/9ff7t7/Nvf59/+/v829/n3/4+//b3+be/j799ua7zHxnnPyLnP6LnPzLPf8TOf8TPfyTOf2Sd/8j5t3++65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/Nd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e2TXd8//tXrhlzx86VDYny8esejF1/XGPdXX5fNj5fHevBykXl/7x+/+vhXJZc+eLXdOv/nq/0S/YtX3z+qf5+PGt/no67v81H3t/moJzv47h91fJ+PKt/no+r3+ajz+3zU7/O0tL7P09L6Pk9L6/s8La3v87S0v8/T0i59WvL58VHHZb9/1Hs5WU809/fX5Pefye9vye/vye8fye+/kt9/Z76/XteV/P4j+f0l+f01+f1n8vtb8vt78vtH8vuv5PdP7t+R3L8juX9Hcv+O5P4dyf07kvt3JPfvSO7fkdy/I7l/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Z3L/zuT+ncn9O5P7dyb370zu35ncvzO5f2dy/87k/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/l3J/buS+3cl9+9K7t+V3L8ruX9Xcv+u5P5dyf27kvt3J/fvTu7fndy/O7l/d3L/7uT+3cn9u5P7dyf3b7L/aiT7r0ay/2ok+69Gsv9qXDP5/S35/T35/SP5/Vfy+yf3b7L/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvJNl/Jcn+K0n2X0my/0qumfz+lvz+nvz+kfz+K/n9k/s32X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rTfZfabL/SpP9V5rsv9JrJr+/Jb+/J79/JL//Sn7/5P5N9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9qJvuvZrL/aib7r2ay/2peM/n9Lfn9Pfn9I/n9V/L7J/dvsv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+68s2X9lyf4rS/ZfWbL/yq6Z/P6W/P6e/P6R/P4r+f2T+zfZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itP9l95sv/Kk/1Xnuy/8msmv78lv78nv38kv/9Kfv/k/k32X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/yqS/VeR7L+KZP9VJPuv4prJ72/J7+/J7x/J77+S3z+5f5P9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv1rJ/quV7L9ayf6rley/WtdMfn9Lfn9Pfv9Ifv+V/P7J/Zvsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q53sv9rJ/qud7L/ayf6rfc3k97fk9/fk94/k91/J75/cv8n+q53sv9rJ/qv92H8VU3/+WMR6csaU+fO1U+y31+rHETP/CMs/wvOPiPwjVv4RO/2Ix6aszz1i5B8h+Ufkd7fkd7fkd7fkd7fkd7fkd7fkd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd/fM7+6Z390zv7tnfnfP/O6e+d0987t75nf3zO/umd/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dK7+7V353r/zuXvndvfK7e+V398rv7pXf3Su/u1d+d+/87t753b3zu3vnd/fO7+6d3907v7t3fnfv/O7e2d09r+vKP2LkHyH5R2j+ETP/CMs/wvOPiPwjVv4R+d098rt75Hf3yO/ukd/dI7+7R353j/zuHvndPfK7e+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z398zv7pnf3TO/u2d+d8/87p753T3zu3vmd/fM7+6Z392W392W392W392W392W392W392W392W392W392W392e392e392e392e392e392e392e392e392e392e392R392R392R392R392R392R392R392R392R392R390rv7tXfnev/O5e+d298rt75Xf3yu/uld/dK7+7V3537/zu3vndvfO7e+d3987v7p3f3Tu/u3d+d+/87s73qo18r9rI96qNfK/ayPeqjWvmH2H5R3j+EZF/xMo/Ir+7871qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWrjE7xqtu5H7Osvjvjr1+41fr52XEN/vfjR+97W+X5/8dS/ePF/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" }], "outputs": { "globals": { "storage": [{ "fields": [{ "name": "balances", "value": { "fields": [{ "name": "slot", "value": { "kind": "integer", "sign": false, "value": "1" } }, { "name": "typ", "value": { "kind": "string", "value": "Map<AztecAddress, PublicMutable<U128>>" } }], "kind": "struct" } }, { "name": "portal_address", "value": { "fields": [{ "name": "slot", "value": { "kind": "integer", "sign": false, "value": "2" } }, { "name": "typ", "value": { "kind": "string", "value": "SharedImmutable<EthAddress>" } }], "kind": "struct" } }], "kind": "struct" }] }, "structs": { "functions": [{ "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "fee_limit", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::pay_fee_parameters" } }, { "name": "return_type", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::pay_fee_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "amount", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::mint_public_parameters" } }], "kind": "struct", "path": "GasToken::mint_public_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "amount", "type": { "kind": "field" } }, { "name": "secret", "type": { "kind": "field" } }, { "name": "leaf_index", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::claim_public_parameters" } }], "kind": "struct", "path": "GasToken::claim_public_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "portal_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress" } }], "kind": "struct", "path": "GasToken::constructor_parameters" } }], "kind": "struct", "path": "GasToken::constructor_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "fee_limit", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::check_balance_parameters" } }], "kind": "struct", "path": "GasToken::check_balance_abi" }] } }, "file_map": { "103": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr", "source": "#[oracle(packReturns)]\nfn pack_returns_oracle<N>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nfn unpack_returns_oracle<N>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<N>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n" }, "107": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr", "source": "use dep::protocol_types::traits::{Deserialize, Serialize};\n\n#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<N>(storage_slot: Field) -> [Field; N] {\n storage_read_oracle_wrapper(storage_slot)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n" }, "114": { "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)]\nfn 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)]\nfn 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 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" }, "118": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_l1_to_l2_membership_witness.nr", "source": "use dep::protocol_types::{address::AztecAddress};\n\nglobal L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH: u64 = 17;\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(getL1ToL2MembershipWitness)]\nfn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {}\n\nunconstrained pub fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n" }, "119": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context.nr", "source": "mod globals;\nmod inputs;\n\nmod private_context;\nmod public_context;\nmod avm_context;\nmod interface;\nmod gas;\n\nuse interface::{\n ContextInterface, PrivateCallInterface, PublicCallInterface, PrivateVoidCallInterface,\n PublicVoidCallInterface, AvmCallInterface, AvmVoidCallInterface\n};\nuse private_context::PrivateContext;\nuse private_context::PackedReturns;\nuse public_context::PublicContext;\nuse public_context::FunctionReturns;\nuse avm_context::AvmContext;\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n avm: Option<&mut AvmContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context { private: Option::some(context), public: Option::none(), avm: Option::none() }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context { public: Option::some(context), private: Option::none(), avm: Option::none() }\n }\n\n pub fn avm(context: &mut AvmContext) -> Context {\n Context { avm: Option::some(context), public: Option::none(), private: Option::none() }\n }\n\n pub fn none() -> Context {\n Context { public: Option::none(), private: Option::none(), avm: Option::none() }\n }\n}\n" }, "121": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr", "source": "use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::protocol_types::{hash::pedersen_hash, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T> Storage<T> for Map<K, T> {}\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n\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" }, "123": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr", "source": "use crate::context::Context;\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T> Storage<T> for PublicMutable<T> {}\n\nimpl<T> PublicMutable<T> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n\n // docs:start:public_mutable_struct_read\n pub fn read<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable reads only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable writes only supported in public functions\");\n let fields = T::serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_mutable_struct_write\n}\n" }, "126": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_immutable.nr", "source": "use crate::{\n context::Context, history::public_storage::public_storage_historical_read,\n oracle::{storage::{storage_read, storage_write}}, state_vars::storage::Storage\n};\nuse dep::protocol_types::{constants::INITIALIZATION_SLOT_SEPARATOR, traits::{Deserialize, Serialize}};\n\n// Just like PublicImmutable but with the ability to read from private functions.\nstruct SharedImmutable<T>{\n context: Context,\n storage_slot: Field,\n}\n\nimpl<T> Storage<T> for SharedImmutable<T> {}\n\nimpl<T> SharedImmutable<T> {\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n\n // Intended to be only called once. \n pub fn initialize<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(\n self.context.private.is_none(), \"SharedImmutable can only be initialized from public functions\"\n );\n // TODO(#4738): Uncomment the following assert\n // assert(\n // self.context.public.unwrap_unchecked().is_deployment(), \"SharedImmutable can only be initialized during contract deployment\"\n // );\n\n // We check that the struct is not yet initialized by checking if the initialization slot is 0\n let initialization_slot = INITIALIZATION_SLOT_SEPARATOR + self.storage_slot;\n let fields_read: [Field; 1] = storage_read(initialization_slot);\n assert(fields_read[0] == 0, \"SharedImmutable already initialized\");\n\n // We populate the initialization slot with a non-zero value to indicate that the struct is initialized\n storage_write(initialization_slot, [0xdead]);\n\n let fields_write = T::serialize(value);\n storage_write(self.storage_slot, fields_write);\n }\n\n pub fn read_public<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"Public read only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n\n pub fn read_private<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.public.is_none(), \"Private read only supported in private functions\");\n let private_context = self.context.private.unwrap();\n\n let mut fields = [0; T_SERIALIZED_LEN];\n\n for i in 0..fields.len() {\n fields[i] =\n public_storage_historical_read(\n (*private_context),\n self.storage_slot + i as Field,\n (*private_context).this_address()\n );\n }\n T::deserialize(fields)\n }\n}\n" }, "158": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_selector.nr", "source": "use crate::utils::field::field_from_bytes;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Serialize, Deserialize, FromField, ToField, Empty};\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl Serialize<1> for FunctionSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for FunctionSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n\nimpl FromField for FunctionSelector {\n fn from_field(field: Field) -> Self {\n Self { inner: field as u32 }\n }\n}\n\nimpl ToField for FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n}\n\nimpl Empty for FunctionSelector {\n fn empty() -> Self {\n Self { inner: 0 as u32 }\n }\n}\n\nimpl FunctionSelector {\n pub fn from_u32(value: u32) -> Self {\n Self { inner: value }\n }\n\n pub fn from_signature<N>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = dep::std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n" }, "186": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr", "source": "// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: u64) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n" }, "194": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr", "source": "use crate::traits::{Serialize, Deserialize};\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\nglobal U8_SERIALIZED_LEN: Field = 1;\nglobal U32_SERIALIZED_LEN: Field = 1;\nglobal U64_SERIALIZED_LEN: Field = 1;\nglobal U128_SERIALIZED_LEN: Field = 1;\nglobal FIELD_SERIALIZED_LEN: Field = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for U128 {\n fn serialize(self) -> [Field; 1] {\n [self.to_integer()]\n }\n\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for U128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n U128::from_integer(fields[0])\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n" }, "195": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr", "source": "use dep::std::cmp::Eq;\nuse 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, N>(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<N> 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<N> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<N> 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<N> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n" }, "203": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr", "source": "use crate::address::{AztecAddress, EthAddress};\nuse crate::recursion::verification_key::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage;\nuse crate::contract_class_id::ContractClassId;\nuse crate::abis::side_effect::SideEffect;\nuse crate::traits::is_empty;\nuse crate::utils::{uint256::U256, field::field_from_bytes_32_trunc};\nuse crate::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\n};\nuse crate::traits::Hash;\nuse crate::messaging::l2_to_l1_message::L2ToL1Message;\nuse crate::merkle_tree::root::root_from_sibling_path;\nuse dep::std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<N>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, note_hash_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n note_hash_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\n}\n\npub fn silo_note_hash(address: AztecAddress, unique_note_hash: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\npub fn silo_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\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 rollup_version_id: Field,\n chain_id: Field,\n message: L2ToL1Message\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, message.recipient.to_field(), chain_id, message.content\n ];\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\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: [SideEffect; 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 pedersen_hash<N>(inputs: [Field; N], hash_index: u32) -> Field {\n dep::std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<N>(inputs: [Field; N]) -> Field {\n dep::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), 0, 0, L2ToL1Message::empty());\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let message = L2ToL1Message { recipient: EthAddress::from_field(3), content: 5, counter: 1234 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n" }, "208": { "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" }, "22": { "path": "std/field.nr", "source": "mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n" }, "224": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr", "source": "pub fn field_from_bytes<N>(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" }, "238": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/eth_address.nr", "source": "use crate::{\n constants::ETH_ADDRESS_LENGTH, hash::pedersen_hash,\n traits::{Empty, ToField, Serialize, Deserialize}, utils\n};\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn serialize(self: Self) -> [Field; ETH_ADDRESS_LENGTH] {\n [self.inner]\n }\n}\n\nimpl Deserialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn deserialize(fields: [Field; ETH_ADDRESS_LENGTH]) -> Self {\n EthAddress::from_field(fields[0])\n }\n}\n\nimpl EthAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn from_field(field: Field) -> Self {\n field.assert_max_bit_size(160);\n Self { inner: field }\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n" }, "239": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr", "source": "use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash, grumpkin_point::GrumpkinPoint,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash([pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1])\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x1b6ead051e7b42665064ca6cf1ec77da0a36d86e00d1ff6e44077966c0c3a9fa;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n" }, "240": { "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" }, "241": { "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" }, "242": { "path": "/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr", "source": "mod lib;\n\ncontract GasToken {\n use dep::aztec::protocol_types::{abis::function_selector::FunctionSelector, address::{AztecAddress, EthAddress}};\n use dep::aztec::state_vars::{SharedImmutable, PublicMutable, Map};\n\n use crate::lib::{calculate_fee, get_bridge_gas_msg_hash};\n\n #[aztec(storage)]\n struct Storage {\n balances: Map<AztecAddress, PublicMutable<U128>>,\n portal_address: SharedImmutable<EthAddress>,\n }\n\n #[aztec(public)]\n #[aztec(initializer)]\n fn constructor(portal_address: EthAddress) {\n storage.portal_address.initialize(portal_address);\n }\n\n #[aztec(public)]\n fn claim_public(to: AztecAddress, amount: Field, secret: Field, leaf_index: Field) {\n let content_hash = get_bridge_gas_msg_hash(to, amount);\n\n // Consume message and emit nullifier\n context.consume_l1_to_l2_message(\n content_hash,\n secret,\n storage.portal_address.read_public(),\n leaf_index\n );\n\n let new_balance = storage.balances.at(to).read() + U128::from_integer(amount);\n storage.balances.at(to).write(new_balance);\n }\n\n // TODO(@just-mitch): remove this function before mainnet deployment\n // convenience function for testing\n // the true canonical gas token contract will not have this function\n #[aztec(public)]\n fn mint_public(to: AztecAddress, amount: Field) {\n let amount = U128::from_integer(amount);\n let new_balance = storage.balances.at(to).read().add(amount);\n\n storage.balances.at(to).write(new_balance);\n }\n\n #[aztec(public)]\n fn check_balance(fee_limit: Field) {\n let fee_limit = U128::from_integer(fee_limit);\n assert(storage.balances.at(context.msg_sender()).read() >= fee_limit, \"Balance too low\");\n }\n\n #[aztec(public)]\n fn pay_fee(fee_limit: Field) -> Field {\n let fee_limit_u128 = U128::from_integer(fee_limit);\n let fee = U128::from_integer(calculate_fee(context));\n // TODO(6252): implement debug logging in AVM\n //dep::aztec::oracle::debug_log::debug_log_format(\n // \"Gas token: paying fee {0} (limit {1})\",\n // [fee.to_field(), fee_limit]\n //);\n assert(fee <= fee_limit_u128, \"Fee too high\");\n\n let sender_new_balance = storage.balances.at(context.msg_sender()).read() - fee;\n storage.balances.at(context.msg_sender()).write(sender_new_balance);\n\n let rebate = fee_limit_u128 - fee;\n rebate.to_field()\n }\n\n // utility function for testing\n unconstrained fn balance_of_public(owner: AztecAddress) -> pub Field {\n storage.balances.at(owner).read().to_field()\n }\n}\n" }, "243": { "path": "/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/lib.nr", "source": "use dep::aztec::prelude::{AztecAddress, EthAddress};\nuse dep::aztec::context::interface::PublicContextInterface;\nuse dep::aztec::protocol_types::hash::sha256_to_field;\n\npub fn calculate_fee<TPublicContext>(context: TPublicContext) -> Field where TPublicContext: PublicContextInterface {\n context.transaction_fee()\n}\n\npub fn get_bridge_gas_msg_hash(owner: AztecAddress, amount: Field) -> Field {\n let mut hash_bytes = [0; 68];\n let recipient_bytes = owner.to_field().to_be_bytes(32);\n let amount_bytes = amount.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i + 4] = recipient_bytes[i];\n hash_bytes[i + 36] = amount_bytes[i];\n }\n\n // Function selector: 0x3e87b9be keccak256('mint_public(bytes32,uint256)')\n hash_bytes[0] = 0x3e;\n hash_bytes[1] = 0x87;\n hash_bytes[2] = 0xb9;\n hash_bytes[3] = 0xbe;\n\n let content_hash = sha256_to_field(hash_bytes);\n content_hash\n}\n" }, "28": { "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\n pub fn hash<N>(input: [Field; N], message_size: u64) -> 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<N>(input: [Field; N], in_len: u64, 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" }, "29": { "path": "std/hash.nr", "source": "mod poseidon;\nmod mimc;\nmod poseidon2;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\nstruct PedersenPoint {\n x : Field,\n y : Field,\n}\n\npub fn pedersen_commitment<N>(input: [Field; N]) -> PedersenPoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\npub fn pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<N>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator<N>(input: [Field; N], separator: u32) -> Field {}\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#[foreign(keccak256)]\n// docs:start:keccak256\npub fn keccak256<N>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<N>(_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, N> 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" }, "3": { "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, N> 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<N> 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, N> 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" }, "31": { "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<N>(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" }, "35": { "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<N, 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" }, "4": { "path": "std/collections/bounded_vec.nr", "source": "use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, MaxLen> {\n storage: [T; MaxLen],\n len: u64,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n pub fn get(mut self: Self, index: u64) -> T {\n assert(index < self.len);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: u64) -> T {\n self.storage[index]\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) -> u64 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u64 {\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<Len>(&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<Len>(&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<Len>(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\nimpl<T, MaxLen> 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, MaxLen, Len> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n // TODO: Allow imports from \"super\"\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n\n mod 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" }, "43": { "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};\n\nglobal pow64 : Field = 18446744073709551616; //2^64;\n\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 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<N>(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 fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else if ascii < 71 {\n ascii - 55\n } else {\n ascii - 87\n } as Field\n }\n\n unconstrained fn unconstrained_div(self: Self, b: U128) -> (U128, U128) {\n if self < b {\n (U128::from_u64s_le(0, 0), self)\n } else {\n //TODO check if this can overflow?\n let (q,r) = self.unconstrained_div(b * U128::from_u64s_le(2, 0));\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::from_u64s_le(1, 0), 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 = 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 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 test {\n use crate::uint128::{U128, pow64};\n\n #[test]\n fn test_not() {\n let num = U128::from_u64s_le(0, 0);\n let not_num = num.not();\n\n let max_u64: Field = pow64 - 1;\n assert_eq(not_num.hi, max_u64);\n assert_eq(not_num.lo, max_u64);\n\n let not_not_num = not_num.not();\n assert_eq(num, not_not_num);\n }\n}\n" }, "70": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/messaging.nr", "source": "use crate::{\n hash::{compute_secret_hash, compute_message_hash, compute_message_nullifier},\n oracle::get_l1_to_l2_membership_witness::get_l1_to_l2_membership_witness\n};\n\nuse dep::std::merkle::compute_merkle_root;\nuse dep::protocol_types::{constants::L1_TO_L2_MSG_TREE_HEIGHT, address::{AztecAddress, EthAddress}, utils::arr_copy_slice};\n\npub fn process_l1_to_l2_message(\n l1_to_l2_root: Field,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n chain_id: Field,\n version: Field,\n content: Field,\n secret: Field\n) -> Field {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_message_hash(\n portal_contract_address,\n chain_id,\n storage_contract_address,\n version,\n content,\n secret_hash\n );\n\n let returned_message = get_l1_to_l2_membership_witness(storage_contract_address, message_hash, secret);\n let leaf_index = returned_message[0];\n let sibling_path = arr_copy_slice(returned_message, [0; L1_TO_L2_MSG_TREE_HEIGHT], 1);\n\n // Check that the message is in the tree\n // This is implicitly checking that the values of the message are correct\n let root = compute_merkle_root(message_hash, leaf_index, sibling_path);\n assert(root == l1_to_l2_root, \"Message not in state\");\n\n compute_message_nullifier(message_hash, secret, leaf_index)\n}\n" }, "78": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/public_context.nr", "source": "use crate::{\n context::{\n inputs::PublicContextInputs, interface::ContextInterface, interface::PublicContextInterface,\n gas::GasOpts\n},\n messaging::process_l1_to_l2_message,\n oracle::{arguments, public_call::call_public_function_internal, returns, logs_traits::ToBytesForUnencryptedLog},\n hash::{hash_args, ArgsHasher, compute_unencrypted_log_hash}\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, function_selector::FunctionSelector,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, side_effect::SideEffect\n},\n hash::silo_nullifier, address::{AztecAddress, EthAddress},\n constants::{\n MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest}, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::{Deserialize, Empty}\n};\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_hash : Field,\n\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n nullifier_non_existent_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL>,\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_note_hashes: BoundedVec<NoteHash, MAX_NEW_NOTE_HASHES_PER_CALL>,\n new_nullifiers: BoundedVec<Nullifier, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hashes: BoundedVec<SideEffect, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n PublicContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter,\n args_hash,\n return_hash: 0,\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n unencrypted_log_preimages_length: 0,\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero()\n }\n }\n\n pub fn call_public_function_no_args<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &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 ) -> FunctionReturns<RETURNS_COUNT> {\n let side_effect_counter = self.side_effect_counter;\n // TODO(6052): get next value from output of `call_public_function_internal`\n self.side_effect_counter += 1;\n\n let raw_returns = call_public_function_internal(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n FunctionReturns::new(raw_returns)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n returns::pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n // Keep private or ask the AVM team if you want to change it.\n 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 // Keep private or ask the AVM team if you want to change it.\n fn push_nullifier_non_existent_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_non_existent_read_requests.push(request);\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n nullifier_read_requests: self.nullifier_read_requests.storage,\n nullifier_non_existent_read_requests: self.nullifier_non_existent_read_requests.storage,\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n returns_hash: self.return_hash,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_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 unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n unencrypted_log_preimages_length: self.unencrypted_log_preimages_length + 4,\n historical_header: self.inputs.historical_header,\n global_variables: self.inputs.public_global_variables,\n prover_address: self.prover_address,\n revert_code: 0,\n start_gas_left: self.inputs.gas_left,\n end_gas_left: self.inputs.gas_left, // AVM should decrease this value\n transaction_fee: self.inputs.transaction_fee\n };\n pub_circuit_pub_inputs\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 ContextInterface for PublicContext {\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.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.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_new_note_hash(&mut self, note_hash: Field) {\n self.new_note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_note_hash: Field) {\n self.new_nullifiers.push(Nullifier {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.next_counter()\n });\n }\n}\n\nimpl PublicContextInterface for PublicContext {\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> u64 {\n self.inputs.public_global_variables.timestamp\n }\n\n fn coinbase(self) -> EthAddress {\n assert(false, \"'coinbase' not implemented!\");\n EthAddress::zero()\n }\n\n fn fee_recipient(self) -> AztecAddress {\n assert(false, \"'fee_recipient' not implemented!\");\n AztecAddress::zero()\n }\n\n fn fee_per_da_gas(self) -> Field {\n self.inputs.public_global_variables.gas_fees.fee_per_da_gas\n }\n\n fn fee_per_l2_gas(self) -> Field {\n self.inputs.public_global_variables.gas_fees.fee_per_l2_gas\n }\n\n fn transaction_fee(self) -> Field {\n self.inputs.transaction_fee\n }\n\n fn nullifier_exists(self, unsiloed_nullifier: Field, address: AztecAddress) -> bool {\n // Current public can only check for settled nullifiers, so we always silo.\n let siloed_nullifier = silo_nullifier(address, unsiloed_nullifier);\n nullifier_exists_oracle(siloed_nullifier) == 1\n }\n\n fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // We can consume message with a secret in public context because the message cannot be modified and therefore\n // there is no front-running risk (e.g. somebody could front run you to claim your tokens to your address).\n // Leaf index is not used in public context, but it is used in the AVMContext which will replace it.\n fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress, _leaf_index: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n this,\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_new_nullifier(nullifier, 0)\n }\n\n fn emit_unencrypted_log<T, N, M>(&mut self, log: T) where T: ToBytesForUnencryptedLog<N, M> {\n let event_selector = 5; // TODO: compute actual event selector.\n let contract_address = self.this_address();\n let log_slice = log.to_be_bytes_arr();\n let log_hash = compute_unencrypted_log_hash(\n contract_address,\n event_selector,\n log\n );\n let side_effect = SideEffect { value: log_hash, counter: self.next_counter() };\n self.unencrypted_logs_hashes.push(side_effect);\n // 44 = addr (32) + selector (4) + raw log len (4) + processed log len (4)\n self.unencrypted_log_preimages_length = self.unencrypted_log_preimages_length + 44 + log_slice.len().to_field();\n // Call oracle to broadcast log\n let _void = emit_unencrypted_log_oracle(contract_address, event_selector, log, side_effect.counter);\n }\n\n fn call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field],\n _gas: GasOpts\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n fn static_call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field],\n _gas: GasOpts\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n fn delegate_call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field]\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n}\n\nimpl Empty for PublicContext {\n fn empty() -> Self {\n PublicContext {\n inputs: PublicContextInputs::empty(),\n side_effect_counter: 0 as u32,\n args_hash : 0,\n return_hash : 0,\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n prover_address: AztecAddress::zero(),\n }\n }\n}\n\n#[oracle(checkNullifierExists)]\nfn nullifier_exists_oracle(nullifier: Field) -> Field {}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle<T>(\n _contract_address: AztecAddress,\n _event_selector: Field,\n _message: T,\n _counter: u32\n) -> Field {}\n\nstruct FunctionReturns<N> {\n values: [Field; N]\n}\n\nimpl<N> FunctionReturns<N> {\n pub fn new(values: [Field; N]) -> FunctionReturns<N> {\n FunctionReturns { values }\n }\n\n pub fn assert_empty(returns: FunctionReturns<0>) {\n assert(returns.values.len() == 0);\n }\n\n pub fn raw(self) -> [Field; N] {\n self.values\n }\n\n pub fn deserialize_into<T>(self) -> T where T: Deserialize<N> {\n Deserialize::deserialize(self.raw())\n }\n}\n" }, "96": { "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\n},\n traits::Hash, hash::{pedersen_hash, poseidon2_hash, silo_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_encrypted_log_hash<N, M, L>(encrypted_log: [Field; M]) -> Field where [Field; N]: LensForEncryptedLog<N, M, L> {\n let mut bytes = [0; L];\n // Note that bytes.append(encrypted_log[i].to_be_bytes(31)) results in bound error\n for i in 0..M - 1 {\n let to_add = encrypted_log[i].to_be_bytes(31);\n for j in 0..31 {\n bytes[i*31 + j] = to_add[j];\n }\n }\n // can't assign as L - not in scope error for: L-31*(M-1)\n let num_bytes = bytes.len() as u32 - 31 * (M - 1);\n let to_add_final = encrypted_log[M - 1].to_be_bytes(num_bytes);\n for j in 0..num_bytes {\n bytes[(M-1)*31 + j] = to_add_final[j];\n }\n sha256_to_field(bytes)\n}\n\npub fn compute_unencrypted_log_hash<T, N, M>(\n contract_address: AztecAddress,\n event_selector: Field,\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 event_bytes = event_selector.to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = event_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[36 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[40 + 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\npub fn compute_siloed_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n silo_nullifier(address, nullifier)\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<N>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() < ARGS_HASH_CHUNK_COUNT * ARGS_HASH_CHUNK_LENGTH);\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..800 {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x05a1023fef839ac88731f49ae983e172c1b600a3c8f3393ad0ac25d819ac0f0f);\n}\n\n#[test]\nfn compute_enc_log_hash_304() {\n let input = [\n 0x0000000000000000000000000000000000000000000000000000000000000000,\n 0x0021a0d4aa9989656b592187cf6da1965df53ab2ff2277421e663465cf20d3e9,\n 0x00c3969cc350f3474f8187a33ac1317181961f5f94043b07ce888d85a5d20cb5,\n 0x0058198041ed1547b056955b5141a5a8a1551b0c8d094255ec9daaf3604d9348,\n 0x00247ad96df2e4d984cf795ed7316234743a681f824a45c46253de8bfde48850,\n 0x007fc251f4ce44f4e9aba3dbf6567228be28fac85660156f2825ddb0b0577457,\n 0x009315851323c6bc2aaa42e23fe5f3be97208f2d8167eafdfc5742d94f2f4dd4,\n 0x00b938289e563b0fe01982cd9b8d9e33e3069046768ad01c0fb05e429e7b7909,\n 0x00fbcc257a3211f705b471eee763b0f43876a2b2178fab6d2b09bd2b7e086584,\n 0x000000000000008c3289b5793b7448f4d45ecde039d004b6f037cad10b5c2336\n ];\n let hash = compute_encrypted_log_hash(input);\n assert(hash == 0x001e3c013994947fe28957a876bf1b2c3a69ac69cc92909efd4f2ae9b972f893);\n}\n\n#[test]\nfn compute_enc_log_hash_368() {\n let input = [\n 0x0000000000000000000000000000000000000000000000000000000000000000,\n 0x002190697d2a50e229a7a077e0951073f7d51e46679f10466153c308b63b1ea9,\n 0x00543e346facc6799b94514c9d461bcc836c04b083b13c2e4544a39130473c1e,\n 0x000df76d59526f8f953bcc7d9f77cdaefd36435931f0d7348f794bc275b42ded,\n 0x00a6d390ee1723af7f7ac1ae4fc81a266b2370fe07040a36d06dbe242e02413e,\n 0x00acbce15b6af1fbe94bd0f7b70f11768265dff77bfe63398f2a053efdfdf26d,\n 0x00b8b131b9f42c689beb095ba4f4a836d4d15c9068d0422e9add6ca82b786329,\n 0x00661a6a654b38f0f97d404ef5553e0efea9ed670561ae86685b31bbb2824fac,\n 0x00113a6b58edfaec0065b365f66ba8d8aa68254b8690035e8d671a17a843f0a1,\n 0x0023f2d2eae8c4449bac8f268a3e62a3faace1fe1401f0efdc8b0ccfbc8fb271,\n 0x00cf6603f8c61993dd2f662c719671c61727a2f4e925fb988b23d31feccd77d9,\n 0x0000000000a402a84b7294671799c38dd805f6a827a3a12633fdf91a57debe1f\n ];\n let hash = compute_encrypted_log_hash(input);\n assert(hash == 0x00a0d651ac0cbc01b72430fa6a05d91738595af6e0229347b4c9968223387aeb);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00846d6969c8c2f61d39cd2762efcb0abb14f88d59c2675910251ef2bcffe9a7);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00880a801230ea08c98a802a11b4786cba474513875f0fc69a615e81c5f9f21c);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00a78b5347813624ecfd26e5b8bc6146f418b0cfcc8296b5112d09b8ebba9496);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x001f3390ea242afee7ce46dafdbdc4bd4f1cf20cd63850d12d60ff9956712c4f);\n}\n" }, "97": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr", "source": "use dep::protocol_types::{\n address::AztecAddress, hash::{silo_nullifier, pedersen_hash},\n constants::GENERATOR_INDEX__CONSTRUCTOR, abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext, AvmContext, ContextInterface},\n oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm,\n history::nullifier_inclusion::prove_nullifier_inclusion\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n mark_as_initialized(context);\n}\n\npub fn mark_as_initialized_avm(context: &mut AvmContext) {\n mark_as_initialized(context);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n mark_as_initialized(context);\n}\n\nfn mark_as_initialized<TContext>(context: &mut TContext) where TContext: ContextInterface {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n ContextInterface::push_new_nullifier(context, 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_avm(context: &mut AvmContext) {\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 prove_nullifier_inclusion(init_nullifier, *context);\n}\n\nfn compute_contract_initialization_nullifier(address: AztecAddress) -> Field {\n silo_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 assert_initialization_matches_address_preimage(context);\n}\n\npub fn assert_initialization_matches_address_preimage_avm(context: AvmContext) {\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 assert_initialization_matches_address_preimage(context);\n}\n\nfn assert_initialization_matches_address_preimage<TContext>(context: TContext) where TContext: ContextInterface {\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" } } }
1
+ { "transpiled": true, "noir_version": "0.29.0+5b9b1fab51e35c2112c0136785b5b69cd8529a92", "name": "GasToken", "functions": [{ "name": "constructor", "is_unconstrained": true, "custom_attributes": ["aztec(public)", "aztec(initializer)"], "abi": { "error_types": {}, "param_witnesses": { "inputs": [{ "end": 40, "start": 0 }], "portal_address": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "portal_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress" }, "visibility": "private" }], "return_type": { "abi_type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "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", "debug_symbols": "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vhtCfTeE+m4I9d0Q6rsh1HdDqO+GUN8Nob47hPou8+8wRXzm22Pai7WY0Fq60FpcaC0htJYhtBbm72rrcx7CiPZiLVNnLcy/N/TlWkxoLV1oLS60lhBayxBaC7G/5OMzU57pf/3FX7uImH+d6IdXvnZdOfMvH/3bK/9lLcQ7wMjH51oer9ZiQmvpQmtxobWE0FqG0FpSaC1TaC1LZy3Mv3z05VqE+u4S6rtLqO8uob67hPruEuq7S6jvLqG+u3T6bns8dBrvczE6nfe5GJ3W+1yMTu99Lkan+T4Xo9N9n4vRab/Pxej03+didBrwczFKHbgpdeCm1IGbUgduSh24KXVgZmJsts/E2Gz5ajFDaTGptJiptJgltBhmbOzrxTSlxZjSYrrSYlxpMUod2JQ6sCl1YFPqwKbUgbtSB+5KHbgrdeCu1IG7UgfuSh24K3XgrtSBu1IH7kod2JU6sCt1YFfqwK7UgV2pA7tSB3alDuxKHdiVOrArdeBQ6sCh1IFDqQOHUgcOpQ4cSh04lDpwKHXgUOrAodSBh1IHHkodeCh14KHUgYdSBx5KHXgodeCh1IGHUgceSh04lTpwKnXgVOrAqdSBU6kDp1IHTqUOnEodOJU6cCp14KnUgadSB55KHXgqdeCp1IGnUgeeSh14KnXgqdSBp1IHXkodeCl14KXUgZdSB15KHXgpdeCl1IGXUgdeSh14CXXg9hDqwO0h1IHbQ6gDt4dQB37+lqy0GKEO3B5CHbg9hDpwewh14PZQ6sBNqQM3pQ7clDpwU+rATakDK2XimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXimlImrill4ppSJq4pZeKaUiauKWXiTCkTZ0qZOFPK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KZPzSpmcV8rkvFIm55UyOa+UyXmlTM4rZXJeKZPzSpmcV8rkvFIm5zVlcl5TJuc1ZXJeUybnNR8qPXbK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvKZMzmvK5LymTM5ryuS8pkzOa8rkvJZMzmvJ5LyWTM5ryeS81kOlxy6ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZmc15LJeS2ZnNeSyXktmZzXksl5LZWclz1Ucl7PlYj02OdKRHrscyUiPfa5kj/UY1ebHyvp9kdXEjIrGTIrSZmVTJmVLJWV/LGc14+upMmsBOixH2/p+Fscf0vgbxn4WxJ/y8TfsuC3IHmZj7c0/C24+oarb7j6hqtvuPqGq2+4+oar33H1O65+x9XvuPodV7/j6ndc/Y6r33H1O66+4+o7rr7j6juuvuPqO66+4+o7rr7j6juu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s76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs76Bs77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc460uc9SXO+hJnfYmzvsRZX+KsL3HWlzjrS5z1Jc76Emd9ibO+xFlf4qwvcdaXOOtLnPUlzvoSZ32Js77EWV/irC9x1pc465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s465s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461s461sw6+sPmPU939Lwtxj+lo6/xfG3BP6Wgb8l8bdM/C24+g1Xv+HqN1z9hqvfcPUbrn7D1W+4+g1Xv+HqG66+4eobrr7h6huuvuHqG66+4eobrr7h6ndc/Y6r33H1O65+x9XvuPodV7/j6ndc/Y6r77j6jqvvuPqOq++4+o6r77j6jqvvuPqOqx+4+oGrH7j6gasfuPqBqx+4+oGrH7j6gas/cPUHrv7A1R+4+gNXf+DqD1z9gas/cPUHrn7i6ieufuLqJ65+4uonrn7i6ieufuLqJ67+xNWfuPoTV3/i6k9c/YmrP3H1J67+xNWfuPoLV3/h6i9c/YWrv3D1F67+wtVfuPoLVx9nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfQ1nfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DWZzjrM5z1Gc76DGd9hrM+w1mf4azPcNZnOOsznPUZzvoMZ32Gsz7DWZ/hrM9w1mc46zOc9RnO+gxnfYazPsNZn+Gsz3DW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW13HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9jrM+x1mf46zPcdbnOOtznPU5zvocZ32Osz7HWZ/jrM9x1uc463Oc9TnO+hxnfY6zPsdZn+Osz3HW5zjrc5z1Oc76HGd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNYXOOsLnPUFzvoCZ32Bs77AWV/grC9w1hc46wuc9QXO+gJnfYGzvsBZX+CsL3DWFzjrC5z1Bc76Amd9gbO+wFlf4KwvcNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNY3cNaXOOtLnPUlwvr+9l+9zlrmLy816/b56pUvXvyXv637y4v/8scW//qL1/z44Paw8fna1vxz5X3blfu2K49tVz62XXluu/K57crXritHfiMQW3nbduXb3kPbtvdQ5PcjsZVvew9t295D27b30LbtPbRtew+1be+htu091La9h9q291DkV3ixlW97D7Vt76G27T3Utr2H2rb30L7tPbRvew/t295D+7b3UMTLJLbybe+hfdt7aN/2Htq3vYf2be+hvu091Le9h/q291Df9h6KOELFVr7tPdS3vYf6tvdQ3/Ye6tveQ2Pbe2hsew+Nbe+hse09FPHVi61823tobHsPjW3vobHtPTS2vYeObe+hY9t76Nj2Hjq2vYci6SSxlW97Dx3b3kPHtvfQse09dGx7D81t76G57T00t72H5rb3UCTjKbbybe+hue09NLe9h+a299Dc9h46t72Hzm3voXPbe+jc9h6KJOXFVr7tPXRuew+d295D57b30LntPXRtew9d295D17b30LXtPRSZNyK28m3voWvbe+ja9h66tr2Hrl3vofOx6z10Pna9h85t5xTNbecUzceu99C57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corntnKK57Zyiue2corXtnKK17Zyite2corXtnKL12PUeuradU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7S2nVO0tp1TtLadU7R2nVPkj13nFD1Xvuk99LnyTe+hz5Vveg99rnzTe+hz5ZveQ58r3/Qe+lz5pvfQ58o3vYc+V77tPXTXOUXPlW97D911TtFz5dveQ3edU/Rc+bb30F3nFD1Xvu09dNc5Rc+Vb3sP3XVO0XPl295Dd51T9Fz5tvfQXecUPVe+7T101zlFz5Vvew/ddU7Rc+Xb3kN3nVP0XPm299Bd5xQ9V77tPXTXOUXPlW97D911TtFz5dveQ3edU/Rc+bb30F3nFD1Xvu09dNc5Rc+Vb3sP3XVO0XPl295Dd51T9Fz5tvfQXecUPVe+7T101zlFz5Vvew/ddU7Rc+Xb3kN3nVP0XPm299Bd5xQ9V77tPXTXOUXPlW97D911TtFz5dveQ3ed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qmUUUy2jmGoZxVTLKE61jOJUyyhOtYziVMsozodYp55qGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxamWUZxqGcWpllGcahnFqZZRnGoZxaWWUVxqGcWlllFcahnF9RDr1Esto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSy2juNQyiksto7jUMopLLaO41DKKSyyjOB5iGcXngrQ69XNBWp36uSCtTv1ckFanfi5Iq1M/F6TVqZ8L0urUzwVpderngtQ6tVhG8bkgtU4tllF8LkitU4tlFJ8LUuvUYhnF54LUOrVYRvG5ILVOLZZRfC5IrVOLZRSfC1Lr1GIZxeeC1Dq1WEbxuSC1Ti2WUXwuSK1Ti2UUnwtS69RiGcXngtQ6tVhG8bkgtU4tllF8LkitU4tlFJ8LUuvUYhnF54LUOrVYRvG5ILVOLZZRfC5I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" }, { "name": "compute_note_hash_and_nullifier", "is_unconstrained": true, "custom_attributes": [], "abi": { "error_types": {}, "param_witnesses": { "contract_address": [{ "end": 1, "start": 0 }], "nonce": [{ "end": 2, "start": 1 }], "note_type_id": [{ "end": 4, "start": 3 }], "serialized_note": [], "storage_slot": [{ "end": 3, "start": 2 }] }, "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": "serialized_note", "type": { "kind": "array", "length": 0, "type": { "kind": "field" } }, "visibility": "private" }], "return_type": { "abi_type": { "kind": "array", "length": 4, "type": { "kind": "field" } }, "visibility": "public" }, "return_witnesses": [4, 5, 6, 7] }, "bytecode": "H4sIAAAAAAAA/+2byW7bMBCGJa9yVC+SZXlf4uTSm+w6tnPzy7Rv3XuBvkPRjMKpx8QkoNARIQImYGhMUfy/+blECRjfey/tt4+v4qZ2pQXbXNQ1+7+yE+wrK5PTd4Sz5ghnXZDTZzjh2lAxXGEut7zbef6vXAQnCRWlUDAwdVL3EdzNQ1BaKgg04IsE9CE7twgNhYYSKnB6MySJ+KQOn62ROtxB6o1rDi35HA4BMU+s37cBDb2r7y3iCcZ4D7RnpK5RUo5N+RzL8i5flehPU/XbJt/Rq46KBXfYHdX21adDND01RhhPSVtsh37UyBhD6XrX8e988lxDe65H2rSY/C+ebP5tjaetMTcVE5QIeLU9oKSxyaDfB/l+b8a8oY3JA8mpK+73/gx7QujdFv2nzIXEXcLzRZwn25WT5/vY9Qi7TL8vB/Cqr3kVal71SBvK0C/BP5/oYt/4vc9oy3lxPIP2wMCLAcMzsOzFgNEW9OIVtCMDLyKGJ7LsRcRoy3lx+gbasYEXMcMTW/YiZrTlvNjn7xZDAy+GDM/QshdDRltwjeTzIjHwImF4EsteJIy2oBc/QHtk4MWI4RlZ9mLEaAt68R20UwMvUoYntexFymgL7p35+8XYwIsxwzO27MWY0Rb0Yg/aEwMvJgzPxLIXE0ZbcI3k2lMDL6YMz9SyF/R31CLMQweZUweZ4wowB1oso33M98+ZgRczhmdm2QvUK8qcVIA50GIZ7eMLaM8NvJgzPHPLXqBeUebIQebYQeaRg8yJg8ypg8xVmM+BFston/I9dGHgxYLhWVj2AvWKMkcOMs8cZI4rwBxosYz2Kf/b3NLAiyXDs7TsBeoVZR47yDyoAHOgxTLapyNorwy8WDE8K8teoF5R5omDzKmDzDMHmWMHmUcOMicOMt/XoB3mqALM9EzT71J59q+hxoOeeRqjpzGGJKbnYNbijFlGx2dNtDbyWjtuvuD3Tana+zP0u5XPKX+Xf1J94Rm+LZPTs4qlz3M9kX59ooP1DRL/Im2xHfqB6xbZYd49qvj5k+dW2nM90uaRyf/iyea/1Xi2GjOMyU/CsRHn2J9N5vXAu67lr4SnhH3wQM/kYjHZd0raY3Yl5ZnRM3x/PNk1vdG8CjSveqQN3aM3JfhnMr/uzHfmj5jp+0RA6vD+mtTVtFzo/zJgezgz/BdsuDj5FjUAAA==", "debug_symbols": "ndpBattQGIXRvWgciu+vpycpWymlOIlTDMYOsVMoJnuv3dIF9Mz0JN3ZNzq86/Cye/r48X1/fD2dh8ev1+Fwet5e9qfj7XQdNl+q/3l7ftse7y/Ol+37ZXgcKw/D7vhyf+qfD8Pr/rAbHqvV57eH+2iW0SKjFUbjRkaRUclolFGT0SQjKWKUIkYpYpQimhTRpIgmRTQpokkRTYpoUkSTIpoU0aSISYqYpIhJipikiEmKmKSISYqYpIhJipikiC5FdCmiSxFdiuhSRJciuhTRpYguRXQpYpYiZililiJmKWKWImYpYpYiZililiJmKWKRIhYpYpEiFilikSIWKWKRIhYpYpEiFililSJWKWKVIlYpYpUiVililSJWKWKVIlYpIpsNrUKrotVIq0ariVadVjOtFlpRG6E2Qm2E2gi1EWoj1EaojVAboTZCbRS1UdRGURtFbRS1UdQGcWbIM0OgGRLNEGmGTDOEmiHVDLFmyDVDsBmSzRBthmwzhJsh3QzxZsg3Q8AZEs4QcYaMM4ScIeUMMWfIOUPQGZLOEHWGrDOEnSHtDHFnyDtD4BkSzxB5hswzhJ4h9QyxZ8g9Q/AZks8QfYbsM4SfIf0M8WfIP0MAGhLQEIGGDDSEoCEFDTFoyEFDEBqS0BCFhiw0hKEhDQ1xaMhDQyAaEtEQiYZMNISiIRUNsWjIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFy6552j1Pu+hJLlrkokUuWuSiRS5a/+2it9PP7ft++3TY3W/23j9+HJ//XfS9HS+/3v5+uf37Gw==" }, { "name": "claim_public", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "amount": [{ "end": 42, "start": 41 }], "inputs": [{ "end": 40, "start": 0 }], "leaf_index": [{ "end": 44, "start": 43 }], "secret": [{ "end": 43, "start": 42 }], "to": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }, { "name": "amount", "type": { "kind": "field" }, "visibility": "private" }, { "name": "secret", "type": { "kind": "field" }, "visibility": "private" }, { "name": "leaf_index", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273] }, "bytecode": "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", "debug_symbols": "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VP60EsdUEphKFqaSDalk/Bnn9amVDEwlgqnkQGPvPzLPf8TOf8TPfyTOf2Sd/8g+/pETDOf+I+P8R+T8R86//XH+7Y/zb3+cf/vj/Nsf59/+OP/25fzbl/NvX86/fTn/9uX825fzb1/Ov305//bl/NuX829fz799Pf/29fzb1/NvX8+/fT3/9vX829fzb1/Pv309//bn+bc/z7/9ef7tz/Nvf55/+/P825/n3/48//bn+bc/z799O//27fzbt/Nv386/fTv/9u3827fzb9/Ov307//bt/Nv382/fz799P//2/fzb9/Nv38+/fT//9v382/fzb9/Pv/04//bj/NuP828/zr/9OP/24/zbj/NvP86//Tj/9uP821/n3/46//bX+be/zr/9df7tr/Nvf51/++v821/n3/46//b3+be/z7/9ff7t7/Nvf59/+/v829/n3/4+//b3+be/j799ua7zHxnnPyLnP6LnPzLPf8TOf8TPfyTOf2Sd/8j5t3++65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+c7/rkfNcn57s+Od/1yfmuT853fXK+65PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/16fmuT893fXq+69PzXZ+e7/r0fNen57s+Pd/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XN813fPN/1zfNd3zzf9c3zXd883/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn53v+ux812fnuz473/XZ+a7Pznd9dr7rs/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/X5+a7Pz3d9fr7r8/Ndn5/v+vx81+fnuz4/3/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/NdX5zv+uJ81xfnu7443/XF+a4vznd9cb7ri/Nd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fOt/1rfNd3zrf9a3zXd863/Wt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e3zXd8+3/Xt813fPt/17fNd3z7f9e2TXd8//tXrhlzx86VDYny8esejF1/XGPdXX5fNj5fHevBykXl/7x+/+vhXJZc+eLXdOv/nq/0S/YtX3z+qf5+PGt/no67v81H3t/moJzv47h91fJ+PKt/no+r3+ajz+3zU7/O0tL7P09L6Pk9L6/s8La3v87S0v8/T0i59WvL58VHHZb9/1Hs5WU809/fX5Pefye9vye/vye8fye+/kt9/Z76/XteV/P4j+f0l+f01+f1n8vtb8vt78vtH8vuv5PdP7t+R3L8juX9Hcv+O5P4dyf07kvt3JPfvSO7fkdy/I7l/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Jbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Nbl/Z3L/zuT+ncn9O5P7dyb370zu35ncvzO5f2dy/87k/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/rXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/vXk/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/o3k/l3J/buS+3cl9+9K7t+V3L8ruX9Xcv+u5P5dyf27kvt3J/fvTu7fndy/O7l/d3L/7uT+3cn9u5P7dyf3b7L/aiT7r0ay/2ok+69Gsv9qXDP5/S35/T35/SP5/Vfy+yf3b7L/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvRrL/aiT7r0ay/2ok+69Gsv9qJPuvJNl/Jcn+K0n2X0my/0qumfz+lvz+nvz+kfz+K/n9k/s32X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rSfZfSbL/SpL9V5Lsv5Jk/5Uk+68k2X8lyf4rTfZfabL/SpP9V5rsv9JrJr+/Jb+/J79/JL//Sn7/5P5N9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9Kk/1Xmuy/0mT/lSb7rzTZf6XJ/itN9l9psv9qJvuvZrL/aib7r2ay/2peM/n9Lfn9Pfn9I/n9V/L7J/dvsv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+69msv9qJvuvZrL/aib7r2ay/2om+68s2X9lyf4rS/ZfWbL/yq6Z/P6W/P6e/P6R/P4r+f2T+zfZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itL9l9Zsv/Kkv1Xluy/smT/lSX7ryzZf2XJ/itP9l95sv/Kk/1Xnuy/8msmv78lv78nv38kv/9Kfv/k/k32X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/8qT/Vee7L/yZP+VJ/uvPNl/5cn+K0/2X3my/yqS/VeR7L+KZP9VJPuv4prJ72/J7+/J7x/J77+S3z+5f5P9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv4pk/1Uk+68i2X8Vyf6rSPZfRbL/KpL9V5Hsv1rJ/quV7L9ayf6rley/WtdMfn9Lfn9Pfv9Ifv+V/P7J/Zvsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q5Xsv1rJ/quV7L9ayf6rley/Wsn+q53sv9rJ/qud7L/ayf6rfc3k97fk9/fk94/k91/J75/cv8n+q53sv9rJ/qv92H8VU3/+WMR6csaU+fO1U+y31+rHETP/CMs/wvOPiPwjVv4RO/2Ix6aszz1i5B8h+Ufkd7fkd7fkd7fkd7fkd7fkd7fkd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd7fmd/fM7+6Z390zv7tnfnfP/O6e+d0987t75nf3zO/umd/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dlt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dnt/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dkd/dK7+7V353r/zuXvndvfK7e+V398rv7pXf3Su/u1d+d+/87t753b3zu3vnd/fO7+6d3907v7t3fnfv/O7e2d09r+vKP2LkHyH5R2j+ETP/CMs/wvOPiPwjVv4R+d098rt75Hf3yO/ukd/dI7+7R353j/zuHvndPfK7e+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+R3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z3t+Z398zv7pnf3TO/u2d+d8/87p753T3zu3vmd/fM7+6Z392W392W392W392W392W392W392W392W392W392W392e392e392e392e392e392e392e392e392e392e392R392R392R392R392R392R392R392R392R392R390rv7tXfnev/O5e+d298rt75Xf3yu/uld/dK7+7V3537/zu3vndvfO7e+d3987v7p3f3Tu/u3d+d+/87s73qo18r9rI96qNfK/ayPeqjWvmH2H5R3j+EZF/xMo/Ir+7871qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWoj36s28r1qI9+rNvK9aiPfqzbyvWrjE7xqtu5H7Osvjvjr1+41fr52XEN/vfjR+97W+X5/8dS/ePF/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" }, { "name": "balance_of_public", "is_unconstrained": true, "custom_attributes": [], "abi": { "error_types": {}, "param_witnesses": { "owner": [{ "end": 1, "start": 0 }] }, "parameters": [{ "name": "owner", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }], "return_type": { "abi_type": { "kind": "field" }, "visibility": "public" }, "return_witnesses": [1] }, "bytecode": "H4sIAAAAAAAA/+2cXW/bNhSGJX/Ectwk9bedD0eJ06a7GRS7dTBgA7y/sJvtaoEbO0OArgZiF+j244OVis7ymjvIqPaIEIEQCETR1HkfvqKO7NiU7z0UP/lTpQxteqG2abKNvq1cCMaKfI3zP/xS0CpwSTOEM0ltC0y/X2Gnn2x/vrub/RXefpwvPofLT+tweRO+X376OF/hgb/DzkGyvZ59+BCul+FstVrcra/+nH2+en+7vlrd/r34V3SdVAJv04yphCFvo9GW9+iIbkgNTKA+lS9/W/C6n7RTvzq0UTzFXpZmj6KR0i9qzPoYplAvA09Jnucio3FGAXh+78leDBXNq6Lm1S702QL/Khn454MuxaZ90kvLXMgBM86L0JOdF4H8mEZ7X2Jsg6+B5i+OazupC87LSMWogibpbYPui6Tue7J3oVoSq5TEJo4XoL0n7vn4WunueJvlqVy2Bzy74jwPuUx+nA9z9iWwy8R9N1Ze1TWvdjSvdqEPMtQz8M8HXYpN+3VGW86Ly7dKu2HgRYPhaVj2osFoy3kxuVHaTQMvmgxP07IXTUZbcF6MlHbLwIsWw9Oy7EWL0RacF7F228CLNsPTtuxFm9EW9OJSaXcMvOgwPB3LXnQYbUEv3introEXXYana9mLLqMt58Uofj/UM/Cix/D0LHvRY7QFc2f8/qJv4EWf4elb9qLPaAteI9dKe9/Ai32GZ9+yF6SXlrnhIHPdQeZuDpgDrS6jPY7z54GBFwcMz4FlL0gvLXM3B8yBVpfRniyU9qGBF4cMz6FlL0gvLXPDQea6g8xdB5lbDjL3n5mtMOchbwRaXUb7Mv48fGTgxRHDc2TZC9JLy9zJAXOg1WW0J/H/PwcGXgwYnoFlLwaMtuBn+Pg9zLGBF8cMz7FlL0gvLXPXQeaXDjLXHWRuOMjcdJC55SBz20HmjoPMLubnnoPMfQeZXczPLt4HXZzPecgbgVaX0Z7MlXZo4EXI8ISWvQgZbcHP2/F3ricGXpwwPCeWvSC9tMw9B5nrDjJ3HWR+nht2mFsOMjcdZH7OG1/HHGh1Ge3JRGmfGnhxyvCcWvaC9NIyNx1kbjjIfOwgczcHzIFWl9Eex9pDAy+GDM/Qshekl5Z5kANmtR6E1ob86GfJM57XNB7yzNMYPY2xBvU98OxMnDGK8PycgdYreS12jtP+q0y1x9cq7rn8mOLfhr1JYpWTuOfMmL5L6r6wn28grg861F6C+g/+Y1/qR37QdUvsav91Ukd2/bihdtwu9HnNjH/qyY7/XOM515jVOfkervMs5pbJvFbfE9K1/BN4RQXX4lXFGR+88jRGKlWGx88BT83j1zJXNc9wfTO+dus/vk65rQDH0DkqMrHPoI3uF1x+Rp8yyM8bOZNyh56vd4BjmBOeCsOT1bpdOj8Um/Yr2XoRZbS2Mh4T5Q26pxA/6ZWgz2/JyaffImDBWMSpz3E8X9S3wPh4723mgzRrhW/+p6B2BbSrzHivnhgvxz1N2jGvED/u+3AM9cV7xjesjb7QG5CvCAx4rmowpgrzOq6f18dWY3zAPIn+Bt5jDpR8LoGKS88amArGVewlb7M8dT/B5x1k8FyHi23wc7Ve3s3+WPyymM19QNOfVYJbRL+H/QK0Y73ItN3DtgZDJl3VRtOgDG0FzSJ8FAdeCv8AMDZ9CKVGAAA=", "debug_symbols": "5dzdahtXGIXhe9GxKXutb//mVkopTuIUgZFDrBSKyb133GpkhyhValx3v/jMSkbS2ibMaznw3G3eX739/Nuv292Hm9vNm5/vNtc37y7325vd8uhuk36qf/3h7cfL3f3j2/3lp/3mjWvUi83V7v39l9VfLjYfttdXy4O8fP3N1UNxuHjUOF4r68S1sn24WG7pzNVllHG4uiY/vLZTfPnlYlnf0Os7ev1Ar1dizxd7vtnzgz0/s+cX9nx2csVurtjRFbu6ZlfX7OqaXV0/Q3WVoq+T0ihnJqXDpenMq9a2Tqjj8TdlHZ6pwwt1eKUOb9ThnTp8QIdHog4Xdbipw6nlDGo5g1rOoJYzqOUMajmDWs5MLWemljNTy5mp5czUcmZqOTO1nJlazkwtZ6aWs1DLWajlLNRyFmo5C7WchVrOQi1noZazUMtZqOWs1HJWajkrtZyVWs5KLWellrNSy1mp5azUclZqORu1nI1azkYtZ6OWs1HL2ajlbNRyNmo5G7WcjVrOTi1np5azU8vZqeXs1HJ2ajk7tZydWs5OLWenlnNQyzmo5RzUcg5qOQe1nINazkEt56CWc1DLOajlVKKmU4naTiVqPJc3xS6n5lOJ2k8lakCVqAVVoiZ0eSfqcmEbKmxDhW2osA19Dojof1qObaiwDRW2ocI2VNiGGttQYxtqbEOxtpCwuJCwupCwvJCwvpCwwJCwwpCwxJCwxpCwyJCwypCwzJCwzpCw0JCw0pCw1JCw1pCw2JCw2pCw3JCw3pCw4JCw4pCw5JCw5pCw6JCw6pCw7JCw7pCw8JCw8pCw9JCw9pCw+JCw+pCw/JCw/pCwAJGwApGwBJGwBpGwCJGwCpGwDJGwDpGwEJGwEpGwFJGwFpGwGJGwGpGwHJGwHpGwIJGwIpGwJJGwJpGwKJGwKpGwLJGwLpGwMJGwMpGwNJGwNpGwOJGwOpGwPJGwPpGwQJGwQpGwRJGwRpGwSJGwSpGwTJGwTpGxTpGxTpGxTpGxTpETtaHGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkXGOkWBdYoC6xQF1ikKrFMUidrQwDpFgXWKAusUBdYpCqxTFFinKLBOUWCdosA6RYF1igLrFMWPOEXj3HKprMuV61fv8u3V0Xy4OOvRotTWRW26RX26RWO2RT/iAL3wIk23yNMtiukW5ekWlekWTXfP9nT3bE93z/Z09+yY7p4d092zY7p7dkx3z47p7tkx3T07prtnx398zz68S3+Rd3mWe2upx3dp/cx3V7WtH8GWLx9eWyMfNuU04SZNuMkTbooJN+UJN5UJN9WX31R03NTTV5tO3JeX34oerl5a3o5X51Mv3cr6O6F2/2LraK9nba/orP0VnXW8nrOW9IrOqtnPenzt5SfW/PishwOYfoCY/QAjjgcY48QB8vQHWD93LD8C9xMHKPQDnP8Bo5/7bxm1hx9jWm+PJpVTk8rxA9DyDzidmNReflL650nf4yTa+qyUT3wo/R7lcOZZ8aRn5Sc9qzzpWfVfPmt59Pvlp+3l2+ur2+UZ93/5efduv73ZHR7u//j4998s1/4J" }, { "name": "pay_fee", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "fee_limit": [{ "end": 41, "start": 40 }], "inputs": [{ "end": 40, "start": 0 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "fee_limit", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "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", "debug_symbols": "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qr2Hq/Yertp7uGrv4aq9h6v2Hk6e9iLu9RHpf0T7H7H+R7z/kdP/SPQ/kv2P3P5H+q8v/deX/utL//Wl//rSf33pv770X1/6ry/915f+62v/9bX/+tp/fe2/vvZfX/uvr/3X1/7ra//1tf/61n9967++9V/f+q9v/de3/utb//Wt//rWf33rv773X9/7r+/91/f+63v/9b3/+t5/fe+/vvdf3/uvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvf/qvH/3Xj/7rR//1o//60X/96L9+9F8/+q8f/deP/utn//Wz//rZf/3sv372Xz/7r5/918/+62f/9bP/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+rf/+tV//eq/fvVfv/qvX/3Xr/7rV//1q//61X/9/q5P+rs+6e/6pL/rk/6u7/VPvf2PnP5Hov+R7H/k9j/Sf/3+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+6e/6pL/rk/6uT/q7Punv+qS/65P+rk/6uz7p7/qkv+uT/q5P+rs+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5PO7u+v0yPuPWRO14iP/5W/vy/Luov/lbz42/t+fVcOz8qUZpKjKYSp6nk0FQSNJUkTSWXppJiqeT3/e93+amV0Gis0mis0mis0mis0mis0mis0mis0mis0mis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis0Wis02is02is02is02is02is02is02is02is02is02jsodHYQ6Oxh0ZjD43GHhqNPTQae2g09tBo7KHR2EOjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUGjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsUmjsZdGYy+Nxl4ajb00GntpNPbSaOyl0dhLo7GXRmMvjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWjcYWi8baw6Kx9rBorD0sGmsPi8baw6Kx9rBorD0sGmsPi8baw6Kx9tBorNBoLI3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2h8Xkbj8zIan5fR+LyMxudlND4vo/F5GY3Py2l8Xk7j83Ian5fT+Lz8YdFYp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+LycxuflND4vp/F5OY3Py2l8Xk7j83Ian5fT+Lycxud1aHxeh8bndWh8XofG53UeFo09ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6ND6vQ+PzOjQ+r0Pj8zo0Pq9D4/M6v8/nVXI/KjH9vZU4TSWHppKgqSRpKrk0lRRLJb/P5/VTK2lo7MdHtP8R63/E+x85/Y9E/yPZ/8jtf6S6H4mOseXjI9L/iPY/Yv2PeP8jp/+R6H8k+x+5/Y/0X1/6ry/915f+60v/9aX/+tJ/fem/vvRfX/qvL/3X1/7ra//1tf/62n997b++9l9f+6+v/dfX/utr//Wt//rWf33rv771X9/6r2/917f+61v/9a3/+tZ/fe+/vvdf3/uv7/3X9/7re//1vf/63n9977++91//9F//9F//9F//9F//9F//9F//9F//9F//9F//9F8/+q8f/deP/utH//Wj//rRf/3ov370Xz/6rx/918/+62f/9bP/+tl//ey/fvZfP/uvn/3Xz/7rZ//1b//1b//1b//1b//1b//1b//1b//1b//1b//1b//1q//6/V1f9Hd90d/1RX/XF/1dX/R3fdHf9UV/1xf9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V1f9nd92d/1ZX/Xl/1dX/Z3fdnf9WV/15f9XV/2d33Z3/Vlf9eX/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9d3+ru/2d323v+u7/V3f7e/6bn/Xd/u7vtvf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3/VVf9dX/V1f9Xd91d/1VX/XV/1dX/V3fdXf9VV/11f9XV/1d33V3vXp0971vT4i/Y9o/yPW/4j3P3L6H4n+R7L/kdv/SP/1pf/60n996b++9F9f+q8v/deX/utL//Wl//rSf33tv772X1/7r6/919f+62v/9bX/+tp/fe2/vvZf3/qvb/3Xt/7rW//1rf/61n9967++9V/f+q9v/df3/ut7//W9//ref33vv773X9/7r+/91/f+63v/9U//9U//9U//9U//9U//9U//9U//9U//9U//9U//9aP/+tF//ei/fvRfP/qvH/3Xj/7rR//1o//60X/97L9+9l8/+6+f/dfP/utn//Wz//rZf/3sv372X//2X//2X//2X//2X//2X//2X//2X//2X//2X//2X7/6r1/916/+61f/9av/+tV//eq/fvVfv/qv39/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Ul/1yf9XZ/0d33S3/VJf9cn/V2f9Hd90t/1SX/XJ/1dn/R3fdLf9Wl/16f9XZ/2d33a3/W9/g13/yOn/5HofyT7H7n9j/Rfv7/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rk/7uz7t7/q0v+vT/q5P+7s+7e/6tL/r0/6uT/u7Pu3v+rS/69P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+rs/6uz7r7/qsv+uz/q7P+rs+6+/6rL/rs/6uz/q7Puvv+qy/67P+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SLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1Cyr1ZSLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1Cyr1ZSLk3Cyn3ZiHl3iyk3JuFlHuzkHJvFlLuzULKvVlIuTcLKfdmIeXeLKTcm4WUe7OQcm8WUu7NQsq9WUi5Nwsp92Yh5d4spNybhZR7s5BybxZS7s1CunuzkO7eLKS7Nwvp7s1Cus/aaXr3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0t2bhXT3ZiHdvVlId28W0v1CFtI570oXOR+li8e/uuYv/9pSf/ljl9+U9OSPkg5fScFXUvKVdPlKKrqSvpANNF6S8JWkfCUZX0l86p186p186p186p186p186n351PvyqfflU+/Lp96XT70vn3pfPvW+fOp9+dT78ql38al38al38al38al38al38al38al38al38al30al3PXTqXQ+detdDp9710Kl3PXTqXQ+detdDp9710Kl3PXTqXQ+fegufegufegufegufegufegufegufegufegufegufeiufeiufeiufeiufeiufeiufeiufeiufeiufeiufehufehufehufehufehufehufehufehufehufehufejufejufejufejufejufejufejufejufejufejufeh8+9T586n341PvwqffhU+/Dp96HT70Pn3ofPvU+fOodfOodfOodfOodfOrN57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti89rWXxey+LzWhaf17L4vJbF57UsPq9l8Xkti85r6Q+d1/JVEpt6v0piU+9XSWzq/SqJTb1fJbGp96skNvV+lcSm3q+S2NT7VRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l8ak3ndfyVRKfetN5LV8l0am38Hkthc9rKXxeS+HzWspDp97C57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L4vJbC57UUPq+l8Hkthc9rKXxeS+HzWgqf11L5vJbK57VUPq+l8nkt9aFTb+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9rqXxeS+XzWiqf11L5vJbK57VUPq+l8nktlc9raXxeS+PzWhqf19L4vJb20Km38Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57U0Pq+l8Xktjc9raXxeS+PzWhqf19L4vJbG57V0Pq+l83ktnc9r6XxeS3/o1Nv5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWjqf19L5vJbO57V0Pq+l83ktnc9r6XxeS+fzWh4+r+Xh81oe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Wszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVUWszku3tVQ6XFTL67VzVMWixUvjuh8t0Jle9OqHx38jBpsVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9OqHx3QuW7EyrfnVD57oTKdydUvjuh8t0Jle9ORn138fyo5uqn1RyqaoKqmkEtLq2PasqeT6u5TNVMOt2+UI1QVaNU1RhVNU5VzacdrpEflzz+42OvleWvn7vf/Fx973Ofe5m+8Dn55uf0m5/79H8uoR8zMeJ+/rn63uc+9xV84XPyzc/pNz/36a9ejv3yObnym8/Zv/zH1//t//nb//H3f/uf/tvf/dPrE3/+//yf//Cf//nv//Effvm//vP/+9////+f19/+fw==" }, { "name": "mint_public", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "amount": [{ "end": 42, "start": 41 }], "inputs": [{ "end": 40, "start": 0 }], "to": [{ "end": 41, "start": 40 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" }, "visibility": "private" }, { "name": "amount", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271] }, "bytecode": "H4sIAAAAAAAA/+2dB5gcxbHHZy9IK61uJSGEIugARZC427180kmrBMh+DkgEEyVZAWQEwtIJJLANOMDzOxsnksgZHHC2wTnnnHPOOQcc8Oue6/L9r9Wz7B7TS7VU8339TU1tz9Sv/tPdMzszu5OJBqfxmSjKGLvRzI+J9p+oTsnMWx/fVEhxW60+OTOBcNYFwlkfCGdDIJyNgXCOCoRzdCCc2UA4xwTCOTYQzlwgnOMC4WwKhDMfCOf4QDgnBMI5MRDOQwLhnBQI56GBcE4OhPOwQDinBMI5NRDOaYFwTg+Ec0YgnDMD4Tw8EM4jAuGcFQhncyCcRwbCeVQgnEcHwjk7EM45gXDODYRzXiCc8wPhXJAiZw9w0j26Y818oZkvMvPjzLyFYpt5weTYYJaLqrSp0q5Kh/VZpypdqnSr0mM+azaf9aqyWJUlqvSpslSVZSbX5aqsUGWlKqtUWa3K8aqcoMqJqqxR5UmqPFmV/1HlKao8VZWnqfJ0VU5SZa0q61Q5WZVTVDlVldNUeYYqp1ssZ6hypipnqXK2Kueosl6VDapsVOWZqmxSZbMqW1TZqsq5qpynyjZVnqXK+apsV+UCVS5UZYcqF6nybFV2qrJLlX5VdqtysSqXqLJHlb2GZYJhuVSVy1R5jirPVeV5qlyuyhWqXKnK81V5gSovVOVFqlylytWq/K8qL7by+j9VBlR5iSovVeUaVV6mystVeYUqr1TlVapcq8p1qlyvyg2q3KjKPlVuUuVmVW5R5VZVblPldlXuUOVOVe5S5W5V7lHlXlXuU+V+VR5Q5dWGhdrNa1R5rSqvU+VBVV6vyhtUeaMqb1Llzaq8RZW3qvI2Vd6uykOqPKzKO1R5pyrvUuXdqrxHlfeq8j5V3q/KB1T5oCofUuXDqnxElY+q8jFVPq7KJ1T5pCqfUuXTqnxGlc+q8jlVPq/KF1T5oipfUuXLqnxFla+q8jVVvq7KN0wuo0wu31TlW6p8W5XvqPJdVb5nPvu+mf/ArJM1yz9U5Ueq/FiVn6jyU1V+psrPVfmFqfNLM/+Vmf/azH9j5r8189+Z+e/N/A9m/kcz/5OZ/9nM/2LmfzXzv5n53838ETP/h5n/08z/Zeb/NvNHzfw/Zk6DXcbM68y83swbzLzRzEeZ+Wgzz5r5GDMfa+Y5Mx9n5k1mnjdzfObgv1PJzFsf31TAAQwfZNB+fZO83nyub5zqBqFv+OmdrG9U6ZtA+gaLvnmhbwzoi+76grbu3PpCrL7IqS8g6otz+sKXvqikL9joiyH6QoP+Eq+/IOsvn/qLnf7SpL+QNKuiT6T1Sao+AdQnV/rERZ8U6AOuPpgtANafAr8e4PXgrgd2PajrAV13Sj2Q24O3PWA/0YP0Ez0wP97B+IkegEMfdJMG2u9HgwPsYw2qekDVg6keSPUgqgdQPXjqgVMPmnrA1IOlHij1IKkHSD046oFRD4p6QNSDoR4I9SCoB8B48MsMDnp6wNODnR7o9CCnBzg9uOmBTQ9qekDTg5keyPQgpgcwPXjp8cFs5r/TC+qH7Glmvnznzo17m7dduHnLnuYdu/ubd2xtfuaO3Rdu3oUrPgQrTjLzNeVXeedIY71/pCv+GFacaeYb+/u3XHBRf3P/juaNmzc3X7Kt/7zmHRdv2bl1+45LcN2/jTTowsaRB70kO2TPMPNNG7dvj1fctWvLzv71F2zcs/6Z2/rX79p26RZc9cTcCHmflhtxzP9MHWHMBdOq0+i/bbbPrAg6xceFkrFbH8/UUWiNT7bMgdh+oFAfh+vMZzRvNv56s0xzOm43mOUGy99olhut7Yw2y6Mtf5NZbrL8483yeMs/0SxPtPyTzPIkyz/FLNO8ZPyzzPIsyz/bLM+2tjPHLM+x/HPN8lzw58xn8WT82kcdLwM+OjeqAx/1s3rw0clyA/hGG18j+Kj9jALfGOMbDb6xxpcFH/WXMeCjsXUs+JqMLwe+vPGNA99442sCH30xy4NvovGNB98hxjcBfDQcTwTfocZ3CPgmG98k8B1mfIeCb4rxTQYfdfzDwEd9egr4phvfVPDRIDMNfDQITAff4cY3A3xHGN9M8M0yvsPB12x8R4DvSOObBb6jjK8ZfEcb35Hgm218R4FvjvEdDb65xjcbfPOMbw745hvfXPDRufQ88NEYNB98xxrfAhoroqEvcfE6NEaB71gan8C3kMYm8C2icQl8xxnfKPC1QGzytRpfFnwF46O+pT9bZexSlNK43d5W1NtdnfZ21Zb1dk9If7ut+jhwYjSkdQnirAat1hg7E6X7XfNE2G4G4pC/AeyToC7VIz1ofCR2PeYdb+w1ZdZbZa2XhzrHO/IvRenmf4LFc4LF3GhxeGizndJmK56qbrProa7d9uhYfSC22ZOBw0Ob3einzRZbpc0OXiuKInfbo/PGA7HNPhM40m+zHdJmK5+qbrOXQV277dF3mAOxzV4EHOm32S5PbbYgbTYavEYeRe62R9+nD8Q2+zzgSL/Ndss4W/lUdZu9AerabY+u7RyIbfYlwJF+m93oqc22SZuNBu8NRpG77dF1xgOxzd4EHOm32c2e2mxrp7TZwfvSUeRue3TN+0Bssw8YW1+z/b65ZjsdfD8wvhnAm37b3uLrOm63tO3BZyaiyN1G6f7Lgdi2Hza2bse/NO34CPD9iu5xgu/XcJ+SfL8xviPB91vjOwp8vzO+o8H3e7pfCr4/0L1S8P2R7pOC70/GNw98fza++eD7i/EtAN9frXvZ2vc34zsWfH83voXge8T4FoHvH8Z3HPj+aXwt4PuX8bWC79/GVwDfo8ZXBN9/jK8NfHRDqh18GePrAF+d8XWCr974usDXYHzd4Gs0vh7wjTK+XvCNNr7F4Msa3xLwjTG+PvCNNb6l4MsZ3zLwjTO+EviajG85+PLGtwJ8441vpfHp+8Z0T5Ce0dN9kvZNKUqvT8b3BqPhU8ZaLoHd6penNR/t/zC5jlVMP1ZbfL8zqjz3IvC0ecg9BzEq4WkDnvb0eeI/f+lIf7vxPi5YmuYgVgHy6vSQVwZi0bZpmeLlwYfjWqeDsSt9xmIGYtG2abkLGMmH4ywdE6j/6OGFHrr21Jfi8yqK12C2SxxF8FOdX0wdYqMHvpui4T8goXzaLZ+ndhm3C4pF26ZlitcE+bTXnrFYKWObxehrjMhALDpXfiJiRwmxm8BuAZ4eTzz2uEKxe2oQu8uKXbRi4/hFU7njSxcwd3tg1tvtTX+78VhE53r0HY/i4DF8CWiQVk4Ym77jURzyN4A9LzNUl+qRHjQWErtuy7Qvkd1er9NaLw91ehz5l6J08++1eHotZr1PZsLxyEN/iNtAj8VBy0XQrjdBux7QjuocC9r5Gs+6LR5abgceGsc6gKfFM0/G4mkBHjrm4Xc4+rxQA81aLM1aymiG3yldx2wP5/Vlj9ltwEi+br+axX2DcqZztQ5Lswao02K+n+pZX8afVgXDRgyNFht+3yG2tMduPFdFFtSL6qw0WtBzEzh5Os8uYruNQAOcSmDj8S79MaK96u+seA7m43qGp7GwFY9Tj0bp9kX7GFS0tMJjEB6/PZw7lR1PKZ4wC7MwC7MwC7MwC7MwC7MwC7MwC7MwC7MwC7MwC7MwC7MwC3NJmIVZmIVZmIU5EubWxzcJszALszALszALszALszALszAHyYy/e8DfAlO9diaM5Gv1y1Os9vf4vcCT/u+5Bp/v762CZwnwLE6dZ/D5fg+/W4ufw++zcuq1cspDHew7fR7yzET7/66PlvtgPwizMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAuzMAvzwceMz7gTaw7qtTBhJN9izzw5i0dPGWu5BLaLEffrUk+MfVUwLvXL04ptGt+XuMjy6fc6bKsf4rXf1UP16b0P+L6cB+uH6m43dhN83gc5evh9xrDfCdjvFsL3+1CdZwPv3Q5efIdYj+XTOfh471IGYtG2aZniNUX7/07I9f6hpmj/MULn0mX5dC6+3uVnv/eKljuBkfLCd1oRW3NqPMVNfvJsbx2vtjEWtO609KW86iDXHuDQXOm/j6497g/0XhbqDxQf+y/VeaHpA0nvTEn//TvtrX5yH2x7+L4Yvd1eR+5U58UwFgwYG/s9joM3OT6nqdwYj+/I8fF+Vtf41+qIvRRYU4pdwNgZUygO+XHs3QfHGKpHepDWxK7HCHrHD7Lb6/VY6+WhTsGRfylKN/9Wi6fVYtb75BpoZ9SOPP1uLmYqJGjUDRpRHXx3qf1uxFy0//vOPB3HY+6kd63h7z7JtwT0xeO4/b5JfKcw5uDjXUcu7WkZ2zWNP653sTVH6R770s9z6NjXZuVmv5tLa3+c5dP7q9g4pAX1ezxX6bF8fo5D5c+7KN5jnXfh+Gcfd+3z5mxUu/ekEYvrPWkPlznm47bsPLoc23pXhduKzLboPIm2iX0W342W/ng9eG60zMqN9uNSyI3qfOAxzo2WeWD0eawqQY7a7nXkTnU+Csesj8O5D+0jPDf6muNzmsqdGy0DLVekn3O8v1cCZwniYOxVwJpS7ALGpnMjikP+BrC/CudGVI/0IK2JXfeZ5cZGdnu9orVeHuosd+RfitLNf4XFs8Ji1vvkU9DOvgbnRr6Oz8sTNOoBjagOvguUjkX4nxiu45Svc6Ok4xSeG9nnwq7jlK//gchE+//Xif09Co9LoxLywO+mPykz/uK1LfzPDR/fV1F/e+xsAz/V+SW06fmOc53HusbE9VxniYOxOTXGwfNVH8d9Ol+lvrvUypvOkfS1mlYr/1Lk71iPxxv7uzvFw2Py3x/jfKTkgdFP7sPHYrtPYe5U59/Qp/7zGNdq8g37f05TufOREmi5Mv2cW/EYTft7pSP2amBNKXYBY9P5CMUhfwPYTQ1DdakecZLWxK7HCDq2I7u9Xo+1Xh7qrHDkX4r8nI/RtldazHqf1DUM2dSONJOHd0c7z5Fc17OoTgF8rms11H/wWFKrY719zwX/1wy/16V/flT9O6/xfKEndZ7B/8Tyca8L92fa77y2r2MWLa3yUAfv9fo6T09qXxRPmIVZmIVZmIVZmIVZmIVZmIVZmIVZmIVZmIVZmIVZmIVZmIW5JMzCLMzCLMzCHAlz6+ObhFmYhVmYhVmYhVmYhVmYhVmYg2RO+n0f1Wthwkg+/G0W+fC3WfQ7gRSfES8gSwRx8TcJSyxmX/95gr/9o+3jb+18/g5zcTQ06e0usvTIwP4ZZdXB/6OiOosM84Ro/ynnWBf/qwv/MynN3wPg/za0QNwi6OujH1T7rnVX/62L+DPWB8DYEABjYwCMowJgHB0AYzYAxjEBMI4NgDEXAOO4ABibAmDMB8A4PgDGCQEwTgyA8ZAAGCcFwHhoAIyTA2A8LADGKQEwTg2AcVoAjNMDYJwRAOPMABgPD4DxiAAYZwXA2BwA45EBMB4VAOPRATDODoBxTgCMcwNgnBcA4/wAGBcEwBhCezyOKSPypHm/D3PHWIX0cy9Wmzv+R76P/+DD9wNUwlP0y9OK72bAWB7+E7ZYbe74PpH29HnifdFWBQ8x5CP3f8h7YCyOlFHz+HjnTQ5iVMLTAZq1OzTzwFgcKaPm8fGOqhzEqISnEzTrcGjmgbE4UkbN0+VJs84qePC9Mp0OzTwwFkfKqHl8vNcN37tWCQ++n6fLoZkHxuJIGTWPj/9OxXcOVcKD/9vf7dDMA2NxpIy+nkur9n+u8TnMHodmHhiLI2XUPD7+wxif76yE57H+15grY2sAjNkAGMcEwDg2AMZcAIzjAmBsCoAxHwDj+AAYJwTAODEAxkMCYJwUAOOhATBODoDxsAAYpwTAODUAxmkBME4PgHFGAIwzA2A8PADGEL67CuPIGZGnOT2eVswdY/l433q1uS9x8GQ85Y6x+hjkTgyhMS4OgLE1AEbRURiF8cBjlH4tOnJiFB1FR2E88BiLATDKvhZGYTzwGEM4FgqjnPcI44HHKH3m4GEM4Xq49Gu595ESY3GkjJpnafo8sWZ9VfAsBc1ovaJfxuJIGTXPsvR5Ys2WVsGzDDRb6tDMA2NxpIxZ8KfIE2u2rAqeEmi2zKGZB8biSBk1z/L0eWLNSlXwLAfNSg7NPDAWR8qoeVakzxNrtrwKnhWg2XKHZh4YiyNl1Dwr0+eJNVtRBc9K0GyFQzMPjMWRMmqeVenzxJqtrIJnFWi20qEZV8ZWv4zFkTJqntXp88SaraqCZzVoRusVA2BsDYBxcQCMIegojMLIiVH6tejIiVF0FB2F8cBjlPNwYTyIGIsjZdQ8x6fPE2u2ugqe40EzWq/ol7E4UkbNc0L6PLFmx1fBcwJodrxDM66MrcKYCuOSABhlXwujMI6c8cT0GYvVMp7oWTNPebbqnNZYOR1v5ZSHOviu0jUe8sxAXNo2La+B/RAaM+6/5vRid+ntPin9nIr6f7DGgq5PsvSlvHQd+v+fTedt2XT+U3dv375t67YtO1fv2barfxf2mSebOfoetZbXJNTRef4PLJfSybOAMRuBkWLpuE+LUtd3qx5fnhINn8qNL08Dnqemz1PwlGer3u7TgT2d7bZv0VqdZGn1FEurPNRBhpM86JeBuLRtWj7JETs9LTq36thrK9BirYNnbY21WOuInZ4WXe069roKtFjn4FlXYy3WOWKnp0UxPrafXIEWJzt4Tq6xFic7YqfYR3p07FMq0OIUB88pNdbiFEfsFLWIx85TK9DiVAfPqTXWguJVy3xygMxrA2TmoHPWstOJ3RnHPq0CLU5z8JxWYy1Oc8ROUYtNOvYzKtDiGQ6eZ9RYC4pXLfPJDJizlp1O7K6NOvbpFWhxuoPn9BprcbojdoptuUPHPqMCLc5w8JxRYy3OcMROUYv4fPnMCrQ408FzZo21oHgN0dB39l1ZnzyF1pzFo6dy39OJIQc2fnc/K3XGwf/4o1hnQayz049VcLUXWj7bb+ytervr099u/D1pg9lWo9nuekdOG42dSVnPDbDdDMQhfwPYF2WH6lI90oP6LbHrdwKcY2xkt9c701ovD3XOceRfitLNf73Fs95i1vtkC/RzH22rknY9IRrqyxPMvC4aumZ4rJnT9co1sFyqkHPrY0x6G9THR0NsitUAn+/JDmfFycVdMn7a1pOBH5czsA5e3z5zBPlaU8F2YL71wHAmxPXQHuL7PxQrgrxxKoGN44SH66gFT3nGY985Vk5PtnLKQx28Ln6OhzwzEJe2TcvnwH6ohvkYBsyeYv/3Ps2TrXiLLT30RONqI/hbQdMNxm4wy1Qfn6HYlHoObZt0X8NjEvHgVAJ7E/A8M3Wewb6Wfp6D90I2A3s62+1o01ptsbTaaGmVhzrIsMWDfhmIS9umZYpXLfPaAJlPYsCctex0YncVdeytFWix1cGztcZaULxqmU9lwJy17HRid3bp2OdWoMW5Dp5za6wFxauW+fQAmdcxYM5adjqxu+Lj1HkVaHGeg+e8GmtB8aplPi1A5pMCZF4bIPM6BsxZy04ndlv8PXJbBVpsc/Bsq7EWFK9a5nUBMp8SIPNJATKvDZA5xPZ8aoDMpwlzTZg5jBtZy04ndlf8fe1ZFWjxLAfPs2qsBcWrlvn0AJnPYMCctex0Yhfj5wTPr0CL8x0859dYC4pXLfO6AJk3B8i8NkDmkwJk3hIg86kBMm8NkPn0AJlDHJ/PDZD5tACZQxyfQzwOhtieOYwbWctOJ3bnZh17ewVabHfwbK+xFtsdsVP8Xhw/y31BBVpc4OC5oMZaULxqmc8NkHltgMzrAmSWtlEb5lMDZN4SILOMGyNjzlp2OrE7O3XsCyvQ4kIHz4U11oLiVcu8JUDmkwJkPj9A5nUMmLOWnU7stjj2jgq02OHg2VFjLShetczPYsCMv9+6f4xPnrbNOYuHNIssxshizIG9CTS7KHXGwd8rUqyLINaz04/lbOO0/Gyvsds26e3uSj+n+FmrfrMt+r3iLkdOu42dSVnPfthuBuKQvwHse8YM1aV6pAf1W2LXv1fcaWxkt9fbYa2Xhzo7HfmXonTz32Xx7LKY9T7ZB/3cR9uqpF3r3/1RX8Z3OdJUB1p5+F1tody4s97B08GMp8CMZw0znoXMeOYx4zmSGc8MZjyTmfGMZ8YzhhlPPTOe+cx4jmLGM5MZT4kZz2HMePqY8UxgxjOWGU8PM54GZjydzHjamPGsYsazgBnP0cx4VjLjOZwZzxRmPBOZ8eSY8SxixtPIjOcsZjzHMOOZzYznCGY8y5nxTGXGs5QZzyHMeMYx4zmbGc8oZjxdzHjamfG0MONZzYxnDjOeWcx4pjHjmcSM5zhmPE3MeEYz45nLjKeZGc8KZjzTmfEsY8ZzKDOeXmY8eWY8WWY83cx4Mgx4ctH+z2/m4POzwVdnrauPdwunDX1Oz1rWwTr0zFi9Y9sXgW+DsV3Pi6JOHp4XHfYMJz3LaD8/2gQcO5jwdDPjyTLjyTPj6WXGcygznmXMeKYz41nBjKeZGc9cZjyjmfE0MeM5jhnPJGY805jxzGLGM4cZz2pmPC3MeNqZ8XQx4xnFjOdsZjzjmPEcwoxnKTOeqcx4ljPjOYIZz2xmPMcw4zmLGU8jM55FzHhyzHgmMuOZwozncGY8K5nxHM2MZwEznlXMeNqY8XQy42lgxtPDjGcsM54JzHj6mPEcxoynxIxnJjOeo5jxzGfGU8+MZwwznvHMeCYz45nBjOdIZjzzmPEsZMazhhlPgRlPBzOeOgfP2Z54NkRDUwmWz/arRave7iZPOdH/qtF/7hE/xWuAOmvMxS06J8cJt0Wc9jN3eH+H6tY5dHw0Gv584qNR5TlvfYwJY4+G2Osd+T69TL4u7pLx07Y2AD8uZ2AdqpuFuNXka+9T24F89cCA+2oD2MSzBvJcY9UrWXmuAW5cxj6zPto/Xj3URZ41YBP7WQ5f5GBDXnu/bHgM3sbI3ad3wnZKxm59XFNhU87KSU8Za7kENv4HpI+xwE+eg2PXLmBPZ7ud8djVb2l1lqVVHuogQ78H/TIQl7ZNy/2O2Olp0dWuY++uQIvdDh5f/yeapEW5/0Dlzpy17HRid8bve7m4Ai0udvBcXGMtLnbETlGL+D1Al1SgxSUOnktqrMUljtgp9uv4P5H3VKDFHgfPnhprQfGqZe5nwJy17HRiF+P9t7cCLfY6ePbWWAuKVy1zPwPmrGWnE7tzq459aQVaXOrgubTGWlC8apn3BMi8iwFz1rLTid0Zn8tdVoEWlzl4LquxFhTvYGDew4A5a9npxO7q0rGfU4EWz3HwPKfGWjzHETvF/tejYz+3Ai2e6+B5bo21oHjVMvczYM5adjqxO7t17OdVoMXzHDzPq7EWFK9a5j0BMu9lwJy17HRid8Xvk7u8Ai0ud/BcXmMtKF61zLsZMGctO53YXUUd+4oKtLjCwXNFjbW4whE7xfEzbstXVqDFlQ6eK2usxZWO2ClqEb+P6PkVaPF8B8/za6wFxauWeW+AzJcxYNb3Cem+0b9yPnkK8fvvkIc0iyzGyGLMgY33j16QOuPg++8o1gsg1gvTj1VwtRdafqHX2IX4/XdXpZ9TfK3warMtuhd/lSOn/zV2JmU9r4btZiAO+RvAfiQ3VJfqkR7Ub4ld3/N/kbGR3V7v+dZ6eajzIkf+pSjd/K+yeK6ymPU++S30cx9tq5J2rZ9FoL6M/5XvoU8Xdbp4r11P5cYd7Pdr0ucp+Bq7cNx+HM9e7MfrOo6cbWmVj/Y/tni6Fx/zvMDioWWKVy3zMQyYsV00R+m2Cw/Hr6J+hncs6PpCS1/Mi8ahFNtl/EwQjamNEO8qiOvhODPsGNdgtm0fG3TsgdQ1b4uft3lxNHwqN5YNAM//pc4zOJaln+dgm30JsKez3Y42rdVLLa1ebGmVhzrI8FIP+mUgLm2bliletcz9ATLvDZD58gCZdzFgzlp2OrE74/s/11SgxTUOnmtqrAXFq5Z5d4DMexgwZy07ndhd8fHkZRVo8TIHz8tqrAXFq5b5ygCZ9wbI3B8g8x4GzFnLTid2W3ye//IKtHi5g+flNdaC4lXLvIcBc9ay04nduUXHfkUFWrzCwfOKGmtB8apl3hsgc3+AzHsCZN4VIPOVwlwT5hDHjcsCZN4dIPOlDJizlp1O7GJ8TvDKCrR4pYPnlTXWguJVy7wnQOaXBMjcHyDz3gCZLw+QeVeAzC8NkHl3gMwhjs/XBMh8ZYDMIY7PIR4HQ2zPIY4bFzNgzlp2OrG74v87eFUFWrzKwfOqGmtB8aplviZA5v4AmfcEyCxtozbMuwJkvjxAZhk3asN8RYDMIbbnvQEyXxwgM4c+mLXsdGK3xbGvrUCLax0819ZYC4pXLfMrGDDj75LmNfnkaducs3hIs8hijCzGHNgDoNl1qTMO/g6PYl0Hsa5PP5azjdPy9V5jt8W/w7sx/ZziZ5f2mW3R7/BudOR0k7EzKeu5D7abgTjkbwB7dtNQXapHelC/JXZd9QZjI7u93rXWenmoc4Mj/1KUbv43Wjw3Wsx6n0yDfu6jbVXSrvXv8Kgv90Fd+j1LXVT5f+3i7xuvTj2f1kIOYtBUbty6GnjWe+DxlGfcd6+zcnqRlVMe6myAPD2MxcN+V0vbpuXrgIemOuDx0Q4q2efI08GMp8CMZyEznnnMeI5kxjODGc9kZjzjmfGMYcZTz4xnPjOeo5jxzGTGU2LGcxgznj5mPBOY8YxlxtPDjKeBGU8nM542ZjyrmPEsYMZzNDOelcx4DmfGs4EZzxRmPBOZ8eSY8SxixtPIjGc2M54jmPEsZ8YzlRnPUmY8hzDjGceMZxQzni5mPO3MeFqY8axmxjOHGc8sZjw7mfFMY8YziRnPccx4mpjxjGbGM5cZTzMznhXMeKYz41nGjOdQZjy9zHjyzHiyzHi6mfFkGPDkov2fDcvB5zvBR88wvQh89JzcevDVOWLQvfTrwEf3b2gb+vjZNW3/baNOvp7bwlilaP9napuA41omPN3MeLLMePLMeHqZ8RzKjGcZM57pzHhWMONpZsYzlxnPaGY8Tcx4jmPGM4kZzzRmPDuZ8cxixjOHGc9qZjwtzHjamfF0MeMZxYxnHDOeQ5jxLGXGM5UZz3JmPEcw45nNjKeRGc8iZjw5ZjwTmfFMYcazgRnP4cx4VjLjOZoZzwJmPKuY8bQx4+lkxtPAjKeHGc9YZjwTmPH0MeM5jBlPiRnPTGY8RzHjmc+Mp54ZzxhmPOOZ8UxmxjODGc+RzHjmMeNZyIynwIyngxlPXU142lv1dZ0N0fApYy2XwL4OeHamzjP4/10edG/F594eTXG7Wiv7fyQ3WFrloc7VoN+AB/0yEJe2TcsDjtjNUbpaXF+BFtc7eHz9h2SSFhSvWuarA2QWnUXnJGbRWXROYhadReckZtFZdE5iFp1F5yRm0Vl0TmIWnUXnJGbRWXROYhadReckZtFZdE5iFp1F5yRm0Vl0TmIWnUXnJGbRWXROYhadReckZtFZdE5iFp1F5yRm0Vl0TmIWnUXnJGbRWXROYuags+ah/zDcYOb4v6C9TBjJt9MvT3sOcqYpYy2XwL4eeK7zoI+nPONnyG+wcup16E51sH/d4CFPV9+h5RtgP1TDPBAgs+g8MmbNQ79lJtYc1Otjwki+6/zytOUgZ5rKjWM3AI+Pcd5TnvE4dqOVU59Dd6qD/etGD3m6+g4t3wj7QZj9M2se+v80Ys1BvaVMGMl3vVeeYvwbxKXR8KncmHAj8PgYMz3pHo8J+6ycljp0pzrYVvd5yNPVd2h5H+yHapgHAmQWnUXnJGbRWXROYhadRWc9ic6is+gsOqfBLDqLzknMorPonMQsOovOScyis+icxCw6Hzw6ax567yGx5qDeMiaM5LvBK09bfN9hWTR8KnffYR/w+Lgv40n3+L7DTVZOyxy6Ux3sXzd5yNPVd2j5JtgP1TAPBMgcos7SNkTnA4lZ2oYwJzFL2xDmJGZpG8KcxCxtQ5iTmKVtCHMSs7QNYU5ilrYhzEnM0jaEOYlZ2oYwJzFL2xDmJGZpG8KcxCxtQ5iTmKVtCHMSs7SNkTHnIR6x5qBeiQkj+W70yxP/F0opGj6Ve27nJuDZ50EfT3nGz+3cbOVUcuhOdbCt3uwhT1ffoeWbYT8IszC7mDXPcvhcTzmot5wJI/n2eeUpxM8fLo+GT+XGsZuBx8c470n3eBy7xcppuUN3qoNt9RYPebr6Di3fAvtBmIVZmIVZmIVZmIVZmIX5iWDWPCuMTaw5qLeCCSP5bvLL05mDnGkq973pFuDx8b3SU57x96ZbrZxWOHSnOthWb/WQp6vv0PKtsB8OdOaBAJmlbdSGmUPb0DwrjU2sOai3kgkj+W72y9Odg5xpKne8uBV4fBxPPeUZHy9us3Ja6dCd6mD/us1Dnq6+Q8u3wX6ohnkgQGbRWXROYhadDx6dNc8qYxNrDuqtYsJIvlv88sTH5VXR8Knccfk24PFx3uIpz/i4fLuV0yqH7lQH+9ftHvJ09R1avh32QzXMAwEyi86icxKz6Hzw6Kx5VhubWHNQbzUTRvLd6pcnfr5udTR8Kndcvh14fJy3eMozPi7fYeW02qE71cH+dYeHPF19h5bvgP1wRxXMAwEyi84jY9Y8LcYm1hzUa2HCSL7b/PLE41hLNHwqN47dATw+xnlPecbj2J1WTi0O3akO9q87PeTp6ju0TPGqZR4IkFl0Hhmz5ikYm1hzUK/AhJF8t3vlGXw/WiEaPpUbx+4EnjtS5xkcxzzoHo9jd1k5FRy6Ux3sX3d5yNPVd2j5LtgPwizMwizMwizMwizMwizMwizMwizMwizMwizMwizMwsybWfO0GZtYc1CvjQkj+e7wyjN436EtGj5lrOUS2HcBz52p8wzed/Cge3zf4W4rpzaH7lQH2+rdHvJ09R1avhv2gzALszALszALszALszALszALszALszALszALszALszDzZtY87cYm1hzUa2fCSL47vfIM/i96ezR8Knff4W7guSt1nsH7Dh50j+873GPl1O7QnepgW73HQ56uvkPL98B+EGZhFmZhFmZhFmZhFmZhfiKYNU+HsYk1B/U6mDCS7y6vPIPPa3VEw6dy35vuAR4f3ys96R5/b7rXyqnDoTvVwbZ6r4c8XX2Hlu+F/VAN80CAzKKz6JzELDqLzknMorPonMQsOovOScyis+icxCw6i85JzKKz6JzELDqLzknMorPonMQsOh88OmueTmMTaw7qdTJhJN/dXnna4vsOndHwqdx9h3uBx8d9GU+6x/cd7rNy6nToTnWwf93nIU9X36Hl+2A/VMM8ECBziDpL2xCdDyRmaRvCnMQsbUOYk5ilbQhzErO0DWFOYpa2IcxJzNI2hDmJWdqGMCcxS9sQ5iRmaRvCnMQsbUOYk5ilbQhzErO0DWFOYpa2IcxJzNI2RsasebqMTaw5qNfFhJF89/jl6cxBzjSVe27nPuC514M+nvKMn9u538qpy6E71cG2er+HPF19h5bvh/1woDMPBMgsbaM2zBzahubpNjax5qBeNxNG8t3rl6c7BznTVO54cT/w+DieesozPl48YOXU7dCd6mD/esBDnq6+Q8sPwH6ohnkgQGbRWXROYhadDx6dNU+PsYk1B/V6mDCS7z6/PO05yJmmcsflB4DHx3mLpzzj4/KrrZx6HLpTHexfr/aQp6vv0PKrYT9UwzwQILPoPDJmHfs16ceOxwOMTfpEFg9Nr/Gshac84/HgtZFbY4qXhzrYTl/rIc8MxKVt0/JrYT9UwzwQILPoPDJmHft1qcce/F9IjE36RBYPTa/zrIWfPAfHgwcjt8YULw91sJ0+6CHPDMSlbdPyg7AfhFmYhVmYhVmYhVmYhVmYhVmYhVmYhVmYhVmYhVmYhZk3s479+tRjD16/x9ikT2Tx0PR6z1r4yXPw+v0bIrfGFC8PdXCfv8FDnhmIS9um5TfAfhBmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZmYRZm3sw69htTj12Ir99jbNInsnhoeqNnLfzkOXj9/k2RW2OKl4c6uM/f5CHPDMSlbdPym2A/CLMwC7MwC7MwC7MwC7MwPxHMOvabU489+PwQxiZ9IouHpjd71sJPnoPfP94SuTWmeHmog/v8LR7yzEBc2jYtvwX2QzXMAwEyi86icxKz6Cw6JzGLzqJzErPoLDonMYvOonMSs+gsOicxi86icxKz6Cw6JzGLzqJzErPofPDorGO/NfXYbfH1e4xN+kQWD01v9ayFnzwHr9+/LXJrTPHyUAfb6ds85JmBuLRtWn4b7IdqmAcCZA5RZ2kbovOBxCxtQ5iTmKVtCHMSs7QNYU5ilrYhzEnM0jaEOYlZ2oYwJzFL2xDmJGZpG8KcxCxtQ5iTmKVtCHMSs7QNYU5ilrYhzEnM0jaEOYlZ2sbImHXst6cfuzNnxSZ9IouHprd71sJTnvHzLw9Fbo0pXh7q4D5/yEOeGYhL26blh2A/HOjMAwEyS9uoDTOHtqFjP5x+7O6cFZv0iSwemh72rIWnPONx9x2RW2OKl4c62E7f4SHPDMSlbdPyO2A/VMM8ECCz6Cw6JzGLzgePzjjuP5pe7PasFSOl7cbP67/TbKvOzLXvXcauB9+7jd0AvvcYuxF87zX2KPC9z9ijwfd+Yx8Hvg8Y+2rwfdDYPeD7kLHvB9+Hjf0A+D5i7FeD76PGfg34Pmbs14Lv48Z+Hfg+YewHwfdJY78efJ8y9hvA92ljvxF8nzH2m8D3WWO/GXyfM/ZbwPd5Y78VfF8w9tvA90VjzwXflxy+Lxv77eD7irEfAt9Xjf0w+L5m7Cz4vm7sMeD7hrHHgu+bYNP8W8YeB75vG7sJfN8xdh583zX2ePB9z9gTwPd9Y08E3w+MfQj4fmjsSeD7kbEPBd+PjT0ZfD8x9mHg+6mxp4DvZ8aeCr6fG3sa+H5h7Ong+6WxZ4DvV8aeCb5fG/tw8P3G2EeA77fGngW+3xm7GXy/N/aR4PuDsY8C3x+NfTT4/mTs2eD7s7HngO8vxsbx4K/Gfgf4/mbseeD7u7Hng+8RR71/OOr909gLwEfj4zvBR+Pju8BH4+O7wUfj43vAR+Pje8FH4+P7wEd96v3goz71AfBRn/og+KhPfQh81Kc+DD7qUx8BH/Wpj4KP+tTHwEd96uPgoz71CfBRn/ok+KhPfQp81Kc+DT7qU58BH/Wpz4KP+tTnwEd96vPgoz71BfBRn/oi+KhPfQl81Ke+DD7qU18BH/Wpr4KP+tTXwNds7K+Dj/rUN8BHfQrHS+pT3wIf9alvg4/61HfAR2P/d8FH/eJ74KN+8X3wUb/4AfiOMfYPwXessX8EvoXG/jH4Fhn7J+Cj84Kfgq/F2D8DX6uxfw6+grF/Ab6isX8JvjZj/wp87cb+Nfg6jP0b8HUa+7fg6zL278DXbezfg4/OZf4Avl5j/xF8i439J/AtMfafwddn7L+Ab6mx/wq+Zcb+G/hKxv47+JYb+xHwrTD2P8C30tg0XupxSY8ltE9of2kf6V+A9Tssnx7rSNdSlO65O8WibdNyJzBSe+ioPWOxUsZ2i1HzdHvQDNs4TeWuqXUDT5cHHk95xtfUeqycOq2c8lDnGMizx0OeGYhL26blHojtY5+jFo1muwstLRqgDh1IJ0T7T+V0pW3q9tzhyG2J59xo2zROLalB7F4rdpsVG48VqGFkrUdTLzAv9sCst9uX/nbj/kbHJmpjFKcNcloGGqSVE8bOmEJxyN8A9uRpQ3WpHulBxzNi122Z9iWy2+t1W+vloc4SR/6lKN38+yyePotZ75Ox04Y4PPSHuA0ssThouQ2060vQbgloR3XweNjhSbvFFs9iK7bmoXOeHvDRuQPx4zlgoQbc9rjX4+AmXy8wus592tNnLHvu0w6M5FsMPL2eNLP39UJLHzxOj7Lq0LoNUOeYMsfKnGNd3Q/rMkN50rWGFK8rx2P8KA/64XWQCPTCqQQ2MWSjoWslafKMjYauhezq37Fz47lb1m7ZuDkDaA0WJs4R/VFYrgM/2vUO36Mwx8s/eDmdLv/g5fQ6SyK87ET19deuLCyXonR3JfHQVG5XEoOvpqV3JV3CMrvytJ3b+rfg/mq0OEe6L/Vn9dY26hzrJ21T75f/B4WYLF6IkQQA", "debug_symbols": "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68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfXk/68v7WV/ez/ryftaX97O+vJ/15f2sL+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta372d9+37Wt+9nfft+1rfvZ337fta3f9s/76NP/emTZ62vz651vvms1edn/fnluZ5flYRMJSlTyZappGQqaZlKjkolv+0f7fFTK1kylZhMJTIZWzIZWzIZWzIZWzIZWzIZWzIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZ2zIZe2Qy9shk7JHJ2COTsUcmY49Mxh6ZjD0yGXtkMvaoZGw9Khlbj0rG1qOSsfWoZGw9Khlbj0rG1qOSsfWoZGw9Khlbj0zGLpmMXTIZu2Qydslk7JLJ2CWTsUsmY5dMxi6ZjF0yGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGWsyGesyGesyGesyGesyGesyGesyGesyGesyGesyGesyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGRsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGZsyGbtlMnbLZOyWyVgZz6tkPK+S8bxKxvMqGc+rZDyvkvG8SsbzKhnPq2Q8r5LxvErG8yoZz6tkPK+S8bxKxvMqGc+rZDyvkvG8SsbzKhnPq2Q8r5LxvErG8yoZz6tkPK+S8bxKxvMqGc+rZDyvkvG8SsbzKhnPq2Q8r5LxvErG8yoZz6tlPK+W8bxaxvNqGc+rH5WMbRnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8WsbzahnPq2U8r5bxvFrG82oZz6tlPK+W8bxaxvNqGc+rZTyvlvG8jozndWQ8ryPjeR0Zz+s8Khl7ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoynteR8byOjOd1ZDyvI+N5HRnP68h4XkfG8zoyntdR8bzsUfG8PioRydiPSkQy9qMSkYz9qEQkYz8qEcnYj0pEMvajEpGM/ahEJGM/KpHJWBXP66MSmYxV8bw+KpHJWBXP66MSmYxV8bw+KpHJWBXP66MSmYxV8bw+KpHJWBXP66MSmYxV8bw+KpHJWBXP66MSmYxV8bw+KpHJWBXP66MSmYxV8bw+KpHJWBXP66OS35SxZ/VnJW6/tZItU0nJVNIylRyVSn6b5/VTK1kylZhMJb8pY5c9n49fVr9k26nvPvwxEF+fn/4YesbXx6u/q9zi89nmv3r2x1/b33w6T54/fXp//OH8X33686fG7+en5u/np+7fz0+t389P7d/PTz2/m5/623TEWT91/X5+qv1+furv509Lv00JnfVTfz9/Wsrfz5+W8vfzp6X8/fxpKdE/Le34+qnryV//1D+Vs9/6E83n89fLz7eXn+8vPz9efn6+/Pz98vPr5ef3y88/7z6/Xu7ferl/6+X+rZf7t17u33q5f+vl/q2X+7de7t96uX/75f7tl/u3X+7ffrl/++X+7Zf7t1/u3365f/vl/u2X+/e83L/n5f49L/fvebl/z8v9e17u3/Ny/56X+/e83L/n3f5dz/Py89fLz7eXn+8vPz9efn6+/Pz98vPr5ef3y89/uX/Xy/27Xu7f9XL/rpf7d73cv+vl/l0v9+96uX/Xy/27Xu5fe7l/7eX+tZf7117uX3u5f+3l/rWX+9de7l97uX/t5f71l/vXX+5ff7l//eX+9Zf711/uX3+5f/3l/vWX+9df7t94uX/j5f6Nl/s3Xu7feLl/4+X+jZf7N17u33i5f+Pl/s2X+zdf7t98uX/z5f7Nl/s3X+7ffLl/8+X+zZf7N1/u35f5q/Uyf7Ve5q/W9/zVx7X/aZB93HDxg1Pcv4g/d6+vT8d3CF/l55Pr/OrB9lVQqBWUagVttYJKraD+GQXl/ipox68L+jzlEKd8D6DdnnL865Rzvjtl/ZRT7POUePq7Uww55d+JtP783scf6vIHp5z1+V/Y2b9gxh/Tzm9D1uyXkH1+8OkfI8yrYvoPyOk/YE//ATX9B/T0H3CG/4B+pv+ANf0H2PQfMP0m7uk3cU+/iXv6TdzTb+L+CTfxevzrj/jPyR8U9edON3Z9/m+nfX79X8svpZ+xpZ9nbulrbuk2t3SfW3rMLT3nlr7nll5zS597m56xt6k9Y29Te8bepvaMvU3tGXub2jP2NrVn7G1qz9jb1J6xt6k9Y29Te+bepmvubbrm3qZr7m265t6ma+5tuubepmvubbrm3qZr7m265t6mNvc2tbm3qc29TW3ubWpzb1Obe5va3NvU5t6mNvc2tbm3qc+9TX3ubepzb1Ofe5v63NvU596mPvc29bm3qc+9TX3ubRpzb9OYe5vG3Ns05t6mMfc2jbm3acy9TWPubRpzb9OYe5vm3Ns0596mOfc2zbm3ac69TXPubZpzb9Oce5vm3Ns0596me+5tuufepnvubbrn3qZ77m26596me+5tuufepnvubbrn3qY19zatubdpzb1Na+5t+jP2K/1HlT73Nq25t2nNvU1r7m1ac2/Tnnub9tzbtOfepj33Nv0ZO5L+o0qfe5v23Nu0596mc3ch2dxdSDZ3F5LN3YVkc3ch2dxdSDZ3F5LN3YVkc3ch2dxdSDZ3F5LN3YXkc3ch+dxdSD53F5LP3YXkz9jb1OfuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i4kn7sLyefuQvK5u5B87i6kmLsLKebuQoq5u5Bi7i6keMbepjF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUc3chxdxdSDF3F1LM3YUUf8YupGU/Kn2t/Pz0iv2vjvm3n/b6fHSsX5X01FdJpleS65UUeiWlXklbr6TSK6n1SjpyJf0ZO3rwkvTSu/XSu/XSu/XSu/XSu/XSu/XSu/XSu/XS++il99FL76OX3kcvvY9eeh+99D566X300vvopfeRS+985NI7H7n0zkcuvfORS+985NI7H7n0zkcuvfORS+985NI7H730XnrpvfTSe+ml99JL76WX3ksvvZdeei+99F566b300tv00tv00tv00tv00tv00tv00tv00tv00tv00tv00tv10tv10tv10tv10tv10tv10tv10tv10tv10tv10jv00jv00jv00jv00jv00jv00jv00jv00jv00jv00jv10jv10jv10jv10jv10jv10jv10jv10jv10jv10nvrpffWS++tl95bL723XnpvvfTeeum99dJ766X31kvv0ktvPdcy9VzL1HMtU8+1TD3XMvVcy9RzLVPPtUw91zL1XMvUcy1Tz7VMPdcy9VzL1HMtU8+1TD3XMvVcy9RzLVPPtUw91zL1XMvUcy1Tz7VMPdcy9VzL1HMtU8+1TD3Xcuu5llvPtdx6ruXWcy33I5feW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPddy67mWW8+13Hqu5dZzLbeea7n1XMut51puPdey9FzL0nMtS8+1LD3Xsh659C4917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw917L0XMvScy1Lz7UsPdey9FzL0nMtS8+1LD3XsvRcy9JzLUvPtSw9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" }, { "name": "check_balance", "is_unconstrained": true, "custom_attributes": ["aztec(public)"], "abi": { "error_types": {}, "param_witnesses": { "fee_limit": [{ "end": 41, "start": 40 }], "inputs": [{ "end": 40, "start": 0 }] }, "parameters": [{ "name": "inputs", "type": { "fields": [{ "name": "call_context", "type": { "fields": [{ "name": "msg_sender", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "storage_contract_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "function_selector", "type": { "fields": [{ "name": "inner", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector" } }, { "name": "is_delegate_call", "type": { "kind": "boolean" } }, { "name": "is_static_call", "type": { "kind": "boolean" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "historical_header", "type": { "fields": [{ "name": "last_archive", "type": { "fields": [{ "name": "root", "type": { "kind": "field" } }, { "name": "next_available_leaf_index", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot" } }, { "name": "content_commitment", "type": { "fields": [{ "name": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "name": "public_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": "start_side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }, { "name": "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": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "aztec::context::inputs::public_context_inputs::PublicContextInputs" }, "visibility": "private" }, { "name": "fee_limit", "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" } }, { "name": "side_effect_counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::call_context::CallContext" } }, { "name": "args_hash", "type": { "kind": "field" } }, { "name": "returns_hash", "type": { "kind": "field" } }, { "name": "nullifier_read_requests", "type": { "kind": "array", "length": 2, "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_non_existent_read_requests", "type": { "kind": "array", "length": 2, "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": "contract_storage_update_requests", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "new_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_update_request::StorageUpdateRequest" } } }, { "name": "contract_storage_reads", "type": { "kind": "array", "length": 16, "type": { "fields": [{ "name": "storage_slot", "type": { "kind": "field" } }, { "name": "current_value", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::contrakt::storage_read::StorageRead" } } }, { "name": "public_call_stack_hashes", "type": { "kind": "array", "length": 16, "type": { "kind": "field" } } }, { "name": "new_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": "new_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": "new_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": "unencrypted_logs_hashes", "type": { "kind": "array", "length": 4, "type": { "fields": [{ "name": "value", "type": { "kind": "field" } }, { "name": "counter", "type": { "kind": "integer", "sign": "unsigned", "width": 32 } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::side_effect::SideEffect" } } }, { "name": "unencrypted_log_preimages_length", "type": { "kind": "field" } }, { "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": "tx_tree_height", "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" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::header::Header" } }, { "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": "prover_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "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" } }, { "name": "transaction_fee", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::abis::public_circuit_public_inputs::PublicCircuitPublicInputs" }, "visibility": "public" }, "return_witnesses": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270] }, "bytecode": "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", "debug_symbols": "5b3dziTJdV59LzwWPuSO/Rdbt/LBMGhbNggIlGHRBgxB9+6mPW/PCPNSzajpergCfcS/yoooRubKZvRawX/53X/5h//0P//bf/zDH//rP/3z7/7+//+X3/3jP/3n3//pD//0xy//6l9+9/x/y/3//tv//N9//8c//zv//Kff/48//e7vn7/73T/88b98+cd//bvf/dc//OM//O7vV6x//Q9/93+viOMr8viKOr6ij6/Yx1fMX3/F3/3qc95lP33Ue8/XT0/99PXxvPfr7b1fv9779f7er4/3fn2+9+vrvV/f7/36/d6vf+9Tm+99avO9T22+96nN9z61+d6nNt/71OZ7n9p871Ob731q87c9tbnz4+vr6V9+/a8/HF8esp8+/OWfrl/PpR7QXAw0lwWai4PmEqC5JGguBZpLg+ayQXMBcbdB3G0QdxvE3QZxt0HcbRB3G8TdBnG3QdxtEHc3iLsbxN0N4u4GcXeDuLtB3N0g7m4QdzeIuxvE3QFxd0DcHRB3B8TdAXF3QNwdEHcHxN0BcXc43PWHw11/ONz1h8Ndfzjc9YfDXX843PWHw11/ONz1h8Ndf0DcNRB3DcRdA3HXQNw1EHcNxF0DcddA3DUQdw3E3QXi7gJxd4G4u0DcXSDuLhB3F4i7C8TdBeLuAnHXQdx1EHcdxF0HcddB3HUQdx3EXQdx10HcdRB3A8TdAHE3QNwNEHcDxN0AcTdA3A0QdwPE3QBxN0HcTRB3E8TdBHE3QdxNEHcTxN0EcTdB3AX1ag7q1RzUqzmoV3NQr+agXs1BvZqDejUH9WoO6tUc1Ks5qFdzUK/moF7NQb2ag3o1B/VqDurVHNSrOahXc1Cv5qBezUG9moN6NQf1ag7q1RzUqzmoV3NQr+agXs1BvZqDejUH9WoO6tUc1Ks5qFdzUK/moF7NQb2ag3o1B/VqAerVAtSrBahXC1CvFg+HuwHq1QLUqwWoVwtQrxagXi1AvVqAerUA9WoB6tUC1KsFqFcLUK8WoF4tQL1agHq1APVqAerVAtSrBahXC1CvFqBeLUC9WoB6tQD1agHq1QLUqwWoVwtQrxagXi1AvVqAerUA9WoB6tUC1KsFqFcLUK8WoF4tQL1agHq1APVqAerVAtSrBahXC1CvFqBeLUC9WoB6tQD1agHq1QLUqwWoVwtQrxagXi1AvVqAerUA9WoB6tUC1KsFqFcLUK8WoF4tQL1agHq1APVqAerVAtSrBahXC1CvFqBeLUC9WoB6tQD1agHq1QLUqwWoVwtQrxagXi1AvVqAerUA9WoB6tUC1KsFqFcLUK8WoF4tQL1agHq1APVqAerVAtSrBahXC1CvFqBeLUC9WoB6tQT1agnq1RLUqyWoV8uHw90E9WoJ6tUS1KslqFdLUK+WoF4tQb1agnq1BPVqCerVEtSrJahXS1CvlqBeLUG9WoJ6tQT1agnq1RLUqyWoV0tQr5agXi1BvVqCerVU9mpu+2MubvPruSh7tW/OxUBzWaC5OGguAZpLguZSoLk0aC4bNBcQdwPE3QBxN0DcDRB3A8TdAHE3QNwNEHcDxN0AcTdB3E0QdxPE3QRxN0HcTRB3E8TdBHE3QdxNEHcLxN0CcbdA3C0QdwvE3QJxt0DcLRB3C8TdAnG3QdxtEHcbxN0GcbdB3G0QdxvE3QZxt0HcbRB3N4i7G8TdDeLuBnF3g7i7QdzdIO5uEHc3iLsbxN0BcXdA3B0QdwfE3QFxd0DcHRB3B8TdAXF3ONyth8PdejjcrYfD3Xo43K2Hw916ONyth8PdejjcrYfD3XpA3DUQdw3EXQNx10DcNRB3DcRdA3HXQNw1EHcNxN0F4u4CcXeBuLtA3F0g7i4QdxeIuwvE3QXiLqhXK1CvVqBerUC9WoF6tQL1agXq1QrUqxWoVytQr1agXq1AvVqBerUC9WoF6tUK1KsVqFcrUK9WoF6tQL1agXq1AvVqBerVCtSrFahXK1CvVqBerUC9WoF6tQL1agXq1QrUqxWoVytQr1agXq1AvVqBerUC9WoF6tUK1KsVqFcrUK9WoF6tQL1agXq1AvVqBerVCtSrFahXK1CvVqBerUC9WoF6tQL1agXq1QrUqxWoVytQr1agXq1AvVqBerUC9WoF6tUK1KsVqFcrUK9WoF6tQL1agXq1AvVqBerVGtSrNahXa1Cv1qBerR8OdxvUqzWoV2tQr9agXq1BvVqDerUG9WoN6tUa1Ks1qFdrUK/WoF6tQb1ag3q1BvVqDerVGtSrNahXa1Cv1qBerUG9WoN6tQb1ag3q1RrUqzWoV2tQr9agXq1BvVqDerUG9WoN6tUa1Ks1qFdrUK/WoF6tQb1ag3q1BvVqDerVGtSrNahXa1Cv1qBerUG9WoN6tQb1ag3q1RrUqzWoV2tQr9agXq1BvVqDerUG9WoN6tUa1Ks1qFdrUK/WoF6tQb1ag3q1BvVqDerVGtSrNahXa1Cv1qBerUG9WoN6tQb1ag3q1RrUqzWoV2tQr9agXq1BvVqDerUG9WoN6tUa1Ks1qFdrUK/WoF6tQb1ag3q1BvVqDerVGtSrNahXa1Cv1qBerUG9Wkt7ta8f/vJP65O5DGYuW9qrfWsuBpqLkLvh/jGX8PhkLg6aS4DmkqC5FGguQr5E1te51CfPkbLL+uZchM/RrPmYy/jzyVyEz9FUf53L9CdzSdBcNmguw5mLsrP55lwMNJcFmouD5gLiywLxRdnZfHMuDZoLiLvCziaf+HhPp1l948OTHx+uZ/nP83j8p5kLq5zvPXO7duaLMPOf5uLCudj6mMsTn80lQHNJ0FwKNJcGzWWD5jKcucQDmouB5rJAcwFxN0DcDRB3A8TdAHE3QNwNEHcTxN0EcTdB3E0QdxPE3QRxN0HcTRB3E8TdBHG3QNwtEHcLxN0CcbdA3C0QdwvE3QKxrkCsaxDrGsS6BrFOWNmkeX3d353fvDMtbHK+98zz2pkfkO6nK+b0ipNG5Kcr7PiKdXyFH18Rx1fk8RV1fEUfX3G85vt4zed4zed4zed4zed4zed4zed4zed4zed4zed4zed0zed5jq+w4yvW8RV+fEUcX5HHV9TxFX18xT6+4njN7XjN7XjN7XjN7XjN7XjN7XjN7XjN7XjN7XjN7XjN1/Gar+M1X8drvo7XfB2v+Tpe83W85ut4zdfxmq/jNffjNffjNffjNffjNffjNffjNffjNffjNffjNffjNY/jNY/jNY/jNY/jNY/jNY/jNY/jNY/jNY/jNY/jNc/jNc/jNc/jNc/jNc/jNc/jNc/jNc/jNc/jNc/jNa/jNa/jNa/jNa/jNa/jNa/jNa/jNa/jNa/jNa/jNe/jNe/jNe/jNe/jNe/jNe/jNe/jNe/jNT/eh5vjfbg53oeb4324Od6Hm+N9uDneh5vjfbg53oeb4324Od6Hm+N9uDneh5vjfbg53oeb4324Od6Hm+N9uDneh5vjfbg53oeb4304e4434r5cYueXrPNL/PySOL8kzy+p80v6/JJ9fsn56tv56tv56tv56tv56tv56tv56tv56tv56tv56tv56q/z1V/nq7/OV3+dr/46X/11vvrrfPXX+eqv89Vf56vv56vv56vv56vv56vv56vv56vv56vv56vv56vv56sf56sf56sf56sf56sf56sf56sf56sf56sf56sf56uf56uf56uf56uf56uf56uf56uf56uf56uf56uf56tf56tf56tf56tf56tf56tf56tf56tf56tf56tf56vf56vf56vf56vf56vf56vf56vf56vf56vf56vf56u/z1d/n6/+Pl/9fb76+3z19/nq7/PV3+erv89Xf5+v/pyv/pyv/pyv/pyv/pyv/pyv/pyv/pyv/pyv/vlen53v9dn5Xp+d7/XZ+V7flz/1nl+S55fU+SV9fsk+v+R89c/3+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvz873+ux8r8/O9/rsfK/Pzvf67Hyvb53v9a3zvb51vte3zvf61vle3zrf61vne33rfK9vne/1rfO9vnW+17dO9vp+fXrEno9zx8fs62ftz/93Ub/67OqPz/rz8/d6fp3JwszEMTMJzEwSM5PCzKQxM9mYmQxlJr/t/9/lu84Ew9iFYezCMHZhGLswjF0Yxi4MYxeGsQvDWMcw1jGMdQxjHcNYxzDWMYx1DGMdw1jHMNYxjA0MYwPD2MAwNjCMDQxjA8PYwDA2MIwNDGMDw9jEMDYxjE0MYxPD2MQwNjGMTQxjE8PYxDA2MYwtDGMLw9jCMLYwjC0MYwvD2MIwtjCMLQxjC8PYxjC2MYxtDGMbw9jGMLYxjG0MYxvD2MYwtjGM3RjGbgxjN4axG8PYjWHsxjB2Yxi7MYzdGMZuDGMHw9jBMHYwjB0MYwfD2MEwdjCMHQxjB8PYoTDWHwpj/aEw1h8KY/2hMNYfCmP9oTDWHwpj/aEw1h8KY/3BMNYwjMV0Xo7pvBzTeTmm83JM5+WYzssxnZdjOi/HdF6O6bwc03k5pvNyTOflmM7LMZ2XYzovx3Rejum8HNN5Oabzckzn5ZjOyzGdl2M6L8d0Xo7pvBzTeTmm83JM5+WYzssxnZdjOi/HdF6O6bwc03k5pvNyTOflmM7LMZ2XYzovx3Rejum8HNN5Oabzckzn5ZjOyzGdl2M6L8d0Xo7pvBzTeTmm83JM5+WYzssxnZdjOi/HdF6O6bwc03k5pvNyTOflmM7LMZ2XYzovx3Rejum8HNN5Oabzckzn5ZjOyzGdl2M6L8d0Xo7pvBzTeTmm83JM5+WYzssxnZdjOi/HdF6O6bwc03k5pvNyTOflmM7LMZ2XYzovx3Regem8AtN5BabzCkznFQ+FsYHpvALTeQWm8wpM5xWYziswnVdgOq/AdF6B6bwC03kFpvMKTOcVmM4rMJ1XYDqvwHRegem8AtN5BabzCkznFZjOKzCdV2A6r8B0XoHpvALTeQWm8wpM5xWYziswnVdgOq/AdF6B6bwC03kFpvMKTOcVmM4rMJ1XYDqvwHRegem8AtN5BabzCkznFZjOKzCdV2A6r8B0XoHpvALTeQWm8wpM5xWYziswnVdgOq/AdF6B6bwC03kFpvMKTOcVmM4rMJ1XYDqvwHRegem8AtN5BabzCkznFZjOKzCdV2A6r8B0XoHpvALTeQWm8wpM5xWYziswnVdgOq/AdF6B6bwC03kFpvMKTOcVmM4rMJ1XYDqvwHRegem8AtN5BabzCkznFZjOKzCdV2A6r8R0XonpvBLTeSWm88qHwtjEdF6J6bwS03klpvNKTOeVmM4rMZ1XYjqvxHReiem8EtN5JabzSkznlZjOKzGdV2I6r8R0XonpvBLTeSWm80pM55WYzisxnVdiOq/EdF6J6bwS03klpvNKTOeVmM4rMZ1XYjqvxHReiem8EtN5JabzSkznlZjOKzGdV2I6r8R0XonpvBLTeSWm80pM55WYzisxnVdiOq/EdF6J6bwS03klpvNKTOeVmM4rMZ1XYjqvxHReiem8EtN5JabzSkznlZjOKzGdV2I6r8R0XonpvBLTeSWm80pM55WYzisxnVdiOq/EdF6J6bwS03klpvNKTOeVmM4rf1vnNbY/ZuLrt84kMDNJzEwKM5PGzGRjZjKUmfy2zuu7zuQ3MdbW8/H1tvpntk1/9uHnMfv49PNkfP14789mvuLju5f/4rvX4598Oifnp0/Xs/zffPrjp64f56f6j/NT48f5qfnj/NT6cX5q/zg/df84P3V+lJ9avy2ovOun/jB/Wqrnh/nTUj0/zJ+W6okf56f+MH9aqueH+dNSPdI/LVV8/an25C9/6sd03vUnmo/vn/d+vz1v/n578/evN3+/v/n7483fn2/+/nrz9/ebv//Nz6+9+fldb35+15uf3/Xm53e9+fldb35+15uf3/Xm53e9+fldb35+15ufX3/z8+tvfn79zc+vv/n59Tc/v/7m59ff/Pz6m59ff/Pz629+fuPNz2+8+fmNNz+/8ebnN978/Mabn9948/Mbb35+483Pb7z5+c03P7/55uc33/z85puf33zz85tvfn7zzc9vvvn5zTc/v/nm57fe/PzWm5/fevPzW29+fuvNz2+9+fmtNz+/9ebnt978/Nabn99+8/Pbb35++83Pb7/5+e03P7/95ue33/z89puf337z89tvfn73m5/f/ebnd7/5+d1vfn73m5/f/ebnd7/5+d1vfn73m5/f/ebnd978/M6bn9958/M7b35+583P77z5+Z03P7/z5ud33vz8znuf336eN3+/vfn715u/39/8/fHm7883f3+9+fv7zd+/3/z9b35+3+xf9ef+1Z//d+vHdV8e8W+M4v7V+HP3/vrp+Ezh6/xo03p+dgPX+jqhRZuQ0yYUtAklbUL1PSaU9XVCFb+c0McoLRllf49Rxr+OMvPZKPNdRvn4tMezPxnlcxntu4/yOdL6axRrnfONUcY+/gub+lkztmWfQnatnyH7fOPT31aY+3Pn7aYf4Lf/gLj9B+TtP6Bu/wF9+w/Yt/+AufwHfO5+3vQDbn8T++1vYr/9Tey3v4n99jexf4c3sT3+9dPP5Dcm9dfubnz5y92Puc8v/2v5eep979T3vVOfa6cez71Tt3unvu6dut879bh36nnv1O99m8a9b9O4920a975N8963ad77Ns1736Z579s0732b5r1v07z3bZr3vk3z3rdp3vs2rXvfpnXv27TufZvWvW/TuvdtWve+Tevet2nd+zate9+mde/btO99m/a9b9O+923a975N+963ad/7Nu1736Z979u0732b9r1v033v23Tf+zbd975N971v033v23Tf+zbd975N971v033v23Tf+zade9+mc+/bdO59m869b9O59206975N59636dz7Np1736Zz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz7dt0P9e+Tfdz79vU7n2b2r1vU7v3bWr3vk3t3rep3fs2tXvfpnbv29TufZvavW/Tde/bdN37Nl33vk3XvW/T73Gm0t9q6ve+Tde9b9N179t03fs2Xfe+Tf3et6nf+zb1e9+mfu/b9Huci/S3mvq9b9N7z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIe17z0La956FtO89C2nfexbSvvcspH3vWUj73rOQ9r1nIc29ZyHNvWchzb1nIc29ZyHNc+3bdO49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2nuPQtp7j0Lae49C2muPQtpPdeehfRl6re+Tb9M/da36Zep3/o2/TL1W9+mX6Z+69v0y9RvfZt+mfqtb9MvU7/1bfpl6ve+Ta89C+nL1O99m157FtKXqd/7Nr32LKQvU7/3bXrtWUhfpn7v2/Tas5C+TP3bb9Oqb03dLD8+bVH/Zphff9p7/fThsF9M6emPKf0VZxzJp2S8KS3elJw3peBNKXlTKt6UmjelzZsSj97Oo7fz6O08ejuP3s6jt/Po7Tx6O4/ezqO38+gdPHoHj97Bo3fw6B08egeP3sGjd/DoHTx6B4/eyaN38uidPHonj97Jo3fy6J08eieP3smjd/LoXTx6F4/exaN38ehdPHoXj97Fo3fx6F08eheP3s2jd/Po3Tx6N4/ezaN38+jdPHo3j97No3fz6L159N48em8evTeP3ptH782j9+bRe/PovXn03jx6D4/ew6P38Og9PHoPj97Do/fw6D08eg+P3oOjtz04etuDo7c9OHrbg6O3PTh624Ojtz04etuDo7c9OHrbw6O38ehtPHobj97Go7fx6G08ehuP3sajt/HozWstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLY3XWhqvtTRea2m81tJ4raXxWkvjtZbGay2N11oar7U0XmtpvNbSeK2l8VpL47WWxmstjddaGq+1NF5rabzW0nitpfFaS+O1lsZrLRevtVy81nLxWsvFay3Xg6P34rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXitZaL11ouXmu5eK3l4rWWi9daLl5ruXit5eK1lovXWi5ea7l4reXi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d9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO6gadxB07iDpnEHTeMOmsYdNI07aBp30DTuoGncQdO4g6ZxB03jDprGHTSNO2gad9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO6gadxB07iDpnEHTeMOmsYdNI07aBp30DTuoGncQdO4g6ZxB03jDprGHTSNO2gad9A07qBp3EHTuIOmcQdN4w6axh00jTtoGnfQNO7g0riDS+MOLo07uDTu4HpCM0xqhinNMK0ZZmuG0VBA4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo07uDTu4NK4g0vjDi6NO7g07uDSuINL4w4ujTu4NO7g0riDS+MOLo076Bp30DXuoGvcQde4g/6EZpjUDFOaYVozzNYMo6GAxh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNO+gad9A17qBr3EHXuIOucQdd4w66xh10jTvoGnfQNe6ga9xB17iDrnEHXeMOusYddI076Bp30DXuoGvcQde4g65xB13jDrrGHXSNOxgadzA07mBo3MHQuIPxhGaY1AxTmmFaM8zWDKOhgMYdDI07GBp3MDTuYGjcwdC4g6FxB0PjDobGHQyNOxgadzA07mBo3MHQuIOhcQdD4w6Gxh0MjTsYGncw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" }], "outputs": { "globals": { "storage": [{ "fields": [{ "name": "balances", "value": { "fields": [{ "name": "slot", "value": { "kind": "integer", "sign": false, "value": "1" } }, { "name": "typ", "value": { "kind": "string", "value": "Map<AztecAddress, PublicMutable<U128>>" } }], "kind": "struct" } }, { "name": "portal_address", "value": { "fields": [{ "name": "slot", "value": { "kind": "integer", "sign": false, "value": "2" } }, { "name": "typ", "value": { "kind": "string", "value": "SharedImmutable<EthAddress>" } }], "kind": "struct" } }], "kind": "struct" }] }, "structs": { "functions": [{ "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "fee_limit", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::pay_fee_parameters" } }, { "name": "return_type", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::pay_fee_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "amount", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::mint_public_parameters" } }], "kind": "struct", "path": "GasToken::mint_public_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "fee_limit", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::check_balance_parameters" } }], "kind": "struct", "path": "GasToken::check_balance_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "to", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress" } }, { "name": "amount", "type": { "kind": "field" } }, { "name": "secret", "type": { "kind": "field" } }, { "name": "leaf_index", "type": { "kind": "field" } }], "kind": "struct", "path": "GasToken::claim_public_parameters" } }], "kind": "struct", "path": "GasToken::claim_public_abi" }, { "fields": [{ "name": "parameters", "type": { "fields": [{ "name": "portal_address", "type": { "fields": [{ "name": "inner", "type": { "kind": "field" } }], "kind": "struct", "path": "authwit::aztec::protocol_types::address::eth_address::EthAddress" } }], "kind": "struct", "path": "GasToken::constructor_parameters" } }], "kind": "struct", "path": "GasToken::constructor_abi" }] } }, "file_map": { "103": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr", "source": "#[oracle(packReturns)]\nfn pack_returns_oracle<N>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nfn unpack_returns_oracle<N>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<N>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n" }, "107": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr", "source": "use dep::protocol_types::traits::{Deserialize, Serialize};\n\n#[oracle(storageRead)]\nfn storage_read_oracle<N>(_storage_slot: Field, _number_of_elements: Field) -> [Field; N] {}\n\nunconstrained fn storage_read_oracle_wrapper<N>(_storage_slot: Field) -> [Field; N] {\n storage_read_oracle(_storage_slot, N)\n}\n\npub fn storage_read<N>(storage_slot: Field) -> [Field; N] {\n storage_read_oracle_wrapper(storage_slot)\n}\n\n#[oracle(storageWrite)]\nfn storage_write_oracle<N>(_storage_slot: Field, _values: [Field; N]) -> [Field; N] {}\n\nunconstrained pub fn storage_write<N>(storage_slot: Field, fields: [Field; N]) {\n let _hash = storage_write_oracle(storage_slot, fields);\n}\n" }, "114": { "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)]\nfn 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)]\nfn 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 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" }, "118": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_l1_to_l2_membership_witness.nr", "source": "use dep::protocol_types::{address::AztecAddress};\n\nglobal L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH: u64 = 17;\n\n// Obtains membership witness (index and sibling path) for a message in the L1 to L2 message tree.\n#[oracle(getL1ToL2MembershipWitness)]\nfn get_l1_to_l2_membership_witness_oracle(\n _contract_address: AztecAddress,\n _message_hash: Field,\n _secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {}\n\nunconstrained pub fn get_l1_to_l2_membership_witness(\n contract_address: AztecAddress,\n message_hash: Field,\n secret: Field\n) -> [Field; L1_TO_L2_MESSAGE_ORACLE_CALL_LENGTH] {\n get_l1_to_l2_membership_witness_oracle(contract_address, message_hash, secret)\n}\n" }, "119": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context.nr", "source": "mod globals;\nmod inputs;\n\nmod private_context;\nmod public_context;\nmod avm_context;\nmod interface;\nmod gas;\n\nuse interface::{\n ContextInterface, PrivateCallInterface, PublicCallInterface, PrivateVoidCallInterface,\n PublicVoidCallInterface, AvmCallInterface, AvmVoidCallInterface\n};\nuse private_context::PrivateContext;\nuse private_context::PackedReturns;\nuse public_context::PublicContext;\nuse public_context::FunctionReturns;\nuse avm_context::AvmContext;\n\nstruct Context {\n private: Option<&mut PrivateContext>,\n public: Option<&mut PublicContext>,\n avm: Option<&mut AvmContext>,\n}\n\nimpl Context {\n pub fn private(context: &mut PrivateContext) -> Context {\n Context { private: Option::some(context), public: Option::none(), avm: Option::none() }\n }\n\n pub fn public(context: &mut PublicContext) -> Context {\n Context { public: Option::some(context), private: Option::none(), avm: Option::none() }\n }\n\n pub fn avm(context: &mut AvmContext) -> Context {\n Context { avm: Option::some(context), public: Option::none(), private: Option::none() }\n }\n\n pub fn none() -> Context {\n Context { public: Option::none(), private: Option::none(), avm: Option::none() }\n }\n}\n" }, "121": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr", "source": "use crate::context::{PrivateContext, PublicContext, Context};\nuse dep::protocol_types::{hash::pedersen_hash, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T> Storage<T> for Map<K, T> {}\n\nimpl<K, V> Map<K, V> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n\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" }, "123": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr", "source": "use crate::context::Context;\nuse crate::oracle::storage::storage_read;\nuse crate::oracle::storage::storage_write;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T> Storage<T> for PublicMutable<T> {}\n\nimpl<T> PublicMutable<T> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n\n // docs:start:public_mutable_struct_read\n pub fn read<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable reads only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"PublicMutable writes only supported in public functions\");\n let fields = T::serialize(value);\n storage_write(self.storage_slot, fields);\n }\n // docs:end:public_mutable_struct_write\n}\n" }, "126": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/shared_immutable.nr", "source": "use crate::{\n context::Context, history::public_storage::public_storage_historical_read,\n oracle::{storage::{storage_read, storage_write}}, state_vars::storage::Storage\n};\nuse dep::protocol_types::{constants::INITIALIZATION_SLOT_SEPARATOR, traits::{Deserialize, Serialize}};\n\n// Just like PublicImmutable but with the ability to read from private functions.\nstruct SharedImmutable<T>{\n context: Context,\n storage_slot: Field,\n}\n\nimpl<T> Storage<T> for SharedImmutable<T> {}\n\nimpl<T> SharedImmutable<T> {\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n\n // Intended to be only called once. \n pub fn initialize<T_SERIALIZED_LEN>(self, value: T) where T: Serialize<T_SERIALIZED_LEN> {\n assert(\n self.context.private.is_none(), \"SharedImmutable can only be initialized from public functions\"\n );\n // TODO(#4738): Uncomment the following assert\n // assert(\n // self.context.public.unwrap_unchecked().is_deployment(), \"SharedImmutable can only be initialized during contract deployment\"\n // );\n\n // We check that the struct is not yet initialized by checking if the initialization slot is 0\n let initialization_slot = INITIALIZATION_SLOT_SEPARATOR + self.storage_slot;\n let fields_read: [Field; 1] = storage_read(initialization_slot);\n assert(fields_read[0] == 0, \"SharedImmutable already initialized\");\n\n // We populate the initialization slot with a non-zero value to indicate that the struct is initialized\n storage_write(initialization_slot, [0xdead]);\n\n let fields_write = T::serialize(value);\n storage_write(self.storage_slot, fields_write);\n }\n\n pub fn read_public<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.private.is_none(), \"Public read only supported in public functions\");\n let fields = storage_read(self.storage_slot);\n T::deserialize(fields)\n }\n\n pub fn read_private<T_SERIALIZED_LEN>(self) -> T where T: Deserialize<T_SERIALIZED_LEN> {\n assert(self.context.public.is_none(), \"Private read only supported in private functions\");\n let private_context = self.context.private.unwrap();\n\n let mut fields = [0; T_SERIALIZED_LEN];\n\n for i in 0..fields.len() {\n fields[i] =\n public_storage_historical_read(\n (*private_context),\n self.storage_slot + i as Field,\n (*private_context).this_address()\n );\n }\n T::deserialize(fields)\n }\n}\n" }, "158": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_selector.nr", "source": "use crate::utils::field::field_from_bytes;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Serialize, Deserialize, FromField, ToField, Empty};\n\nglobal SELECTOR_SIZE = 4;\n\nstruct FunctionSelector {\n // 1st 4-bytes of abi-encoding of function.\n inner: u32,\n}\n\nimpl Eq for FunctionSelector {\n fn eq(self, function_selector: FunctionSelector) -> bool {\n function_selector.inner == self.inner\n }\n}\n\nimpl Serialize<1> for FunctionSelector {\n fn serialize(self: Self) -> [Field; 1] {\n [self.inner as Field]\n }\n}\n\nimpl Deserialize<1> for FunctionSelector {\n fn deserialize(fields: [Field; 1]) -> Self {\n Self {\n inner: fields[0] as u32\n }\n }\n}\n\nimpl FromField for FunctionSelector {\n fn from_field(field: Field) -> Self {\n Self { inner: field as u32 }\n }\n}\n\nimpl ToField for FunctionSelector {\n fn to_field(self) -> Field {\n self.inner as Field\n }\n}\n\nimpl Empty for FunctionSelector {\n fn empty() -> Self {\n Self { inner: 0 as u32 }\n }\n}\n\nimpl FunctionSelector {\n pub fn from_u32(value: u32) -> Self {\n Self { inner: value }\n }\n\n pub fn from_signature<N>(signature: str<N>) -> Self {\n let bytes = signature.as_bytes();\n let hash = dep::std::hash::keccak256(bytes, bytes.len() as u32);\n\n let mut selector_be_bytes = [0; SELECTOR_SIZE];\n for i in 0..SELECTOR_SIZE {\n selector_be_bytes[i] = hash[i];\n }\n\n FunctionSelector::from_field(field_from_bytes(selector_be_bytes, true))\n }\n\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n}\n" }, "186": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr", "source": "// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, N, M>(src: [T; N], mut dst: [T; M], offset: u64) -> [T; M] {\n for i in 0..dst.len() {\n dst[i] = src[i + offset];\n }\n dst\n}\n" }, "194": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr", "source": "use crate::traits::{Serialize, Deserialize};\n\nglobal BOOL_SERIALIZED_LEN: Field = 1;\nglobal U8_SERIALIZED_LEN: Field = 1;\nglobal U32_SERIALIZED_LEN: Field = 1;\nglobal U64_SERIALIZED_LEN: Field = 1;\nglobal U128_SERIALIZED_LEN: Field = 1;\nglobal FIELD_SERIALIZED_LEN: Field = 1;\n\nimpl Serialize<BOOL_SERIALIZED_LEN> for bool {\n fn serialize(self) -> [Field; BOOL_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<BOOL_SERIALIZED_LEN> for bool {\n fn deserialize(fields: [Field; BOOL_SERIALIZED_LEN]) -> bool {\n fields[0] as bool\n }\n}\n\nimpl Serialize<U8_SERIALIZED_LEN> for u8 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U8_SERIALIZED_LEN> for u8 {\n fn deserialize(fields: [Field; U8_SERIALIZED_LEN]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize<U32_SERIALIZED_LEN> for u32 {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U32_SERIALIZED_LEN> for u32 {\n fn deserialize(fields: [Field; U32_SERIALIZED_LEN]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize<U64_SERIALIZED_LEN> for u64 {\n fn serialize(self) -> [Field; U64_SERIALIZED_LEN] {\n [self as Field]\n }\n}\n\nimpl Deserialize<U64_SERIALIZED_LEN> for u64 {\n fn deserialize(fields: [Field; U64_SERIALIZED_LEN]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize<U128_SERIALIZED_LEN> for U128 {\n fn serialize(self) -> [Field; 1] {\n [self.to_integer()]\n }\n\n}\n\nimpl Deserialize<U128_SERIALIZED_LEN> for U128 {\n fn deserialize(fields: [Field; U128_SERIALIZED_LEN]) -> Self {\n U128::from_integer(fields[0])\n }\n}\n\nimpl Serialize<FIELD_SERIALIZED_LEN> for Field {\n fn serialize(self) -> [Field; U32_SERIALIZED_LEN] {\n [self]\n }\n}\n\nimpl Deserialize<FIELD_SERIALIZED_LEN> for Field {\n fn deserialize(fields: [Field; FIELD_SERIALIZED_LEN]) -> Self {\n fields[0]\n }\n}\n" }, "195": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr", "source": "use dep::std::cmp::Eq;\nuse 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, N>(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<N> 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<N> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<N> 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<N> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n" }, "203": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr", "source": "use crate::address::{AztecAddress, EthAddress};\nuse crate::recursion::verification_key::VerificationKey;\nuse crate::abis::function_selector::FunctionSelector;\nuse crate::abis::contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage;\nuse crate::contract_class_id::ContractClassId;\nuse crate::abis::side_effect::SideEffect;\nuse crate::traits::is_empty;\nuse crate::utils::{uint256::U256, field::field_from_bytes_32_trunc};\nuse crate::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\n};\nuse crate::traits::Hash;\nuse crate::messaging::l2_to_l1_message::L2ToL1Message;\nuse crate::merkle_tree::root::root_from_sibling_path;\nuse dep::std::hash::{pedersen_hash_with_separator, sha256};\n\npub fn sha256_to_field<N>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, note_hash_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n note_hash_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\n}\n\npub fn silo_note_hash(address: AztecAddress, unique_note_hash: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\npub fn silo_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\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 rollup_version_id: Field,\n chain_id: Field,\n message: L2ToL1Message\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [\n contract_address.to_field(), rollup_version_id, message.recipient.to_field(), chain_id, message.content\n ];\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\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: [SideEffect; 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 pedersen_hash<N>(inputs: [Field; N], hash_index: u32) -> Field {\n dep::std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<N>(inputs: [Field; N]) -> Field {\n dep::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), 0, 0, L2ToL1Message::empty());\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let message = L2ToL1Message { recipient: EthAddress::from_field(3), content: 5, counter: 1234 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n" }, "208": { "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" }, "22": { "path": "std/field.nr", "source": "mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub fn modulus_le_bytes() -> [u8] {}\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n" }, "224": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr", "source": "pub fn field_from_bytes<N>(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" }, "238": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/eth_address.nr", "source": "use crate::{\n constants::ETH_ADDRESS_LENGTH, hash::pedersen_hash,\n traits::{Empty, ToField, Serialize, Deserialize}, utils\n};\n\nstruct EthAddress{\n inner : Field\n}\n\nimpl Eq for EthAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for EthAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for EthAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn serialize(self: Self) -> [Field; ETH_ADDRESS_LENGTH] {\n [self.inner]\n }\n}\n\nimpl Deserialize<ETH_ADDRESS_LENGTH> for EthAddress {\n fn deserialize(fields: [Field; ETH_ADDRESS_LENGTH]) -> Self {\n EthAddress::from_field(fields[0])\n }\n}\n\nimpl EthAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn from_field(field: Field) -> Self {\n field.assert_max_bit_size(160);\n Self { inner: field }\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n" }, "239": { "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr", "source": "use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash, grumpkin_point::GrumpkinPoint,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash([pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1])\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x1b6ead051e7b42665064ca6cf1ec77da0a36d86e00d1ff6e44077966c0c3a9fa;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n" }, "240": { "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" }, "241": { "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" }, "242": { "path": "/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/main.nr", "source": "mod lib;\n\ncontract GasToken {\n use dep::aztec::protocol_types::{abis::function_selector::FunctionSelector, address::{AztecAddress, EthAddress}};\n use dep::aztec::state_vars::{SharedImmutable, PublicMutable, Map};\n\n use crate::lib::{calculate_fee, get_bridge_gas_msg_hash};\n\n #[aztec(storage)]\n struct Storage {\n balances: Map<AztecAddress, PublicMutable<U128>>,\n portal_address: SharedImmutable<EthAddress>,\n }\n\n #[aztec(public)]\n #[aztec(initializer)]\n fn constructor(portal_address: EthAddress) {\n storage.portal_address.initialize(portal_address);\n }\n\n #[aztec(public)]\n fn claim_public(to: AztecAddress, amount: Field, secret: Field, leaf_index: Field) {\n let content_hash = get_bridge_gas_msg_hash(to, amount);\n\n // Consume message and emit nullifier\n context.consume_l1_to_l2_message(\n content_hash,\n secret,\n storage.portal_address.read_public(),\n leaf_index\n );\n\n let new_balance = storage.balances.at(to).read() + U128::from_integer(amount);\n storage.balances.at(to).write(new_balance);\n }\n\n // TODO(@just-mitch): remove this function before mainnet deployment\n // convenience function for testing\n // the true canonical gas token contract will not have this function\n #[aztec(public)]\n fn mint_public(to: AztecAddress, amount: Field) {\n let amount = U128::from_integer(amount);\n let new_balance = storage.balances.at(to).read().add(amount);\n\n storage.balances.at(to).write(new_balance);\n }\n\n #[aztec(public)]\n fn check_balance(fee_limit: Field) {\n let fee_limit = U128::from_integer(fee_limit);\n assert(storage.balances.at(context.msg_sender()).read() >= fee_limit, \"Balance too low\");\n }\n\n #[aztec(public)]\n fn pay_fee(fee_limit: Field) -> Field {\n let fee_limit_u128 = U128::from_integer(fee_limit);\n let fee = U128::from_integer(calculate_fee(context));\n // TODO(6252): implement debug logging in AVM\n //dep::aztec::oracle::debug_log::debug_log_format(\n // \"Gas token: paying fee {0} (limit {1})\",\n // [fee.to_field(), fee_limit]\n //);\n assert(fee <= fee_limit_u128, \"Fee too high\");\n\n let sender_new_balance = storage.balances.at(context.msg_sender()).read() - fee;\n storage.balances.at(context.msg_sender()).write(sender_new_balance);\n\n let rebate = fee_limit_u128 - fee;\n rebate.to_field()\n }\n\n // utility function for testing\n unconstrained fn balance_of_public(owner: AztecAddress) -> pub Field {\n storage.balances.at(owner).read().to_field()\n }\n}\n" }, "243": { "path": "/usr/src/noir-projects/noir-contracts/contracts/gas_token_contract/src/lib.nr", "source": "use dep::aztec::prelude::{AztecAddress, EthAddress};\nuse dep::aztec::context::interface::PublicContextInterface;\nuse dep::aztec::protocol_types::hash::sha256_to_field;\n\npub fn calculate_fee<TPublicContext>(context: TPublicContext) -> Field where TPublicContext: PublicContextInterface {\n context.transaction_fee()\n}\n\npub fn get_bridge_gas_msg_hash(owner: AztecAddress, amount: Field) -> Field {\n let mut hash_bytes = [0; 68];\n let recipient_bytes = owner.to_field().to_be_bytes(32);\n let amount_bytes = amount.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i + 4] = recipient_bytes[i];\n hash_bytes[i + 36] = amount_bytes[i];\n }\n\n // Function selector: 0x3e87b9be keccak256('mint_public(bytes32,uint256)')\n hash_bytes[0] = 0x3e;\n hash_bytes[1] = 0x87;\n hash_bytes[2] = 0xb9;\n hash_bytes[3] = 0xbe;\n\n let content_hash = sha256_to_field(hash_bytes);\n content_hash\n}\n" }, "28": { "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\n pub fn hash<N>(input: [Field; N], message_size: u64) -> 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<N>(input: [Field; N], in_len: u64, 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" }, "29": { "path": "std/hash.nr", "source": "mod poseidon;\nmod mimc;\nmod poseidon2;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<N>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\nstruct PedersenPoint {\n x : Field,\n y : Field,\n}\n\npub fn pedersen_commitment<N>(input: [Field; N]) -> PedersenPoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[foreign(pedersen_commitment)]\npub fn __pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\npub fn pedersen_commitment_with_separator<N>(input: [Field; N], separator: u32) -> PedersenPoint {\n let values = __pedersen_commitment_with_separator(input, separator);\n PedersenPoint { x: values[0], y: values[1] }\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<N>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\npub fn pedersen_hash_with_separator<N>(input: [Field; N], separator: u32) -> Field {}\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#[foreign(keccak256)]\n// docs:start:keccak256\npub fn keccak256<N>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<N>(_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, N> 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" }, "3": { "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, N> 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<N> 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, N> 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" }, "31": { "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<N>(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" }, "35": { "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<N, 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" }, "4": { "path": "std/collections/bounded_vec.nr", "source": "use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, MaxLen> {\n storage: [T; MaxLen],\n len: u64,\n}\n\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::unsafe::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n pub fn get(mut self: Self, index: u64) -> T {\n assert(index < self.len);\n self.storage[index]\n }\n\n pub fn get_unchecked(mut self: Self, index: u64) -> T {\n self.storage[index]\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) -> u64 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u64 {\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<Len>(&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<Len>(&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<Len>(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\nimpl<T, MaxLen> 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, MaxLen, Len> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n // TODO: Allow imports from \"super\"\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n\n mod 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" }, "43": { "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};\n\nglobal pow64 : Field = 18446744073709551616; //2^64;\n\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 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<N>(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 fn decode_ascii(ascii: u8) -> Field {\n if ascii < 58 {\n ascii - 48\n } else if ascii < 71 {\n ascii - 55\n } else {\n ascii - 87\n } as Field\n }\n\n unconstrained fn unconstrained_div(self: Self, b: U128) -> (U128, U128) {\n if self < b {\n (U128::from_u64s_le(0, 0), self)\n } else {\n //TODO check if this can overflow?\n let (q,r) = self.unconstrained_div(b * U128::from_u64s_le(2, 0));\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::from_u64s_le(1, 0), 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 = 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 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 test {\n use crate::uint128::{U128, pow64};\n\n #[test]\n fn test_not() {\n let num = U128::from_u64s_le(0, 0);\n let not_num = num.not();\n\n let max_u64: Field = pow64 - 1;\n assert_eq(not_num.hi, max_u64);\n assert_eq(not_num.lo, max_u64);\n\n let not_not_num = not_num.not();\n assert_eq(num, not_not_num);\n }\n}\n" }, "70": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/messaging.nr", "source": "use crate::{\n hash::{compute_secret_hash, compute_message_hash, compute_message_nullifier},\n oracle::get_l1_to_l2_membership_witness::get_l1_to_l2_membership_witness\n};\n\nuse dep::std::merkle::compute_merkle_root;\nuse dep::protocol_types::{constants::L1_TO_L2_MSG_TREE_HEIGHT, address::{AztecAddress, EthAddress}, utils::arr_copy_slice};\n\npub fn process_l1_to_l2_message(\n l1_to_l2_root: Field,\n storage_contract_address: AztecAddress,\n portal_contract_address: EthAddress,\n chain_id: Field,\n version: Field,\n content: Field,\n secret: Field\n) -> Field {\n let secret_hash = compute_secret_hash(secret);\n let message_hash = compute_message_hash(\n portal_contract_address,\n chain_id,\n storage_contract_address,\n version,\n content,\n secret_hash\n );\n\n let returned_message = get_l1_to_l2_membership_witness(storage_contract_address, message_hash, secret);\n let leaf_index = returned_message[0];\n let sibling_path = arr_copy_slice(returned_message, [0; L1_TO_L2_MSG_TREE_HEIGHT], 1);\n\n // Check that the message is in the tree\n // This is implicitly checking that the values of the message are correct\n let root = compute_merkle_root(message_hash, leaf_index, sibling_path);\n assert(root == l1_to_l2_root, \"Message not in state\");\n\n compute_message_nullifier(message_hash, secret, leaf_index)\n}\n" }, "78": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/public_context.nr", "source": "use crate::{\n context::{\n inputs::PublicContextInputs, interface::ContextInterface, interface::PublicContextInterface,\n gas::GasOpts\n},\n messaging::process_l1_to_l2_message,\n oracle::{arguments, public_call::call_public_function_internal, returns, logs_traits::ToBytesForUnencryptedLog},\n hash::{hash_args, ArgsHasher, compute_unencrypted_log_hash}\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, function_selector::FunctionSelector,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, side_effect::SideEffect\n},\n hash::silo_nullifier, address::{AztecAddress, EthAddress},\n constants::{\n MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest}, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::{Deserialize, Empty}\n};\n\nstruct PublicContext {\n inputs: PublicContextInputs,\n side_effect_counter: u32,\n\n args_hash : Field,\n return_hash : Field,\n\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n nullifier_non_existent_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL>,\n contract_storage_update_requests: BoundedVec<StorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\n contract_storage_reads: BoundedVec<StorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\n public_call_stack_hashes: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n\n new_note_hashes: BoundedVec<NoteHash, MAX_NEW_NOTE_HASHES_PER_CALL>,\n new_nullifiers: BoundedVec<Nullifier, MAX_NEW_NULLIFIERS_PER_CALL>,\n\n new_l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n\n unencrypted_logs_hashes: BoundedVec<SideEffect, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during public execution. Set by sequencer to be a header of a block\n // previous to the one in which the tx is included.\n historical_header: Header,\n prover_address: AztecAddress,\n}\n\nimpl PublicContext {\n pub fn new(inputs: PublicContextInputs, args_hash: Field) -> PublicContext {\n PublicContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter,\n args_hash,\n return_hash: 0,\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n unencrypted_log_preimages_length: 0,\n historical_header: inputs.historical_header,\n prover_address: AztecAddress::zero()\n }\n }\n\n pub fn call_public_function_no_args<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> FunctionReturns<RETURNS_COUNT> {\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<RETURNS_COUNT>(\n self: &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 ) -> FunctionReturns<RETURNS_COUNT> {\n let side_effect_counter = self.side_effect_counter;\n // TODO(6052): get next value from output of `call_public_function_internal`\n self.side_effect_counter += 1;\n\n let raw_returns = call_public_function_internal(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n FunctionReturns::new(raw_returns)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n returns::pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n // Keep private or ask the AVM team if you want to change it.\n 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 // Keep private or ask the AVM team if you want to change it.\n fn push_nullifier_non_existent_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_non_existent_read_requests.push(request);\n }\n\n pub fn finish(self) -> PublicCircuitPublicInputs {\n // Compute the public call stack hashes\n let pub_circuit_pub_inputs = PublicCircuitPublicInputs {\n call_context: self.inputs.call_context, // Done\n args_hash: self.args_hash, // Done\n nullifier_read_requests: self.nullifier_read_requests.storage,\n nullifier_non_existent_read_requests: self.nullifier_non_existent_read_requests.storage,\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\n contract_storage_reads: self.contract_storage_reads.storage,\n returns_hash: self.return_hash,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n new_l2_to_l1_msgs: self.new_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 unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n unencrypted_log_preimages_length: self.unencrypted_log_preimages_length + 4,\n historical_header: self.inputs.historical_header,\n global_variables: self.inputs.public_global_variables,\n prover_address: self.prover_address,\n revert_code: 0,\n start_gas_left: self.inputs.gas_left,\n end_gas_left: self.inputs.gas_left, // AVM should decrease this value\n transaction_fee: self.inputs.transaction_fee\n };\n pub_circuit_pub_inputs\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 ContextInterface for PublicContext {\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.public_global_variables.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.public_global_variables.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_new_note_hash(&mut self, note_hash: Field) {\n self.new_note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_note_hash: Field) {\n self.new_nullifiers.push(Nullifier {\n value: nullifier,\n note_hash: 0, // cannot nullify pending notes in public context\n counter: self.next_counter()\n });\n }\n}\n\nimpl PublicContextInterface for PublicContext {\n fn block_number(self) -> Field {\n self.inputs.public_global_variables.block_number\n }\n\n fn timestamp(self) -> u64 {\n self.inputs.public_global_variables.timestamp\n }\n\n fn coinbase(self) -> EthAddress {\n assert(false, \"'coinbase' not implemented!\");\n EthAddress::zero()\n }\n\n fn fee_recipient(self) -> AztecAddress {\n assert(false, \"'fee_recipient' not implemented!\");\n AztecAddress::zero()\n }\n\n fn fee_per_da_gas(self) -> Field {\n self.inputs.public_global_variables.gas_fees.fee_per_da_gas\n }\n\n fn fee_per_l2_gas(self) -> Field {\n self.inputs.public_global_variables.gas_fees.fee_per_l2_gas\n }\n\n fn transaction_fee(self) -> Field {\n self.inputs.transaction_fee\n }\n\n fn nullifier_exists(self, unsiloed_nullifier: Field, address: AztecAddress) -> bool {\n // Current public can only check for settled nullifiers, so we always silo.\n let siloed_nullifier = silo_nullifier(address, unsiloed_nullifier);\n nullifier_exists_oracle(siloed_nullifier) == 1\n }\n\n fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // We can consume message with a secret in public context because the message cannot be modified and therefore\n // there is no front-running risk (e.g. somebody could front run you to claim your tokens to your address).\n // Leaf index is not used in public context, but it is used in the AVMContext which will replace it.\n fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress, _leaf_index: Field) {\n let this = (*self).this_address();\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n this,\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_new_nullifier(nullifier, 0)\n }\n\n fn emit_unencrypted_log<T, N, M>(&mut self, log: T) where T: ToBytesForUnencryptedLog<N, M> {\n let event_selector = 5; // TODO: compute actual event selector.\n let contract_address = self.this_address();\n let log_slice = log.to_be_bytes_arr();\n let log_hash = compute_unencrypted_log_hash(\n contract_address,\n event_selector,\n log\n );\n let side_effect = SideEffect { value: log_hash, counter: self.next_counter() };\n self.unencrypted_logs_hashes.push(side_effect);\n // 44 = addr (32) + selector (4) + raw log len (4) + processed log len (4)\n self.unencrypted_log_preimages_length = self.unencrypted_log_preimages_length + 44 + log_slice.len().to_field();\n // Call oracle to broadcast log\n let _void = emit_unencrypted_log_oracle(contract_address, event_selector, log, side_effect.counter);\n }\n\n fn call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field],\n _gas: GasOpts\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n fn static_call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field],\n _gas: GasOpts\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n fn delegate_call_public_function<RETURNS_COUNT>(\n self: &mut Self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field]\n ) -> FunctionReturns<RETURNS_COUNT> {\n let args_hash = hash_args(args);\n assert(args_hash == arguments::pack_arguments(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n}\n\nimpl Empty for PublicContext {\n fn empty() -> Self {\n PublicContext {\n inputs: PublicContextInputs::empty(),\n side_effect_counter: 0 as u32,\n args_hash : 0,\n return_hash : 0,\n nullifier_read_requests: BoundedVec::new(),\n nullifier_non_existent_read_requests: BoundedVec::new(),\n contract_storage_update_requests: BoundedVec::new(),\n contract_storage_reads: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n new_l2_to_l1_msgs: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n prover_address: AztecAddress::zero(),\n }\n }\n}\n\n#[oracle(checkNullifierExists)]\nfn nullifier_exists_oracle(nullifier: Field) -> Field {}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle<T>(\n _contract_address: AztecAddress,\n _event_selector: Field,\n _message: T,\n _counter: u32\n) -> Field {}\n\nstruct FunctionReturns<N> {\n values: [Field; N]\n}\n\nimpl<N> FunctionReturns<N> {\n pub fn new(values: [Field; N]) -> FunctionReturns<N> {\n FunctionReturns { values }\n }\n\n pub fn assert_empty(returns: FunctionReturns<0>) {\n assert(returns.values.len() == 0);\n }\n\n pub fn raw(self) -> [Field; N] {\n self.values\n }\n\n pub fn deserialize_into<T>(self) -> T where T: Deserialize<N> {\n Deserialize::deserialize(self.raw())\n }\n}\n" }, "96": { "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\n},\n traits::Hash, hash::{pedersen_hash, poseidon2_hash, silo_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_encrypted_log_hash<N, M, L>(encrypted_log: [Field; M]) -> Field where [Field; N]: LensForEncryptedLog<N, M, L> {\n let mut bytes = [0; L];\n // Note that bytes.append(encrypted_log[i].to_be_bytes(31)) results in bound error\n for i in 0..M - 1 {\n let to_add = encrypted_log[i].to_be_bytes(31);\n for j in 0..31 {\n bytes[i*31 + j] = to_add[j];\n }\n }\n // can't assign as L - not in scope error for: L-31*(M-1)\n let num_bytes = bytes.len() as u32 - 31 * (M - 1);\n let to_add_final = encrypted_log[M - 1].to_be_bytes(num_bytes);\n for j in 0..num_bytes {\n bytes[(M-1)*31 + j] = to_add_final[j];\n }\n sha256_to_field(bytes)\n}\n\npub fn compute_unencrypted_log_hash<T, N, M>(\n contract_address: AztecAddress,\n event_selector: Field,\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 event_bytes = event_selector.to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = event_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[36 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[40 + 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\npub fn compute_siloed_nullifier(address: AztecAddress, nullifier: Field) -> Field {\n silo_nullifier(address, nullifier)\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<N>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<N>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() < ARGS_HASH_CHUNK_COUNT * ARGS_HASH_CHUNK_LENGTH);\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..800 {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x05a1023fef839ac88731f49ae983e172c1b600a3c8f3393ad0ac25d819ac0f0f);\n}\n\n#[test]\nfn compute_enc_log_hash_304() {\n let input = [\n 0x0000000000000000000000000000000000000000000000000000000000000000,\n 0x0021a0d4aa9989656b592187cf6da1965df53ab2ff2277421e663465cf20d3e9,\n 0x00c3969cc350f3474f8187a33ac1317181961f5f94043b07ce888d85a5d20cb5,\n 0x0058198041ed1547b056955b5141a5a8a1551b0c8d094255ec9daaf3604d9348,\n 0x00247ad96df2e4d984cf795ed7316234743a681f824a45c46253de8bfde48850,\n 0x007fc251f4ce44f4e9aba3dbf6567228be28fac85660156f2825ddb0b0577457,\n 0x009315851323c6bc2aaa42e23fe5f3be97208f2d8167eafdfc5742d94f2f4dd4,\n 0x00b938289e563b0fe01982cd9b8d9e33e3069046768ad01c0fb05e429e7b7909,\n 0x00fbcc257a3211f705b471eee763b0f43876a2b2178fab6d2b09bd2b7e086584,\n 0x000000000000008c3289b5793b7448f4d45ecde039d004b6f037cad10b5c2336\n ];\n let hash = compute_encrypted_log_hash(input);\n assert(hash == 0x001e3c013994947fe28957a876bf1b2c3a69ac69cc92909efd4f2ae9b972f893);\n}\n\n#[test]\nfn compute_enc_log_hash_368() {\n let input = [\n 0x0000000000000000000000000000000000000000000000000000000000000000,\n 0x002190697d2a50e229a7a077e0951073f7d51e46679f10466153c308b63b1ea9,\n 0x00543e346facc6799b94514c9d461bcc836c04b083b13c2e4544a39130473c1e,\n 0x000df76d59526f8f953bcc7d9f77cdaefd36435931f0d7348f794bc275b42ded,\n 0x00a6d390ee1723af7f7ac1ae4fc81a266b2370fe07040a36d06dbe242e02413e,\n 0x00acbce15b6af1fbe94bd0f7b70f11768265dff77bfe63398f2a053efdfdf26d,\n 0x00b8b131b9f42c689beb095ba4f4a836d4d15c9068d0422e9add6ca82b786329,\n 0x00661a6a654b38f0f97d404ef5553e0efea9ed670561ae86685b31bbb2824fac,\n 0x00113a6b58edfaec0065b365f66ba8d8aa68254b8690035e8d671a17a843f0a1,\n 0x0023f2d2eae8c4449bac8f268a3e62a3faace1fe1401f0efdc8b0ccfbc8fb271,\n 0x00cf6603f8c61993dd2f662c719671c61727a2f4e925fb988b23d31feccd77d9,\n 0x0000000000a402a84b7294671799c38dd805f6a827a3a12633fdf91a57debe1f\n ];\n let hash = compute_encrypted_log_hash(input);\n assert(hash == 0x00a0d651ac0cbc01b72430fa6a05d91738595af6e0229347b4c9968223387aeb);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00846d6969c8c2f61d39cd2762efcb0abb14f88d59c2675910251ef2bcffe9a7);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let event_selector = 5;\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00880a801230ea08c98a802a11b4786cba474513875f0fc69a615e81c5f9f21c);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x00a78b5347813624ecfd26e5b8bc6146f418b0cfcc8296b5112d09b8ebba9496);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let event_selector = 5;\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n assert(hash == 0x001f3390ea242afee7ce46dafdbdc4bd4f1cf20cd63850d12d60ff9956712c4f);\n}\n" }, "97": { "path": "/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr", "source": "use dep::protocol_types::{\n address::AztecAddress, hash::{silo_nullifier, pedersen_hash},\n constants::GENERATOR_INDEX__CONSTRUCTOR, abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext, AvmContext, ContextInterface},\n oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm,\n history::nullifier_inclusion::prove_nullifier_inclusion\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n mark_as_initialized(context);\n}\n\npub fn mark_as_initialized_avm(context: &mut AvmContext) {\n mark_as_initialized(context);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n mark_as_initialized(context);\n}\n\nfn mark_as_initialized<TContext>(context: &mut TContext) where TContext: ContextInterface {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n ContextInterface::push_new_nullifier(context, 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_avm(context: &mut AvmContext) {\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 prove_nullifier_inclusion(init_nullifier, *context);\n}\n\nfn compute_contract_initialization_nullifier(address: AztecAddress) -> Field {\n silo_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 assert_initialization_matches_address_preimage(context);\n}\n\npub fn assert_initialization_matches_address_preimage_avm(context: AvmContext) {\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 assert_initialization_matches_address_preimage(context);\n}\n\nfn assert_initialization_matches_address_preimage<TContext>(context: TContext) where TContext: ContextInterface {\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" } } }