@aztec/protocol-contracts 0.40.1 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/artifacts/ContractClassRegisterer.json +1 -1
- package/dest/artifacts/ContractInstanceDeployer.json +1 -1
- package/dest/artifacts/GasToken.json +1 -1
- package/dest/artifacts/KeyRegistry.json +1 -1
- package/dest/artifacts/MultiCallEntrypoint.json +1 -1
- package/package.json +4 -4
- package/src/artifacts/ContractClassRegisterer.json +1 -1
- package/src/artifacts/ContractInstanceDeployer.json +1 -1
- package/src/artifacts/GasToken.json +1 -1
- package/src/artifacts/KeyRegistry.json +1 -1
- package/src/artifacts/MultiCallEntrypoint.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"transpiled":true,"noir_version":"0.29.0+5b9b1fab51e35c2112c0136785b5b69cd8529a92","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"param_witnesses":{"app_payload":[{"end":55,"start":38}],"inputs":[{"end":38,"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":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}},{"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":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":32,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":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_key_validation_requests","type":{"kind":"array","length":1,"type":{"fields":[{"name":"master_nullifier_public_key","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint"}},{"name":"app_nullifier_secret_key","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest"}}},{"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":"private_call_stack_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"public_call_stack_hashes","type":{"kind":"array","length":16,"type":{"kind":"field"}}},{"name":"public_teardown_function_hash","type":{"kind":"field"}},{"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":"encrypted_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_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":"encrypted_log_preimages_length","type":{"kind":"field"}},{"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":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"},"return_witnesses":[1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997]},"bytecode":"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","debug_symbols":"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uLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW4s6kadzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW4s6kadzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTde5sqs6dTdW5s6k6dzZV36inbufOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpwsYdTnWrn3ru3uqnHry3+qkn761+6tF7q5969t7qpx6+t/qpp++tfurxe6uffP5yx1Td6iefv9xBVbf6yecvd1TVrX7y+csdVnWrn3z+csdV3eonn7/cgVW36sjnL3dk1a068vnLHVp1q458/nLHVt2qI5+/3MFVt+rI5y93dNWtfvL5yx1edauffP5yx1fd6iefv9wBVrf6yecvd4TVrX7y+csdYnWrn3z+csdY3eonn7/cQVa3+snnL3eU1a1+8vnLHWZ1q598/nLHWd3qJ5+/3IFWt/rJ5y93pNWtfvL5yx1qdauffP5yx1rd6iefv9zBVrf6yecvd7TVrX7y+csdbnWrn3z+csdb3eonn7/cAVe3+snnL3fE1a1+8vnLHXJ1q598/nLHXN3qJ5+/3EFXt/rJ5y931NWtfvL5yx12dauffP5yx13d6iefv9yBV7f6yecvd+TVrX7y+csdenWrn3z+csde3eonn7/cwVe3+snnL3f01a1+8vnLHX51q598/nLHX93q556/gTz/KpDnXwXy/KtAnn8VNu75G8jzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrSJ5/FcnzryJ5/lUkz7+KG/f8jeT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief7VTp5/tZPnX+3k+Vc7ef7VvnHP3508/2onz7/ayfOvdvL8q508/2onz7/ayfOvdvL8q508/2onz7/ayfOvdvL8q508/2onz7/ayfOvdvL8q508/2onz7/ayfOvdvL8q508/2onz7/ayfOvdvL8q508/2onz7/ayfOv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zqYZMj5n0wwZn+8zM2R8vs9MkMHOr38bmbz3vz6b8+DbO9hZ95eS8fk+M0PG5/vMDJkkMgMyPjXwDBmfGniGjE8NPEPGpwaeIeNTA0+Qwd47cCkZaeARGWngEZmFNPBP/uR6fweuH7aVvnxbEHtPwqVkFtLAxmQW0sDGZBbSwMZkFtLAxmQW0sC2ZLD3RZxB5nVXwQcyC2lgYzILaWBjMj418EtixouT+EgmicyAjE8NPEPGpwaeIeNTA8+Q8amBZ8j41MDHZCr2no8zyAxyrir2TpBLyfjUwDNkPGjgZ7fJVbfQWrXsjw/X13+dX3bbHymavb6SSS/dQutP826hNaV5t9A60bxbaO1n3S32vhPzbqE1mnm30LrLvFtoLWXebXLVrSsthb3vxLxbV1oKe9+JebeutBT2vhPzbl1pKex9J+bdutJS2PtOzLt1paWwd6OYd+tKS2HvUTHv1pWWwt6NYt6tKy2FvcPEvFtXWgp714h5t660FPZOEPNuXWkp7N0d5t260lLYOzbMu3WlpbB3YZh360pLYe+sMO/WlZbC3i1h3q0rLYW9A8K8W1daCntXg3m3rrQU9k4F825daSns3Qfm3brSUtg7Csy7daWlsistlV1pKew9EebdutJSxZWWKq60FPauDvNuXWkp7J0a5t260lLYuy/Mu3WlpbB3VJh360pLYe+SMO/WlZbC3vlg3q0rLYW9m8G8W1daCnuHgnm3rrQU9q4D825daSnsnQTm3brSUti7A8y7daWlsDP+zbt1paWws/jNu3WlpbAz8827daWlsLPtzbt1paWwM+jNu3WlpbCz4s27daWlsDPdzbv1pKUadva6ebeetFTDzkg379aTlmpbctWtJy3VXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWeN1e5581V7nlzlXveXOWe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yVm/0BroDf1CK6Y39OtMX2HnEr+hX1/6asfOJX5Dv7701Y6dS/yGfn3pq31Lzvr1pa927FziN/TrS1/t2LnEb+jXmb7CziV+Q7/O9BV2LvEb+nWmr7Bzid/QrzN9hZ1L/IZ+nekr7FziN/TrTF9h5xK/oV9n+go7l/gN/TrTV9i5xG/o15m+ws4lfkO/zvQVdi7xG/p1pq+wc4nf0K8zfYWdS/yGfp3pK+xc4jf060xfYecSv6FfZ/oKO5f4Df0601fYucRv6NeZvsLOJX5Dv870FXYu8Rv6daavsHOJ39CvM32FnUv8hn6d6SvsXOI39OtMX2HnEr+hX2f6CjuX+A39OtNX2LnEb+jXmb7CziV+Q7/O9BV2LvEb+nWmr7Bzid/QrzN9hZ1L/IZ+nemr4kxfFWf6qjjTV9g52/b9Yidtv6FfZ/qqOtNX2Fnqb+g3OevXmb7CTlR/Q7/O9BV2qvob+nWmr7CT1d/QrzN9hZ2u/oZ+nekr7IT1N/TrTF9hJ7K/oV9n+spZfvvuLL99d5bfvjvLb9+d5bfvzvLbd2f57buz/PbdWX777iy/fXeW3747y29PzvLbk7P89uQsvz05y29PW3LWry99lZzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3JWX57cpbfnpzltydn+e3ZWX573taZR63f223945/87HadaTTT7Tp3VQ/hrw/3uA26Xeemmuh2oRzkmW7XcYEz3a7jAWe6XccBznS7zryd6XadeTvT7Treb6bbdZzfTLeutNRCqccT3dJmHj87YNVHzw6gNc/eHx2kEg7+xeX9/uGc8+BfHLTmMe82ueoWWvOYdwutecy7hdY85t1Cax7zbqE1j3W32DnE5t1C6yPzbl1pKewEYvNuk6tuXWkp7Oxh825daSns3GHzbl1pKezMYfNuXWkp7Lxh825daSnsrGHzbl1pKeycYfNuXWkp7Ixh825daSnsfGHzbl1pKexsYfNuXWkp7Fxh825daSnsTGHzbl1pKew8YetusdNXf9RtKvff/09l8Pv/2Nmr5t2uc0uldv+dtdQHv7OGnctp3u06t9RMt+s4volusRM5zbtdx/HNdOvK8WFncZp3m1x168rxYadwmnfryvFhJ3Cad+vq9Rw7fdO8W1ev59jJm+bdutJS2Kmb5t2yaqlnB6z66NkBtObJ291attubrcG/OGjNY94ttOax7hY7EdO8W2jNY94ttOYx7xZa85h3m1x1C615zLuF1kfm3brSUtgJmObdetJSBTv90rxbT1qqbJ60VNk8aamyJVfdetJSZfOkpcrmSUsV7IRe825daSnshF7zbl1pKeyEXvNuXWkp7IRe825daSnshF7zbl1pKeyEXvNuXWkp7IRe825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pKezkX/NuXWkp7ORf825daSns5F/zbl1pqeJKSxVXWgo7w9q8W1daqiRX3brSUtj55ObdutJS2Pnk5t260lLY+eTm3brSUtipzj/q9nhDRsFOdTbvdp1b6jhpv2An/5p3u84tNdPtOo5vptt1HN9Mt8lVt64cH3ZKsHm3rhyfq0Th4ipRuLhKFC6uEoWLq0Th4ipRuLhKFC6uEoWLq0ThQpso/OyAVR89O4DWPGW719FK3A7+xY3/5Hu3FTv517xbaM3zo25jfJSR8qBbaM1j3i205jHvNrnqFlrzmHcLrXnMu4XWPD/rNt9/OhVrGHQLrY/Mu11HS010i538a97tQlpqotuFtNREtwtpqYluk6tusbVUvv/JrZb9oNsQ4/1JJbzqi9DqS7/Yasq+X2w9Zd8vtqKy7xdbU5n3i50B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UJR3saAo72JBUd7FgmISRQOK8i4WFOVdLCjKu1hQlHexoCjvYkARevctD0V5FwuK8i4WFOVdLCgmUTSgKO9iQVHexYKivIsFRXkXC4ryLgYUobfBYlA83gYboLfB8lDUdPn9d0YD9AZOHoqaLgYUoTdw8lDUy5gFRb2MWVCUXjzckr33vz6bcx5QTKJoQFEvYxYU9TJmQVHexYKivIsFRXkXA4rQGzh5KMq7WFCUd7GgKO9iQTGJogFFeRcLik69yw+qCLm3O42y1WcVub5wdOpezDk69S/mHJ06GGuO0Js4mTg6dTHmHJ36GHOOTp3MTziWrT84hjbgmMTRhKNTN2POUX7GhqP8jA1H+RkbjvIzJhyht3OicMxPjmXEUX7GhqP8jA1H+RkbjkkcTTjKz9hwlJ+x4Sg/M/jOEPT+zWvJyHMMyEDvybyWjHzBiIyU/oiMtPuITFqHzOE+obDQrtKZbhdSthPdLqQ/J7pdSFNOdLuQTjzudqVdpRPdLqTnJrpdSKNNdLuQ7proNrnq1pWWWmlH50S3rrTUSvsxJ7p1paVW2jc50a0rLbXS/saJbl1pqZX2IU5060pLrbRfcKJbV1pqpX19E9160lJxpf13E9160lJxpX1yE9160lJxS6669aSl4kr7zia69aSl4kr7wya6daWlVtrHNdGtKy210n6riW5daamV9kVNdOtKS620f2miW1daaqV9RhPdutJS0ZWWiq60VHSlpVbadDXRbXLVrSstFV1pqZW2gk1060pLrbRl67jblbZhTXTrSkuttF1qoltXWmqlbU0T3brSUittP5ro1pWWWmmb0ES3rrTUStt5Jrp1paVW2nYz0a0rLbXS9piJbl1pqZW2sUx060pLrbTZZKJbV1pqpS0hE9260lIrbdyY6NaVllppe8VEt6601EqbICa6daWlVtqqMNGtKy210oaCiW5daamV0v4nunWlpVZKzp/o1pWWWimFfqJbV1pqpfz3iW5daamVctonunWlpVbKU5/o1pWWcpV7Hl3lnkdXuefRVe55dJV7Hl3lnkdXuefRVe55dJV7Hl3lnkdXuefRVe55XCkb+yebk0J8VJEPPptK/uuzqZQBRad77mwprpTlfSFFp/vzjCk63bVnTNHpXj5jikkUDSg63adtTNHpNm1jik53aRtTlHexoCjvckQxb/c/N4f2JcV9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ul1Iz010u5BGm+g2uerWlZZaaIPjTLeutNRCGxxnunWlpVbayjjRrSsttdL2xIluXWmplbYcTnTrSkuttI1woltXWmql7X4T3XrSUnWlbXkT3XrSUnWl7XMT3XrSUnVLrrr1pKXqStvRJrr1pKXqStvGJrp1paVW2t410a0rLbXSNqyJbl1pqZW2S01060pLrbStaaJbV1pqpe1HE9260lIrbROa6NaVllppO89Et6601Erbbia6daWloistFV1pqZX2K01060pL7a601O5KS620i2qiW1daaqXdThPdutJSK+1KmujWlZZaaffQRLeutNRKu3wmunWlpVbajTPRrSsttdKumYluXWmplXa3THTrSkuttAtloltXWmql3SIT3brSUivt6pjo1pWW8rpv4Ccbiss9bTKVMqCoXWkWFLUrzYKidqUZUPS6b8CYovY8W1DUnmcLitrzbEExiaIBRe15tqAo72JBUd7lcCvsdv9zc2gDivIuFhTlXQwoet1jYExR3uVwuvQnxT6gKO9iQVHexYJiEkUDivIuFhTlXSwoyrscUmz3nwGmPvgZ4Eq7Ki6kKO9iQHGl3RoXUpR3saAo72JBUd7FgmISRQOK8i4WFOVdLCjKu1hQlHexoCjvYkBxpV02F1KUd7GgKO9iQVHexYJiEkUDivIuFhTlXSwoyrtYUJR3saAo7/J7im2l3VEXUpR3saAo72JBUd7FgmISRQOK8i4WFOVdLCjKu1hQlHexoCjvYkBxpV1tF1KUd7GgKO9iQVHexYJiEkUDivIuFhSh9WJO6f7h3MMBRdvv3zfsXXBXksHeG3cpGWitdikZaP11KRloTXUpmSQyAzLQ2udSMtBvsZeSgX5fvZSMNPCIjE8NfJxC07D3/V1KxqcGniHjUwPPkHGqgQ+TNBr2fsJLyTjVwBNknGrgCTJONfAEGacaeIKM03fg458dYO9pvJSM03fgCTJO34EnyDjVwBNkksgMyDjVwBNknGrgCTJONfAEGacaeIKMNPCADPZ+zUvJSAOPyEgDj8hIA4/IJJEZkJEGHpGRBh6RkQYekZEGHpGRBh6Qwd7JeikZaeARGWngERlp4BGZJDIDMtLAIzLSwCMy0sAjMtLAIzLSwAMy2Ls9LyUjDTwiIw08IiMNPCKTRGZARhp4REYaeERGGnhABnvfX6z748OhWpI5/k4c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mTubKnNnU2XubKrCnU1VuLOpCnc2VeHOpiob9dQt3NlUhTubqnBnUxXubKrCnU1VuLOpCnc2VeHOpirc2VSFO5uqcGdTFe5sqsKdTVW4s6kKdzZV4c6mKtzZVIU7m6pwZ1MV7myqwp1NVbizqQp3NlXhzqYq3NlUhTubqnBnUxXubKrCnU1VuLOpCnc2VeHOpirc2VSFO5uqcGdTFe5sqsKdTVW4s6kKdzZV4c6mKtzZVIU7m6pwZ1MV7myqwp1NVbizqQp3NlXhzqYq3NlUhTubqnBnUxXubKrCnU1VuLOpCnc2VeHOpirc2VSFO5uqcGdTFe5sqsKdTVW4s6kKdzZV4c6mKtzZVIU7m6pwZ1MV7myqwp1NVbizqQp3NlXhzqYq3NlUhTubqnBnUxXubKrCnU1VuLOpCnc2VeHOpirc2VSFO5uqcGdTFe5sqsKdTVW4s6kKdzZV4c6mKtzZVIU7m6pwZ1MV7myqwp1NVbizqQp3NlXlzqaq3NlUlTubqnJnU9WNeupW7myqyp1NVbmzqSp3NlXlzqaq3NlUlTubqnJnU1XubKrKnU1VubOpKnc2VeXOpqrc2VSVO5uqcmdTVe5sqsqdTVW5s6kqdzZV5c6mqtzZVJU7m6pyZ1NV7myqyp1NVbmzqSp3NlXlzqaq3NlUlTubqnJnU1XubKrKnU1VubOpKnc2VeXOpqrc2VSVO5uqcmdTVe5sqsqdTVW5s6kqdzZV5c6mqtzZVJU7m6pyZ1NV7myqyp1NVbmzqSp3NlXlzqaq3NlUlTubqnJnU1XubKrKnU1VubOpKnc2VeXOpqrc2VSVO5uqcmdTVe5sqsqdTVW5s6kqdzZV5c6mqtzZVJU7m6pyZ1NV7myqyp1NVbmzqSp3NlXlzqaq3NlUlTubqnJnU1XubKrKnU1VubOpKnc2VeXOpqrc2VSVO5uqcmdTVe5sqsqdTVW5s6kqdzZV5c6mqtzZVJU7m6pxZ1M17myqxp1N1bizqdpGPXUbdzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW4s6kadzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW4s6kadzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW4s6kadzZV486matzZVI07m6pxZ1M17myqxp1N1bizqRp3NlXjzqZq3NlUjTubqnFnUzXubKrGnU3VuLOpGnc2VePOpmrc2VSNO5uqcWdTNe5sqsadTdW5s6k6dzZV586m6tzZVH2jnrqdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpurc2VSdO5uqc2dTde5sqs6dTdW5s6k6dzZV586m6tzZVJ07m6pzZ1N17myqzp1N1bmzqTp3NlXnzqbq3NlUnTubqnNnU3XubKrOnU3VubOpOnc2VefOpgobdzjVrX7quXurn3rw3uqnnry3+qlH761+6tl7q596+N7qp56+t/qpx++tfvL5yx1TdauffP5yB1Xd6iefv9xRVbf6yecvd1jVrX7y+csdV3Wrn3z+cgdW3aojn7/ckVW36sjnL3do1a068vnLHVt1q458/nIHV92qI5+/3NFVt/rJ5y93eNWtfvL5yx1fdauffP5yB1jd6iefv9wRVrf6yecvd4jVrX7y+csdY3Wrn3z+cgdZ3eonn7/cUVa3+snnL3eY1a1+8vnLHWd1q598/nIHWt3qJ5+/3JFWt/rJ5y93qNWtfvL5yx1rdauffP5yB1vd6iefv9zRVrf6yecvd7jVrX7y+csdb3Wrn3z+cgdc3eonn7/cEVe3+snnL3fI1a1+8vnLHXN1q598/nIHXd3qJ5+/3FFXt/rJ5y932NWtfvL5yx13dauffP5yB17d6iefv9yRV7f6yecvd+jVrX7y+csde3Wrn3z+cgdf3eonn7/c0Ve3+snnL3f41a1+8vnLHX91q597/gby/KtAnn8VyPOvAnn+Vdi4528gz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzrwJ5/lUgz78K5PlXgTz/KpDnXwXy/KtAnn8VyPOvAnn+VSDPvwrk+VeBPP8qkOdfBfL8q0CefxXI868Cef5VIM+/CuT5V4E8/yqQ518F8vyrQJ5/FcjzryJ5/lUkz7+K5PlXkTz/Km7c8zeS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5V5E8/yqS519F8vyrSJ5/FcnzryJ5/lUkz7+K5PlXkTz/KpLnX0Xy/KtInn8VyfOvInn+VSTPv4rk+VeRPP8qkudfRfL8q0iefxXJ868ief5VJM+/iuT5Vzt5/tVOnn+1k+df7eT5V/vGPX938vyrnTz/aifPv9rJ86928vyrnTz/aifPv9rJ86928vyrnTz/aifPv9rJ86928vyrnTz/aifPv9rJ86928vyrnTz/aifPv9rJ86928vyrnTz/aifPv9rJ86928vyrnTz/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eXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z43V7nnzVXueXOVe95c5Z53V7nn3VXueXeVe95d5Z73Lbnq1pOW6q5yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz7ur3PPuKve8u8o9765yz/tC2dit37tt/eOf/Ox2nXk70+1Cd3II93/Jcfu625Xykye6XehOnuh2oTt5otuF/O1Et8lVtwv524luF/K3E90u5G8nul3I305060hLxW2l/OSJblm11LMDVn307ABa89R2/0dUW98P/sWN/+Rnt8lVt9Cax7xbaM1j3i205jHvFlrzmHcLrXmsu8XOOTbvFlrzmHcLrY/Mu3WlpbBzjs27daWlsHOOzbt1paWwc47Nu3WlpbBzjs27daWlsHOOzbt1paWwc47Nu3WlpbBzjs27daWlsHOOzbt1paWwc47Nu3WlpbBzjs27daWlsHOOzbt1paWwc47Nu3WlpbBzjs27daWlsHOOzbtdZwIdftvh1u06E2im23VuqYnf0MNOELXuFjtB1LzbdRzfTLfrOL6ZbtdxfDPdrjNvZ7pdZ97OdLuO45vpdh3HN9OtKy2FnSBq3S12gug33T47YNVHzw6gNU9P8W62wrYd/IsLJfd71aW8VJ3rS7/QqucN/SZn/UIrnzf0C6193tDv/8Pev6XHriM722iP9iNRQR0at/q+/f1rZipda7DEnAMSIwK4qwuXLbwxpgjQToRr93ODXtf+5wa9rh0QXq/v5s8b9Lp2TDfoJfNXvvs/b9Br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V3Pw/qs5eP/VHLz/ag7efzUH77+ag/dfzcH7r+bg/Vdz8P6rOXj/1Ry8/2oO3n81B++/moP3X83B+6/m4P1Xc/D+qzl4/9UcvP9qDt5/NQfvv5qD91/Nwfuv5uD9V3Pw/qs5eP/VHLz/ag7efzUH77+ag/dfzcH7r+bg/Vdz8P6rOXj/1Ry8/2oO3n81B++/moP3X83B+6/m4P1Xc/D+qzl4/9UcvP9qDt5/NQfvv5qD91/Nwfuv5uD9VyV4/1UJ3n9VgvdfleD9V2WKff6W4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef1WC91+V4P1XJXj/VQnef7UE779agvdfLcH7r5bg/VfLFPv8XYL3Xy3B+6+W4P1XS/D+qyV4/9USvP9qCd5/tQTvv1qC918twfuvluD9V0vw/qsleP/VErz/agnef7UE779agvdfLcH7r5bg/VdL8P6rJXj/1RK8/2oJ3n+1BO+/WoL3Xy3B+6+W4P1XS/D+qyV4/9USvP9qCd5/tQTvv1qC918twfuvluD9V0vw/qsleP/VErz/agnef7UE779agvdfLcH7r5bg/VdL8P6rJXj/1RK8/2oJ3n+1uO5fsrX+87W2tp7f8/u/5/k9v39sn1/Pf0yN5/f8/ul4ftf9Pz3P7/n90/P8nv1/z/N79v89z+/5/V+X45+vrbU2nt/z+7/n+T37/57n9+z/e57f8/nb8/yez9+O53fd/9Pz/J7P357n93z+9jy/5/O35/mDn7+u+396nj/4+eu6/6fn+YOf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K9+9xDfoJfNXvnuJb9BL5q9WMn+1kvmrlcxf+e7Zxuv13bR9g14yf7WR+SvfXeo36DUyvWT+ynej+g16yfyV71b1G/SS+Svfzeo36CXzV77b1W/QS+avfDes36CXzF/5bmS/QS+ZvyLrb1/I+tsXsv72hay/fSHrb1/I+tsXsv72hay/fSHrb1/I+tsXsv72hay/3cj6242sv93I+tuNrL/dJiPTy+WvjKy/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tuNrL/dyPrbjay/3cj6242sv93I+tsrWX97nfKcR/vxkrsfv7/zqTbPadSjNs+76pjnf774KFNDbZ43VYfaRD3IPWrzpMAetXkyYI/aPAmwR22e87ZHbZ7ztkdtnuzXozZP8utRS+WlErUed6gN23l8Kojqj04Frj3PcrwV2Dpf/Iury+uLa62Nf3GuPQ9crVGpde154Gpdex64WteeB67WteeBq3XtedBqffcQw9W69kdwtVReyncDMVytUaml8lK+u4fhaqm8lO/eYbhaKi/lu3MYrpbKS/nuG4arpfJSvruG4WqpvJTvnmG4Wiov5btjGK6Wykv57heGq6XyUr67heFqqbyU715huFoqL+W7UxiulspL+e4TRqv13b76lVpbX3//b2vj7/99d6/C1eZ5S9n++ps1Oxp/s+a7lxOuNs9bqkdtnsTXodZ3IydcbZ7E16OWKvH57uKEqzUqtVSJz3cLJ1wtVeLz3cAJV0t1e+67fROulur23HfzJlwtlZfy3boJVxvVS50KovqjU4Frz1OnV7Tcf+5sAf/iXHseuFrXnget1ncj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779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuvWvL+q5a8/6ol779qyfuv9uT9V3vy/qs9ef/Vnrz/an/kPn/35P1Xe/L+qz15/9WevP9qT95/tSfvv9qT91/tyfuv9uT9V3vy/qs9ef/Vnrz/ak/ef7Un77/ak/df7cn7r/bk/Vd78v6rPXn/1Z68/2pP3n+1J++/2pP3X+3J+6/25P1Xe/L+qz15/9WevP9qT95/tSfvv9qT91/tyfuv9uT9V3vy/qs9ef/Vnrz/ak/ef7Un77/ak/df7cn7r/bk/Vd78v6rPXn/1Z68/2pP3n+1J++/2pP3X+3J+6/25P1Xe/L+qz15/9WevP9qT95/tSfvv9qT91/tyfuv9uT9V3vy/qs9ef/Vnrz/ak/ef7Un77/ak/df7cn7r/bk/Vd78v6rPXn/1Z68/2pP3n+1J++/2pP3X+3J+6/25P1Xe/L+qz15/9WevP9qT95/tSfvv9qT91/tyfuv9uT9V3vy/qs9ef/Vnrz/ak/ef7Un77/ak/df7cn7r/bk/Vd78v6rPXn/1Z68/2pP3n+1J++/2pP3Xx3J+6+O5P1XR/L+qyN5/9XxyH3+Hsn7r47k/VdH8v6rI3n/1ZG8/+pI3n91JO+/OpL3Xx3J+6+O5P1XR/L+qyN5/9WRvP/qSN5/dSTvvzqS918dyfuvjuT9V0fy/qsjef/Vkbz/6kjef3Uk7786kvdfHcn7r47k/VdH8v6rI3n/1ZG8/+pI3n91JO+/OpL3Xx3J+6+O5P1XR/L+qyN5/9WRvP/qSN5/dSTvvzqS918dyfuvjuT9V0fy/qsjef/Vkbz/6kjef3Uk7786kvdfHcn7r47k/VdH8v6rI3n/1ZG8/+pI3n91JO+/OpL3Xx3J+6+O5P1XR/L+qyN5/9WRvP/qSN5/dSTvvzqS918dyfuvjuT9V0fy/qsjef/Vkbz/6kjef3Uk7786kvdfHcn7r47k/VdH8v6rI3n/1ZG8/+pI3n91JO+/OpL3Xx3J+6+O5P1XR/L+qyN5/9WRvP/qSN5/dSTvvzqS918dyfuvjuT9V0fy/qsjef/Vkbz/6kjef3Uk7786k/dfncn7r87k/Vdn8v6r85H7/D2T91+dyfuvzuT9V2fy/qszef/Vmbz/6kzef3Um7786k/dfncn7r87k/Vdn8v6rM3n/1Zm8/+pM3n91Ju+/OpP3X53J+6/O5P1XZ/L+qzN5/9WZvP/qTN5/dSbvvzqT91+dyfuvzuT9V2fy/qszef/Vmbz/6kzef3Um7786k/dfncn7r87k/Vdn8v6rM3n/1Zm8/+pM3n91Ju+/OpP3X53J+6/O5P1XZ/L+qzN5/9WZvP/qTN5/dSbvvzqT91+dyfuvzuT9V2fy/qszef/Vmbz/6kzef3Um7786k/dfncn7r87k/Vdn8v6rM3n/1Zm8/+pM3n91Ju+/OpP3X53J+6/O5P1XZ/L+qzN5/9WZvP/qTN5/dSbvvzqT91+dyfuvzuT9V2fy/qszef/Vmbz/6kzef3Um7786k/dfncn7r87k/Vdn8v6rM3n/1Zm8/+pM3n91Ju+/OpP3X53J+6/O5P1XZ/L+qzN5/9WZvP/qTN5/1ZP3X/Xk/Vc9ef9VT95/1R+5z9+evP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r3ry/quevP+qJ++/6sn7r5ZH8gKsp4DcJ/BTQO4j+Ckg9xn8FJD7EH4KyH0K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Yu9TwMvlclWx9x7g5XK5qtj7CfByuVxV7D0CeLlcrip23z9eLperit3Lj5fL5api9+fj5XK5qtg993i5XK4qdh89Xi6Xq4rdG4+XS+Wqztj97ni5VK7qjN3DjpdL5arOh3HJpXJVJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrX5ydaufXN3qJ1e3+snVrd65utU7V7d65+pW71zd6v1hXHKpXFXn6lbvXN3qnatbvXN1q3eubvXO1a3eubrVO1e3eufqVu9c3eqdq1u9c3Wrd65u9c7Vrd65utU7V7d65+pW71zd6p2rW71zdat3rm71ztWt3rm61TtXt3rn6lbvXN3qnatbvXN1q3eubvXO1a3eubrVO1e3eufqVu9c3eqdq1u9c3Wrd65u9c7Vrd65utU7V7d65+pW71zd6p2rW71zdat3rm71ztWt3rm61TtXt3rn6lbvXN3qnatbvXN1q3eubvXO1a3eubrVO1e3eufqVu9c3eqdq1u9c3Wrd65u9c7Vrd65utU7V7d65+pW71zd6p2rW71zdat3rm71ztWt3rm61TtXt3rn6lbvXN3qnatbvXN1q3eubvVeqH377C+5Z//9O7/JrXPuuuQWejMvy+sf8/oYyK3Uz+yRW+jN7JFb6M3skVso73rkGpfcQnnXI7dQ3vXILZR3PXIL5V2PXCZXtT4q9TN75GZ1VW8SsjqlNwmh3c9xvv4dHWffLv7Rjb/zm1zjkhva/eDlhnY/eLmh3Q9ebmj3g5cb2v3A5cbuUcbLDe1+8HJD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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":"ndpBattQGIXRvWgciu8v6ekpWymlOIlTDMYOsVMoJnuv3dIF9Mz0JN3ZNzq86/Cye/r48X1/fD2dh8ev1+Fwet5e9qfj7XQdNl+q/Xl7ftse7y/Ol+37ZXgcKw/D7vhyf2qfD8Pr/rC7P/fPbw/30SKjLqMVRuNGRpFRyWiU0SSjWUZSxChFjFLEKEVMUsQkRUxSxCRFTFLEJEVMUsQkRUxSxCRFzFLELEXMUsQsRcxSxCxFzFLELEXMUsQsRTQpokkRTYpoUkSTIpoU0aSIJkU0KaJJEYsUsUgRixSxSBGLFLFIEYsUsUgRixSxSBFdiuhSRJciuhTRpYguRXQpoksRXYroUsQqRaxSxCpFrFLEKkWsUsQqRaxSxCpFrFJENhtahVZFq5FWE61mWjVaLbTqtKI2Qm2E2gi1EWoj1EaojVAboTZCbYTaKGqjqI2iNoraKGqjqA3izJBnhkAzJJoh0gyZZgg1Q6oZYs2Qa4ZgMySbIdoM2WYIN0O6GeLNkG+GgDMknCHiDBlnCDlDyhlizpBzhqAzJJ0h6gxZZwg7Q9oZ4s6Qd4bAMySeIfIMmWcIPUPqGWLPkHuG4DMknyH6DNlnCD9D+hniz5B/hgA0JKAhAg0ZaAhBQwoaYtCQg4YgNCShIQoNWWgIQ0MaGuLQkIeGQDQkoiESDZloCEVDKhpi0ZCLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYsWuWiRixa5aJGLFrlokYuWXfO0e5520ZNctMhFi1y0yEWLXLT+20Vvp5/b9/326bC73+y9f/w4Pv+76Hs7Xn69/f1y+/c3"}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{\n abis::{function_selector::FunctionSelector, private_call_stack_item::PrivateCallStackItem},\n address::AztecAddress, constants::PRIVATE_CALL_STACK_ITEM_LENGTH\n};\n\n#[oracle(callPrivateFunction)]\nfn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> PrivateCallStackItem {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n PrivateCallStackItem::deserialize(fields)\n}\n"},"115":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{\n abis::{\n function_selector::FunctionSelector, public_call_stack_item::PublicCallStackItem,\n function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs,\n call_context::CallContext, read_request::ReadRequest, note_hash::NoteHash, nullifier::Nullifier,\n side_effect::SideEffect, global_variables::GlobalVariables, gas::Gas\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n messaging::l2_to_l1_message::L2ToL1Message, header::Header, address::AztecAddress,\n utils::reader::Reader,\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_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH\n}\n};\n\n#[oracle(enqueuePublicFunctionCall)]\nfn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nfn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\npub fn parse_public_call_stack_item_from_oracle(fields: [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH]) -> PublicCallStackItem {\n let mut reader = Reader::new(fields);\n\n // Note: Not using PublicCirclePublicInputs::deserialize here, because everything below args_hash is 0 and\n // there is no more data in fields because there is only ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE fields!\n let item = PublicCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: 0,\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0,\n end_side_effect_counter: 0,\n unencrypted_logs_hashes: [SideEffect::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n global_variables: GlobalVariables::empty(),\n prover_address: AztecAddress::zero(),\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0\n },\n is_execution_request: true\n };\n reader.finish();\n\n item\n}\n"},"136":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{GAS_LENGTH, FIXED_DA_GAS}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered, utils::reader::Reader,\n abis::gas_fees::GasFees\n};\nuse dep::std::ops::{Add, Sub};\n\nstruct Gas {\n da_gas: u32,\n l2_gas: u32,\n}\n\nimpl Gas {\n pub fn new(da_gas: u32, l2_gas: u32) -> Self {\n Self { da_gas, l2_gas }\n }\n\n pub fn tx_overhead() -> Self {\n Self { da_gas: FIXED_DA_GAS, l2_gas: 0 }\n }\n\n pub fn compute_fee(self, fees: GasFees) -> Field {\n (self.da_gas as Field) * fees.fee_per_da_gas + (self.l2_gas as Field) * fees.fee_per_l2_gas\n }\n\n pub fn is_empty(self) -> bool {\n (self.da_gas == 0) & (self.l2_gas == 0)\n }\n\n pub fn within(self, limits: Gas) -> bool {\n (self.da_gas <= limits.da_gas) & (self.l2_gas <= limits.l2_gas)\n }\n}\n\nimpl Add for Gas {\n fn add(self, other: Gas) -> Self {\n Gas::new(self.da_gas + other.da_gas, self.l2_gas + other.l2_gas)\n }\n}\n\nimpl Sub for Gas {\n fn sub(self, other: Gas) -> Self {\n Gas::new(self.da_gas - other.da_gas, self.l2_gas - other.l2_gas)\n }\n}\n\nimpl Serialize<GAS_LENGTH> for Gas {\n fn serialize(self) -> [Field; GAS_LENGTH] {\n [self.da_gas as Field, self.l2_gas as Field]\n }\n}\n\nimpl Deserialize<GAS_LENGTH> for Gas {\n fn deserialize(serialized: [Field; GAS_LENGTH]) -> Gas {\n Gas::new(serialized[0] as u32, serialized[1] as u32)\n }\n}\n\nimpl Eq for Gas {\n fn eq(self, other : Gas) -> bool {\n (self.da_gas == other.da_gas) & (self.l2_gas == other.l2_gas)\n }\n}\n\nimpl Empty for Gas {\n fn empty() -> Self {\n Gas::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Gas::empty();\n let serialized = item.serialize();\n let deserialized = Gas::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n"},"138":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/note_hash.nr","source":"use crate::{\n abis::read_request::ScopedReadRequest, address::AztecAddress,\n abis::side_effect::{Ordered, OrderedValue, Readable},\n constants::{NOTE_HASH_LENGTH, SCOPED_NOTE_HASH_LENGTH}, traits::{Empty, Serialize, Deserialize},\n utils::{arrays::array_concat, reader::Reader}\n};\nuse dep::std::cmp::Eq;\n\nstruct NoteHash {\n value: Field,\n counter: u32,\n}\n\nimpl Eq for NoteHash {\n fn eq(self, other: NoteHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter) \n }\n}\n\nimpl Empty for NoteHash {\n fn empty() -> Self {\n NoteHash {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_HASH_LENGTH> for NoteHash {\n fn serialize(self) -> [Field; NOTE_HASH_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_HASH_LENGTH> for NoteHash {\n fn deserialize(values: [Field; NOTE_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl NoteHash {\n pub fn scope(self, nullifier_counter: u32, contract_address: AztecAddress) -> ScopedNoteHash {\n ScopedNoteHash { note_hash: self, nullifier_counter, contract_address }\n }\n}\n\nstruct ScopedNoteHash {\n note_hash: NoteHash,\n nullifier_counter: u32,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedNoteHash {\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNoteHash {\n fn value(self) -> Field {\n self.note_hash.value\n }\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl Eq for ScopedNoteHash {\n fn eq(self, other: ScopedNoteHash) -> bool {\n (self.note_hash == other.note_hash)\n & (self.nullifier_counter == other.nullifier_counter)\n & (self.contract_address == other.contract_address)\n }\n}\n\nimpl Empty for ScopedNoteHash {\n fn empty() -> Self {\n ScopedNoteHash {\n note_hash: NoteHash::empty(),\n nullifier_counter: 0,\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn serialize(self) -> [Field; SCOPED_NOTE_HASH_LENGTH] {\n array_concat(self.note_hash.serialize(), [self.nullifier_counter as Field, self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn deserialize(values: [Field; SCOPED_NOTE_HASH_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n note_hash: reader.read_struct(NoteHash::deserialize),\n nullifier_counter: reader.read_u32(),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNoteHash {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.note_hash.value, read_request.value(), \"Value of the note hash does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the note hash does not match read request\");\n assert(\n read_request.counter() > self.note_hash.counter, \"Read request counter must be greater than the counter of the note hash\"\n );\n assert(\n (self.nullifier_counter == 0) | (read_request.counter() < self.nullifier_counter), \"Read request counter must be less than the nullifier counter of the note hash\"\n );\n }\n}\n\nimpl ScopedNoteHash {\n pub fn expose_to_public(self) -> NoteHash {\n // Hide the actual counter when exposing it to the public kernel.\n NoteHash { value: self.note_hash.value, counter: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NoteHash::empty();\n let serialized = item.serialize();\n let deserialized = NoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNoteHash::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"139":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_fees.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::GAS_FEES_LENGTH, hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty},\n abis::side_effect::Ordered, utils::reader::Reader\n};\n\nstruct GasFees {\n fee_per_da_gas: Field,\n fee_per_l2_gas: Field,\n}\n\nimpl GasFees {\n pub fn new(fee_per_da_gas: Field, fee_per_l2_gas: Field) -> Self {\n Self { fee_per_da_gas, fee_per_l2_gas }\n }\n\n pub fn default() -> Self {\n GasFees::new(1, 1)\n }\n\n pub fn is_empty(self) -> bool {\n (self.fee_per_da_gas == 0) & (self.fee_per_l2_gas == 0)\n }\n}\n\nimpl Serialize<GAS_FEES_LENGTH> for GasFees {\n fn serialize(self) -> [Field; GAS_FEES_LENGTH] {\n [self.fee_per_da_gas, self.fee_per_l2_gas]\n }\n}\n\nimpl Deserialize<GAS_FEES_LENGTH> for GasFees {\n fn deserialize(serialized: [Field; GAS_FEES_LENGTH]) -> GasFees {\n GasFees::new(serialized[0], serialized[1])\n }\n}\n\nimpl Eq for GasFees {\n fn eq(self, other : GasFees) -> bool {\n (self.fee_per_da_gas == other.fee_per_da_gas) & (self.fee_per_l2_gas == other.fee_per_l2_gas)\n }\n}\n\nimpl Empty for GasFees {\n fn empty() -> Self {\n GasFees::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasFees::empty();\n let serialized = item.serialize();\n let deserialized = GasFees::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"140":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr","source":"use crate::abis::{function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs};\nuse crate::address::AztecAddress;\nuse crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM;\nuse crate::traits::Hash;\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n dep::std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n let public_inputs = self.public_inputs;\n let mut request_public_inputs = PublicCircuitPublicInputs::empty();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs\n };\n call_stack_item\n }\n}\n\nmod tests {\n use crate::{\n abis::{\n function_data::FunctionData, function_selector::FunctionSelector, note_hash::NoteHash,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem, side_effect::SideEffect\n },\n address::AztecAddress, constants::GENERATOR_INDEX__CALL_STACK_ITEM, traits::Hash\n };\n\n #[test]\n fn compute_call_stack_item_request_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: true, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item request hash\" test\n let test_data_call_stack_item_request_hash = 0x1177a69fbc37f0ebdf290025414ff72504497840f174896bd427d0f30ec21c55;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_request_hash);\n }\n\n #[test]\n fn compute_call_stack_item_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: false, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item hash\" test\n let test_data_call_stack_item_hash = 0x0f7624c0d5ea65fcec318c4d34cb3fcbf9c67435aebbf1548b3c90ef641424f8;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);\n }\n}\n"},"141":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, max_block_number::MaxBlockNumber, gas_settings::GasSettings,\n nullifier_key_validation_request::NullifierKeyValidationRequest, note_hash::NoteHash,\n nullifier::Nullifier, read_request::ReadRequest, side_effect::SideEffect\n},\n constants::{\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_NEW_NOTE_HASHES_PER_CALL,\n MAX_NEW_NULLIFIERS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\n MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n header::Header, hash::pedersen_hash, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n transaction::tx_context::TxContext\n};\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: [ReadRequest; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest; MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_key_validation_requests: [NullifierKeyValidationRequest; MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL],\n\n new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack_hashes: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: Field,\n new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter : u32,\n end_side_effect_counter : u32,\n encrypted_logs_hashes: [SideEffect; MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [SideEffect; MAX_UNENCRYPTED_LOGS_PER_CALL],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n // Note: The chain_id and version here are not redundant to the values in self.historical_header.global_variables because\n // they can be different in case of a protocol upgrade. In such a situation we could be using header from a block\n // before the upgrade took place but be using the updated protocol to execute and prove the transaction.\n tx_context: TxContext,\n}\n\nimpl Eq for PrivateCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.call_context.eq(other.call_context) &\n self.args_hash.eq(other.args_hash) &\n (self.returns_hash == other.returns_hash) &\n (self.min_revertible_side_effect_counter == other.min_revertible_side_effect_counter) &\n (self.is_fee_payer == other.is_fee_payer) &\n (self.max_block_number == other.max_block_number) &\n (self.note_hash_read_requests == other.note_hash_read_requests) &\n (self.nullifier_read_requests == other.nullifier_read_requests) &\n (self.nullifier_key_validation_requests == other.nullifier_key_validation_requests) &\n (self.new_note_hashes == other.new_note_hashes) &\n (self.new_nullifiers == other.new_nullifiers) &\n (self.private_call_stack_hashes == other.private_call_stack_hashes) &\n (self.public_call_stack_hashes == other.public_call_stack_hashes) &\n (self.new_l2_to_l1_msgs == other.new_l2_to_l1_msgs) &\n (self.start_side_effect_counter == other.start_side_effect_counter) &\n (self.end_side_effect_counter == other.end_side_effect_counter) &\n (self.encrypted_logs_hashes == other.encrypted_logs_hashes) &\n (self.unencrypted_logs_hashes == other.unencrypted_logs_hashes) &\n (self.encrypted_log_preimages_length == other.encrypted_log_preimages_length) &\n (self.unencrypted_log_preimages_length == other.unencrypted_log_preimages_length) &\n self.historical_header.eq(other.historical_header) &\n self.tx_context.eq(other.tx_context)\n }\n}\n\nimpl Serialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new();\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n\n fields.push(self.min_revertible_side_effect_counter as Field);\n fields.push(if self.is_fee_payer { 1 } else { 0 } as Field);\n\n fields.extend_from_array(self.max_block_number.serialize());\n\n for i in 0..self.note_hash_read_requests.len() {\n fields.extend_from_array(self.note_hash_read_requests[i].serialize());\n }\n for i in 0..self.nullifier_read_requests.len() {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..self.nullifier_key_validation_requests.len() {\n fields.extend_from_array(self.nullifier_key_validation_requests[i].serialize());\n }\n for i in 0..self.new_note_hashes.len() {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..self.new_nullifiers.len() {\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n fields.extend_from_array(self.private_call_stack_hashes);\n fields.extend_from_array(self.public_call_stack_hashes);\n fields.push(self.public_teardown_function_hash);\n for i in 0..self.new_l2_to_l1_msgs.len() {\n fields.extend_from_array(self.new_l2_to_l1_msgs[i].serialize());\n }\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n for i in 0..self.encrypted_logs_hashes.len() {\n fields.extend_from_array(self.encrypted_logs_hashes[i].serialize());\n }\n for i in 0..self.unencrypted_logs_hashes.len() {\n fields.extend_from_array(self.unencrypted_logs_hashes[i].serialize());\n }\n fields.push(self.encrypted_log_preimages_length);\n fields.push(self.unencrypted_log_preimages_length);\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.tx_context.serialize());\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn deserialize(serialized: [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = Self {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n min_revertible_side_effect_counter: reader.read() as u32,\n is_fee_payer: reader.read() == 1,\n max_block_number: reader.read_struct(MaxBlockNumber::deserialize),\n note_hash_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]),\n nullifier_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL]),\n nullifier_key_validation_requests: reader.read_struct_array(NullifierKeyValidationRequest::deserialize, [NullifierKeyValidationRequest::empty(); MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL]),\n new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n private_call_stack_hashes: reader.read_array([0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n public_teardown_function_hash: reader.read(),\n new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n start_side_effect_counter: reader.read() as u32,\n end_side_effect_counter: reader.read() as u32,\n encrypted_logs_hashes: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_ENCRYPTED_LOGS_PER_CALL]),\n unencrypted_logs_hashes: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL]),\n encrypted_log_preimages_length: reader.read(),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n tx_context: reader.read_struct(TxContext::deserialize),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PrivateCircuitPublicInputs {\n fn empty() -> Self {\n PrivateCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\n returns_hash: 0,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_key_validation_requests: [NullifierKeyValidationRequest::empty(); MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_stack_hashes: [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter : 0 as u32,\n end_side_effect_counter : 0 as u32,\n encrypted_logs_hashes: [SideEffect::empty(); MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [SideEffect::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n encrypted_log_preimages_length: 0,\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n tx_context: TxContext::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PrivateCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PrivateCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PrivateCircuitPublicInputs::empty();\n let hash = inputs.hash();\n // Value from private_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x2517b9a84487bde68e18647e59530c6ffe4a7a88c5c556f013d09fd22b84ba35;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"143":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/global_variables.nr","source":"use dep::std::cmp::Eq;\nuse crate::{\n address::{AztecAddress, EthAddress}, abis::gas_fees::GasFees,\n constants::{GENERATOR_INDEX__GLOBAL_VARIABLES, GLOBAL_VARIABLES_LENGTH},\n traits::{Deserialize, Empty, Hash, Serialize}, utils::reader::Reader\n};\n\n// docs:start:global-variables\nstruct GlobalVariables {\n chain_id : Field,\n version : Field,\n block_number : Field,\n timestamp : u64,\n coinbase : EthAddress,\n fee_recipient : AztecAddress,\n gas_fees : GasFees\n}\n// docs:end:global-variables\n\nimpl GlobalVariables {\n fn is_empty(self) -> bool {\n (self.chain_id == 0)\n & (self.version == 0)\n & (self.block_number == 0)\n & (self.timestamp == 0)\n & (self.coinbase.is_zero())\n & (self.fee_recipient.is_zero())\n & (self.gas_fees.is_empty())\n }\n}\n\nimpl Serialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn serialize(self) -> [Field; GLOBAL_VARIABLES_LENGTH] {\n let mut serialized: BoundedVec<Field, GLOBAL_VARIABLES_LENGTH> = BoundedVec::new();\n\n serialized.push(self.chain_id);\n serialized.push(self.version);\n serialized.push(self.block_number);\n serialized.push(self.timestamp as Field);\n serialized.push(self.coinbase.to_field());\n serialized.push(self.fee_recipient.to_field());\n serialized.extend_from_array(self.gas_fees.serialize());\n\n serialized.storage\n }\n}\n\nimpl Deserialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn deserialize(serialized: [Field; GLOBAL_VARIABLES_LENGTH]) -> GlobalVariables {\n let mut reader = Reader::new(serialized);\n GlobalVariables {\n chain_id: reader.read(),\n version: reader.read(),\n block_number: reader.read(),\n timestamp: reader.read() as u64,\n coinbase: EthAddress::from_field(reader.read()),\n fee_recipient: AztecAddress::from_field(reader.read()),\n gas_fees: reader.read_struct(GasFees::deserialize)\n }\n }\n}\n\nimpl Eq for GlobalVariables {\n fn eq(self, other : GlobalVariables) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.block_number == other.block_number) &\n (self.timestamp == other.timestamp) &\n (self.coinbase == other.coinbase) &\n (self.fee_recipient == other.fee_recipient) &\n (self.gas_fees == other.gas_fees) \n }\n}\n\nimpl Empty for GlobalVariables {\n fn empty() -> Self {\n Self {\n chain_id: 0,\n version: 0,\n block_number: 0,\n timestamp: 0,\n coinbase: EthAddress::empty(),\n fee_recipient: AztecAddress::empty(),\n gas_fees: GasFees::empty()\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let vars = GlobalVariables::empty();\n let _serialized = vars.serialize();\n let _deserialized = GlobalVariables::deserialize(_serialized);\n}\n"},"144":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/read_request.nr","source":"use crate::{\n traits::{Empty, Serialize, Deserialize}, address::AztecAddress,\n constants::{READ_REQUEST_LENGTH, SCOPED_READ_REQUEST_LEN},\n utils::{arrays::array_concat, reader::Reader}\n};\nuse dep::std::cmp::Eq;\n\nstruct ReadRequest {\n value: Field,\n counter: u32,\n}\n\nimpl Eq for ReadRequest {\n fn eq(self, read_request: ReadRequest) -> bool {\n (self.value == read_request.value)\n & (self.counter == read_request.counter)\n }\n}\n\nimpl Empty for ReadRequest {\n fn empty() -> Self {\n ReadRequest {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn serialize(self) -> [Field; READ_REQUEST_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn deserialize(values: [Field; READ_REQUEST_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl ReadRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedReadRequest {\n ScopedReadRequest { read_request: self, contract_address }\n }\n}\n\nstruct ScopedReadRequest {\n read_request: ReadRequest,\n contract_address: AztecAddress,\n}\n\nimpl Eq for ScopedReadRequest {\n fn eq(self, other: ScopedReadRequest) -> bool {\n (self.read_request == other.read_request)\n & (self.contract_address.eq(other.contract_address))\n }\n}\n\nimpl Empty for ScopedReadRequest {\n fn empty() -> Self {\n ScopedReadRequest {\n read_request: ReadRequest::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn serialize(self) -> [Field; SCOPED_READ_REQUEST_LEN] {\n array_concat(self.read_request.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn deserialize(values: [Field; SCOPED_READ_REQUEST_LEN]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n read_request: reader.read_struct(ReadRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl ScopedReadRequest {\n pub fn value(self) -> Field {\n self.read_request.value\n }\n pub fn counter(self) -> u32 {\n self.read_request.counter\n }\n}\n\n#[test]\nfn serialization_of_empty_read() {\n let item = ReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"148":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier.nr","source":"use crate::{\n abis::{side_effect::{Ordered, OrderedValue, Readable}, read_request::ScopedReadRequest},\n address::AztecAddress, constants::{NULLIFIER_LENGTH, SCOPED_NULLIFIER_LENGTH}, hash::silo_nullifier,\n traits::{Empty, Hash, Serialize, Deserialize}, utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct Nullifier {\n value: Field,\n counter: u32,\n note_hash: Field,\n}\n\nimpl OrderedValue<Field> for Nullifier {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for Nullifier {\n fn eq(self, other: Nullifier) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.note_hash == other.note_hash) \n }\n}\n\nimpl Empty for Nullifier {\n fn empty() -> Self {\n Nullifier {\n value: 0,\n counter: 0,\n note_hash: 0,\n }\n }\n}\n\nimpl Serialize<NULLIFIER_LENGTH> for Nullifier {\n fn serialize(self) -> [Field; NULLIFIER_LENGTH] {\n [self.value, self.counter as Field, self.note_hash]\n }\n}\n\nimpl Deserialize<NULLIFIER_LENGTH> for Nullifier {\n fn deserialize(values: [Field; NULLIFIER_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n note_hash: values[2],\n }\n }\n}\n\nimpl Readable for Nullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n // Public kernels output Nullifier instead of ScopedNullifier.\n // The nullifier value has been siloed.\n let siloed_request_value = silo_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.value, siloed_request_value, \"Value of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl Nullifier {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedNullifier {\n ScopedNullifier { nullifier: self, contract_address }\n }\n}\n\nstruct ScopedNullifier {\n nullifier: Nullifier,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedNullifier {\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNullifier {\n fn value(self) -> Field {\n self.nullifier.value\n }\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl Eq for ScopedNullifier {\n fn eq(self, other: ScopedNullifier) -> bool {\n (self.nullifier == other.nullifier)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedNullifier {\n fn empty() -> Self {\n ScopedNullifier {\n nullifier: Nullifier::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn serialize(self) -> [Field; SCOPED_NULLIFIER_LENGTH] {\n array_concat(self.nullifier.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn deserialize(values: [Field; SCOPED_NULLIFIER_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n nullifier: reader.read_struct(Nullifier::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.nullifier.value, read_request.value(), \"Value of the nullifier does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.nullifier.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl ScopedNullifier {\n pub fn nullified_note_hash(self) -> Field {\n self.nullifier.note_hash\n }\n\n pub fn expose_to_public(self) -> Nullifier {\n // Hide the actual counter and note hash when exposing it to the public kernel.\n Nullifier { value: self.nullifier.value, counter: 0, note_hash: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Nullifier::empty();\n let serialized = item.serialize();\n let deserialized = Nullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNullifier::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"157":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_key_validation_request.nr","source":"use dep::std::cmp::Eq;\nuse crate::{\n address::AztecAddress,\n constants::{SCOPED_NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH, NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, grumpkin_point::GrumpkinPoint,\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct NullifierKeyValidationRequest {\n master_nullifier_public_key: GrumpkinPoint,\n app_nullifier_secret_key: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for NullifierKeyValidationRequest {\n fn eq(self, request: NullifierKeyValidationRequest) -> bool {\n (request.master_nullifier_public_key.eq(self.master_nullifier_public_key))\n & (request.app_nullifier_secret_key.eq(self.app_nullifier_secret_key))\n }\n}\n\nimpl Empty for NullifierKeyValidationRequest {\n fn empty() -> Self {\n NullifierKeyValidationRequest {\n master_nullifier_public_key: GrumpkinPoint::zero(),\n app_nullifier_secret_key: 0,\n }\n }\n}\n\nimpl Serialize<NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH> for NullifierKeyValidationRequest {\n fn serialize(self) -> [Field; NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.master_nullifier_public_key.x,\n self.master_nullifier_public_key.y,\n self.app_nullifier_secret_key,\n ]\n }\n}\n\nimpl Deserialize<NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH> for NullifierKeyValidationRequest {\n fn deserialize(fields: [Field; NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n master_nullifier_public_key: GrumpkinPoint::new(fields[0], fields[1]),\n app_nullifier_secret_key: fields[2],\n }\n }\n}\n\nimpl NullifierKeyValidationRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedNullifierKeyValidationRequest {\n ScopedNullifierKeyValidationRequest { request: self, contract_address }\n }\n}\n\nstruct ScopedNullifierKeyValidationRequest {\n request: NullifierKeyValidationRequest,\n contract_address: AztecAddress,\n}\n\nimpl Eq for ScopedNullifierKeyValidationRequest {\n fn eq(self, other: ScopedNullifierKeyValidationRequest) -> bool {\n (self.request.eq(other.request))\n & (self.contract_address.eq(other.contract_address))\n }\n}\n\nimpl Empty for ScopedNullifierKeyValidationRequest {\n fn empty() -> Self {\n ScopedNullifierKeyValidationRequest {\n request: NullifierKeyValidationRequest::empty(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH> for ScopedNullifierKeyValidationRequest {\n fn serialize(self) -> [Field; SCOPED_NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH] {\n array_concat(self.request.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH> for ScopedNullifierKeyValidationRequest {\n fn deserialize(fields: [Field; SCOPED_NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n let mut reader = Reader::new(fields);\n let res = Self {\n request: reader.read_struct(NullifierKeyValidationRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = ScopedNullifierKeyValidationRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNullifierKeyValidationRequest::deserialize(serialized);\n assert(item.eq(deserialized));\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"},"163":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_settings.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress}, abis::gas::Gas,\n abis::gas_fees::GasFees,\n constants::{\n GAS_SETTINGS_LENGTH, DEFAULT_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_MAX_FEE_PER_GAS,\n DEFAULT_INCLUSION_FEE\n},\n hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n utils::reader::Reader\n};\n\nstruct GasSettings {\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field,\n}\n\nimpl GasSettings {\n pub fn new(\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field\n ) -> Self {\n Self { gas_limits, teardown_gas_limits, max_fees_per_gas, inclusion_fee }\n }\n\n pub fn default() -> Self {\n GasSettings::new(\n Gas::new(DEFAULT_GAS_LIMIT, DEFAULT_GAS_LIMIT),\n Gas::new(DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT),\n GasFees::new(DEFAULT_MAX_FEE_PER_GAS, DEFAULT_MAX_FEE_PER_GAS),\n DEFAULT_INCLUSION_FEE\n )\n }\n}\n\nimpl Eq for GasSettings {\n fn eq(self, other: Self) -> bool {\n (self.gas_limits == other.gas_limits) & (self.teardown_gas_limits == other.teardown_gas_limits) & (self.max_fees_per_gas == other.max_fees_per_gas) & (self.inclusion_fee == other.inclusion_fee)\n }\n}\n\nimpl Empty for GasSettings {\n fn empty() -> Self {\n GasSettings::new(\n Gas::empty(), Gas::empty(), GasFees::empty(), 0\n )\n }\n}\n\nimpl Serialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn serialize(self) -> [Field; GAS_SETTINGS_LENGTH] {\n let mut serialized: BoundedVec<Field, GAS_SETTINGS_LENGTH> = BoundedVec::new();\n\n serialized.extend_from_array(self.gas_limits.serialize());\n serialized.extend_from_array(self.teardown_gas_limits.serialize());\n serialized.extend_from_array(self.max_fees_per_gas.serialize());\n serialized.push(self.inclusion_fee);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn deserialize(serialized: [Field; GAS_SETTINGS_LENGTH]) -> GasSettings {\n let mut reader = Reader::new(serialized);\n GasSettings::new(reader.read_struct(Gas::deserialize), reader.read_struct(Gas::deserialize), reader.read_struct(GasFees::deserialize), reader.read())\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasSettings::empty();\n let serialized = item.serialize();\n let deserialized = GasSettings::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"164":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/side_effect.nr","source":"use crate::{\n abis::read_request::ScopedReadRequest, address::AztecAddress,\n constants::{GENERATOR_INDEX__SIDE_EFFECT, SIDE_EFFECT_LENGTH},\n traits::{Empty, Hash, Serialize, Deserialize}\n};\nuse dep::std::cmp::Eq;\n\ntrait Ordered {\n fn counter(self) -> u32;\n}\n\ntrait OrderedValue<T> where T: Eq {\n fn value(self) -> T;\n fn counter(self) -> u32;\n}\n\ntrait Readable {\n fn assert_match_read_request(self, read_request: ScopedReadRequest);\n}\n\nstruct SideEffect {\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for SideEffect {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for SideEffect {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for SideEffect {\n fn eq(self, side_effect: SideEffect) -> bool {\n (self.value == side_effect.value)\n & (self.counter == side_effect.counter)\n }\n}\n\nimpl Empty for SideEffect {\n fn empty() -> Self {\n SideEffect {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Hash for SideEffect {\n fn hash(self) -> Field {\n dep::std::hash::pedersen_hash_with_separator(\n self.serialize() , GENERATOR_INDEX__SIDE_EFFECT)\n }\n}\n\nimpl Serialize<SIDE_EFFECT_LENGTH> for SideEffect {\n fn serialize(self) -> [Field; SIDE_EFFECT_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<SIDE_EFFECT_LENGTH> for SideEffect {\n fn deserialize(values: [Field; SIDE_EFFECT_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = SideEffect::empty();\n let serialized = item.serialize();\n let deserialized = SideEffect::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"172":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr","source":"use crate::{\n abis::{function_data::FunctionData, private_circuit_public_inputs::PrivateCircuitPublicInputs},\n address::AztecAddress,\n constants::{GENERATOR_INDEX__CALL_STACK_ITEM, PRIVATE_CALL_STACK_ITEM_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader\n};\n\nstruct PrivateCallStackItem {\n // This is the _actual_ contract address relating to where this function's code resides in the\n // contract tree. Regardless of whether this is a call or delegatecall, this\n // `contract_address` _does not change_. Amongst other things, it's used as a lookup for\n // getting the correct code from the tree. There is a separate `storage_contract_address`\n // within a CallStackItem which varies depending on whether this is a call or delegatecall.\n contract_address: AztecAddress,\n function_data: FunctionData,\n public_inputs: PrivateCircuitPublicInputs,\n}\n\nimpl Eq for PrivateCallStackItem {\n fn eq(self, other: Self) -> bool {\n self.contract_address.eq(other.contract_address) &\n self.function_data.eq(other.function_data) &\n self.public_inputs.eq(other.public_inputs)\n }\n}\n\nimpl Serialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn serialize(self) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_STACK_ITEM_LENGTH> = BoundedVec::new();\n\n fields.push(self.contract_address.to_field());\n fields.extend_from_array(self.function_data.serialize());\n fields.extend_from_array(self.public_inputs.serialize());\n\n assert_eq(fields.len(), PRIVATE_CALL_STACK_ITEM_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn deserialize(serialized: [Field; PRIVATE_CALL_STACK_ITEM_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let item = Self {\n contract_address: reader.read_struct(AztecAddress::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: reader.read_struct(PrivateCircuitPublicInputs::deserialize),\n };\n\n reader.finish();\n item\n }\n}\n\nimpl Hash for PrivateCallStackItem {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl Empty for PrivateCallStackItem {\n fn empty() -> Self {\n PrivateCallStackItem {\n contract_address: AztecAddress::empty(),\n function_data: FunctionData::empty(),\n public_inputs: PrivateCircuitPublicInputs::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = PrivateCallStackItem::empty();\n let serialized = item.serialize();\n let deserialized = PrivateCallStackItem::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let mut item = PrivateCallStackItem::empty();\n item.function_data.is_private = true;\n let hash = item.hash();\n\n // Value from private_call_stack_item.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x138c6ad441864ce43487e99d5e1e122c38b4b55d893edec04a32f5aacecc856c;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"177":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/append_only_tree_snapshot.nr","source":"use dep::std::cmp::Eq;\n\nstruct AppendOnlyTreeSnapshot {\n root : Field,\n // TODO(Alvaro) change this to a u64\n next_available_leaf_index : u32\n}\n\nglobal APPEND_ONLY_TREE_SNAPSHOT_LENGTH: u64 = 2;\n\nimpl AppendOnlyTreeSnapshot {\n pub fn serialize(self) -> [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH] {\n [self.root, self.next_available_leaf_index as Field]\n }\n\n pub fn deserialize(serialized: [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH]) -> AppendOnlyTreeSnapshot {\n AppendOnlyTreeSnapshot { root: serialized[0], next_available_leaf_index: serialized[1] as u32 }\n }\n\n pub fn zero() -> Self {\n Self { root: 0, next_available_leaf_index: 0 }\n }\n}\n\nimpl Eq for AppendOnlyTreeSnapshot {\n fn eq(self, other : AppendOnlyTreeSnapshot) -> bool {\n (self.root == other.root) & (self.next_available_leaf_index == other.next_available_leaf_index)\n }\n}\n"},"178":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{CALL_CONTEXT_LENGTH, GENERATOR_INDEX__CALL_CONTEXT}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n abis::{gas_settings::GasSettings, gas::Gas}, utils::reader::Reader\n};\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n\n side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl CallContext {\n fn assert_is_zero(self) {\n let serialized: [Field; CALL_CONTEXT_LENGTH] = self.serialize();\n\n for i in 0..CALL_CONTEXT_LENGTH {\n assert(serialized[i] == 0);\n }\n }\n}\n\nimpl Eq for CallContext {\n fn eq(self, other: CallContext) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl Serialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n let mut serialized: BoundedVec<Field, CALL_CONTEXT_LENGTH> = BoundedVec::new();\n\n serialized.push(self.msg_sender.to_field());\n serialized.push(self.storage_contract_address.to_field());\n serialized.push(self.function_selector.to_field());\n serialized.push(self.is_delegate_call as Field);\n serialized.push(self.is_static_call as Field);\n serialized.push(self.side_effect_counter as Field);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn deserialize(serialized: [Field; CALL_CONTEXT_LENGTH]) -> CallContext {\n let mut reader = Reader::new(serialized);\n CallContext {\n msg_sender: AztecAddress::from_field(reader.read()),\n storage_contract_address: AztecAddress::from_field(reader.read()),\n function_selector: FunctionSelector::from_field(reader.read()),\n is_delegate_call: reader.read() as bool,\n is_static_call: reader.read() as bool,\n side_effect_counter: reader.read() as u32,\n }\n }\n}\n\nimpl Empty for CallContext {\n fn empty() -> Self {\n CallContext {\n msg_sender: AztecAddress::empty(),\n storage_contract_address: AztecAddress::empty(),\n function_selector: FunctionSelector::empty(),\n is_delegate_call: false,\n is_static_call: false,\n side_effect_counter: 0,\n }\n }\n}\n\n#[test]\nfn serialize_deserialize_of_empty() {\n let context = CallContext::empty();\n let serialized = context.serialize();\n let deserialized = CallContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn assert_is_zero() {\n let context = CallContext::empty();\n context.assert_is_zero();\n}\n\n#[test(should_fail)]\nfn not_zero_assert_is_zero() {\n let mut context = CallContext::empty();\n context.is_delegate_call = true;\n context.assert_is_zero();\n}\n\n#[test]\nfn test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = true;\n\n let address: AztecAddress = AztecAddress::from_field(69420);\n context1.msg_sender = address;\n context2.msg_sender = address;\n\n assert(context1.eq(context2));\n}\n\n#[test(should_fail)]\nfn not_eq_test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = false;\n\n let address1: AztecAddress = AztecAddress::from_field(69420);\n let address2: AztecAddress = AztecAddress::from_field(42069);\n\n context1.msg_sender = address1;\n context2.msg_sender = address2;\n\n assert(context1.eq(context2));\n}\n\n#[test]\nfn hash_smoke() {\n let context = CallContext::empty();\n let _hashed = context.hash();\n}\n"},"179":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr","source":"use crate::{constants::MAX_BLOCK_NUMBER_LENGTH, traits::{Deserialize, Serialize, Empty}};\n\nstruct MaxBlockNumber {\n _opt: Option<u32>\n}\n\nimpl Empty for MaxBlockNumber {\n fn empty() -> Self {\n Self { _opt: Option::none() }\n }\n}\n\nimpl Eq for MaxBlockNumber {\n fn eq(self, other: Self) -> bool {\n self._opt == other._opt\n }\n}\n\nimpl Serialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn serialize(self) -> [Field; MAX_BLOCK_NUMBER_LENGTH] {\n [self._opt._is_some as Field, self._opt._value as Field]\n }\n}\n\nimpl Deserialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn deserialize(serialized: [Field; MAX_BLOCK_NUMBER_LENGTH]) -> MaxBlockNumber {\n MaxBlockNumber {\n _opt: Option {\n _is_some: serialized[0] as bool,\n _value: serialized[1] as u32,\n }\n }\n }\n}\n\nimpl MaxBlockNumber {\n pub fn new(max_block_number: u32) -> Self {\n Self { _opt: Option::some(max_block_number) }\n }\n\n pub fn is_none(self) -> bool {\n self._opt.is_none()\n }\n\n pub fn is_some(self) -> bool {\n self._opt.is_some()\n }\n\n pub fn unwrap(self) -> u32 {\n self._opt.unwrap()\n }\n\n pub fn unwrap_unchecked(self) -> u32 {\n self._opt.unwrap_unchecked()\n }\n\n pub fn min(lhs: MaxBlockNumber, rhs: MaxBlockNumber) -> MaxBlockNumber {\n if rhs.is_none() {\n lhs // lhs might also be none, but in that case both would be\n } else {\n MaxBlockNumber::min_with_u32(lhs, rhs.unwrap_unchecked())\n }\n }\n\n pub fn min_with_u32(lhs: MaxBlockNumber, rhs: u32) -> MaxBlockNumber {\n if lhs._opt.is_none() {\n MaxBlockNumber::new(rhs)\n } else {\n let lhs_value = lhs._opt.unwrap_unchecked();\n\n MaxBlockNumber::new(if lhs_value < rhs { lhs_value } else { rhs })\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = MaxBlockNumber::empty();\n let serialized = item.serialize();\n let deserialized = MaxBlockNumber::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn zeroed_is_none() {\n // Large parts of the kernel rely on zeroed to initialize structs. This conveniently matches what `default` does,\n // and though we should eventually move everything to use `default`, it's good to check for now that both are\n // equivalent.\n let a = MaxBlockNumber::empty();\n assert(a.is_none());\n}\n\n#[test]\nfn serde_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert(b.is_none());\n}\n\n#[test]\nfn serde_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert_eq(b.unwrap(), 13);\n}\n\n#[test(should_fail)]\nfn default_unwrap_panics() {\n let a = MaxBlockNumber::empty();\n let _ = a.unwrap();\n}\n\n#[test]\nfn min_default_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::empty();\n\n assert(MaxBlockNumber::min(a, b).is_none());\n}\n\n#[test]\nfn min_default_some() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::new(13);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_some_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::new(42);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_with_u32_default() {\n let a = MaxBlockNumber::empty();\n let b = 42;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 42);\n}\n\n#[test]\nfn min_with_u32_some() {\n let a = MaxBlockNumber::new(13);\n let b = 42;\n let c = 8;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min_with_u32(a, c).unwrap(), 8);\n}\n"},"180":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, note_hash::NoteHash, nullifier::Nullifier, read_request::ReadRequest,\n side_effect::SideEffect, gas::Gas, global_variables::GlobalVariables\n},\n address::AztecAddress,\n constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL, MAX_NEW_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n hash::pedersen_hash, header::Header, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Hash, Serialize, Deserialize, Empty}, utils::reader::Reader\n};\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\n\n nullifier_read_requests: [ReadRequest; MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest; MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n\n unencrypted_logs_hashes: [SideEffect; MAX_UNENCRYPTED_LOGS_PER_CALL],\n\n // Here so that the gas cost of this request can be measured by circuits, without actually needing to feed in the\n // variable-length data.\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\n // Global variables injected into this circuit\n global_variables: GlobalVariables,\n\n prover_address: AztecAddress,\n\n revert_code: u8,\n \n start_gas_left: Gas,\n end_gas_left: Gas,\n transaction_fee: Field,\n}\n\nimpl Eq for PublicCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Serialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new();\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n for i in 0..MAX_NULLIFIER_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_non_existent_read_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.extend_from_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.extend_from_array(self.contract_storage_reads[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_NOTE_HASHES_PER_CALL {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL {\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n for i in 0..MAX_NEW_L2_TO_L1_MSGS_PER_CALL {\n fields.extend_from_array(self.new_l2_to_l1_msgs[i].serialize());\n }\n\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n\n for i in 0..MAX_UNENCRYPTED_LOGS_PER_CALL{\n fields.extend_from_array(self.unencrypted_logs_hashes[i].serialize());\n }\n fields.push(self.unencrypted_log_preimages_length);\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n fields.push(self.prover_address.to_field());\n fields.push(self.revert_code as Field);\n fields.extend_from_array(self.start_gas_left.serialize());\n fields.extend_from_array(self.end_gas_left.serialize());\n fields.push(self.transaction_fee);\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn deserialize(serialized: [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n nullifier_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL]),\n nullifier_non_existent_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL]),\n contract_storage_update_requests: reader.read_struct_array(StorageUpdateRequest::deserialize, [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL]),\n contract_storage_reads: reader.read_struct_array(StorageRead::deserialize, [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n start_side_effect_counter: reader.read() as u32,\n end_side_effect_counter: reader.read() as u32,\n unencrypted_logs_hashes: reader.read_struct_array(SideEffect::deserialize, [SideEffect::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL]),\n unencrypted_log_preimages_length: reader.read(),\n historical_header: reader.read_struct(Header::deserialize),\n global_variables: reader.read_struct(GlobalVariables::deserialize),\n prover_address: reader.read_struct(AztecAddress::deserialize),\n revert_code: reader.read() as u8,\n start_gas_left: reader.read_struct(Gas::deserialize),\n end_gas_left: reader.read_struct(Gas::deserialize),\n transaction_fee: reader.read(),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PublicCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PublicCircuitPublicInputs {\n fn empty() -> Self {\n PublicCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\n returns_hash: 0,\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0 as u32,\n end_side_effect_counter: 0 as u32,\n unencrypted_logs_hashes: [SideEffect::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n unencrypted_log_preimages_length: 0,\n historical_header: Header::empty(),\n global_variables: GlobalVariables::empty(),\n prover_address: AztecAddress::zero(),\n revert_code: 0 as u8,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PublicCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PublicCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PublicCircuitPublicInputs::empty();\n let hash = inputs.hash();\n\n // Value from public_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x132559f41b7adc7388e0cd52b91fd6837c296b2f9ec1b6d2ed046f7a56db18f8;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"182":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_data.nr","source":"use crate::{\n abis::function_selector::FunctionSelector,\n constants::{GENERATOR_INDEX__FUNCTION_DATA, FUNCTION_DATA_LENGTH}, hash::pedersen_hash,\n traits::{Serialize, Hash, Deserialize, Empty}\n};\n\nstruct FunctionData {\n selector : FunctionSelector,\n is_private : bool,\n}\n\nimpl Eq for FunctionData {\n fn eq(self, other: Self) -> bool {\n self.selector.eq(other.selector) &\n self.is_private == other.is_private\n }\n}\n\nimpl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn serialize(self) -> [Field; FUNCTION_DATA_LENGTH] {\n [\n self.selector.to_field(),\n self.is_private as Field,\n ]\n }\n}\n\nimpl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {\n fn deserialize(serialized: [Field; FUNCTION_DATA_LENGTH]) -> Self {\n Self {\n selector: FunctionSelector::from_field(serialized[0]),\n is_private: serialized[1] as bool,\n }\n }\n}\n\nimpl Hash for FunctionData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n\nimpl Empty for FunctionData {\n fn empty() -> Self {\n FunctionData {\n selector: FunctionSelector::empty(),\n is_private: false,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let data = FunctionData::empty();\n let serialized = data.serialize();\n let deserialized = FunctionData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let data = FunctionData::empty();\n let hash = data.hash();\n\n // Value from function_data.test.ts \"computes empty function data hash\" test\n let test_data_empty_hash = 0x27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed;\n assert_eq(hash, test_data_empty_hash);\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"},"187":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/messaging/l2_to_l1_message.nr","source":"use crate::{\n address::{AztecAddress, EthAddress},\n constants::{L2_TO_L1_MESSAGE_LENGTH, SCOPED_L2_TO_L1_MESSAGE_LENGTH}, abis::side_effect::Ordered,\n traits::{Deserialize, Empty, Serialize}, utils::{arrays::array_concat, reader::Reader}\n};\n\n// Note: Not to be confused with L2ToL1Msg in Solidity\nstruct L2ToL1Message {\n recipient: EthAddress,\n content: Field,\n counter: u32,\n}\n\nimpl Empty for L2ToL1Message {\n fn empty() -> Self {\n Self {\n recipient: EthAddress::empty(),\n content: 0,\n counter: 0,\n }\n }\n}\n\nimpl Eq for L2ToL1Message {\n fn eq(self, other: Self) -> bool {\n (self.recipient == other.recipient) & (self.content == other.content) & (self.counter == other.counter)\n }\n}\n\nimpl Serialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn serialize(self) -> [Field; L2_TO_L1_MESSAGE_LENGTH] {\n [self.recipient.to_field(), self.content, self.counter as Field]\n }\n}\n\nimpl Deserialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn deserialize(values: [Field; L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n Self {\n recipient: EthAddress::from_field(values[0]),\n content: values[1],\n counter: values[2] as u32,\n }\n }\n}\n\nimpl L2ToL1Message {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedL2ToL1Message {\n ScopedL2ToL1Message { message: self, contract_address }\n }\n}\n\nstruct ScopedL2ToL1Message {\n message: L2ToL1Message,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedL2ToL1Message {\n fn counter(self) -> u32 {\n self.message.counter\n }\n}\n\nimpl Eq for ScopedL2ToL1Message {\n fn eq(self, other: ScopedL2ToL1Message) -> bool {\n (self.message == other.message)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedL2ToL1Message {\n fn empty() -> Self {\n ScopedL2ToL1Message {\n message: L2ToL1Message::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn serialize(self) -> [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH] {\n array_concat(self.message.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn deserialize(values: [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n message: reader.read_struct(L2ToL1Message::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\n#[test]\nfn serialization_of_empty_l2() {\n let item = L2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = L2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped_l2() {\n let item = ScopedL2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = ScopedL2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\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"},"199":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/content_commitment.nr","source":"use crate::{\n constants::CONTENT_COMMITMENT_LENGTH, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct ContentCommitment {\n tx_tree_height: Field,\n txs_effects_hash: Field,\n in_hash: Field,\n out_hash: Field,\n}\n\nimpl Serialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn serialize(self) -> [Field; CONTENT_COMMITMENT_LENGTH] {\n let mut fields: BoundedVec<Field, CONTENT_COMMITMENT_LENGTH> = BoundedVec::new();\n\n fields.push(self.tx_tree_height);\n fields.push(self.txs_effects_hash);\n fields.push(self.in_hash);\n fields.push(self.out_hash);\n\n fields.storage\n }\n}\n\nimpl Deserialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn deserialize(serialized: [Field; CONTENT_COMMITMENT_LENGTH]) -> Self {\n let tx_tree_height = serialized[0];\n\n let txs_effects_hash = serialized[1];\n\n let in_hash = serialized[2];\n\n let out_hash = serialized[3];\n\n Self {\n tx_tree_height,\n txs_effects_hash,\n in_hash,\n out_hash,\n }\n }\n}\n\nimpl Empty for ContentCommitment {\n fn empty() -> Self {\n Self {\n tx_tree_height: 0,\n txs_effects_hash: 0,\n in_hash: 0,\n out_hash: 0,\n }\n }\n}\n\nimpl Eq for ContentCommitment {\n fn eq(self, other: Self) -> bool {\n (self.tx_tree_height == other.tx_tree_height)\n & (self.txs_effects_hash == other.txs_effects_hash)\n & (self.in_hash == other.in_hash)\n & (self.out_hash == other.out_hash)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let empty = ContentCommitment::empty();\n let serialized = empty.serialize();\n let deserialized = ContentCommitment::deserialize(serialized);\n\n assert(empty.eq(deserialized));\n}\n"},"202":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/header.nr","source":"use crate::{\n abis::{\n append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n global_variables::{GlobalVariables, GLOBAL_VARIABLES_LENGTH}\n},\n constants::{GENERATOR_INDEX__BLOCK_HASH, HEADER_LENGTH, STATE_REFERENCE_LENGTH, CONTENT_COMMITMENT_LENGTH},\n hash::pedersen_hash, state_reference::StateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice, content_commitment::ContentCommitment\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n content_commitment: ContentCommitment,\n state: StateReference,\n global_variables: GlobalVariables,\n}\n// docs:end:header\n\nimpl Eq for Header {\n fn eq(self, other: Self) -> bool {\n self.last_archive.eq(other.last_archive) &\n self.content_commitment.eq(other.content_commitment) &\n self.state.eq(other.state) &\n self.global_variables.eq(other.global_variables)\n }\n}\n\nimpl Serialize<HEADER_LENGTH> for Header {\n fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.last_archive.serialize());\n fields.extend_from_array(self.content_commitment.serialize());\n fields.extend_from_array(self.state.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<HEADER_LENGTH> for Header {\n fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let content_commitment_fields = arr_copy_slice(serialized, [0; CONTENT_COMMITMENT_LENGTH], offset);\n offset = offset + CONTENT_COMMITMENT_LENGTH;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n content_commitment: ContentCommitment::deserialize(content_commitment_fields),\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n }\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n content_commitment: ContentCommitment::empty(),\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n }\n }\n}\n\nimpl Hash for Header {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header = Header::empty();\n let serialized = header.serialize();\n let deserialized = Header::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let header = Header::empty();\n let _hashed = header.hash();\n}\n\n#[test]\nfn empty_hash_is_zero() {\n let header = Header::empty();\n let hash = header.hash();\n\n // Value from new_contract_data.test.ts \"computes empty hash\" test\n let test_data_empty_hash = 0x2b2525fb1ae91c903827b8055b9ffaf8444ddf4c2b4dce4a79a3cba426bfbd73;\n assert_eq(hash, test_data_empty_hash);\n}\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"},"204":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/partial_state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Serialize}\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nimpl Eq for PartialStateReference {\n fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n}\n\nimpl Serialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0], \n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n}\n\nimpl Deserialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let partial = PartialStateReference::empty();\n let _serialized = partial.serialize();\n let _deserialized = PartialStateReference::deserialize(_serialized);\n}\n"},"206":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/transaction/tx_context.nr","source":"use crate::{\n constants::{GENERATOR_INDEX__TX_CONTEXT, TX_CONTEXT_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n abis::gas_settings::GasSettings\n};\n\n// docs:start:tx-context\nstruct TxContext {\n chain_id : Field,\n version : Field,\n gas_settings: GasSettings,\n}\n// docs:end:tx-context\n\nimpl TxContext {\n pub fn new(chain_id: Field, version: Field, gas_settings: GasSettings) -> Self {\n TxContext { chain_id, version, gas_settings }\n }\n}\n\nimpl Eq for TxContext {\n fn eq(self, other: Self) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.gas_settings.eq(other.gas_settings))\n }\n}\n\nimpl Empty for TxContext {\n fn empty() -> Self {\n TxContext {\n chain_id: 0,\n version: 0,\n gas_settings: GasSettings::empty(),\n }\n }\n}\n\nimpl Serialize<TX_CONTEXT_LENGTH> for TxContext {\n fn serialize(self) -> [Field; TX_CONTEXT_LENGTH] {\n let mut fields: BoundedVec<Field, TX_CONTEXT_LENGTH> = BoundedVec::new();\n\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.extend_from_array(self.gas_settings.serialize());\n\n assert_eq(fields.len(), TX_CONTEXT_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<TX_CONTEXT_LENGTH> for TxContext {\n fn deserialize(serialized: [Field; TX_CONTEXT_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let context = Self {\n chain_id: reader.read(),\n version: reader.read(),\n gas_settings: reader.read_struct(GasSettings::deserialize),\n };\n\n reader.finish();\n context\n }\n}\n\nimpl Hash for TxContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__TX_CONTEXT)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let context = TxContext::empty();\n let serialized = context.serialize();\n let deserialized = TxContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let context = TxContext::empty();\n let hash = context.hash();\n\n // Value from tx_context.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x17e4357684c5a4349b4587c95b0b6161dcb4a3c5b02d4eb2ecc3b02c80193261;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"212":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n constants::{PARTIAL_STATE_REFERENCE_LENGTH, STATE_REFERENCE_LENGTH},\n partial_state_reference::PartialStateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nimpl Eq for StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n}\n\nimpl Serialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.l1_to_l2_message_tree.serialize());\n fields.extend_from_array(self.partial.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let state = StateReference::empty();\n let _serialized = state.serialize();\n let _deserialized = StateReference::deserialize(_serialized);\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"},"222":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<N> {\n data: [Field; N],\n offset: u64,\n}\n\nimpl<N> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_array<K>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, K>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, K, C>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"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"},"328":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"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"},"52":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::pedersen_hash, traits::{Hash, Serialize}};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 17;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 420;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n pedersen_hash(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n false,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n false,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"76":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, interface::ContextInterface},\n messaging::process_l1_to_l2_message,\n hash::{hash_args_array, ArgsHasher, compute_encrypted_log_hash, compute_unencrypted_log_hash},\n oracle::{\n arguments, returns, call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, set_public_teardown_function_call_internal,\n parse_public_call_stack_item_from_oracle\n},\n header::get_header_at, logs::emit_encrypted_log,\n logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog},\n nullifier_key::{get_nullifier_keys, NullifierKeys}\n}\n};\nuse dep::protocol_types::{\n abis::{\n function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, side_effect::SideEffect\n},\n 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_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n grumpkin_point::GrumpkinPoint, header::Header, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{is_empty, Deserialize, Empty}\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n nullifier_key_validation_requests: BoundedVec<NullifierKeyValidationRequest, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_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 private_call_stack_hashes : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_stack_hashes : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_function_hash: Field,\n new_l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n encrypted_logs_hashes: BoundedVec<SideEffect, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<SideEffect, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n encrypted_log_preimages_length: Field,\n unencrypted_log_preimages_length: Field,\n\n nullifier_key: Option<NullifierKeys>,\n}\n\nimpl ContextInterface for PrivateContext {\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_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 { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n let side_effect_counter = inputs.start_side_effect_counter;\n let mut min_revertible_side_effect_counter = 0;\n if is_empty(inputs.call_context.msg_sender) {\n min_revertible_side_effect_counter = side_effect_counter;\n }\n PrivateContext {\n inputs,\n side_effect_counter,\n min_revertible_side_effect_counter,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n nullifier_key_validation_requests: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_stack_hashes: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n encrypted_log_preimages_length: 0,\n unencrypted_log_preimages_length: 0,\n nullifier_key: Option::none()\n }\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n returns::pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n nullifier_key_validation_requests: self.nullifier_key_validation_requests.storage,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n private_call_stack_hashes: self.private_call_stack_hashes.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n public_teardown_function_hash: self.public_teardown_function_hash,\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 encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n encrypted_log_preimages_length: self.encrypted_log_preimages_length + 4,\n unencrypted_log_preimages_length: self.unencrypted_log_preimages_length + 4,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_app_nullifier_secret_key(&mut self, account: AztecAddress) -> Field {\n let keys = if self.nullifier_key.is_none() {\n let keys = get_nullifier_keys(account);\n let request = NullifierKeyValidationRequest {\n master_nullifier_public_key: keys.master_nullifier_public_key,\n app_nullifier_secret_key: keys.app_nullifier_secret_key\n };\n self.nullifier_key_validation_requests.push(request);\n self.nullifier_key = Option::some(keys);\n keys\n } else {\n let keys = self.nullifier_key.unwrap_unchecked();\n // If MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL is larger than 1, need to update the way the key pair is cached.\n assert(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL == 1);\n assert(keys.account == account, \"Cannot query nullifier key for more than one account per call\");\n keys\n };\n keys.app_nullifier_secret_key\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n // docs:end:consume_l1_to_l2_message\n\n // TODO: We might want to remove this since emitting unencrypted logs from private functions is violating privacy.\n // --> might be a better approach to force devs to make a public function call that emits the log if needed then\n // it would be less easy to accidentally leak information.\n // If we decide to keep this function around would make sense to wait for traits and then merge it with emit_unencrypted_log.\n pub 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(contract_address, event_selector, log);\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 += 44 + log_slice.len().to_field();\n // call oracle\n let _void = emit_unencrypted_log_private_internal(contract_address, event_selector, log, side_effect.counter);\n }\n\n // This fn exists separately from emit_unencrypted_log because sha hashing the preimage\n // is too large to compile (16,200 fields, 518,400 bytes) => the oracle hashes it\n // It is ONLY used with contract_class_registerer_contract since we already assert correctness:\n // - Contract class -> we will commit to the packed bytecode (currently a TODO)\n // - Private function -> we provide a membership proof\n // - Unconstrained function -> we provide a membership proof\n // Ordinary logs are not protected by the above so this fn shouldn't be called by anything else\n pub fn emit_contract_class_unencrypted_log<N>(&mut self, log: [Field; N]) {\n let event_selector = 5; // TODO: compute actual event selector.\n let contract_address = self.this_address();\n let counter = self.next_counter();\n let log_hash = emit_contract_class_unencrypted_log_private_internal(contract_address, event_selector, log, counter);\n let side_effect = SideEffect { value: log_hash, 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 += 44 + N*32;\n }\n\n pub fn emit_encrypted_log<N, M, L>(\n &mut self,\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ivpk_m: GrumpkinPoint,\n preimage: [Field; N]\n ) where [Field; N]: LensForEncryptedLog<N, M, L> {\n // TODO(1139): perform encryption in the circuit\n // The oracle call should come last, but we require the encrypted value for now\n let counter = self.next_counter();\n let encrypted_log: [Field; M] = emit_encrypted_log(\n contract_address,\n storage_slot,\n note_type_id,\n ivpk_m,\n preimage,\n counter\n );\n let log_hash = compute_encrypted_log_hash(encrypted_log);\n let side_effect = SideEffect { value: log_hash, counter };\n self.encrypted_logs_hashes.push(side_effect);\n let encrypted_log_byte_len = 112 + 32 * (N + 3);\n // + processed log len (4)\n self.encrypted_log_preimages_length += encrypted_log_byte_len + 4;\n }\n\n pub fn call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let item = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n assert_eq(item.public_inputs.call_context.side_effect_counter, self.side_effect_counter);\n assert_eq(item.public_inputs.start_side_effect_counter, self.side_effect_counter);\n self.side_effect_counter = item.public_inputs.end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\n\n self.private_call_stack_hashes.push(item.hash());\n\n PackedReturns::new(item.public_inputs.returns_hash)\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_call_stack_hashes.push(item.hash());\n }\n\n pub fn set_public_teardown_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_teardown_function_hash = item.hash();\n }\n\n fn validate_call_stack_item_from_oracle(\n self,\n item: PublicCallStackItem,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert_eq(item.public_inputs.call_context.side_effect_counter, self.side_effect_counter);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n nullifier_key_validation_requests: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n private_call_stack_hashes : BoundedVec::new(),\n public_call_stack_hashes : BoundedVec::new(),\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs : BoundedVec::new(),\n historical_header: Header::empty(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n encrypted_log_preimages_length: 0,\n unencrypted_log_preimages_length: 0,\n nullifier_key: Option::none(),\n }\n }\n}\n\nstruct PackedReturns {\n packed_returns: Field,\n}\n\nimpl PackedReturns {\n pub fn new(packed_returns: Field) -> Self {\n PackedReturns { packed_returns }\n }\n\n pub fn assert_empty(self) {\n assert_eq(self.packed_returns, 0);\n }\n\n pub fn raw(self) -> Field {\n self.packed_returns\n }\n\n pub fn unpack<N>(self) -> [Field; N] {\n let unpacked: [Field; N] = returns::unpack_returns(self.packed_returns);\n assert_eq(self.packed_returns, hash_args_array(unpacked));\n unpacked\n }\n\n pub fn unpack_into<T, N>(self) -> T where T: Deserialize<N> {\n let unpacked: [Field; N] = self.unpack();\n Deserialize::deserialize(unpacked)\n }\n}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle_private<T>(\n _contract_address: AztecAddress,\n _event_selector: Field,\n _message: T,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, event_selector, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nfn emit_contract_class_unencrypted_log_private<N>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<N>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: [Field; N],\n counter: u32\n) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, event_selector, message, counter)\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"}}}
|
|
1
|
+
{"transpiled":true,"noir_version":"0.29.0+78f13d9e0070502a980003c7ded3738fd353dd5a","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"param_witnesses":{"app_payload":[{"end":60,"start":39}],"inputs":[{"end":39,"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"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}},{"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":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":32,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":32,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::key_validation_request::KeyValidationRequest"}}},{"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":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"hash","type":{"kind":"field"}},{"name":"caller_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":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::caller_context::CallerContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_stack_hashes","type":{"kind":"array","length":16,"type":{"kind":"field"}}},{"name":"public_teardown_function_hash","type":{"kind":"field"}},{"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":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"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"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"},"return_witnesses":[2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,3251,3252,3253,3254,3255,3256,3257,3258,3259,3260,3261,3262,3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275,3276,3277,3278,3279,3280,3281,3282,3283,3284,3285,3286,3287,3288,3289,3290,3291,3292,3293,3294,3295,3296,3297,3298,3299,3300,3301,3302,3303,3304,3305,3306,3307,3308,3309,3310,3311,3312,3313,3314,3315,3316,3317,3318,3319,3320,3321,3322,3323,3324,3325,3326,3327,3328,3329,3330,3331,3332,3333,3334,3335,3336,3337,3338,3339,3340,3341,3342,3343,3344,3345,3346,3347,3348,3349,3350,3351,3352,3353,3354,3355,3356,3357,3358,3359,3360,3361,3362,3363,3364,3365,3366,3367,3368,3369,3370,3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384,3385,3386,3387,3388,3389,3390,3391,3392,3393,3394,3395,3396,3397,3398,3399,3400,3401,3402,3403,3404,3405,3406,3407,3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419]},"bytecode":"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ZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22Nlubrc3WZmuztdnabG22NlubPWczsycZ/+a2xgjHJYeJjfy7RoI9DYnsSZDs4bJYh4n4d1KAmCWGWcwSBBsL49/1kKMBgwuetreebnudjNrM3vpCeakB7IgSjmlV7fSxw9G2WOH/iYI/daXv2OEpun3AmPOy+Lm5zMuLFfypK3zH/64t2Jik20aMc0oQG3l5Yn7nD+JHlHDMJIx/cd/Zn6KCT2IM+N+874gRzif2J/9V+xXrJEGwJ5nIHp4TEXjeelIsxP6kvhAz/n8xtxOIbORl8XMnS/ERx4l6gj3a+4tztDVb9ukc0Vh2fIxQBv9ESHKq8Hd9wR6KdhMjlHE+9iTT2uMvKtgjlkXVHoPlgdhfEfSf8WJffT5xbyjYk6rfniRxXnU+9qQK9jTSb49D5KdfnCue1HheFqsmUnwaSrEqKhzTWIhfE4L4RfjOri8u8/KszdZma/N/azOzR543xwjHJYSJjfw7cV0glcieYGNyqmAPn0OlBIhZvTCLWV3Bxhj8m89t2LX388K6AME1dZIYU74uECPFL0o4prCwLvCisC4gz5HFaycx5tqvuc9x7cTLC3RNHCv8Lc6lCeZ02XFOCmIjL48dw9tQ/iB+RAnHvJHLuoDom7j2lCp9R7k+luo7018uNxZsFOeH3B6q+Tyvf25bSoBYUJXN/eTnbmTLzik7VX/Zeb6GShXsoWgPMVJ557KnMbE9udUN8dwn+zqr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","debug_symbols":"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Perz02EL6XNAFS2ghhZQRwtogAXUNrSAAlpAbz6pw5biK6D2RUAJLaCMFtCbT+pfbzk9A4qlfQ7ozSf1r2uaz4D2levngBpaQB0toDef1GGU9Ph03NL2KaA331G8ENCbT+q41ef/ymKo5XNAES2ghBbQm0/qWNOHp33zbyf1V9/dn0NT/vWF/3w4tPrFp+vo/Z9Pt+3Dp+P2SLYwJfvmDhNL3Z7JtniSbCmPBUb50K7zP6E3v6F3v6EPt6G/+Q6oaejBb+gROfTvHnpPI/kNPfsNvfgNHbqbfh86dDf9PnTobvp96NDd9LvQ8wbdTb8PHbqbfh+6226aN7fdNG9uu2ne3HbTvLntpnlz203z5rab5s1vNw1+u2nw202D324a/HbTN9/5Ng3dbzcNfrtp8NtNg99uGvx20+i3m0a/3TT67abRbzd9871809D9dtPot5tGv900+u2m0W83TX67afLbTZPfbpr8dtM3eyeYhu63mya/3TT57abJbzdNfrtp9ttNs99umv120+y3m77Z38I0dL/dNPvtptlvN81+u2n2202L325a/HbT4rebFr/d9M0eJKah++2mxW83LX67afHbTYvfblr9dtPqt5tWv920+u2m7/aJsQzdbzet2N00Py6y1fI5dOxu+m3o2N3029D/upuGMT7cr04noZe+9WeiPX2yc8p/73xjHVBACyiiBZTQAspoARW0gCpaQA0soK8v4j/C2U6CKTE/gimxfbKGzF/flTf79nDrt8dbvz3d+u351m8vt357vfXb243fXtBenS1or84WtFdnC9qrs2XLaAGBufkXtFdnC9qrswXt1dn695e1fqh7Snl6kZXWts8BFbSAKlpADS2gjhbQAAsobmgBBbSAIlhA6e0D4XNNtv/n8Rc7tZq639CH29Dz5jf04Df06Df05Df07Df04jd0sKVpzWBL05o7WkBgP2/VAvbzVi1gP2/Vt//x40R/6Pr2P5ecmmwmSrbe+VtArfXWb2+3fnu/9dvv/N2utu3Wbwf7UaI2sB8lagP7UaK++ZGdCwGB/ShRG9iPEq2ArbpaSWgBZbSAwH6UaAXsR4lWwH6UaO//GyyrOb81tyuK9v6/67IL3e3CvzW3C//W3C78WzdYpTzflg0jnYT+66fxx4frh3fXYn7EE8DiiWDxvLsj7P/v+a/axy9/tKj+dlWxhWdAJY/v/91PYTz2Ebv+/bCPCOOLT+/H5z8f7h8eS42xfRX1Vh67ixC28Prm/tWn2zOMvr1C3qv9D8QqiH8PsQni30Psgvj3EIcg/jXEsQni30MMgvj3EKMg/j3EJIh/DzEL4t9DZJ1YQmxPiLn/BvFfYFinkFMwrJPFKRjWaeEUDOsEcAKmb6yq/hQMq1I/BcOqvk/BsCrqUzBZYL4Gg618U3x8OqVaDMHErT9/Lwsf/J5CTz8eH/qGrZKdQMRW1E4gYqtvJxCxlboPiAFb1TuBiD0BOIGIPS04gYg9WTiBmAXx7yGyTiw7gSfEHn+D+C8wrFPIKRjWyeIUDOu0cAqGdQI4AxNZVf0pGFalfgqGVX2fgmFV1KdgssB8DYZV+e5DwzPqD9clXmBYle8pGFblewqGVfmegmFVvmdgEqvyPQXDqnxPwbAq31MwrMr3FEwWmK/B0Crf+jR1i71/AYZW+Z6BoVW+Z2Bole8ZGFrlewIm0yrfMzC0yvcMDK3yPQNDq3zPwGSB+RoMkEPbFx9vtT0iia2F+PHj/4ofyNDtj+IH8n/7o/iB3rD5o/iBnrz5Kv6WPsT/2QupF6AXcv4ofqAHdf4ofiBT0j+KH8jD9I/iz87jB++/p/GD9982njqs9a/iB++/p/GD99/T+NH770n8Fb3/nsWP3n/P4kfvv2fxg/ff/vxj+dhG6p/jB++/p/GD99/T+LH7b99qenx831aEz/Fj998e8vPjPX5Ytzzjx+6/5/Fj99/T+Bt2/z2PH7v/9v70d4h9bPlz/Nj99zx+7P7bR36en2NLn/XD259rsI4fu/+exw/2tmRvYG9L9gb2tmR//9MJ/fVbUB/x+3/l+ni48Y/4+rcz5C/jiOlp3R/H7+47nz999vRd7xsymJEebxqMD29KfA2m7YuFR6of49j/z38EJiCDaeMRR9i28huZf0UP/dRzKY8Pl/b6aP4ndOinnr8PPfsNHfodpe9Dh35H6fvQod9R+j507HeUtscIUD94QzxCx35H6bvQ3/5agWHowW/o0N30+9Chu+n3oUN30+9Dx36V8NvQsV8l/DZ07FcJvw3dbzcdbrvp2Nx207G57aZjc9tNx+a2m+57cL+hu+2mY3PbTcfmtpuOzW03HZvfbhr8dtPgt5sGv900+O2mb3ddNQzdbzcNfrtp8NtNg99uGvx20+i3m0a/3TT67abRbzd9uzujYeh+u2n0202j324a/XbT6LebJr/dNPntpslvN01+u+nbHd8MQ/fbTZPfbpr8dtPkt5smv900++2m2W83zX67afbbTd/uImUYut9umv120+y3m2a/3TT77abFbzctfrtp8dtNi99u+nbrJsPQ/XbT4rebFr/dtPjtpsVvN61+u+nf+xrFFPMzmFG/D33/B7bnVeLRx6db0+PvjYqsA8poARW0gCpaQA0toI4W0AAL6O/9dawDCmgBoZ3UDe2kbmgndUM7qRvaSd3QTuqGdlI3tJO6o53UHe2k7mgndUc7qTvaSd3RTuqOdlJ3tJO6o53UHe2kHmgn9UA7qQfaST3QTuqBdlIPtJN6oJ3UA+2kHmgn9cA6qeO2YZ3Ue0BYJ/UeENZJvQeEdVLvAWGd1HtAWCf1HhDWSb0HhHVS7wFhndR7QGgndUA7qQPaSR3QTuqAdlIHtJM6oJ3UAe2kDmgndUA7qQPaSR3RTuqIdlJHtJM6op3UEe2kjmgndUQ7qSPaSR3RTuqIdlIntJM6oZ3UCe2kTmgndUI7qRPaSZ3QTuqEdlIntJM6oZ3UGe2kzmgndUY7qTPaSZ3RTuqMdlJntJM6o53UGe2kzmgndUE7qQvaSV3QTuqCdlIXtJO6oJ3UBe2kLmgndUE7qQvaSV3RTuqKdlKD3VHcA0I7qcHuKO4BoZ3UYHcU94DQTmqwO4p7QGgnNdgdxT0gtJMa7I7iHhDaSQ12R3EPCO2kBrujuAeEdlKD3VHcA0I7qcHuKO4BoZ3UYHcU94DQTmqwO4p7QGgnNdgdxT0gtJMa7I7iHhDaSQ12R3EPCO2kBrujuAeEdlKD3VHcA0I7qcHuKO4BoZ3UYHcU94DATuqAdkcxoN1RDGh3FAPaHcWwgZ3UAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjQ7igGtDuKAe2OYkC7oxjefkdxPJ+i+GXC9kVAFS2ghhZQRwtogAX09juKpwEFtIAiWkDvPal/+S0+38/Z9h/pPweU0QIqaAFVtIDamwOKz3+pfxnX5M8BdbSABlhAb76j+OuPTZ6f3kb+fA69+Y7ihYAiWkDvPqlHfX56/8E3fQ4oowVU0AKqaAE1tIA6WkADLKA331H89ZcL8RVQ+yKggBZQRAvozSf1/mvPeAYUS/sc0JtP6n3LWp4BpTQ+B1TQAqpoAb35pP71zPTj079s4T4H1NECevNJ/etW5DOg/d/gTwG9+Y7ihYACWkBvPqljTR+e9s2/ndRffXd/Dk351xf+8+HQ6hefrqP3fz7dtg+fjtsj2cSU7Js7TCx1eybb4kmypTwWGOVDu87/hF78hl79ht78ht79hj7cht435NC/eeh9Dz34DT36DT35DR26m34fOnQ3/T506G76fejQ3fT70KG76fehQ3fTb0Mffrvp8NtNh99uOvx20zffUTYN3W83HX676fDbTYffbjrcdtO4ue2mcXPbTePmtpvGzW03jZvbbho3t900bm67adzcdtO4ue2mcfPbTYPfbhr8dtPgt5sGv930zXf9TUP3202D324a/HbT4LebBr/dNPrtptFvN41+u2n0203f7MdgGrrfbhr9dtPot5tGv900+u2myW83TX67afLbTZPfbvpmzwzT0P120+S3mya/3TT57abJbzfNfrtp9ttNs99umv1203f7mliG7rebZr/dNPvtptlvN81+u2nx202L325a/HbT4rebvtt7xjJ0v920+O2mxW83LX67afHbTavfblr9dtPqt5tWv9303f5AlqH77abVbzetfrtp9dtNq99u2vx20+a3mza/3fTv3ZPCGB/8kNJJ6KVv/ZloT5/sV+PfOxxZB1TQAqpoATW0gDpaQAMsoL93+bEOKIAF9PVF/Ec420kwZf/175+Pltj652/Pt357ufXb663f3m799n7rt48bvz19ffvZ7NvDrd/+3sn39F2ghPYqckJ7FTmhvYqc0F5FTmivIie0V5ET2qvICe1V5Pz3f3Jrq3tyAhsI89//eax1QGADYU5gA2FOYANhfvufnU70iM5v/0PVmcm+/U9bZyZb7tTo+eu/sDH79nTrt+dbv73c+u311m8Hk/G5gMn4XMBkfK5gMj5XMBmfK5aMT/V/+/qaaKjpEVLo8cP5H8bjvzf+7L/39QXJC/+98If/vfgH/72Qyv92YEfRnk8pjb59+O/l139v/Nl/72sjhgv/vfCH/734h/+99If/vfyH/70vm9h4CpSwxf7bf/HL/x2k1/8M6pmcCY9nBnbN9BIzsb1CqnghNbyQOl5I49aQHv+Yrw85+39MeM8/Jr7nH5Pe84/J7/nHlPf8Y+p7/jHtPf+Y/p5/zN+fAnHLz/f5trGdHExh/z8/vvvXUPw8mvKrzeUNMajw5qBecqCH34/wLz7b2vOz6cvjPkff4Sff4Wff4Rff4Vff4Tff4Xff4Q/X4ZfNd/i+u27x3XWL765bfHfd4rvrFt9dt/juusV31y2+u2713XWr765bfXfd6rvrVt9dt/ruuhX53C+vv3PIB+Ejn/vn4Tfkk6eUx58mldq+Dh/55LkQPvLJcyF85JPnQvjIev9C+Mh6/0L4yOf++a/RDfncPw+/I+v9C+Ej6/0L4SN33QvhI3fdC+Ejd90L4SN33QvhI3fdC+Ejd90L4fvuut131x2+u+54e9c93B58/mwI4yE5Q9w+aM4PfxIzovcEkvcEsvcEivcEqvcEmvcEOkwCz5AGWkgHziM/C2mvxiOkUPNJSCHE53eH/OG7+4egAmJQ8c1Bmf4AkLbkO/zsO/ziO/zqO/zmO/zuO/zhOvyw+Q4/+A7fd9cNvrtu8N11g++uG3x33eC76wbfXTf47rrRd9eNvrtu9N11o++uG3133ei760bfXTf67rrRd9eNvrtu8t11E/K5f/pXwikhn/sXwkc+eU7/UjIl5JPnQvjIJ895+Bn55LkQPrLevxA+st6/ED7yuX/6Bz8pI5/7F8JH1vsXwkfW+xfCR+66F8JH7roXwkfuuufhF+SueyF85K57IXzkrnshfN9d18IFZGb4vrtueXvX/cmfF26vOML24Y/sPvw5WGneE+jeExjOE6ib9wSC9wSi9wQSdALPyX1PIPyWwBffPJ7fvL0s/kMNr2QzU7KFKVloNfDbH4cf/O8QWg1cSQBaDVxJAFoNXEigQauBKwlAq4ErCUCrgSsJQKuBC3dsLJx65iYA3bWvJIDTiZ8h4fTWZ0gW3XI8XmGI8fT9wFCeTzaU/HVIAy4kC/ebH4Vk+9ckFu43M8OPvsNPvsPPvsMvvsOvvsNvvsPvvsMfrsMfvrvu8N11h++uO3x3XQvfm5nh++66w3fXHb677vDddYfrrps31103b667bt5cd928ue66eXPddfPmuuvmzXXXzZvrrps31103b767bvDddYPvrht8d93gu+uaePNMDN931w2+u27w3XWD764bfHfd6LvrRt9dN/ruutF31zXx5pkYvu+uG3133ei760bfXTf67rrJd9dNvrtu8t11k++ua+KMNDF83103+e66yXfXTb67bvLddbPvrpt9d93su+tm313XxJdqYvi+u2723XWz766bfXfd7LvrFt9dt/juusV31y2+u66JL9XE8H133eK76xbfXbf47rrFd9etvrtu9d11q++uW313XRNvqYnh++661XfXrb67bvXddavvrtt8d93mu+s23123+e66Jn5PE8P33XWb767bfHfd5rvrNt9d17c3VfbtTZV9e1Nl395U2bc3VfbtTZV9e1Nl395U2bc3VfbtTZV9e1Nl395U2bc3VfbtTZV9e1Nl395U2bc3VfbtTZV9e1Nl395Uxbc3VfHtTVV8e1MV395UZXPddYtvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+PamKr69qYpvb6ri25uq+Pamqr69qapvb6rq25uq+vamqpvrrlt9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfXtTVV9e1NV395U1bc3VfPtTdV8e1M1395Uzbc3Vdtcd93m25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qZpvb6rm25uq+famar69qbpvb6ru25uq+/am6r69qfrmuut2395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTdV9e1N1395U3bc3VfftTTV8e1MN395Uw7c31fDtTTU21113+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6rh25tq+PamGr69qYZvb6qw+Tan2uN33Xf3+F033j1+1513j991693jd9179/hdN989ftfdd4/fdfvd43fef33bVO3xO++/vo2q9vid91/fVlV7/M77r2+zqj1+5/3Xt13VHr/z/uvbsGqPznn/9W1ZtUfnvP/6Nq3ao3Pef33bVu3ROe+/vo2r9uic91/f1lV7/M77r2/zqj1+5/3Xt33VHr/z/uvbwGqP33n/9W1htcfvvP/6NrHa43fef33bWO3xO++/vo2s9vid91/fVlZ7/M77r28zqz1+5/3Xt53VHr/z/uvb0GqP33n/9W1ptcfvvP/6NrXa43fef33bWu3xO++/vo2t9vid91/f1lZ7/M77r29zqz1+5/3Xt73VHr/z/uvb4GqP33n/9W1xtcfvvP/6Nrna43fef33bXO3xO++/vo2u9vid91/fVld7/M77r2+zqz1+5/3Xt93VHr/z/uvb8GqP33n/9W15tcfvvP/6Nr3a43fef33bXu3xO++/vo2v9vid91/f1ld7/M77r2/zqz1+5/3Xt/3VHr/v/huc+18F5/5Xwbn/VXDufxU23/03OPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vg3P8qOPe/Cs79r4Jz/6vo3P8qOve/is79r6Jz/6u4+e6/0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+19F5/5X0bn/VXTufxWd+18l5/5Xybn/VXLuf5Wc+1+lzXf/Tc79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qOfe/Ss79r5Jz/6vk3P8qO/e/ys79r7Jz/6vs3P8qb777b3buf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5X2bn/VXbuf5Wd+19l5/5Xxbn/VXHuf1Wc+18V5/5XZfPdf4tz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/Ks79r4pz/6vi3P+qOPe/qs79r6pz/6vq3P+qOve/qpvv/lud+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXXuf1Wd+19V5/5X1bn/VXPuf9Wc+1815/5Xzbn/Vdt899/m3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r5pz/6vm3P+qOfe/as79r7pz/6vu3P+qO/e/6s79r/rmu/925/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfuf9Wd+1915/5X3bn/VXfufzWc+18N5/5Xw7n/1XDufzU23/13OPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zz/6vh3P9qOPe/Gs79r4Zv/6u4+fa/2uN33X/3+F333z1+1/13j991/93jd91/9/hd9989ftf9d4/fdf/d43fef337X+3xO++/vv2v9vid91/f/ld7/M77r2//qz1+5/3Xt//VHr/z/uvb/2qP33n/9e1/tcfvvP/69r/a43fef337X+3xO++/vv2v9vid91/f/ld7/M77r2//qz1+5/3Xt//VHr/z/uvb/2qP33n/9e1/tcfvvP/69r/a43fef337X+3xO++/vv2v9vid91/f/ld7/M77r2//qz1+5/3Xt//VHr/z/uvb/2qP33n/9e1/tcfvvP/69r/a43fef337X+3xO++/vv2v9vid91/f/ld7/M77r2//qz1+5/3Xt//VHr/z/uvb/2qP33n/9e1/tcfvvP/69r/a43fef337X+3xO++/vv2v9vid91/f/ld7/M77r2//qz1+5/3Xt//VHr/z/uvb/2qP33n/9e1/tcfvvP/69r/a43fef337X+3xO++/vv2v9vid91/f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4vEt7/cmHt/ydm/i8S3v9t4/vumfsU08vu+3rumfr008vu+3rumfrU08vu+3rumfq008vu+3rumfqU08vu+3rumfp008vu+3rumfpU08vu+3LuJSys7H9/3WrW7bb/73+G67b/7P4ze3P8X/3+O7/Rn+/x7f8ifPxOO7/U26/z2+29+j+9/ju/0tuv89vuXP/fc/jW6WP/ffP/5l2e9PPL5lvz/x+JbfuhOPb/mtO/H4lt+6E49v+a078fiW37oTj2/5rTvx+L7fupfvt273/dbtP/7WHW4P/v21v/rUH8+Rbl8855dfienJu4DsXUDxLuD0LqB6F9C8C7jMCHg+Urf2SPnHbzMcR3p+76N8+d7Xl4c6LD6U5WtGE4O2fMto4vGL78e3fMdo4vEtXzGaeHzLN4wmHt/yBaOJx7d8v+j94x83349v+XbRxOP7fusevt+6iGsVOx/f91v38P3WPXy/dQ/fb93D91s3+X7rJt9v3eT7rZt8v3URlyl2Pr7vt27y/dZNvt+6yfdbN/l+62bfb91s+l77u98Sztny5/7E47u9FP6/x3d7J/x/j+/2Svj/efzi9kb4/x7f7YXw/z2+Zb8/8fiWP/ff/sJPLpY/9yce37Lfn3h8y35/4vEtv3UnHt/yW3fi8S2/dd8//mn5rTvx+JbfuhOPb/mtO/H4vt+6iBaQnY/v+617/vhb95NfL7y9nuO4ffkluy+/DnY27wIu7wK6cwH15l3A4V1A8i4gmxbwTO53AcdvAr75zv35nW/99bX1eIktTGJPJrGm3cBvvxw++P9D025gRoBpNzAjwLQbmBDQTLuBGQGm3cCMANNuYEaAaTcw8Tc2iKaevQJMv7VnBNh5Ez8fyc679flIiLdlf1xhSOlMbx7pOJ8nG87y/SN1c4+EaL/56JGwv02CaL/Z+fjJ9+Nn349ffD/+6fvxq+/Hb74f//L9+N3143ffb93u+63bfb91u++3LqL3Zufj+37rdt9v3e77rdt9v3W767duubl+65ab67duubl+65ab67duubl+65ab67duubl+65ab67duubl+65ab77fu4fute/h+6x6+37qH77cupJtn4+P7fusevt+6h++37uH7rXv4fusm32/d5Putm3y/dZPvty6km2fj4/t+6ybfb93k+62bfL91k++3bvb91s2+37rZ91s3+37rQpqRNj6+77du9v3Wzb7futn3Wzf7fusW32/d4vutW3y/dYvvty6kl2rj4/t+6xbfb93i+61bfL91i++37un7rXv6fuuevt+6p++3LqSXauPj+37rnr7fuqfvt+7p+617+n7rVt9v3er7rVt9v3Wr77cupFtq4+P7futW32/d6vutW32/davvt27z/dZtvt+6zfdbt/l+60L6njY+vu+3bvP91m2+37rN91u3+X7r+u6mKr67qYrvbqriu5uq+O6mKr67qYrvbqriu5uq+O6mKr67qYrvbqriu5uq+O6mKr67qYrvbqriu5uq+O6mKr67qYrvbqriu5vq9N1Ndfrupjp9d1Odvrupzpvrt+7pu5vq9N1Ndfrupjp9d1OdvrupTt/dVKfvbqrTdzfV6bub6vTdTXX67qY6fXdTnb67qU7f3VSn726q03c31em7m+r03U11+u6mOn13U52+u6lO391Up+9uqtN3N9Xpu5vq9N1Ndfrupjp9d1OdvrupTt/dVKfvbqrTdzfV6bub6vTdTXX67qY6fXdTnb67qU7f3VSn726q03c31em7m+r03U11+u6mOn13U52+u6lO391Up+9uqtN3N9Xpu5vq9N1Ndfrupjp9d1OdvrupTt/dVKfvbqrTdzfV6bub6vTdTXX67qY6fXdTnb67qU7f3VSn726q03c31em7m+r03U11+u6mOn13U52+u6lO391Up+9uqtN3N9Xpu5vq9N1Ndfrupjp9d1OdvrupTt/dVKfvbqrTdzfV6bub6vTdTXX67qY6fXdTnb67qU7f3VSn726q03c31em7m+r03U11+u6mOn13U52+u6lO391Up+9uquq7m6r67qaqvrupqu9uqnpz/datvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r67qaqvrupqu9uquq7m6r57qZqvrupmu9uqua7m6rdXL91m+9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qZqvrupmu9uqua7m6r57qa6fHdTXb67qS7f3VSX726q6+b6rXv57qa6fHdTXb67qS7f3VSX726qy3c31eW7m+ry3U11+e6munx3U12+u6ku391Ul+9uqst3N9Xlu5vq8t1Ndfnuprp8d1NdvrupLt/dVJfvbqrLdzfV5bub6vLdTXX57qa6fHdTXb67qS7f3VSX726qy3c31eW7m+ry3U11+e6munx3U12+u6ku391Ul+9uqst3N9Xlu5vq8t1Ndfnuprp8d1NdvrupLt/dVJfvbqrLdzfV5bub6vLdTXX57qa6fHdTXb67qS7f3VSX726qy3c31eW7m+ry3U11+e6munx3U12+u6ku391Ul+9uqst3N9Xlu5vq8t1Ndfnuprp8d1NdvrupLt/dVJfvbqrLdzfV5bub6vLdTXX57qa6fHdTXb67qS7f3VSX726qy3c31eW7m+ry3U11+e6munx3U12+u6ku391Ul+9uqst3N9Xlu5vq8t1Ndfnuprp8d1NdvrupLt/dVJfvbqrLdzfV5bubqvvupuq+u6m6726q7rubqt9cv3W7726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupuq+u6m6726q7rubqvvupjpuvsup7s/v+r17f37XL97787t+896f3/Wr9/78rt+99+d3/fK9P7/rt+/9+V2/fu/P7/z967um6v78zt+/vouq7s/v/P3ru6rq/vzO37++y6ruz+/8/eu7rur+/M7fv74Lq+5P5/z967uy6v50zt+/vkur7k/n/P3ru7bq/nTO37++i6vuT+f8/eu7uur+/M7fv77Lq+7P7/z967u+6v78zt+/vgus7s/v/P3ru8Lq/vzO37++S6zuz+/8/eu7xur+/M7fv76LrO7P7/z967vK6v78zt+/vsus7s/v/P3ru87q/vzO37++C63uz+/8/eu70ur+/M7fv75Lre7P7/z967vW6v78zt+/vout7s/v/P3ru9rq/vzO37++y63uz+/8/eu73ur+/M7fv74Lru7P7/z967vi6v78zt+/vkuu7s/v/P3ru+bq/vzO37++i67uz+/8/eu76ur+/M7fv77Lru7P7/z967vu6v78zt+/vguv7s/v/P3ru/Lq/vzO37++S6/uz+/8/eu79ur+/M7fv76Lr+7P7/z967v66v78zt+/vsuv7s/v/P3ru/7q/vy+37+H8/6rw3n/1eG8/+pw3n913Hy/fw/n/VeH8/6rw3n/1eG8/+pw3n91OO+/Opz3Xx3O+68O5/1Xh/P+q8N5/9XhvP/qcN5/dTjvvzqc918dzvuvDuf9V4fz/qvDef/V4bz/6nDef3U47786nPdfHc77rw7n/VeH8/6rw3n/1eG8/+pw3n91OO+/Opz3Xx3O+68O5/1Xh/P+q8N5/9XhvP/qcN5/dTjvvzqc918dzvuvDuf9V4fz/qvDef/V4bz/6nDef3U47786nPdfHc77rw7n/VeH8/6rw3n/1eG8/+pw3n91OO+/Opz3Xx3O+68O5/1Xh/P+q8N5/9XhvP/qcN5/dTjvvzqc918dzvuvDuf9V4fz/qvDef/V4bz/6nDef3U47786nPdfHc77rw7n/VeH8/6rw3n/1eG8/+pw3n91OO+/Opz3Xx3O+68O5/1Xh/P+q8N5/9XhvP/qcN5/dTjvvzqc918dzvuvDuf9V4fz/qvDef/V4bz/6nDef3U47786nPdfJef9V8l5/1Vy3n+VnPdfpZvv929y3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V8l5/1Vy3n+VnPdfJef9V9l5/1V23n+VnfdfZef9V/nm+/2bnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1V23n+VnfdfZef9V9l5/1Vx3n9VnPdfFef9V8V5/1W5+X7/Fuf9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n9VnPdfFef9V8V5/1Vx3n91Ou+/Op33X53O+69O5/1X5833+/d03n91Ou+/Op33X53O+69O5/1Xp/P+q9N5/9XpvP/qdN5/dTrvvzqd91+dzvuvTuf9V6fz/qvTef/V6bz/6nTef3U67786nfdfnc77r07n/Ven8/6r03n/1em8/+p03n91Ou+/Op33X53O+69O5/1Xp/P+q9N5/9XpvP/qdN5/dTrvvzqd91+dzvuvTuf9V6fz/qvTef/V6bz/6nTef3U67786nfdfnc77r07n/Ven8/6r03n/1em8/+p03n91Ou+/Op33X53O+69O5/1Xp/P+q9N5/9XpvP/qdN5/dTrvvzqd91+dzvuvTuf9V6fz/qvTef/V6bz/6nTef3U67786nfdfnc77r07n/Ven8/6r03n/1em8/+p03n91Ou+/Op33X53O+69O5/1Xp/P+q9N5/9XpvP/qdN5/dTrvvzqd91+dzvuvTuf9V6fz/qvTef/V6bz/6nTef3U67786nfdfnc77r07n/Ven8/6r03n/VXXef1Wd919V5/1X1Xn/Vb35fv9W5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef1Wd919V5/1X1Xn/VXXef9Wc91815/1XzXn/VXPef9Vuvt+/zXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc91815/1XzXn/VXPef9Wc919dzvuvLuf9V5fz/qvLef/VdfP9/r2c919dzvuvLuf9V5fz/qvLef/V5bz/6nLef3U577+6nPdfXc77ry7n/VeX8/6ry3n/1eW8/+py3n91Oe+/upz3X13O+68u5/1Xl/P+q8t5/9XlvP/qct5/dTnvv7qc919dzvuvLuf9V5fz/qvLef/V5bz/6nLef3U577+6nPdfXc77ry7n/VeX8/6ry3n/1eW8/+py3n91Oe+/upz3X13O+68u5/1Xl/P+q8t5/9XlvP/qct5/dTnvv7qc919dzvuvLuf9V5fz/qvLef/V5bz/6nLef3U577+6nPdfXc77ry7n/VeX8/6ry3n/1eW8/+py3n91Oe+/upz3X13O+68u5/1Xl/P+q8t5/9XlvP/qct5/dTnvv7qc919dzvuvLuf9V5fz/qvLef/V5bz/6nLef3U577+6nPdfXc77ry7n/VeX8/6ry3n/1eW8/+py3n91Oe+/upz3X13O+68u5/1Xl/P+q8t5/9XlvP/qct5/1Z33X3Xn/Vfdef9Vd95/1W++37/def9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1Z33X3Xn/Vfdef9Vd95/1X33X6Wb7/6r+/O7fv/en9/1+/f+/K7fv/fnd/3+vT+/6/fv/fldv3/vz+/6/Xt/ftfv3/vzO3//+u6/uj+/8/ev7/6r+/M7f//67r+6P7/z96/v/qv78zt///ruv7o/v/P3r+/+q/vzO3//+u6/uj+/8/ev7/6r+/M7f//67r+6P7/z96/v/qv78zt///ruv7o/v/P3r+/+q/vzO3//+u6/uj+/8/ev7/6r+/M7f//67r+6P7/z96/v/qv78zt///ruv7o/v/P3r+/+q/vzO3//+u6/uj+/8/ev7/6r+/M7f//67r+6P7/z96/v/qv78zt///ruv7o/v/P3r+/+q/vzO3//+u6/uj+/8/ev7/6r+/M7f//67r+6P7/z96/v/qv78zt///ruv7o/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/e2VrL+93gqZXi5/Vcn62ytZf3sl62+vZP3tlay/vZL1t1ey/vZK1t9eyfrbK1l/eyXrb69k/e2VrL+9kvW3V7L+9krW317J+tsrWX97Jetvr2T97ZWsv72S9bdXsv72StbfXsn62ytZf3sl62+vZP3tlay/vZL1t1ey/vZK1t9eyfrbK1l/eyXrb69k/e2VrL+9kvW3V7L+9krW317J+tsrWX97Jetvr2T97ZWsv72S9bdXsv72StbfXsn62ytZf3sl62+vZP3tlay/vZL1t1ey/vZK1t9eyfrbK1l/eyXrb69k/e2VrL+9kvW3V7L+9krW317J+tsrWX97Jetvr2T97ZWsv72S9bdXsv72StbfXsn62ytZf3sl62+vZP3tlay/vZL1t1ey/vZK1t9eyfrbK1l/eyXrb69k/e2VrL+9kvW3V7L+9krW317J+tsrWX97Jetvr2T97ZWsv72S9bc3sv72Rtbf3sj62xtZf3u7FTK9XP6qkfW3N7L+9kbW397I+tsbWX97I+tvb2T97Y2sv72R9bc3sv72Rtbf3sj62xtZf3sj629vZP3tjay/vZH1tzey/vZG1t/eyPrbG1l/eyPrb29k/e2NrL+9kfW3N7L+9kbW397I+tsbWX97I+tvb2T97Y2sv72R9bc3sv72Rtbf3sj62xtZf3sj629vZP3tjay/vZH1tzey/vZG1t/eyPrbG1l/eyPrb29k/e2NrL+9kfW3N7L+9kbW397I+tsbWX97I+tvb2T97Y2sv72R9bc3sv72Rtbf3sj62xtZf3sj629vZP3tjay/vZH1tzey/vZG1t/eyPrbG1l/eyPrb29k/e2NrL+9kfW3N7L+9hao37u39Pji9vt3fqmN8/adURvns7lf1+OLexuojfPJPKM2zufyjNo4n8oTagN1Ps+ojZN4Z9QGet9OqA30vp1QW6jUxkm6M2qpvFSglucZtV691EuBV3/0UHDZ7mFOx+2hIKcEyN2X7R7mBXpN+54Fek07nwV6C5le0+5ngV7T/meBXtMOaIFe0x5ogV7Tjgmv13YP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/sp2D/MCvWT+ynYP8wK9ZP7Kdg/zAr1k/uoi81cXmb+y3bO9QC+Zv7oKmV4yf2W7S32BXjJ/ZbtPfYFeMn9lu1N9gV4yf2W7V32BXjJ/ZbtbfYFeMn9lu199gV4yf2W7Y32BXi5/1cn62ztZf3sn62/vZP3t/VbI9HL5q07W397J+ts7WX97J+tv72T97Z2sv72T9bd3sv72Ttbf3sn62ztZf3sn62/vZP3tnay/vZP1t3ey/vZO1t/eyfrbO1l/eyfrb+9k/e2drL+9k/W3d7L+9k7W397J+ts7WX97J+tv72T97Z2sv72T9bd3sv72Ttbf3sn62ztZf3sn62/vZP3tnay/vZP1t3ey/vZO1t/eyfrbO1l/eyfrb+9k/e2drL+9k/W3d7L+9k7W397J+ts7WX97J+tv72T97Z2sv72T9bd3sv72Ttbf3sn62ztZf3sn62/vZP3tnay/vZP1t3ey/vZO1t/eyfrbO1l/eyfrb+9k/e2drL+9k/W3d7L+9k7W397J+ts7WX97J+tv72T97Z2sv72T9bd3sv72Ttbf3sn62ztZf3sn62/vZP3tnay/vZP1t3ey/vZO1t/eyfrbO1l/eyfrb+9k/e2dq78937j62+96qfzVXS+Vv7rrpfJXd72FTC+Vv7rrpfJXd71U/uqul8pf3fWS+Suu/va7XjJ/xdXfftdL5q+4+tvvesn8FVd/+10vmb/i6m+/6yXzV1z97Xe9ZP6Kq7/9rpfMX3H1t9/1kvkrrv72u14yf8XV337XS+avuPrb73rJ/BVXf/tdL5m/4upvv+sl81dc/e13vWT+iqu//a6XzF9x9bff9ZL5K67+9rteMn/F1d9+10vmr7j62+96yfwVV3/7XS+Zv+Lqb7/rJfNXXP3td71k/oqrv/2ul8xfcfW33/WS+Suu/va7XjJ/xdXfftdL5q+4+tvvesn8FVd/+10vmb/i6m+/6yXzV1z97Xe9ZP6Kq7/9rpfMX3H1t9/1kvkrrv72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znOdhU4xnecy3mu9QjGd5zrpPNdJ57mM95evUEznuYx3mK9QTOe5jPeYr1BM57mMd5mvUEznuYz3ma9QTOe5jHear1BM57mM95qvUEznuYx3pq9QTOe5jPemr1BM57mMd6evUEznuYz3p69QTOe5jHeor1BM57mM96ivUEznuYx3qa9QTOe5jPepr1BM57mMd6qvUEznuYx3sK9QTOe5rPe7L1BM57msd7wvUEznuaz3vC9QzOa5kvWu9wWK2TxXst73vkAxm+dKt0KnmM1zJeu97wsUs3muZL37fYFiOs9lvSt+gWI6z0XXQ5/oeugTXQ99ouuhT3Q99Imuhz7R9dAnuh76RNdDn+h66BNdD32i66FPdD30ia6HPtH10Ce6HvpE10Of6HroE10PfaLroU90PfSJroc+0fXQJ7oe+kTXQ5/oeugTXQ99ouuhT3Q99Imuhz7R9dAnuh76RNdDn+h66BNdD32i66FPdD30ia6HPtH10Ce6HvpE10Of6HroE10PfaLroU90PfSJroc+0fXQJ7oe+kTXQ5/oeugTXQ99ouuhT3Q99Imuhz7R9dAnuh76RNdDn+h66BNdD32i66FPdD30ia6HPtH10Ce6HvpE10Of6HroE10PfaLroU90PfSJroc+0fXQJ7oe+kTXQ5/oeugTXQ99ouuhT3Q99Imuhz7R9dAnuh76RNdDn+h66BNdD32i66FPdD30ia6HPtH10Ce6HvpM10Of6XroM10Pfabroc+3QqeYzXNluh76TNdDn+l66DNdD32m66HPdD30ma6HPtP10Ge6HvpM10Of6XroM10Pfabroc90PfSZroc+0/XQZ7oe+kzXQ5/peugzXQ99puuhz3Q99Jmuhz7T9dBnuh76TNdDn+l66DNdD32m66HPdD30ma6HPtP10Ge6HvpM10Of6XroM10Pfabroc90PfSZroc+0/XQZ7oe+kzXQ5/peugzXQ99puuhz3Q99Jmuhz7T9dBnuh76TNdDn+l66DNdD32m66HPdD30ma6HPtP10Ge6HvpM10Of6XroM10Pfabroc90PfSZroc+0/XQZ7oe+kzXQ5/peugzXQ99puuhz3Q99Jmuhz7T9dBnuh76TNdDn+l66DNdD32m66HPdD30ma6HPtP10Ge6HvpM10Of6XroM10PfQ7V2N1b+uere/v9e7/0Rno3zeiN9KnV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918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef3WA918d4P1XB3j/1QHef9XA+68aeP9VA++/auD9V+2G/f5t4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UH77/q4P1XHbz/qoP3X/Ub9vu3g/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcneP/VCd5/dYL3X53g/VfnDfv9e4L3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VCd5/dYL3X53g/VcneP/VAO+/GuD9VwO8/2qA91+NG/b7d4D3Xw3w/qsB3n81wPuvBnj/1QDvvxrg/VcDvP9qgPdfDfD+qwHefzXA+68GeP/VAO+/GuD9VwO8/2qA918N8P6rAd5/NcD7rwZ4/9UA778a4P1XA7z/aoD3Xw3w/qsB3n81wPuvBnj/1QDvvxrg/VcDvP9qgPdfDfD+qwHefzXA+68GeP/VAO+/GuD9VwO8/2qA918N8P6rAd5/NcD7rwZ4/9UA778a4P1XA7z/aoD3Xw3w/qsB3n81wPuvBnj/1QDvvxrg/VcDvP9qgPdfDfD+qwHefzXA+68GeP/VAO+/GuD9VwO8/2qA918N8P6rAd5/NcD7rwZ4/9UA778a4P1XA7z/aoD3Xw3w/qsB3n81wPuvBnj/1QDvvxrg/VcDvP9qgPdfDfD+qwHefzXA+68GeP/VAO+/GuD9VwO8/2qA918N8P6rAd5/NcD7rwZ4/9UA778a4P1X2w28AOsuAPsNfBeA/Qq+C8B+B98FYL+E7wKw38J3Adiv4bsA7PfwXQD2i/guAP1NDF6FdReA/iYGL8O6C0B/E4PX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V5XobpJJLperSnQjyCSXy1UluodjksvlqhLdfjHJ5XJVie6cmORyuapENz1McrlcVaL7FSa5XK4q0a0Gk1wuV5XoLoFJLperStTBb5LL5aoS9eSb5HK5qkRd9ia5XK4qUd+8SS6Xq0rUCW+Sy+WqEvW2m+RyuSqubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61XeubvWdq1t95+pW37m61StXt3rl6lavXN3qlatbvd4ql1wqV1W5utUrV7d65epWr1zd6pWrW71ydatXrm71ytWtXrm61StXt3rl6lavXN3qlatbvXJ1q1eubvXK1a1eubrVK1e3euXqVq9c3eqVq1u9cnWrV65u9crVrV65utUrV7d65epWr1zd6pWrW71ydatXrm71ytWtXrm61StXt3rl6lavXN3qlatbvXJ1q1eubvXK1a1eubrVK1e3euXqVq9c3eqVq1u9Jmrf3m63289Tjw/f+5vnKGW/PRX+perxHK38r9/5djy/820cL+z+8ZnP8fzO5cN3Pmr5+2uPul8Nv2r4vMPP48k0/K+Hn8ehavhfDz+PX9fwvx5+nvSi4X89/DxZTsP/dviJ7lto+F8PP89PTzT8r4ef52dJGv7Xw9eGj3j4VcPPOfzz8Y2Pl+/7f4avDR/x8LXhIx6+NnzEw9eGL+nw+8/w29XwteHjHX6iW2sa/tfD14aPePja8BEPXxs+4uFXDT/n8I/Hb+8erV8NXxs+4uFrw0c8fG34iIevDR/x8LXh4x1+oru/Gv7Xw9eGj3j42vARD18bPuLhVw2fd/ja8BEPXxs+4uFrw0c8fG34iIevDR/v8Ic2fMTD14aPePja8BEPXxs+4uFXDZ93+NrwEQ9fGz7i4WvDRzx8bfiIh68NH+3wj5s2fMTD14aPePja8BEPXxs+4uFXDZ93+NrwEQ9fGz7i4WvDRzx8bfiIh68NH+/w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d4C/fwf4+3eAv389enWWPj/4+3eAv38H+Pt3gL9/B/b7t96w37/1hv3+rTfs92+9Yb9/6w37/Vtv2O/fesN+/9Yb9vu33rDfv/UG/v7dwN+/G/j7dwN//27g71+X7p+Vzw/+/t3A378b+Pt3A3//buDv3wL+/i3g798C/v4t4O9fl+6flc8P/v4t4O/fAv7+LeDv3wL+/t3B3787+Pt3B3//7uDvX5fupZXPD/7+3cHfvzv4+3cHf//u4O/fCv7+reDv3wr+/q3g71+X7quVzw/+/q3g798K/v6t4O/fCv7+PcDfvwf4+/cAf/8e4O9fl+6rlc8P/v49wN+/B/j79wB//x7g798G/v5t4O/fBv7+beDvX5f+qpXPD/7+beDv3wb+/m3g798G/v7t4O/fDv7+7eDv3w7+/nXplFr5/ODv3w7+/u3g798O/v7t4O9f8P6rCt5/VcH7ryp4/1UF77+q4P1XFbz/qoL3X1Xw/qsK3n9VwfuvKnj/VQXvv6rg/VcVvP+qgvdfVfD+qwref1XB+68qeP/VAd5/dYD3Xx3g/VcHeP/VccN+/x7g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/dYD3Xx3g/VcHeP/VAd5/1cD7rxp4/1UD779q4P1X7Yb9/m3g/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQPvv2rg/VcNvP+qgfdfNfD+qwbef9XA+68aeP9VA++/auD9Vw28/6qB91818P6rBt5/1cD7rxp4/1UD779q4P1XDbz/qoH3XzXw/qsG3n/VwPuvGnj/VQfvv+rg/VcdvP+qg/df9Rv2+7eD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vx28/6qD91918P6rDt5/1cH7rzp4/1UH77/q4P1XHbz/qoP3X3Xw/qsO3n/VwfuvOnj/VQfvv+rg/VcdvP+qg/dfdfD+qw7ef9XB+686eP9VB++/6uD9Vyd4/9UJ3n91gvdfneD9V+cN+/17gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91gvdfneD9Vyd4/9UJ3n91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xga+5foiIsMbG/h26YuIDG9s4FudLyIyvLGBb1O+iMjwxg5+i3Fs7fkgY9/+EPHvfuJ7lxz7/T5Fcmw3MEVybO8wQ3LwG4FTJMf2JVMkx3YxUyTH9jxTJFc+ybH91BTJfO4r+LW2KZL53Ffwy2czJAe/TzZFMp/7Cn7ra4pkPvcV/G7WFMl87iv4DaopkvncV/B7TlMk87mv4LeRpkjmc1/B7wxNkcznvoLf7Jkimc99Bb9/M0Uyn/sKfktmimQ+9xX8LssUyXzuK/iNkymS+dxX8HshUyTzua/gtzemSOZzX8HvWEyRzOe+gt+EmCKZz30Fv68wRTKf+wp+q2CKZD73Fbz3f4pkPvcVvEN/imQ+9xW8j36KZD73FbzbfYpkPvcVvCd9imQ+9xW8c3yKZD73Fby/e4pkPvcVvAt7imQ+9xW8s3qKZD73Fby3eopkPvcVvLt6imQ+9xW8v3qKZDr3tQXvsJ4imc59bcF7rKdIpnNf96/hk0znvrbgndpTJNO5ry14X/cUyXzuK3gX+BTJfO4reM/4FMl87it4h/kUyXzuK3g/+hTJfO4rePf6FMl87it4r/sUyXzuK3hn/BTJfO4reB/9FMl87ouv637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+42v637j67rf+LruN76u+y1Q1/3LQ8XxRy8PFcfBvDxUHI/x8lBxXMDLQ8V5T788VJw36ctDxXnXvTxUnLfRy0PFeV/8PFSg/uyXh4r4iR6og/rloSJ+ogfqcX55qIif6IG6kF8eKuIneqA+4ZeHiviJHqiT9+WhIn6iB+q1fXmoiJ/ogbphXx4q4id6oH7Vl4eK+IkeqKP05aECfqKXQD2fLw8V8BO9BOrKfHmogJ/o5Tb3E/3lHzp+6x9qv/UP9d/6h87f+ofGL/1DkzvzXv6h7bf+ofJb/9D+W//Qb30ybL/1ybD91ifD9lufDNtvfTJsv/XJUH7rk6H81idD+a1PhvJbnwzltz4Zym99MpTf+mQov/XJUH7rk6H81ifD/luf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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/+2b227iMBCGE8ohNMshIYTzobQ3exdYCvSOl9l9671fad9htZ3UUwZrWjnqxIolLKFMjOP/m9+HppXre2+l9frxVdzQrrRgm7O6Zl8rW8G+sjI5fUc4a45w3gly+gwnXOsqhivM5aZ3Pc/fy1lwklBRCgUDc0fqPoK7eghKUwWBBnyWgD5lpybpnEJDCRU4BQhJIj6pw2drpA53kLvg0kVTPod9QMwT6/d1QMNL2u/cIYnxO9Cekrp6STk25HMsy7t8VaI/DdVvi9yjV20VC+6wW6rtq0+baHpqjDCekLbYDv2okTGG0vEu49/+5Lm69lyXtGky+Z892fxbGk9LY24oJigR8Gp7QEljk0G/9/L9Xo15XRuTe5JTR9zv3Qn2hNC7LvpPmTOJO4TnmzhPti0nz7ex6xJ2mX6f9+BVT/Mq1LzqkjaUoVeCfz7Rxb7xvsdoy3lxOIF238CLPsPTt+xFn9EW9OIFtCMDLyKGJ7LsRcRoy3lx/AHasYEXMcMTW/YiZrTlvNjl7xYDAy8GDM/AshcDRltwjeTzIjHwImF4EsteJIy2oBe/QHto4MWQ4Rla9mLIaAt68RO0UwMvUoYntexFymgL7p35+8XIwIsRwzOy7MWI0Rb0YgfaYwMvxgzP2LIXY0ZbcI3k2hMDLyYMz8SyF/R31CLMAweZUweZ4wowB1oso33I98+pgRdThmdq2QvUK8qcVIA50GIZ7cMzaM8MvJgxPDPLXqBeUebIQebYQeahg8yJg8ypg8xVmM+BFstoH/M9dG7gxZzhmVv2AvWKMkcOMk8dZI4rwBxosYz2Mf/b3MLAiwXDs7DsBeoVZR45yNyvAHOgxTLaxwNoLw28WDI8S8teoF5R5rGDzKmDzFMHmWMHmYcOMicOMt/WoB3mqALM9EzT31J5di+hxoOeeRqjpzGGJKbnYFbijFlGx2dFtNbyWltuvuD9ulTt3Qn63cjnlL/LP6q+8AzfhsnpScXS57keSb8+0cH6Oon/kLbYDv3AdYvsMO8eVPz0yXNL7bkuafPA5H/2ZPPfaDwbjRnG5DfhWItz7E4m87rvXdbyd8JTwj64p2dysZjsOyXtMduS8szoGb5/nuyaXmteBZpXXdKG7tHrEvwzmV835hvzR8z0fSIgdfj9itTVtFzo/zJgezgz/B/4fzqFFjUAAA==","debug_symbols":"ndpBattQGIXRvWgciu8v6ekpWymlOIlTDMYOsVMoJnuv3dIF9Mz0JN3ZNzq86/Cye/r48X1/fD2dh8ev1+Fwet5e9qfj7XQdNl+q/Xl7ftse7y/Ol+37ZXgcKw/D7vhyf2qfD8Pr/rC7PY/j57eH+2iRUZfRCqNxI6PIqGQ0ymiS0SwjKWKUIkYpYpQiJilikiImKWKSIiYpYpIiJilikiImKWKSImYpYpYiZililiJmKWKWImYpYpYiZililiKaFNGkiCZFNCmiSRFNimhSRJMimhTRpIhFilikiEWKWKSIRYpYpIhFilikiEWKWKSILkV0KaJLEV2K6FJElyK6FNGliC5FdClilSJWKWKVIlYpYpUiVililSJWKWKVIlYpIpsNrUKrotVIq4lWM60arRZadVpRG6E2Qm2E2gi1EWoj1EaojVAboTZCbRS1UdRGURtFbRS1UdQGcWbIM0OgGRLNEGmGTDOEmiHVDLFmyDVDsBmSzRBthmwzhJsh3QzxZsg3Q8AZEs4QcYaMM4ScIeUMMWfIOUPQGZLOEHWGrDOEnSHtDHFnyDtD4BkSzxB5hswzhJ4h9QyxZ8g9Q/AZks8QfYbsM4SfIf0M8WfIP0MAGhLQEIGGDDSEoCEFDTFoyEFDEBqS0BCFhiw0hKEhDQ1xaMhDQyAaEtEQiYZMNISiIRUNsWjIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFi1y0yEWLXLTIRYtctMhFy6552j1Pu+hJLlrkokUuWuSiRS5a/+2it9PP7ft++3TY3W/23j9+HJ//XfS9HS+/3v5+uf37Gw=="}],"outputs":{"globals":{},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters"}}],"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi"}]}},"file_map":{"114":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{\n abis::{function_selector::FunctionSelector, private_call_stack_item::PrivateCallStackItem},\n address::AztecAddress, constants::PRIVATE_CALL_STACK_ITEM_LENGTH\n};\n\n#[oracle(callPrivateFunction)]\nfn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> PrivateCallStackItem {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n PrivateCallStackItem::deserialize(fields)\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{\n abis::{\n function_selector::FunctionSelector, public_call_stack_item::PublicCallStackItem,\n function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs,\n call_context::CallContext, read_request::ReadRequest, note_hash::NoteHash, nullifier::Nullifier,\n log_hash::LogHash, global_variables::GlobalVariables, gas::Gas\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n messaging::l2_to_l1_message::L2ToL1Message, header::Header, address::AztecAddress,\n utils::reader::Reader,\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_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH\n}\n};\n\n#[oracle(enqueuePublicFunctionCall)]\nfn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nfn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH] {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n )\n}\n\npub fn parse_public_call_stack_item_from_oracle(fields: [Field; ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH]) -> PublicCallStackItem {\n let mut reader = Reader::new(fields);\n\n // Note: Not using PublicCirclePublicInputs::deserialize here, because everything below args_hash is 0 and\n // there is no more data in fields because there is only ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_SIZE fields!\n let item = PublicCallStackItem {\n contract_address: AztecAddress::from_field(reader.read()),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: 0,\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0,\n end_side_effect_counter: 0,\n unencrypted_logs_hashes: [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n historical_header: Header::empty(),\n global_variables: GlobalVariables::empty(),\n prover_address: AztecAddress::zero(),\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0\n },\n is_execution_request: true\n };\n reader.finish();\n\n item\n}\n"},"139":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{GAS_LENGTH, FIXED_DA_GAS}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered, utils::reader::Reader,\n abis::gas_fees::GasFees\n};\nuse dep::std::ops::{Add, Sub};\n\nstruct Gas {\n da_gas: u32,\n l2_gas: u32,\n}\n\nimpl Gas {\n pub fn new(da_gas: u32, l2_gas: u32) -> Self {\n Self { da_gas, l2_gas }\n }\n\n pub fn tx_overhead() -> Self {\n Self { da_gas: FIXED_DA_GAS, l2_gas: 0 }\n }\n\n pub fn compute_fee(self, fees: GasFees) -> Field {\n (self.da_gas as Field) * fees.fee_per_da_gas + (self.l2_gas as Field) * fees.fee_per_l2_gas\n }\n\n pub fn is_empty(self) -> bool {\n (self.da_gas == 0) & (self.l2_gas == 0)\n }\n\n pub fn within(self, limits: Gas) -> bool {\n (self.da_gas <= limits.da_gas) & (self.l2_gas <= limits.l2_gas)\n }\n}\n\nimpl Add for Gas {\n fn add(self, other: Gas) -> Self {\n Gas::new(self.da_gas + other.da_gas, self.l2_gas + other.l2_gas)\n }\n}\n\nimpl Sub for Gas {\n fn sub(self, other: Gas) -> Self {\n Gas::new(self.da_gas - other.da_gas, self.l2_gas - other.l2_gas)\n }\n}\n\nimpl Serialize<GAS_LENGTH> for Gas {\n fn serialize(self) -> [Field; GAS_LENGTH] {\n [self.da_gas as Field, self.l2_gas as Field]\n }\n}\n\nimpl Deserialize<GAS_LENGTH> for Gas {\n fn deserialize(serialized: [Field; GAS_LENGTH]) -> Gas {\n Gas::new(serialized[0] as u32, serialized[1] as u32)\n }\n}\n\nimpl Eq for Gas {\n fn eq(self, other : Gas) -> bool {\n (self.da_gas == other.da_gas) & (self.l2_gas == other.l2_gas)\n }\n}\n\nimpl Empty for Gas {\n fn empty() -> Self {\n Gas::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Gas::empty();\n let serialized = item.serialize();\n let deserialized = Gas::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n"},"141":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/note_hash.nr","source":"use crate::{\n abis::read_request::ScopedReadRequest, address::AztecAddress,\n abis::side_effect::{Ordered, OrderedValue, Readable},\n constants::{NOTE_HASH_LENGTH, SCOPED_NOTE_HASH_LENGTH}, traits::{Empty, Serialize, Deserialize},\n utils::{arrays::array_concat, reader::Reader}\n};\nuse dep::std::cmp::Eq;\n\nstruct NoteHash {\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for NoteHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteHash {\n fn eq(self, other: NoteHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter) \n }\n}\n\nimpl Empty for NoteHash {\n fn empty() -> Self {\n NoteHash {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_HASH_LENGTH> for NoteHash {\n fn serialize(self) -> [Field; NOTE_HASH_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_HASH_LENGTH> for NoteHash {\n fn deserialize(values: [Field; NOTE_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl NoteHash {\n pub fn scope(self, nullifier_counter: u32, contract_address: AztecAddress) -> ScopedNoteHash {\n ScopedNoteHash { note_hash: self, nullifier_counter, contract_address }\n }\n}\n\nstruct ScopedNoteHash {\n note_hash: NoteHash,\n nullifier_counter: u32,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedNoteHash {\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNoteHash {\n fn value(self) -> Field {\n self.note_hash.value\n }\n fn counter(self) -> u32 {\n self.note_hash.counter\n }\n}\n\nimpl Eq for ScopedNoteHash {\n fn eq(self, other: ScopedNoteHash) -> bool {\n (self.note_hash == other.note_hash)\n & (self.nullifier_counter == other.nullifier_counter)\n & (self.contract_address == other.contract_address)\n }\n}\n\nimpl Empty for ScopedNoteHash {\n fn empty() -> Self {\n ScopedNoteHash {\n note_hash: NoteHash::empty(),\n nullifier_counter: 0,\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn serialize(self) -> [Field; SCOPED_NOTE_HASH_LENGTH] {\n array_concat(self.note_hash.serialize(), [self.nullifier_counter as Field, self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NOTE_HASH_LENGTH> for ScopedNoteHash {\n fn deserialize(values: [Field; SCOPED_NOTE_HASH_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n note_hash: reader.read_struct(NoteHash::deserialize),\n nullifier_counter: reader.read_u32(),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNoteHash {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.note_hash.value, read_request.value(), \"Value of the note hash does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the note hash does not match read request\");\n assert(\n read_request.counter() > self.note_hash.counter, \"Read request counter must be greater than the counter of the note hash\"\n );\n assert(\n (self.nullifier_counter == 0) | (read_request.counter() < self.nullifier_counter), \"Read request counter must be less than the nullifier counter of the note hash\"\n );\n }\n}\n\nimpl ScopedNoteHash {\n pub fn expose_to_public(self) -> NoteHash {\n // Hide the actual counter when exposing it to the public kernel.\n NoteHash { value: self.note_hash.value, counter: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = NoteHash::empty();\n let serialized = item.serialize();\n let deserialized = NoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNoteHash::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNoteHash::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"142":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_fees.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::GAS_FEES_LENGTH, hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty},\n abis::side_effect::Ordered, utils::reader::Reader\n};\n\nstruct GasFees {\n fee_per_da_gas: Field,\n fee_per_l2_gas: Field,\n}\n\nimpl GasFees {\n pub fn new(fee_per_da_gas: Field, fee_per_l2_gas: Field) -> Self {\n Self { fee_per_da_gas, fee_per_l2_gas }\n }\n\n pub fn default() -> Self {\n GasFees::new(1, 1)\n }\n\n pub fn is_empty(self) -> bool {\n (self.fee_per_da_gas == 0) & (self.fee_per_l2_gas == 0)\n }\n}\n\nimpl Serialize<GAS_FEES_LENGTH> for GasFees {\n fn serialize(self) -> [Field; GAS_FEES_LENGTH] {\n [self.fee_per_da_gas, self.fee_per_l2_gas]\n }\n}\n\nimpl Deserialize<GAS_FEES_LENGTH> for GasFees {\n fn deserialize(serialized: [Field; GAS_FEES_LENGTH]) -> GasFees {\n GasFees::new(serialized[0], serialized[1])\n }\n}\n\nimpl Eq for GasFees {\n fn eq(self, other : GasFees) -> bool {\n (self.fee_per_da_gas == other.fee_per_da_gas) & (self.fee_per_l2_gas == other.fee_per_l2_gas)\n }\n}\n\nimpl Empty for GasFees {\n fn empty() -> Self {\n GasFees::new(0, 0)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasFees::empty();\n let serialized = item.serialize();\n let deserialized = GasFees::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"143":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr","source":"use crate::abis::{function_data::FunctionData, public_circuit_public_inputs::PublicCircuitPublicInputs};\nuse crate::address::AztecAddress;\nuse crate::constants::GENERATOR_INDEX__CALL_STACK_ITEM;\nuse crate::traits::Hash;\n\nstruct PublicCallStackItem {\n contract_address: AztecAddress,\n public_inputs: PublicCircuitPublicInputs,\n function_data: FunctionData,\n // True if this call stack item represents a request to execute a function rather than a\n // fulfilled execution. Used when enqueuing calls from private to public functions.\n is_execution_request: bool,\n}\n\nimpl Hash for PublicCallStackItem {\n fn hash(self) -> Field {\n let item = if self.is_execution_request {\n self.as_execution_request()\n } else {\n self\n };\n\n dep::std::hash::pedersen_hash_with_separator([\n item.contract_address.to_field(),\n item.function_data.hash(),\n item.public_inputs.hash(),\n ], GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl PublicCallStackItem {\n fn as_execution_request(self) -> Self {\n let public_inputs = self.public_inputs;\n let mut request_public_inputs = PublicCircuitPublicInputs::empty();\n request_public_inputs.call_context = public_inputs.call_context;\n request_public_inputs.args_hash = public_inputs.args_hash;\n\n let call_stack_item = PublicCallStackItem {\n contract_address: self.contract_address,\n function_data: self.function_data,\n is_execution_request: true,\n public_inputs: request_public_inputs\n };\n call_stack_item\n }\n}\n\nmod tests {\n use crate::{\n abis::{\n function_data::FunctionData, function_selector::FunctionSelector, note_hash::NoteHash,\n public_circuit_public_inputs::PublicCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem, side_effect::SideEffect\n },\n address::AztecAddress, constants::GENERATOR_INDEX__CALL_STACK_ITEM, traits::Hash\n };\n\n #[test]\n fn compute_call_stack_item_request_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: true, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item request hash\" test\n let test_data_call_stack_item_request_hash = 0x11998b1d33b8ba1c8fa7a6c2f5bc76b31bbaa80400554465c335ba31559ac1f9;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_request_hash);\n }\n\n #[test]\n fn compute_call_stack_item_hash() {\n let contract_address = AztecAddress::from_field(1);\n let function_data = FunctionData { selector: FunctionSelector::from_u32(2), is_private: false };\n\n let mut public_inputs = PublicCircuitPublicInputs::empty();\n public_inputs.new_note_hashes[0] = NoteHash {\n value: 1,\n counter: 0,\n };\n\n let call_stack_item = PublicCallStackItem { contract_address, public_inputs, is_execution_request: false, function_data };\n\n // Value from public_call_stack_item.test.ts \"Computes a callstack item hash\" test\n let test_data_call_stack_item_hash = 0x2b7f8b68d96d0011ecc576459899e9451fbd880568ccc7a071d9cf04e59abb65;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);\n }\n}\n"},"144":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, max_block_number::MaxBlockNumber, gas_settings::GasSettings,\n key_validation_request::KeyValidationRequest, note_hash::NoteHash, nullifier::Nullifier,\n private_call_request::PrivateCallRequest, read_request::ReadRequest,\n log_hash::{LogHash, NoteLogHash}\n},\n constants::{\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_NEW_NOTE_HASHES_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS, MAX_ENCRYPTED_LOGS_PER_CALL,\n MAX_UNENCRYPTED_LOGS_PER_CALL, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, hash::pedersen_hash, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n transaction::tx_context::TxContext, utils::arrays::validate_array\n};\n\nstruct PrivateCircuitPublicInputsArrayLengths {\n note_hash_read_requests: u64,\n nullifier_read_requests: u64,\n key_validation_requests: u64,\n new_note_hashes: u64,\n new_nullifiers: u64,\n new_l2_to_l1_msgs: u64,\n private_call_requests: u64,\n public_call_stack_hashes: u64,\n note_encrypted_logs_hashes: u64,\n encrypted_logs_hashes: u64,\n unencrypted_logs_hashes: u64,\n}\n\nimpl PrivateCircuitPublicInputsArrayLengths {\n pub fn new(public_inputs: PrivateCircuitPublicInputs) -> Self {\n PrivateCircuitPublicInputsArrayLengths {\n note_hash_read_requests: validate_array(public_inputs.note_hash_read_requests),\n nullifier_read_requests: validate_array(public_inputs.nullifier_read_requests),\n key_validation_requests: validate_array(public_inputs.key_validation_requests),\n new_note_hashes: validate_array(public_inputs.new_note_hashes),\n new_nullifiers: validate_array(public_inputs.new_nullifiers),\n new_l2_to_l1_msgs: validate_array(public_inputs.new_l2_to_l1_msgs),\n private_call_requests: validate_array(public_inputs.private_call_requests),\n public_call_stack_hashes: validate_array(public_inputs.public_call_stack_hashes),\n note_encrypted_logs_hashes: validate_array(public_inputs.note_encrypted_logs_hashes),\n encrypted_logs_hashes: validate_array(public_inputs.encrypted_logs_hashes),\n unencrypted_logs_hashes: validate_array(public_inputs.unencrypted_logs_hashes)\n }\n }\n}\n\nstruct PrivateCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: [ReadRequest; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest; MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n key_validation_requests: [KeyValidationRequest; MAX_KEY_VALIDATION_REQUESTS_PER_CALL],\n\n new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_requests: [PrivateCallRequest; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: Field,\n new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter : u32,\n end_side_effect_counter : u32,\n note_encrypted_logs_hashes: [NoteLogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_CALL],\n encrypted_logs_hashes: [LogHash; MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [LogHash; MAX_UNENCRYPTED_LOGS_PER_CALL],\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n // Note: The chain_id and version here are not redundant to the values in self.historical_header.global_variables because\n // they can be different in case of a protocol upgrade. In such a situation we could be using header from a block\n // before the upgrade took place but be using the updated protocol to execute and prove the transaction.\n tx_context: TxContext,\n}\n\nimpl Eq for PrivateCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.call_context.eq(other.call_context) &\n self.args_hash.eq(other.args_hash) &\n (self.returns_hash == other.returns_hash) &\n (self.min_revertible_side_effect_counter == other.min_revertible_side_effect_counter) &\n (self.is_fee_payer == other.is_fee_payer) &\n (self.max_block_number == other.max_block_number) &\n (self.note_hash_read_requests == other.note_hash_read_requests) &\n (self.nullifier_read_requests == other.nullifier_read_requests) &\n (self.key_validation_requests == other.key_validation_requests) &\n (self.new_note_hashes == other.new_note_hashes) &\n (self.new_nullifiers == other.new_nullifiers) &\n (self.private_call_requests == other.private_call_requests) &\n (self.public_call_stack_hashes == other.public_call_stack_hashes) &\n (self.new_l2_to_l1_msgs == other.new_l2_to_l1_msgs) &\n (self.start_side_effect_counter == other.start_side_effect_counter) &\n (self.end_side_effect_counter == other.end_side_effect_counter) &\n (self.note_encrypted_logs_hashes == other.note_encrypted_logs_hashes) &\n (self.encrypted_logs_hashes == other.encrypted_logs_hashes) &\n (self.unencrypted_logs_hashes == other.unencrypted_logs_hashes) &\n self.historical_header.eq(other.historical_header) &\n self.tx_context.eq(other.tx_context)\n }\n}\n\nimpl Serialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new();\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n\n fields.push(self.min_revertible_side_effect_counter as Field);\n fields.push(if self.is_fee_payer { 1 } else { 0 } as Field);\n\n fields.extend_from_array(self.max_block_number.serialize());\n\n for i in 0..self.note_hash_read_requests.len() {\n fields.extend_from_array(self.note_hash_read_requests[i].serialize());\n }\n for i in 0..self.nullifier_read_requests.len() {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..self.key_validation_requests.len() {\n fields.extend_from_array(self.key_validation_requests[i].serialize());\n }\n for i in 0..self.new_note_hashes.len() {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..self.new_nullifiers.len() {\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n for i in 0..self.private_call_requests.len() {\n fields.extend_from_array(self.private_call_requests[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n fields.push(self.public_teardown_function_hash);\n for i in 0..self.new_l2_to_l1_msgs.len() {\n fields.extend_from_array(self.new_l2_to_l1_msgs[i].serialize());\n }\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n for i in 0..self.note_encrypted_logs_hashes.len() {\n fields.extend_from_array(self.note_encrypted_logs_hashes[i].serialize());\n }\n for i in 0..self.encrypted_logs_hashes.len() {\n fields.extend_from_array(self.encrypted_logs_hashes[i].serialize());\n }\n for i in 0..self.unencrypted_logs_hashes.len() {\n fields.extend_from_array(self.unencrypted_logs_hashes[i].serialize());\n }\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.tx_context.serialize());\n\n assert_eq(fields.len(), PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PrivateCircuitPublicInputs {\n fn deserialize(serialized: [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = Self {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n min_revertible_side_effect_counter: reader.read() as u32,\n is_fee_payer: reader.read() == 1,\n max_block_number: reader.read_struct(MaxBlockNumber::deserialize),\n note_hash_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL]),\n nullifier_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL]),\n key_validation_requests: reader.read_struct_array(KeyValidationRequest::deserialize, [KeyValidationRequest::empty(); MAX_KEY_VALIDATION_REQUESTS_PER_CALL]),\n new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n private_call_requests: reader.read_struct_array(PrivateCallRequest::deserialize, [PrivateCallRequest::empty(); MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n public_teardown_function_hash: reader.read(),\n new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n start_side_effect_counter: reader.read() as u32,\n end_side_effect_counter: reader.read() as u32,\n note_encrypted_logs_hashes: reader.read_struct_array(NoteLogHash::deserialize, [NoteLogHash::empty(); MAX_NOTE_ENCRYPTED_LOGS_PER_CALL]),\n encrypted_logs_hashes: reader.read_struct_array(LogHash::deserialize, [LogHash::empty(); MAX_ENCRYPTED_LOGS_PER_CALL]),\n unencrypted_logs_hashes: reader.read_struct_array(LogHash::deserialize, [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL]),\n historical_header: reader.read_struct(Header::deserialize),\n tx_context: reader.read_struct(TxContext::deserialize),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PrivateCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PrivateCircuitPublicInputs {\n fn empty() -> Self {\n PrivateCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\n returns_hash: 0,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: [ReadRequest::empty(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n key_validation_requests: [KeyValidationRequest::empty(); MAX_KEY_VALIDATION_REQUESTS_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n private_call_requests: [PrivateCallRequest::empty(); MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter : 0 as u32,\n end_side_effect_counter : 0 as u32,\n note_encrypted_logs_hashes: [NoteLogHash::empty(); MAX_NOTE_ENCRYPTED_LOGS_PER_CALL],\n encrypted_logs_hashes: [LogHash::empty(); MAX_ENCRYPTED_LOGS_PER_CALL],\n unencrypted_logs_hashes: [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n historical_header: Header::empty(),\n tx_context: TxContext::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PrivateCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PrivateCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PrivateCircuitPublicInputs::empty();\n let hash = inputs.hash();\n // Value from private_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x2ce8fd4d6f4f4edbe281f96b095b60f8516980e8582f0393151baab50f413307;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"146":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/global_variables.nr","source":"use dep::std::cmp::Eq;\nuse crate::{\n address::{AztecAddress, EthAddress}, abis::gas_fees::GasFees,\n constants::{GENERATOR_INDEX__GLOBAL_VARIABLES, GLOBAL_VARIABLES_LENGTH},\n traits::{Deserialize, Empty, Hash, Serialize}, utils::reader::Reader\n};\n\n// docs:start:global-variables\nstruct GlobalVariables {\n chain_id : Field,\n version : Field,\n block_number : Field,\n timestamp : u64,\n coinbase : EthAddress,\n fee_recipient : AztecAddress,\n gas_fees : GasFees\n}\n// docs:end:global-variables\n\nimpl GlobalVariables {\n fn is_empty(self) -> bool {\n (self.chain_id == 0)\n & (self.version == 0)\n & (self.block_number == 0)\n & (self.timestamp == 0)\n & (self.coinbase.is_zero())\n & (self.fee_recipient.is_zero())\n & (self.gas_fees.is_empty())\n }\n}\n\nimpl Serialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn serialize(self) -> [Field; GLOBAL_VARIABLES_LENGTH] {\n let mut serialized: BoundedVec<Field, GLOBAL_VARIABLES_LENGTH> = BoundedVec::new();\n\n serialized.push(self.chain_id);\n serialized.push(self.version);\n serialized.push(self.block_number);\n serialized.push(self.timestamp as Field);\n serialized.push(self.coinbase.to_field());\n serialized.push(self.fee_recipient.to_field());\n serialized.extend_from_array(self.gas_fees.serialize());\n\n serialized.storage\n }\n}\n\nimpl Deserialize<GLOBAL_VARIABLES_LENGTH> for GlobalVariables {\n fn deserialize(serialized: [Field; GLOBAL_VARIABLES_LENGTH]) -> GlobalVariables {\n let mut reader = Reader::new(serialized);\n GlobalVariables {\n chain_id: reader.read(),\n version: reader.read(),\n block_number: reader.read(),\n timestamp: reader.read() as u64,\n coinbase: EthAddress::from_field(reader.read()),\n fee_recipient: AztecAddress::from_field(reader.read()),\n gas_fees: reader.read_struct(GasFees::deserialize)\n }\n }\n}\n\nimpl Eq for GlobalVariables {\n fn eq(self, other : GlobalVariables) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.block_number == other.block_number) &\n (self.timestamp == other.timestamp) &\n (self.coinbase == other.coinbase) &\n (self.fee_recipient == other.fee_recipient) &\n (self.gas_fees == other.gas_fees) \n }\n}\n\nimpl Empty for GlobalVariables {\n fn empty() -> Self {\n Self {\n chain_id: 0,\n version: 0,\n block_number: 0,\n timestamp: 0,\n coinbase: EthAddress::empty(),\n fee_recipient: AztecAddress::empty(),\n gas_fees: GasFees::empty()\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let vars = GlobalVariables::empty();\n let _serialized = vars.serialize();\n let _deserialized = GlobalVariables::deserialize(_serialized);\n}\n"},"147":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/read_request.nr","source":"use crate::{\n abis::side_effect::Ordered, traits::{Empty, Serialize, Deserialize}, address::AztecAddress,\n constants::{READ_REQUEST_LENGTH, SCOPED_READ_REQUEST_LEN},\n utils::{arrays::array_concat, reader::Reader}\n};\nuse dep::std::cmp::Eq;\n\nstruct ReadRequest {\n value: Field,\n counter: u32,\n}\n\nimpl Ordered for ReadRequest {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for ReadRequest {\n fn eq(self, read_request: ReadRequest) -> bool {\n (self.value == read_request.value)\n & (self.counter == read_request.counter)\n }\n}\n\nimpl Empty for ReadRequest {\n fn empty() -> Self {\n ReadRequest {\n value: 0,\n counter: 0,\n }\n }\n}\n\nimpl Serialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn serialize(self) -> [Field; READ_REQUEST_LENGTH] {\n [self.value, self.counter as Field]\n }\n}\n\nimpl Deserialize<READ_REQUEST_LENGTH> for ReadRequest {\n fn deserialize(values: [Field; READ_REQUEST_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n }\n }\n}\n\nimpl ReadRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedReadRequest {\n ScopedReadRequest { read_request: self, contract_address }\n }\n}\n\nstruct ScopedReadRequest {\n read_request: ReadRequest,\n contract_address: AztecAddress,\n}\n\nimpl Eq for ScopedReadRequest {\n fn eq(self, other: ScopedReadRequest) -> bool {\n (self.read_request == other.read_request)\n & (self.contract_address.eq(other.contract_address))\n }\n}\n\nimpl Empty for ScopedReadRequest {\n fn empty() -> Self {\n ScopedReadRequest {\n read_request: ReadRequest::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn serialize(self) -> [Field; SCOPED_READ_REQUEST_LEN] {\n array_concat(self.read_request.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_READ_REQUEST_LEN> for ScopedReadRequest {\n fn deserialize(values: [Field; SCOPED_READ_REQUEST_LEN]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n read_request: reader.read_struct(ReadRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl ScopedReadRequest {\n pub fn value(self) -> Field {\n self.read_request.value\n }\n pub fn counter(self) -> u32 {\n self.read_request.counter\n }\n}\n\n#[test]\nfn serialization_of_empty_read() {\n let item = ReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedReadRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedReadRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"148":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/key_validation_request.nr","source":"use dep::std::cmp::Eq;\nuse crate::{\n address::AztecAddress,\n constants::{SCOPED_KEY_VALIDATION_REQUEST_LENGTH, KEY_VALIDATION_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, grumpkin_point::GrumpkinPoint,\n utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct KeyValidationRequest {\n pk_m: GrumpkinPoint,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: GrumpkinPoint::zero(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: GrumpkinPoint::new(fields[0], fields[1]),\n sk_app: fields[2],\n }\n }\n}\n\nimpl KeyValidationRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedKeyValidationRequest {\n ScopedKeyValidationRequest { request: self, contract_address }\n }\n}\n\nstruct ScopedKeyValidationRequest {\n request: KeyValidationRequest,\n contract_address: AztecAddress,\n}\n\nimpl Eq for ScopedKeyValidationRequest {\n fn eq(self, other: ScopedKeyValidationRequest) -> bool {\n (self.request.eq(other.request))\n & (self.contract_address.eq(other.contract_address))\n }\n}\n\nimpl Empty for ScopedKeyValidationRequest {\n fn empty() -> Self {\n ScopedKeyValidationRequest {\n request: KeyValidationRequest::empty(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_KEY_VALIDATION_REQUEST_LENGTH> for ScopedKeyValidationRequest {\n fn serialize(self) -> [Field; SCOPED_KEY_VALIDATION_REQUEST_LENGTH] {\n array_concat(self.request.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_KEY_VALIDATION_REQUEST_LENGTH> for ScopedKeyValidationRequest {\n fn deserialize(fields: [Field; SCOPED_KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n let mut reader = Reader::new(fields);\n let res = Self {\n request: reader.read_struct(KeyValidationRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = ScopedKeyValidationRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedKeyValidationRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n"},"152":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier.nr","source":"use crate::{\n abis::{side_effect::{Ordered, OrderedValue, Readable}, read_request::ScopedReadRequest},\n address::AztecAddress, constants::{NULLIFIER_LENGTH, SCOPED_NULLIFIER_LENGTH}, hash::silo_nullifier,\n traits::{Empty, Hash, Serialize, Deserialize}, utils::{arrays::array_concat, reader::Reader}\n};\n\nstruct Nullifier {\n value: Field,\n counter: u32,\n note_hash: Field,\n}\n\nimpl Ordered for Nullifier {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for Nullifier {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for Nullifier {\n fn eq(self, other: Nullifier) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.note_hash == other.note_hash) \n }\n}\n\nimpl Empty for Nullifier {\n fn empty() -> Self {\n Nullifier {\n value: 0,\n counter: 0,\n note_hash: 0,\n }\n }\n}\n\nimpl Serialize<NULLIFIER_LENGTH> for Nullifier {\n fn serialize(self) -> [Field; NULLIFIER_LENGTH] {\n [self.value, self.counter as Field, self.note_hash]\n }\n}\n\nimpl Deserialize<NULLIFIER_LENGTH> for Nullifier {\n fn deserialize(values: [Field; NULLIFIER_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n note_hash: values[2],\n }\n }\n}\n\nimpl Readable for Nullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n // Public kernels output Nullifier instead of ScopedNullifier.\n // The nullifier value has been siloed.\n let siloed_request_value = silo_nullifier(read_request.contract_address, read_request.value());\n assert_eq(self.value, siloed_request_value, \"Value of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl Nullifier {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedNullifier {\n ScopedNullifier { nullifier: self, contract_address }\n }\n}\n\nstruct ScopedNullifier {\n nullifier: Nullifier,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedNullifier {\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl OrderedValue<Field> for ScopedNullifier {\n fn value(self) -> Field {\n self.nullifier.value\n }\n fn counter(self) -> u32 {\n self.nullifier.counter\n }\n}\n\nimpl Eq for ScopedNullifier {\n fn eq(self, other: ScopedNullifier) -> bool {\n (self.nullifier == other.nullifier)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedNullifier {\n fn empty() -> Self {\n ScopedNullifier {\n nullifier: Nullifier::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn serialize(self) -> [Field; SCOPED_NULLIFIER_LENGTH] {\n array_concat(self.nullifier.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_NULLIFIER_LENGTH> for ScopedNullifier {\n fn deserialize(values: [Field; SCOPED_NULLIFIER_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n nullifier: reader.read_struct(Nullifier::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\nimpl Readable for ScopedNullifier {\n fn assert_match_read_request(self, read_request: ScopedReadRequest) {\n assert_eq(self.nullifier.value, read_request.value(), \"Value of the nullifier does not match read request\");\n assert_eq(self.contract_address, read_request.contract_address, \"Contract address of the nullifier does not match read request\");\n assert(\n read_request.counter() > self.nullifier.counter, \"Read request counter must be greater than the counter of the nullifier\"\n );\n }\n}\n\nimpl ScopedNullifier {\n pub fn nullified_note_hash(self) -> Field {\n self.nullifier.note_hash\n }\n\n pub fn expose_to_public(self) -> Nullifier {\n // Hide the actual counter and note hash when exposing it to the public kernel.\n Nullifier { value: self.nullifier.value, counter: 0, note_hash: 0 }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = Nullifier::empty();\n let serialized = item.serialize();\n let deserialized = Nullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped() {\n let item = ScopedNullifier::empty();\n let serialized = item.serialize();\n let deserialized = ScopedNullifier::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"161":{"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"},"162":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_request.nr","source":"use dep::std::cmp::Eq;\nuse crate::{\n abis::{caller_context::CallerContext, side_effect::{Ordered, RangeOrdered}}, address::AztecAddress,\n constants::{PRIVATE_CALL_REQUEST_LENGTH, SCOPED_PRIVATE_CALL_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, utils::reader::Reader\n};\n\nstruct PrivateCallRequest {\n hash: Field,\n caller_context: CallerContext,\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n}\n\nimpl Ordered for PrivateCallRequest {\n fn counter(self) -> u32 {\n self.start_side_effect_counter\n }\n}\n\nimpl RangeOrdered for PrivateCallRequest {\n fn counter_start(self) -> u32 {\n self.start_side_effect_counter\n }\n fn counter_end(self) -> u32 {\n self.end_side_effect_counter\n }\n}\n\nimpl Eq for PrivateCallRequest {\n fn eq(self, other: PrivateCallRequest) -> bool {\n (self.hash == other.hash)\n & (self.caller_context == other.caller_context)\n & (self.start_side_effect_counter == other.start_side_effect_counter)\n & (self.end_side_effect_counter == other.end_side_effect_counter)\n }\n}\n\nimpl Empty for PrivateCallRequest {\n fn empty() -> Self {\n PrivateCallRequest {\n hash: 0,\n caller_context: CallerContext::empty(),\n start_side_effect_counter: 0,\n end_side_effect_counter: 0,\n }\n }\n}\n\nimpl Serialize<PRIVATE_CALL_REQUEST_LENGTH> for PrivateCallRequest {\n fn serialize(self) -> [Field; PRIVATE_CALL_REQUEST_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_REQUEST_LENGTH> = BoundedVec::new();\n\n fields.push(self.hash);\n fields.extend_from_array(self.caller_context.serialize());\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n\n assert_eq(fields.len(), PRIVATE_CALL_REQUEST_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_REQUEST_LENGTH> for PrivateCallRequest {\n fn deserialize(fields: [Field; PRIVATE_CALL_REQUEST_LENGTH]) -> PrivateCallRequest {\n let mut reader = Reader::new(fields);\n let item = PrivateCallRequest {\n hash: reader.read(),\n caller_context: reader.read_struct(CallerContext::deserialize),\n start_side_effect_counter: reader.read_u32(),\n end_side_effect_counter: reader.read_u32(),\n };\n reader.finish();\n item\n }\n}\n\nimpl PrivateCallRequest {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedPrivateCallRequest {\n ScopedPrivateCallRequest { call_request: self, contract_address }\n }\n}\n\nstruct ScopedPrivateCallRequest {\n call_request: PrivateCallRequest,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedPrivateCallRequest {\n fn counter(self) -> u32 {\n self.call_request.counter_start()\n }\n}\n\nimpl RangeOrdered for ScopedPrivateCallRequest {\n fn counter_start(self) -> u32 {\n self.call_request.counter_start()\n }\n fn counter_end(self) -> u32 {\n self.call_request.counter_end()\n }\n}\n\nimpl Eq for ScopedPrivateCallRequest {\n fn eq(self, other: ScopedPrivateCallRequest) -> bool {\n (self.call_request == other.call_request)\n & (self.contract_address == other.contract_address)\n }\n}\n\nimpl Empty for ScopedPrivateCallRequest {\n fn empty() -> Self {\n ScopedPrivateCallRequest {\n call_request: PrivateCallRequest::empty(),\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<SCOPED_PRIVATE_CALL_REQUEST_LENGTH> for ScopedPrivateCallRequest {\n fn serialize(self) -> [Field; SCOPED_PRIVATE_CALL_REQUEST_LENGTH] {\n let mut fields: BoundedVec<Field, SCOPED_PRIVATE_CALL_REQUEST_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.call_request.serialize());\n fields.extend_from_array(self.contract_address.serialize());\n\n assert_eq(fields.len(), SCOPED_PRIVATE_CALL_REQUEST_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<SCOPED_PRIVATE_CALL_REQUEST_LENGTH> for ScopedPrivateCallRequest {\n fn deserialize(fields: [Field; SCOPED_PRIVATE_CALL_REQUEST_LENGTH]) -> ScopedPrivateCallRequest {\n let mut reader = Reader::new(fields);\n let item = ScopedPrivateCallRequest {\n call_request: reader.read_struct(PrivateCallRequest::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n item\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = ScopedPrivateCallRequest::empty();\n let serialized = item.serialize();\n let deserialized = ScopedPrivateCallRequest::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"167":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_settings.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress}, abis::gas::Gas,\n abis::gas_fees::GasFees,\n constants::{\n GAS_SETTINGS_LENGTH, DEFAULT_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_MAX_FEE_PER_GAS,\n DEFAULT_INCLUSION_FEE\n},\n hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n utils::reader::Reader\n};\n\nstruct GasSettings {\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field,\n}\n\nimpl GasSettings {\n pub fn new(\n gas_limits: Gas,\n teardown_gas_limits: Gas,\n max_fees_per_gas: GasFees,\n inclusion_fee: Field\n ) -> Self {\n Self { gas_limits, teardown_gas_limits, max_fees_per_gas, inclusion_fee }\n }\n\n pub fn default() -> Self {\n GasSettings::new(\n Gas::new(DEFAULT_GAS_LIMIT, DEFAULT_GAS_LIMIT),\n Gas::new(DEFAULT_TEARDOWN_GAS_LIMIT, DEFAULT_TEARDOWN_GAS_LIMIT),\n GasFees::new(DEFAULT_MAX_FEE_PER_GAS, DEFAULT_MAX_FEE_PER_GAS),\n DEFAULT_INCLUSION_FEE\n )\n }\n}\n\nimpl Eq for GasSettings {\n fn eq(self, other: Self) -> bool {\n (self.gas_limits == other.gas_limits) & (self.teardown_gas_limits == other.teardown_gas_limits) & (self.max_fees_per_gas == other.max_fees_per_gas) & (self.inclusion_fee == other.inclusion_fee)\n }\n}\n\nimpl Empty for GasSettings {\n fn empty() -> Self {\n GasSettings::new(\n Gas::empty(), Gas::empty(), GasFees::empty(), 0\n )\n }\n}\n\nimpl Serialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn serialize(self) -> [Field; GAS_SETTINGS_LENGTH] {\n let mut serialized: BoundedVec<Field, GAS_SETTINGS_LENGTH> = BoundedVec::new();\n\n serialized.extend_from_array(self.gas_limits.serialize());\n serialized.extend_from_array(self.teardown_gas_limits.serialize());\n serialized.extend_from_array(self.max_fees_per_gas.serialize());\n serialized.push(self.inclusion_fee);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<GAS_SETTINGS_LENGTH> for GasSettings {\n fn deserialize(serialized: [Field; GAS_SETTINGS_LENGTH]) -> GasSettings {\n let mut reader = Reader::new(serialized);\n GasSettings::new(reader.read_struct(Gas::deserialize), reader.read_struct(Gas::deserialize), reader.read_struct(GasFees::deserialize), reader.read())\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = GasSettings::empty();\n let serialized = item.serialize();\n let deserialized = GasSettings::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"176":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr","source":"use crate::{\n abis::{function_data::FunctionData, private_circuit_public_inputs::PrivateCircuitPublicInputs},\n address::AztecAddress,\n constants::{GENERATOR_INDEX__CALL_STACK_ITEM, PRIVATE_CALL_STACK_ITEM_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader\n};\n\nstruct PrivateCallStackItem {\n // This is the _actual_ contract address relating to where this function's code resides in the\n // contract tree. Regardless of whether this is a call or delegatecall, this\n // `contract_address` _does not change_. Amongst other things, it's used as a lookup for\n // getting the correct code from the tree. There is a separate `storage_contract_address`\n // within a CallStackItem which varies depending on whether this is a call or delegatecall.\n contract_address: AztecAddress,\n function_data: FunctionData,\n public_inputs: PrivateCircuitPublicInputs,\n}\n\nimpl Eq for PrivateCallStackItem {\n fn eq(self, other: Self) -> bool {\n self.contract_address.eq(other.contract_address) &\n self.function_data.eq(other.function_data) &\n self.public_inputs.eq(other.public_inputs)\n }\n}\n\nimpl Serialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn serialize(self) -> [Field; PRIVATE_CALL_STACK_ITEM_LENGTH] {\n let mut fields: BoundedVec<Field, PRIVATE_CALL_STACK_ITEM_LENGTH> = BoundedVec::new();\n\n fields.push(self.contract_address.to_field());\n fields.extend_from_array(self.function_data.serialize());\n fields.extend_from_array(self.public_inputs.serialize());\n\n assert_eq(fields.len(), PRIVATE_CALL_STACK_ITEM_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<PRIVATE_CALL_STACK_ITEM_LENGTH> for PrivateCallStackItem {\n fn deserialize(serialized: [Field; PRIVATE_CALL_STACK_ITEM_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let item = Self {\n contract_address: reader.read_struct(AztecAddress::deserialize),\n function_data: reader.read_struct(FunctionData::deserialize),\n public_inputs: reader.read_struct(PrivateCircuitPublicInputs::deserialize),\n };\n\n reader.finish();\n item\n }\n}\n\nimpl Hash for PrivateCallStackItem {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_STACK_ITEM)\n }\n}\n\nimpl Empty for PrivateCallStackItem {\n fn empty() -> Self {\n PrivateCallStackItem {\n contract_address: AztecAddress::empty(),\n function_data: FunctionData::empty(),\n public_inputs: PrivateCircuitPublicInputs::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = PrivateCallStackItem::empty();\n let serialized = item.serialize();\n let deserialized = PrivateCallStackItem::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let mut item = PrivateCallStackItem::empty();\n item.function_data.is_private = true;\n let hash = item.hash();\n\n // Value from private_call_stack_item.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x10d9feff1d02db424becc3399f496be13d0586ea5a62c85de302ea88a1f345c5;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"177":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/caller_context.nr","source":"use crate::address::AztecAddress;\nuse dep::std::cmp::Eq;\nuse crate::traits::{Empty, Serialize, Deserialize};\nuse crate::constants::CALLER_CONTEXT_LENGTH;\nuse crate::utils::reader::Reader;\n\nstruct CallerContext {\n msg_sender: AztecAddress,\n storage_contract_address: AztecAddress,\n is_static_call: bool,\n}\n\nimpl Eq for CallerContext {\n fn eq(self, other: CallerContext) -> bool {\n other.msg_sender.eq(self.msg_sender)\n & other.storage_contract_address.eq(self.storage_contract_address)\n & other.is_static_call == self.is_static_call\n }\n}\n\nimpl Empty for CallerContext {\n fn empty() -> Self {\n CallerContext {\n msg_sender: AztecAddress::zero(),\n storage_contract_address: AztecAddress::zero(),\n is_static_call: false,\n }\n }\n}\n\nimpl CallerContext {\n pub fn is_empty(self) -> bool {\n self.msg_sender.is_zero() & self.storage_contract_address.is_zero() & !self.is_static_call\n }\n\n // Different to an empty context, a hidden context won't reveal the caller's msg_sender and storage_contract_address,\n // but will still propagate the is_static_call flag.\n pub fn is_hidden(self) -> bool {\n self.msg_sender.is_zero() & self.storage_contract_address.is_zero()\n }\n}\n\nimpl Serialize<CALLER_CONTEXT_LENGTH> for CallerContext {\n fn serialize(self) -> [Field; CALLER_CONTEXT_LENGTH] {\n let mut fields: BoundedVec<Field, CALLER_CONTEXT_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.msg_sender.serialize());\n fields.extend_from_array(self.storage_contract_address.serialize());\n fields.push(self.is_static_call as Field);\n\n assert_eq(fields.len(), CALLER_CONTEXT_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<CALLER_CONTEXT_LENGTH> for CallerContext {\n fn deserialize(fields: [Field; CALLER_CONTEXT_LENGTH]) -> CallerContext {\n let mut reader = Reader::new(fields);\n\n let item = CallerContext {\n msg_sender: reader.read_struct(AztecAddress::deserialize),\n storage_contract_address: reader.read_struct(AztecAddress::deserialize),\n is_static_call: reader.read_bool(),\n };\n reader.finish();\n item\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = CallerContext::empty();\n let serialized = item.serialize();\n let deserialized = CallerContext::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"179":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/log_hash.nr","source":"use crate::{\n abis::side_effect::{Ordered, OrderedValue}, constants::{LOG_HASH_LENGTH, NOTE_LOG_HASH_LENGTH},\n traits::{Empty, Serialize, Deserialize}\n};\n\nstruct LogHash {\n value: Field,\n counter: u32,\n length: Field,\n}\n\nimpl Ordered for LogHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for LogHash {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for LogHash {\n fn eq(self, other: LogHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.length == other.length) \n }\n}\n\nimpl Empty for LogHash {\n fn empty() -> Self {\n LogHash {\n value: 0,\n counter: 0,\n length: 0,\n }\n }\n}\n\nimpl Serialize<LOG_HASH_LENGTH> for LogHash {\n fn serialize(self) -> [Field; LOG_HASH_LENGTH] {\n [self.value, self.counter as Field, self.length]\n }\n}\n\nimpl Deserialize<LOG_HASH_LENGTH> for LogHash {\n fn deserialize(values: [Field; LOG_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n length: values[2],\n }\n }\n}\n\nstruct NoteLogHash {\n value: Field,\n counter: u32,\n length: Field,\n note_hash_counter: u32,\n}\n\nimpl NoteLogHash {\n pub fn expose_to_public(self) -> NoteLogHash {\n // Hide the actual counter and note hash counter when exposing it to the public kernel.\n // The counter is usually note_hash.counter + 1, so it can be revealing.\n NoteLogHash { value: self.value, counter: 0, length: self.length, note_hash_counter: 0 }\n }\n}\n\nimpl Ordered for NoteLogHash {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for NoteLogHash {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteLogHash {\n fn eq(self, other: NoteLogHash) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter)\n & (self.length == other.length) \n & (self.note_hash_counter == other.note_hash_counter) \n }\n}\n\nimpl Empty for NoteLogHash {\n fn empty() -> Self {\n NoteLogHash {\n value: 0,\n counter: 0,\n length: 0,\n note_hash_counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_LOG_HASH_LENGTH> for NoteLogHash {\n fn serialize(self) -> [Field; NOTE_LOG_HASH_LENGTH] {\n [self.value, self.counter as Field, self.length, self.note_hash_counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_LOG_HASH_LENGTH> for NoteLogHash {\n fn deserialize(values: [Field; NOTE_LOG_HASH_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n length: values[2],\n note_hash_counter: values[3] as u32,\n }\n }\n}\n"},"182":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/append_only_tree_snapshot.nr","source":"use dep::std::cmp::Eq;\n\nstruct AppendOnlyTreeSnapshot {\n root : Field,\n // TODO(Alvaro) change this to a u64\n next_available_leaf_index : u32\n}\n\nglobal APPEND_ONLY_TREE_SNAPSHOT_LENGTH: u64 = 2;\n\nimpl AppendOnlyTreeSnapshot {\n pub fn serialize(self) -> [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH] {\n [self.root, self.next_available_leaf_index as Field]\n }\n\n pub fn deserialize(serialized: [Field; APPEND_ONLY_TREE_SNAPSHOT_LENGTH]) -> AppendOnlyTreeSnapshot {\n AppendOnlyTreeSnapshot { root: serialized[0], next_available_leaf_index: serialized[1] as u32 }\n }\n\n pub fn zero() -> Self {\n Self { root: 0, next_available_leaf_index: 0 }\n }\n}\n\nimpl Eq for AppendOnlyTreeSnapshot {\n fn eq(self, other : AppendOnlyTreeSnapshot) -> bool {\n (self.root == other.root) & (self.next_available_leaf_index == other.next_available_leaf_index)\n }\n}\n"},"183":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr","source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::{CALL_CONTEXT_LENGTH, GENERATOR_INDEX__CALL_CONTEXT}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, abis::side_effect::Ordered,\n abis::{gas_settings::GasSettings, gas::Gas}, utils::reader::Reader\n};\n\n// docs:start:call-context\nstruct CallContext {\n msg_sender : AztecAddress,\n storage_contract_address : AztecAddress,\n function_selector : FunctionSelector,\n\n is_delegate_call : bool,\n is_static_call : bool,\n\n side_effect_counter : u32,\n}\n// docs:end:call-context\n\nimpl CallContext {\n fn assert_is_zero(self) {\n let serialized: [Field; CALL_CONTEXT_LENGTH] = self.serialize();\n\n for i in 0..CALL_CONTEXT_LENGTH {\n assert(serialized[i] == 0);\n }\n }\n}\n\nimpl Eq for CallContext {\n fn eq(self, other: CallContext) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Hash for CallContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)\n }\n}\n\nimpl Serialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\n let mut serialized: BoundedVec<Field, CALL_CONTEXT_LENGTH> = BoundedVec::new();\n\n serialized.push(self.msg_sender.to_field());\n serialized.push(self.storage_contract_address.to_field());\n serialized.push(self.function_selector.to_field());\n serialized.push(self.is_delegate_call as Field);\n serialized.push(self.is_static_call as Field);\n serialized.push(self.side_effect_counter as Field);\n \n serialized.storage\n }\n}\n\nimpl Deserialize<CALL_CONTEXT_LENGTH> for CallContext {\n fn deserialize(serialized: [Field; CALL_CONTEXT_LENGTH]) -> CallContext {\n let mut reader = Reader::new(serialized);\n CallContext {\n msg_sender: AztecAddress::from_field(reader.read()),\n storage_contract_address: AztecAddress::from_field(reader.read()),\n function_selector: FunctionSelector::from_field(reader.read()),\n is_delegate_call: reader.read() as bool,\n is_static_call: reader.read() as bool,\n side_effect_counter: reader.read() as u32,\n }\n }\n}\n\nimpl Empty for CallContext {\n fn empty() -> Self {\n CallContext {\n msg_sender: AztecAddress::empty(),\n storage_contract_address: AztecAddress::empty(),\n function_selector: FunctionSelector::empty(),\n is_delegate_call: false,\n is_static_call: false,\n side_effect_counter: 0,\n }\n }\n}\n\n#[test]\nfn serialize_deserialize_of_empty() {\n let context = CallContext::empty();\n let serialized = context.serialize();\n let deserialized = CallContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn assert_is_zero() {\n let context = CallContext::empty();\n context.assert_is_zero();\n}\n\n#[test(should_fail)]\nfn not_zero_assert_is_zero() {\n let mut context = CallContext::empty();\n context.is_delegate_call = true;\n context.assert_is_zero();\n}\n\n#[test]\nfn test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = true;\n\n let address: AztecAddress = AztecAddress::from_field(69420);\n context1.msg_sender = address;\n context2.msg_sender = address;\n\n assert(context1.eq(context2));\n}\n\n#[test(should_fail)]\nfn not_eq_test_eq() {\n let mut context1 = CallContext::empty();\n let mut context2 = CallContext::empty();\n\n context1.is_delegate_call = true;\n context2.is_delegate_call = false;\n\n let address1: AztecAddress = AztecAddress::from_field(69420);\n let address2: AztecAddress = AztecAddress::from_field(42069);\n\n context1.msg_sender = address1;\n context2.msg_sender = address2;\n\n assert(context1.eq(context2));\n}\n\n#[test]\nfn hash_smoke() {\n let context = CallContext::empty();\n let _hashed = context.hash();\n}\n"},"184":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr","source":"use crate::{constants::MAX_BLOCK_NUMBER_LENGTH, traits::{Deserialize, Serialize, Empty}};\n\nstruct MaxBlockNumber {\n _opt: Option<u32>\n}\n\nimpl Empty for MaxBlockNumber {\n fn empty() -> Self {\n Self { _opt: Option::none() }\n }\n}\n\nimpl Eq for MaxBlockNumber {\n fn eq(self, other: Self) -> bool {\n self._opt == other._opt\n }\n}\n\nimpl Serialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn serialize(self) -> [Field; MAX_BLOCK_NUMBER_LENGTH] {\n [self._opt._is_some as Field, self._opt._value as Field]\n }\n}\n\nimpl Deserialize<MAX_BLOCK_NUMBER_LENGTH> for MaxBlockNumber {\n fn deserialize(serialized: [Field; MAX_BLOCK_NUMBER_LENGTH]) -> MaxBlockNumber {\n MaxBlockNumber {\n _opt: Option {\n _is_some: serialized[0] as bool,\n _value: serialized[1] as u32,\n }\n }\n }\n}\n\nimpl MaxBlockNumber {\n pub fn new(max_block_number: u32) -> Self {\n Self { _opt: Option::some(max_block_number) }\n }\n\n pub fn is_none(self) -> bool {\n self._opt.is_none()\n }\n\n pub fn is_some(self) -> bool {\n self._opt.is_some()\n }\n\n pub fn unwrap(self) -> u32 {\n self._opt.unwrap()\n }\n\n pub fn unwrap_unchecked(self) -> u32 {\n self._opt.unwrap_unchecked()\n }\n\n pub fn min(lhs: MaxBlockNumber, rhs: MaxBlockNumber) -> MaxBlockNumber {\n if rhs.is_none() {\n lhs // lhs might also be none, but in that case both would be\n } else {\n MaxBlockNumber::min_with_u32(lhs, rhs.unwrap_unchecked())\n }\n }\n\n pub fn min_with_u32(lhs: MaxBlockNumber, rhs: u32) -> MaxBlockNumber {\n if lhs._opt.is_none() {\n MaxBlockNumber::new(rhs)\n } else {\n let lhs_value = lhs._opt.unwrap_unchecked();\n\n MaxBlockNumber::new(if lhs_value < rhs { lhs_value } else { rhs })\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let item = MaxBlockNumber::empty();\n let serialized = item.serialize();\n let deserialized = MaxBlockNumber::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn zeroed_is_none() {\n // Large parts of the kernel rely on zeroed to initialize structs. This conveniently matches what `default` does,\n // and though we should eventually move everything to use `default`, it's good to check for now that both are\n // equivalent.\n let a = MaxBlockNumber::empty();\n assert(a.is_none());\n}\n\n#[test]\nfn serde_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert(b.is_none());\n}\n\n#[test]\nfn serde_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::deserialize(a.serialize());\n assert_eq(b.unwrap(), 13);\n}\n\n#[test(should_fail)]\nfn default_unwrap_panics() {\n let a = MaxBlockNumber::empty();\n let _ = a.unwrap();\n}\n\n#[test]\nfn min_default_default() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::empty();\n\n assert(MaxBlockNumber::min(a, b).is_none());\n}\n\n#[test]\nfn min_default_some() {\n let a = MaxBlockNumber::empty();\n let b = MaxBlockNumber::new(13);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_some_some() {\n let a = MaxBlockNumber::new(13);\n let b = MaxBlockNumber::new(42);\n\n assert_eq(MaxBlockNumber::min(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min(b, a).unwrap(), 13);\n}\n\n#[test]\nfn min_with_u32_default() {\n let a = MaxBlockNumber::empty();\n let b = 42;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 42);\n}\n\n#[test]\nfn min_with_u32_some() {\n let a = MaxBlockNumber::new(13);\n let b = 42;\n let c = 8;\n\n assert_eq(MaxBlockNumber::min_with_u32(a, b).unwrap(), 13);\n assert_eq(MaxBlockNumber::min_with_u32(a, c).unwrap(), 8);\n}\n"},"185":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr","source":"use crate::{\n abis::{\n call_context::CallContext, note_hash::NoteHash, nullifier::Nullifier, read_request::ReadRequest,\n gas::Gas, global_variables::GlobalVariables, log_hash::LogHash\n},\n address::AztecAddress,\n constants::{\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_CALL, MAX_NEW_NOTE_HASHES_PER_CALL,\n MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL,\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_DATA_READS_PER_CALL,\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n hash::pedersen_hash, header::Header, messaging::l2_to_l1_message::L2ToL1Message,\n traits::{Hash, Serialize, Deserialize, Empty}, utils::reader::Reader\n};\n\nstruct PublicCircuitPublicInputs {\n call_context: CallContext,\n\n args_hash: Field,\n returns_hash: Field,\n\n nullifier_read_requests: [ReadRequest; MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest; MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\n\n // todo: add sideeffect ranges for the input to these hashes\n public_call_stack_hashes: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash; MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier; MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n\n start_side_effect_counter: u32,\n end_side_effect_counter: u32,\n\n unencrypted_logs_hashes: [LogHash; MAX_UNENCRYPTED_LOGS_PER_CALL],\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\n // Global variables injected into this circuit\n global_variables: GlobalVariables,\n\n prover_address: AztecAddress,\n\n revert_code: u8,\n \n start_gas_left: Gas,\n end_gas_left: Gas,\n transaction_fee: Field,\n}\n\nimpl Eq for PublicCircuitPublicInputs {\n fn eq(self, other: Self) -> bool {\n self.serialize() == other.serialize()\n }\n}\n\nimpl Serialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new();\n fields.extend_from_array(self.call_context.serialize());\n fields.push(self.args_hash);\n fields.push(self.returns_hash);\n for i in 0..MAX_NULLIFIER_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_read_requests[i].serialize());\n }\n for i in 0..MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL {\n fields.extend_from_array(self.nullifier_non_existent_read_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\n fields.extend_from_array(self.contract_storage_update_requests[i].serialize());\n }\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\n fields.extend_from_array(self.contract_storage_reads[i].serialize());\n }\n fields.extend_from_array(self.public_call_stack_hashes);\n\n for i in 0..MAX_NEW_NOTE_HASHES_PER_CALL {\n fields.extend_from_array(self.new_note_hashes[i].serialize());\n }\n for i in 0..MAX_NEW_NULLIFIERS_PER_CALL {\n fields.extend_from_array(self.new_nullifiers[i].serialize());\n }\n for i in 0..MAX_NEW_L2_TO_L1_MSGS_PER_CALL {\n fields.extend_from_array(self.new_l2_to_l1_msgs[i].serialize());\n }\n\n fields.push(self.start_side_effect_counter as Field);\n fields.push(self.end_side_effect_counter as Field);\n\n for i in 0..MAX_UNENCRYPTED_LOGS_PER_CALL{\n fields.extend_from_array(self.unencrypted_logs_hashes[i].serialize());\n }\n fields.extend_from_array(self.historical_header.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n fields.push(self.prover_address.to_field());\n fields.push(self.revert_code as Field);\n fields.extend_from_array(self.start_gas_left.serialize());\n fields.extend_from_array(self.end_gas_left.serialize());\n fields.push(self.transaction_fee);\n fields.storage\n }\n}\n\nimpl Deserialize<PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> for PublicCircuitPublicInputs {\n fn deserialize(serialized: [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n let inputs = PublicCircuitPublicInputs {\n call_context: reader.read_struct(CallContext::deserialize),\n args_hash: reader.read(),\n returns_hash: reader.read(),\n nullifier_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL]),\n nullifier_non_existent_read_requests: reader.read_struct_array(ReadRequest::deserialize, [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL]),\n contract_storage_update_requests: reader.read_struct_array(StorageUpdateRequest::deserialize, [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL]),\n contract_storage_reads: reader.read_struct_array(StorageRead::deserialize, [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL]),\n public_call_stack_hashes: reader.read_array([0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL]),\n new_note_hashes: reader.read_struct_array(NoteHash::deserialize, [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL]),\n new_nullifiers: reader.read_struct_array(Nullifier::deserialize, [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL]),\n new_l2_to_l1_msgs: reader.read_struct_array(L2ToL1Message::deserialize, [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL]),\n start_side_effect_counter: reader.read() as u32,\n end_side_effect_counter: reader.read() as u32,\n unencrypted_logs_hashes: reader.read_struct_array(LogHash::deserialize, [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL]),\n historical_header: reader.read_struct(Header::deserialize),\n global_variables: reader.read_struct(GlobalVariables::deserialize),\n prover_address: reader.read_struct(AztecAddress::deserialize),\n revert_code: reader.read() as u8,\n start_gas_left: reader.read_struct(Gas::deserialize),\n end_gas_left: reader.read_struct(Gas::deserialize),\n transaction_fee: reader.read(),\n };\n\n reader.finish();\n inputs\n }\n}\n\nimpl Hash for PublicCircuitPublicInputs {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)\n }\n}\n\nimpl Empty for PublicCircuitPublicInputs {\n fn empty() -> Self {\n PublicCircuitPublicInputs {\n call_context: CallContext::empty(),\n args_hash: 0,\n returns_hash: 0,\n nullifier_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_READ_REQUESTS_PER_CALL],\n nullifier_non_existent_read_requests: [ReadRequest::empty(); MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL],\n contract_storage_update_requests: [StorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\n contract_storage_reads: [StorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\n public_call_stack_hashes: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\n new_note_hashes: [NoteHash::empty(); MAX_NEW_NOTE_HASHES_PER_CALL],\n new_nullifiers: [Nullifier::empty(); MAX_NEW_NULLIFIERS_PER_CALL],\n new_l2_to_l1_msgs: [L2ToL1Message::empty(); MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\n start_side_effect_counter: 0 as u32,\n end_side_effect_counter: 0 as u32,\n unencrypted_logs_hashes: [LogHash::empty(); MAX_UNENCRYPTED_LOGS_PER_CALL],\n historical_header: Header::empty(),\n global_variables: GlobalVariables::empty(),\n prover_address: AztecAddress::zero(),\n revert_code: 0 as u8,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty(),\n transaction_fee: 0,\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let pcpi = PublicCircuitPublicInputs::empty();\n let serialized = pcpi.serialize();\n let deserialized = PublicCircuitPublicInputs::deserialize(serialized);\n assert(pcpi.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let inputs = PublicCircuitPublicInputs::empty();\n let hash = inputs.hash();\n\n // Value from public_circuit_public_inputs.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x1e4351db0c9aa20836e7009bc3e6a4555c92622c5e9cb3b49e2ec0fbbf59d0bd;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"187":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_data.nr","source":"use crate::{\n abis::function_selector::FunctionSelector,\n constants::{GENERATOR_INDEX__FUNCTION_DATA, FUNCTION_DATA_LENGTH}, hash::pedersen_hash,\n traits::{Serialize, Hash, Deserialize, Empty}\n};\n\nstruct FunctionData {\n selector : FunctionSelector,\n is_private : bool,\n}\n\nimpl Eq for FunctionData {\n fn eq(self, other: Self) -> bool {\n self.selector.eq(other.selector) &\n (self.is_private == other.is_private)\n }\n}\n\nimpl Serialize<FUNCTION_DATA_LENGTH> for FunctionData {\n // A field is ~256 bits\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/3057): Since, function data can fit into a Field,\n // This method will simply return a bit packed Field instead of hashing\n fn serialize(self) -> [Field; FUNCTION_DATA_LENGTH] {\n [\n self.selector.to_field(),\n self.is_private as Field,\n ]\n }\n}\n\nimpl Deserialize<FUNCTION_DATA_LENGTH> for FunctionData {\n fn deserialize(serialized: [Field; FUNCTION_DATA_LENGTH]) -> Self {\n Self {\n selector: FunctionSelector::from_field(serialized[0]),\n is_private: serialized[1] as bool,\n }\n }\n}\n\nimpl Hash for FunctionData {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__FUNCTION_DATA)\n }\n}\n\nimpl Empty for FunctionData {\n fn empty() -> Self {\n FunctionData {\n selector: FunctionSelector::empty(),\n is_private: false\n }\n }\n\n}\n\n#[test]\nfn serialization_of_empty() {\n let data = FunctionData::empty();\n let serialized = data.serialize();\n let deserialized = FunctionData::deserialize(serialized);\n assert(data.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let data = FunctionData::empty();\n let hash = data.hash();\n\n // Value from function_data.test.ts \"computes empty function data hash\" test\n let test_data_empty_hash = 0x27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"191":{"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"},"192":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/messaging/l2_to_l1_message.nr","source":"use crate::{\n address::{AztecAddress, EthAddress},\n constants::{L2_TO_L1_MESSAGE_LENGTH, SCOPED_L2_TO_L1_MESSAGE_LENGTH}, abis::side_effect::Ordered,\n traits::{Deserialize, Empty, Serialize}, utils::{arrays::array_concat, reader::Reader}\n};\n\n// Note: Not to be confused with L2ToL1Msg in Solidity\nstruct L2ToL1Message {\n recipient: EthAddress,\n content: Field,\n counter: u32,\n}\n\nimpl Ordered for L2ToL1Message {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Empty for L2ToL1Message {\n fn empty() -> Self {\n Self {\n recipient: EthAddress::empty(),\n content: 0,\n counter: 0,\n }\n }\n}\n\nimpl Eq for L2ToL1Message {\n fn eq(self, other: Self) -> bool {\n (self.recipient == other.recipient) & (self.content == other.content) & (self.counter == other.counter)\n }\n}\n\nimpl Serialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn serialize(self) -> [Field; L2_TO_L1_MESSAGE_LENGTH] {\n [self.recipient.to_field(), self.content, self.counter as Field]\n }\n}\n\nimpl Deserialize<L2_TO_L1_MESSAGE_LENGTH> for L2ToL1Message {\n fn deserialize(values: [Field; L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n Self {\n recipient: EthAddress::from_field(values[0]),\n content: values[1],\n counter: values[2] as u32,\n }\n }\n}\n\nimpl L2ToL1Message {\n pub fn scope(self, contract_address: AztecAddress) -> ScopedL2ToL1Message {\n ScopedL2ToL1Message { message: self, contract_address }\n }\n}\n\nstruct ScopedL2ToL1Message {\n message: L2ToL1Message,\n contract_address: AztecAddress,\n}\n\nimpl Ordered for ScopedL2ToL1Message {\n fn counter(self) -> u32 {\n self.message.counter\n }\n}\n\nimpl Eq for ScopedL2ToL1Message {\n fn eq(self, other: ScopedL2ToL1Message) -> bool {\n (self.message == other.message)\n & (self.contract_address == other.contract_address) \n }\n}\n\nimpl Empty for ScopedL2ToL1Message {\n fn empty() -> Self {\n ScopedL2ToL1Message {\n message: L2ToL1Message::empty(),\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn serialize(self) -> [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH] {\n array_concat(self.message.serialize(), [self.contract_address.to_field()])\n }\n}\n\nimpl Deserialize<SCOPED_L2_TO_L1_MESSAGE_LENGTH> for ScopedL2ToL1Message {\n fn deserialize(values: [Field; SCOPED_L2_TO_L1_MESSAGE_LENGTH]) -> Self {\n let mut reader = Reader::new(values);\n let res = Self {\n message: reader.read_struct(L2ToL1Message::deserialize),\n contract_address: reader.read_struct(AztecAddress::deserialize),\n };\n reader.finish();\n res\n }\n}\n\n#[test]\nfn serialization_of_empty_l2() {\n let item = L2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = L2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n\n#[test]\nfn serialization_of_empty_scoped_l2() {\n let item = ScopedL2ToL1Message::empty();\n let serialized = item.serialize();\n let deserialized = ScopedL2ToL1Message::deserialize(serialized);\n assert(item.eq(deserialized));\n}\n"},"204":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/content_commitment.nr","source":"use crate::{\n constants::CONTENT_COMMITMENT_LENGTH, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct ContentCommitment {\n tx_tree_height: Field,\n txs_effects_hash: Field,\n in_hash: Field,\n out_hash: Field,\n}\n\nimpl Serialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn serialize(self) -> [Field; CONTENT_COMMITMENT_LENGTH] {\n let mut fields: BoundedVec<Field, CONTENT_COMMITMENT_LENGTH> = BoundedVec::new();\n\n fields.push(self.tx_tree_height);\n fields.push(self.txs_effects_hash);\n fields.push(self.in_hash);\n fields.push(self.out_hash);\n\n fields.storage\n }\n}\n\nimpl Deserialize<CONTENT_COMMITMENT_LENGTH> for ContentCommitment {\n fn deserialize(serialized: [Field; CONTENT_COMMITMENT_LENGTH]) -> Self {\n let tx_tree_height = serialized[0];\n\n let txs_effects_hash = serialized[1];\n\n let in_hash = serialized[2];\n\n let out_hash = serialized[3];\n\n Self {\n tx_tree_height,\n txs_effects_hash,\n in_hash,\n out_hash,\n }\n }\n}\n\nimpl Empty for ContentCommitment {\n fn empty() -> Self {\n Self {\n tx_tree_height: 0,\n txs_effects_hash: 0,\n in_hash: 0,\n out_hash: 0,\n }\n }\n}\n\nimpl Eq for ContentCommitment {\n fn eq(self, other: Self) -> bool {\n (self.tx_tree_height == other.tx_tree_height)\n & (self.txs_effects_hash == other.txs_effects_hash)\n & (self.in_hash == other.in_hash)\n & (self.out_hash == other.out_hash)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let empty = ContentCommitment::empty();\n let serialized = empty.serialize();\n let deserialized = ContentCommitment::deserialize(serialized);\n\n assert(empty.eq(deserialized));\n}\n"},"207":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/header.nr","source":"use crate::{\n abis::{\n append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n global_variables::{GlobalVariables, GLOBAL_VARIABLES_LENGTH}\n},\n constants::{GENERATOR_INDEX__BLOCK_HASH, HEADER_LENGTH, STATE_REFERENCE_LENGTH, CONTENT_COMMITMENT_LENGTH},\n hash::pedersen_hash, state_reference::StateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice, content_commitment::ContentCommitment\n};\n\n// docs:start:header\nstruct Header {\n last_archive: AppendOnlyTreeSnapshot,\n content_commitment: ContentCommitment,\n state: StateReference,\n global_variables: GlobalVariables,\n total_fees: Field\n}\n// docs:end:header\n\nimpl Eq for Header {\n fn eq(self, other: Self) -> bool {\n self.last_archive.eq(other.last_archive) &\n self.content_commitment.eq(other.content_commitment) &\n self.state.eq(other.state) &\n self.global_variables.eq(other.global_variables) &\n self.total_fees.eq(other.total_fees)\n }\n}\n\nimpl Serialize<HEADER_LENGTH> for Header {\n fn serialize(self) -> [Field; HEADER_LENGTH] {\n let mut fields: BoundedVec<Field, HEADER_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.last_archive.serialize());\n fields.extend_from_array(self.content_commitment.serialize());\n fields.extend_from_array(self.state.serialize());\n fields.extend_from_array(self.global_variables.serialize());\n fields.push(self.total_fees);\n\n fields.storage\n }\n}\n\nimpl Deserialize<HEADER_LENGTH> for Header {\n fn deserialize(serialized: [Field; HEADER_LENGTH]) -> Self {\n let mut offset = 0;\n\n let last_archive_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let content_commitment_fields = arr_copy_slice(serialized, [0; CONTENT_COMMITMENT_LENGTH], offset);\n offset = offset + CONTENT_COMMITMENT_LENGTH;\n\n let state_fields = arr_copy_slice(serialized, [0; STATE_REFERENCE_LENGTH], offset);\n offset = offset + STATE_REFERENCE_LENGTH;\n\n let global_variables_fields = arr_copy_slice(serialized, [0; GLOBAL_VARIABLES_LENGTH], offset);\n offset = offset + GLOBAL_VARIABLES_LENGTH;\n\n let total_fees = serialized[offset];\n\n Header {\n last_archive: AppendOnlyTreeSnapshot::deserialize(last_archive_fields),\n content_commitment: ContentCommitment::deserialize(content_commitment_fields),\n state: StateReference::deserialize(state_fields),\n global_variables: GlobalVariables::deserialize(global_variables_fields),\n total_fees\n }\n }\n}\n\nimpl Empty for Header {\n fn empty() -> Self {\n Self {\n last_archive: AppendOnlyTreeSnapshot::zero(),\n content_commitment: ContentCommitment::empty(),\n state: StateReference::empty(),\n global_variables: GlobalVariables::empty(),\n total_fees: 0\n }\n }\n}\n\nimpl Hash for Header {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__BLOCK_HASH)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let header = Header::empty();\n let serialized = header.serialize();\n let deserialized = Header::deserialize(serialized);\n assert(header.eq(deserialized));\n}\n\n#[test]\nfn hash_smoke() {\n let header = Header::empty();\n let _hashed = header.hash();\n}\n\n#[test]\nfn empty_hash_is_zero() {\n let header = Header::empty();\n let hash = header.hash();\n\n // Value from new_contract_data.test.ts \"computes empty hash\" test\n let test_data_empty_hash = 0x124e8c40a6eca2e3ad10c04050b01a3fad00df3cea47b13592c7571b6914c7a7;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"208":{"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::log_hash::{LogHash, NoteLogHash};\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, MAX_NOTE_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: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [NoteLogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<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"},"209":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/partial_state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Serialize}\n};\n\nstruct PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot,\n nullifier_tree: AppendOnlyTreeSnapshot,\n public_data_tree: AppendOnlyTreeSnapshot,\n}\n\nimpl Eq for PartialStateReference {\n fn eq(self, other: PartialStateReference) -> bool {\n self.note_hash_tree.eq(other.note_hash_tree) &\n self.nullifier_tree.eq(other.nullifier_tree) &\n self.public_data_tree.eq(other.public_data_tree)\n }\n}\n\nimpl Serialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn serialize(self) -> [Field; PARTIAL_STATE_REFERENCE_LENGTH] {\n let serialized_note_hash_tree = self.note_hash_tree.serialize();\n let serialized_nullifier_tree = self.nullifier_tree.serialize();\n let serialized_public_data_tree = self.public_data_tree.serialize();\n\n [\n serialized_note_hash_tree[0], \n serialized_note_hash_tree[1],\n serialized_nullifier_tree[0],\n serialized_nullifier_tree[1],\n serialized_public_data_tree[0],\n serialized_public_data_tree[1],\n ]\n }\n}\n\nimpl Deserialize<PARTIAL_STATE_REFERENCE_LENGTH> for PartialStateReference {\n fn deserialize(serialized: [Field; PARTIAL_STATE_REFERENCE_LENGTH]) -> PartialStateReference {\n PartialStateReference {\n note_hash_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[0], serialized[1]]\n ),\n nullifier_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[2], serialized[3]]\n ),\n public_data_tree: AppendOnlyTreeSnapshot::deserialize(\n [serialized[4], serialized[5]]\n ),\n }\n }\n}\n\nimpl Empty for PartialStateReference {\n fn empty() -> Self {\n Self {\n note_hash_tree: AppendOnlyTreeSnapshot::zero(),\n nullifier_tree: AppendOnlyTreeSnapshot::zero(),\n public_data_tree: AppendOnlyTreeSnapshot::zero(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let partial = PartialStateReference::empty();\n let _serialized = partial.serialize();\n let _deserialized = PartialStateReference::deserialize(_serialized);\n}\n"},"211":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/transaction/tx_context.nr","source":"use crate::{\n constants::{GENERATOR_INDEX__TX_CONTEXT, TX_CONTEXT_LENGTH}, hash::pedersen_hash,\n traits::{Deserialize, Hash, Serialize, Empty}, utils::reader::Reader,\n abis::gas_settings::GasSettings\n};\n\n// docs:start:tx-context\nstruct TxContext {\n chain_id : Field,\n version : Field,\n gas_settings: GasSettings,\n}\n// docs:end:tx-context\n\nimpl TxContext {\n pub fn new(chain_id: Field, version: Field, gas_settings: GasSettings) -> Self {\n TxContext { chain_id, version, gas_settings }\n }\n}\n\nimpl Eq for TxContext {\n fn eq(self, other: Self) -> bool {\n (self.chain_id == other.chain_id) &\n (self.version == other.version) &\n (self.gas_settings.eq(other.gas_settings))\n }\n}\n\nimpl Empty for TxContext {\n fn empty() -> Self {\n TxContext {\n chain_id: 0,\n version: 0,\n gas_settings: GasSettings::empty(),\n }\n }\n}\n\nimpl Serialize<TX_CONTEXT_LENGTH> for TxContext {\n fn serialize(self) -> [Field; TX_CONTEXT_LENGTH] {\n let mut fields: BoundedVec<Field, TX_CONTEXT_LENGTH> = BoundedVec::new();\n\n fields.push(self.chain_id);\n fields.push(self.version);\n fields.extend_from_array(self.gas_settings.serialize());\n\n assert_eq(fields.len(), TX_CONTEXT_LENGTH);\n\n fields.storage\n }\n}\n\nimpl Deserialize<TX_CONTEXT_LENGTH> for TxContext {\n fn deserialize(serialized: [Field; TX_CONTEXT_LENGTH]) -> Self {\n // TODO(#4390): This should accept a reader ^ to avoid copying data.\n let mut reader = Reader::new(serialized);\n\n let context = Self {\n chain_id: reader.read(),\n version: reader.read(),\n gas_settings: reader.read_struct(GasSettings::deserialize),\n };\n\n reader.finish();\n context\n }\n}\n\nimpl Hash for TxContext {\n fn hash(self) -> Field {\n pedersen_hash(self.serialize(), GENERATOR_INDEX__TX_CONTEXT)\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let context = TxContext::empty();\n let serialized = context.serialize();\n let deserialized = TxContext::deserialize(serialized);\n assert(context.eq(deserialized));\n}\n\n#[test]\nfn empty_hash() {\n let context = TxContext::empty();\n let hash = context.hash();\n\n // Value from tx_context.test.ts \"computes empty item hash\" test\n let test_data_empty_hash = 0x17e4357684c5a4349b4587c95b0b6161dcb4a3c5b02d4eb2ecc3b02c80193261;\n assert_eq(hash, test_data_empty_hash);\n}\n"},"217":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/state_reference.nr","source":"use crate::{\n abis::append_only_tree_snapshot::{AppendOnlyTreeSnapshot, APPEND_ONLY_TREE_SNAPSHOT_LENGTH},\n constants::{PARTIAL_STATE_REFERENCE_LENGTH, STATE_REFERENCE_LENGTH},\n partial_state_reference::PartialStateReference, traits::{Deserialize, Empty, Hash, Serialize},\n utils::arr_copy_slice\n};\n\nstruct StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot,\n partial: PartialStateReference,\n}\n\nimpl Eq for StateReference {\n fn eq(self, other: StateReference) -> bool {\n self.l1_to_l2_message_tree.eq(other.l1_to_l2_message_tree) &\n self.partial.eq(other.partial)\n }\n}\n\nimpl Serialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn serialize(self) -> [Field; STATE_REFERENCE_LENGTH] {\n let mut fields: BoundedVec<Field, STATE_REFERENCE_LENGTH> = BoundedVec::new();\n\n fields.extend_from_array(self.l1_to_l2_message_tree.serialize());\n fields.extend_from_array(self.partial.serialize());\n\n fields.storage\n }\n}\n\nimpl Deserialize<STATE_REFERENCE_LENGTH> for StateReference {\n fn deserialize(serialized: [Field; STATE_REFERENCE_LENGTH]) -> StateReference {\n let mut offset = 0;\n\n let l1_to_l2_message_tree_fields = arr_copy_slice(serialized, [0; APPEND_ONLY_TREE_SNAPSHOT_LENGTH], offset);\n offset = offset + APPEND_ONLY_TREE_SNAPSHOT_LENGTH;\n\n let partial_fields = arr_copy_slice(serialized, [0; PARTIAL_STATE_REFERENCE_LENGTH], offset);\n\n StateReference {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::deserialize(l1_to_l2_message_tree_fields),\n partial: PartialStateReference::deserialize(partial_fields),\n }\n }\n}\n\nimpl Empty for StateReference {\n fn empty() -> Self {\n Self {\n l1_to_l2_message_tree: AppendOnlyTreeSnapshot::zero(),\n partial: PartialStateReference::empty(),\n }\n }\n}\n\n#[test]\nfn serialization_of_empty() {\n let state = StateReference::empty();\n let _serialized = state.serialize();\n let _deserialized = StateReference::deserialize(_serialized);\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"},"227":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<N> {\n data: [Field; N],\n offset: u64,\n}\n\nimpl<N> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<K>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, K>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, K, C>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"243":{"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"},"244":{"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"},"333":{"path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr","source":"// An entrypoint contract that allows everything to go through. Only used for testing\n// Pair this with SignerlessWallet to perform multiple actions before any account contracts are deployed (and without authentication)\ncontract MultiCallEntrypoint {\n use dep::std;\n\n use dep::aztec::prelude::AztecAddress;\n use dep::authwit::entrypoint::app::AppPayload;\n\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n"},"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"},"52":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::pedersen_hash, traits::{Hash, Serialize}};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n pedersen_hash(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"78":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, interface::ContextInterface},\n messaging::process_l1_to_l2_message,\n hash::{hash_args_array, ArgsHasher, compute_unencrypted_log_hash},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n note::{note_interface::NoteInterface, utils::compute_note_hash_for_insertion},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_log, emit_encrypted_note_log, compute_encrypted_log},\n logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, set_public_teardown_function_call_internal,\n parse_public_call_stack_item_from_oracle\n}\n}\n};\nuse dep::protocol_types::{\n hash::sha256_to_field,\n abis::{\n caller_context::CallerContext, function_selector::FunctionSelector,\n max_block_number::MaxBlockNumber, key_validation_request::KeyValidationRequest,\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem, read_request::ReadRequest, note_hash::NoteHash,\n nullifier::Nullifier, log_hash::{LogHash, NoteLogHash}\n},\n 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_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n grumpkin_private_key::GrumpkinPrivateKey, grumpkin_point::GrumpkinPoint, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader,\n traits::{is_empty, Deserialize, Empty}, utils::arrays::find_index\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests: BoundedVec<KeyValidationRequest, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n app_secret_keys_generators: BoundedVec<Field, MAX_KEY_VALIDATION_REQUESTS_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 private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_stack_hashes : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_function_hash: Field,\n new_l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<LogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl ContextInterface for PrivateContext {\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_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 { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests: BoundedVec::new(),\n app_secret_keys_generators: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n returns::pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests: self.key_validation_requests.storage,\n new_note_hashes: self.new_note_hashes.storage,\n new_nullifiers: self.new_nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_stack_hashes: self.public_call_stack_hashes.storage,\n public_teardown_function_hash: self.public_teardown_function_hash,\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 note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests.push(request);\n self.app_secret_keys_generators.push(sk_generators[key_index]);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.new_l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_new_nullifier(nullifier, 0)\n }\n // docs:end:consume_l1_to_l2_message\n\n // TODO: We might want to remove this since emitting unencrypted logs from private functions is violating privacy.\n // --> might be a better approach to force devs to make a public function call that emits the log if needed then\n // it would be less easy to accidentally leak information.\n // If we decide to keep this function around would make sense to wait for traits and then merge it with emit_unencrypted_log.\n pub 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 counter = self.next_counter();\n let log_slice = log.to_be_bytes_arr();\n let log_hash = compute_unencrypted_log_hash(contract_address, event_selector, log);\n // 44 = addr (32) + selector (4) + raw log len (4) + processed log len (4)\n let len = 44 + log_slice.len().to_field();\n let side_effect = LogHash { value: log_hash, counter, length: len };\n self.unencrypted_logs_hashes.push(side_effect);\n // call oracle\n let _void = emit_unencrypted_log_private_internal(contract_address, event_selector, log, counter);\n }\n\n // This fn exists separately from emit_unencrypted_log because sha hashing the preimage\n // is too large to compile (16,200 fields, 518,400 bytes) => the oracle hashes it\n // It is ONLY used with contract_class_registerer_contract since we already assert correctness:\n // - Contract class -> we will commit to the packed bytecode (currently a TODO)\n // - Private function -> we provide a membership proof\n // - Unconstrained function -> we provide a membership proof\n // Ordinary logs are not protected by the above so this fn shouldn't be called by anything else\n pub fn emit_contract_class_unencrypted_log<N>(&mut self, log: [Field; N]) {\n let event_selector = 5; // TODO: compute actual event selector.\n let contract_address = self.this_address();\n let counter = self.next_counter();\n let log_hash = emit_contract_class_unencrypted_log_private_internal(contract_address, event_selector, log, counter);\n // 44 = addr (32) + selector (4) + raw log len (4) + processed log len (4)\n let len = 44 + N * 32;\n let side_effect = LogHash { value: log_hash, counter, length: len };\n self.unencrypted_logs_hashes.push(side_effect);\n }\n\n pub fn encrypt_and_emit_log<N, M>(\n &mut self,\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ivpk_m: GrumpkinPoint,\n preimage: [Field; N]\n ) where [Field; N]: LensForEncryptedLog<N, M> {\n // We are currently just encrypting it EXACTLY the same way as if it was a note.\n let counter = self.next_counter();\n let encrypted_log: [u8; M] = compute_encrypted_log(contract_address, storage_slot, note_type_id, ivpk_m, preimage);\n emit_encrypted_log(encrypted_log, counter);\n let len = 32 + 32 + 64 + 48 + 48 + 176 + 64 + (preimage.len() as Field * 32) + 16 + 4;\n let log_hash = sha256_to_field(encrypted_log);\n let side_effect = LogHash { value: log_hash, counter, length: len };\n self.encrypted_logs_hashes.push(side_effect);\n }\n\n pub fn encrypt_and_emit_note<Note, N, M>(\n &mut self,\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ivpk_m: GrumpkinPoint,\n note: Note\n ) where Note: NoteInterface<N>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_hash: Field = compute_note_hash_for_insertion(note);\n let note_exists_index = find_index(\n self.new_note_hashes.storage,\n |n: NoteHash| n.value == note_hash\n );\n assert(\n note_exists_index != MAX_NEW_NOTE_HASHES_PER_CALL, \"Can only emit a note log for an existing note.\"\n );\n let note_hash_counter = self.new_note_hashes.storage[note_exists_index].counter;\n let preimage = note.serialize_content();\n let counter = self.next_counter();\n\n // TODO(#1139 | #6408): perform encryption in the circuit\n let encrypted_log: [u8; M] = compute_encrypted_log(contract_address, storage_slot, note_type_id, ivpk_m, preimage);\n emit_encrypted_note_log(note_hash, encrypted_log, counter);\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (64 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (176 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding) \n // len of processed log (4 bytes)\n let len = 32 + 32 + 64 + 48 + 48 + 176 + 64 + (preimage.len() as Field * 32) + 16 + 4;\n\n let log_hash = sha256_to_field(encrypted_log);\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n }\n\n pub fn call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let item = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n assert_eq(item.public_inputs.call_context.side_effect_counter, start_side_effect_counter);\n assert_eq(item.public_inputs.start_side_effect_counter, start_side_effect_counter);\n let end_side_effect_counter = item.public_inputs.end_side_effect_counter;\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\n\n let mut caller_context = CallerContext::empty();\n caller_context.is_static_call = self.inputs.call_context.is_static_call;\n if is_delegate_call {\n caller_context.msg_sender = self.inputs.call_context.msg_sender;\n caller_context.storage_contract_address = self.inputs.call_context.storage_contract_address;\n }\n self.private_call_requests.push(\n PrivateCallRequest { hash: item.hash(), caller_context, start_side_effect_counter, end_side_effect_counter }\n );\n\n PackedReturns::new(item.public_inputs.returns_hash)\n }\n\n pub fn call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_call_stack_hashes.push(item.hash());\n }\n\n pub fn set_public_teardown_function<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<ARGS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let fields = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n self.side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let item = parse_public_call_stack_item_from_oracle(fields);\n self.validate_call_stack_item_from_oracle(\n item,\n contract_address,\n function_selector,\n args_hash,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = self.side_effect_counter + 1;\n self.public_teardown_function_hash = item.hash();\n }\n\n fn validate_call_stack_item_from_oracle(\n self,\n item: PublicCallStackItem,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n assert(contract_address.eq(item.contract_address));\n assert(function_selector.eq(item.function_data.selector));\n\n assert_eq(item.public_inputs.call_context.side_effect_counter, self.side_effect_counter);\n\n assert(args_hash == item.public_inputs.args_hash);\n\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\n assert(item.public_inputs.call_context.is_delegate_call == is_delegate_call);\n assert(item.public_inputs.call_context.is_static_call == is_static_call);\n\n if (is_delegate_call) {\n // For delegate calls, we also constrain the execution context address for the nested call to be equal to our address.\n assert(\n item.public_inputs.call_context.storage_contract_address.eq(self.inputs.call_context.storage_contract_address)\n );\n assert(item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.msg_sender));\n } else {\n // For non-delegate calls, we also constrain the execution context address for the nested call to be equal to the address we called.\n assert(item.public_inputs.call_context.storage_contract_address.eq(contract_address));\n assert(\n item.public_inputs.call_context.msg_sender.eq(self.inputs.call_context.storage_contract_address)\n );\n }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests: BoundedVec::new(),\n app_secret_keys_generators: BoundedVec::new(),\n new_note_hashes: BoundedVec::new(),\n new_nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_stack_hashes: BoundedVec::new(),\n public_teardown_function_hash: 0,\n new_l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n\nstruct PackedReturns {\n packed_returns: Field,\n}\n\nimpl PackedReturns {\n pub fn new(packed_returns: Field) -> Self {\n PackedReturns { packed_returns }\n }\n\n pub fn assert_empty(self) {\n assert_eq(self.packed_returns, 0);\n }\n\n pub fn raw(self) -> Field {\n self.packed_returns\n }\n\n pub fn unpack<N>(self) -> [Field; N] {\n let unpacked: [Field; N] = returns::unpack_returns(self.packed_returns);\n assert_eq(self.packed_returns, hash_args_array(unpacked));\n unpacked\n }\n\n pub fn unpack_into<T, N>(self) -> T where T: Deserialize<N> {\n let unpacked: [Field; N] = self.unpack();\n Deserialize::deserialize(unpacked)\n }\n}\n\n#[oracle(emitUnencryptedLog)]\nfn emit_unencrypted_log_oracle_private<T>(\n _contract_address: AztecAddress,\n _event_selector: Field,\n _message: T,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, event_selector, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nfn emit_contract_class_unencrypted_log_private<N>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<N>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: [Field; N],\n counter: u32\n) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, event_selector, message, counter)\n}\n\n"},"99":{"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, 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_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_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"}}}
|