@aztec/protocol-contracts 0.36.0 → 0.37.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
|
-
{"noir_version":"0.28.0+587973ff94368b5ae6247f04c26fd0ef6a933b51","name":"MultiCallEntrypoint","functions":[{"name":"compute_note_hash_and_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"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"}],"param_witnesses":{"contract_address":[{"start":0,"end":1}],"nonce":[{"start":1,"end":2}],"note_type_id":[{"start":3,"end":4}],"serialized_note":[],"storage_slot":[{"start":2,"end":3}]},"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"},"return_witnesses":[4,5,6,7],"error_types":{}},"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":"ndpRattAGIXRveg5FN9f0miUrZRSnMQphmCH2CkUk73XTukCct48I9+37+kwl+Fp9/D+6+f+8Hw8DfffL8PL8XF73h8P19Nl2Hyr9nl7et0ebhen8/btPNyPlbthd3i6/Wofd8Pz/mX3efvx4+42WmTUZbTCaNzIKDIqGY0ymmQ0y0iKGKWIUYoYpYhJipikiEmKmKSISYqYpIhJipikiEmKmKSIWYqYpYhZipiliFmKmKWIWYqYpYhZipiliCZFNCmiSRFNimhSRJMimhTRpIgmRTQpYpEiFilikSIWKWKRIhYpYpEiFilikSIWKaJLEV2K6FJElyK6FNGliC5FdCmiSxFdililiFWKWKWIVYpYpYhVililiFWKWKWIVYrIZkOr0KpoNdJqotVMq0arhVadVtRGqI1QG6E2Qm2E2gi1EWoj1EaojVAbRW0UtVHURlEbRW0UtUGcGfLMEGiGRDNEmiHTDKFmSDVDrBlyzRBshmQzRJsh2wzhZkg3Q7wZ8s0QcIaEM0ScIeMMIWdIOUPMGXLOEHSGpDNEnSHrDGFnSDtD3BnyzhB4hsQzRJ4h8wyhZ0g9Q+wZcs8QfIbkM0SfIfsM4WdIP0P8GfLPEICGBDREoCEDDSFoSEFDDBpy0BCEhiQ0RKEhCw1haEhDQxwa8tAQiIZENESiIRMNoWhIRUMsGnLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctGyZ572ztMeepKLFrlokYsWuWiRi9aXXfR6+r19228fXna3l723j++Hx/8Pfa/H85/Xf1+u//0L"},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"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}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","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"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables","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":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"gas_fees","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings","fields":[{"name":"gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"teardown_gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"max_fees_per_gas","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}},{"name":"inclusion_fee","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"app_payload","type":{"kind":"struct","path":"authwit::entrypoint::app::AppPayload","fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall","fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"target_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"is_public","type":{"kind":"boolean"}}]}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"}],"param_witnesses":{"app_payload":[{"start":38,"end":55}],"inputs":[{"start":0,"end":38}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"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}}]}},{"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":"max_block_number","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber","fields":[{"name":"_opt","type":{"kind":"struct","path":"std::option::Option","fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}},{"name":"note_hash_read_requests","type":{"kind":"array","length":32,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_key_validation_requests","type":{"kind":"array","length":1,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest","fields":[{"name":"master_nullifier_public_key","type":{"kind":"struct","path":"authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"app_nullifier_secret_key","type":{"kind":"field"}}]}}},{"name":"new_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}]}}},{"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":"new_l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","type":{"kind":"field"}}]}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"encrypted_log_preimages_length","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","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"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables","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":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"gas_fees","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings","fields":[{"name":"gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"teardown_gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"max_fees_per_gas","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}},{"name":"inclusion_fee","type":{"kind":"field"}}]}}]}}]},"visibility":"public"},"return_witnesses":[1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,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],"error_types":{}},"bytecode":"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","debug_symbols":"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M0751xybF/f816Rz/jX5nH/Nes6/5pxbQM65BeScW0DOuQXknFtAzrkFyjm3QDnnFijn3ALlnFugnHMLlHNugXLOLVDOuQXKObdAOecWqOfcAvWcW6CecwvUc26Bes4tUM+5Beo5t0A95xao59wC9ZxboJ1zC7RzboF2zi3QzrkF2jm3gMK3e3OTx7+mj39+/yIy8Rs3Ct/BVS+p2Sup2ytpmCtJ4buh6iUleyVleyWt9koSeyXZu727vdu727u9u73bu9u7vYe923vYu72Hvdt72Lu9h73be9i7vYe923vYu72Hvdt7mLu962Lu9q6Ludu7LuZu77qYu73rYu72rou527su5m7vupi7veti7vaui73bO9m7vZO92zvZu72Tvds72bu9k73bO9m7vZO92zvZu72Tvds727u9s73bO9u7vbO92zvbu72zvds727u9s73bO9u7vbO923u1d3uv9m7v1d7tvdq7vVd7t/dq7/Ze7d3eq73be7V3e6/2bm+xd3uLvdtb7N3eYu/2Fnu3t9i7vcXe7S32bm+xd3uLvdu72Lu9i73bu9i7vYu927vYu72Lvdu72Lu9i73bu9i7vYu927vau72rvdu72ru9q73bu9q7vau927vau72rvdu72ru9q73bu9m7vZu927vZu72bvdu72bu97X3Xstr7rmW1913Lau+7ltXedy2rve9aVnvftaz2vmtZ7X3Xstr7rmW1913Lau+7ltXedy2rve9aVnvftaz2vmtZ7X3Xstr7rmW1913Lau+7ltXedy2rve9aVnvftaz2vmtZ7X3Xstn7rmWz913LZu+7ls3edy3bYu72bva+a9nsfdey2fuuZbP3Xctm77uWzd53LZu971o2e9+1bPa+a9nsfdey2fuuZbP3Xctm77uWzd53LfuxMcxfP/2z3bPrXWwfrT4//Xb37E/+5HSzG3eBrSyPT+eUP/yT81ruH87reKm5v6Wx9sefnHb+5HWkX59dR944TNMronmYPzrMYyPFeZjnHqbpFd88zJ8dpplFXDzMzw/TzAozHubnhyk8TD+HaWbpKQ/z88M0sy6Wh/n5YZpZtMvD/Pww+QLk6DD5AgRymJLHr8+KyPvDbHwBcnSYfAFydJh8AXJ0mHwBQjnM9DzMsnGYwsP0c5h8AXJ0mHwBcnSYfAFydJh8AXJ0mHwBQjnM5X4mkur7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q7+n9+rv6b36e3qv/p7eq7+n9+bv6b35e3pv/p7em7+n9+bv6b35e3pv/p7em7+n9+bv6b35e3rv/p7eu7+n9+7v6b37e3rv/p7e/t613Py9a7n5e9dy8/eu5ebvXcvN37uWm793LTd/71pu/t613Py9a7n5e9dy8/eu5ebvXcvN37uWm793LTd/71pu/t613Py9a7n5e9dy8/eu5ebvXcvN37uWm793LTd/71pu/t613P29a7n7e9dy9/eu5e7vXct9cvf03v29a7n7e9dy9/eu5e7vXcvd37uWu793LXd/71ru/t613P29a7n7e9dy9/eu5e7vXcvd37uWu793Let3Y5j/96ff2z27PIqtx76dn365e/adn1x+5MajwH2dnp+ey/zhT56X9fHheTl+nbm+pLHU508uFz95Ocqfzy7H3Gim6xXRauZbzfxupLiaeW8zXa/4VjPfa6abRVxq5ufNdLPCTM38vJmmZuZpppulp2rm5810sy5Wzfy8mW4W7aqZnzdTE6BEzdQEKEgzbT7+fNbMXjdz1wQoUTM1AUrUTE2AEjVTE6AozSxnM9dGM03NzNNMTYASNVMToETN1AQoUTM1AUrUTE2AojRzevTEyva6mVUToETN1AQoUTM1AUrUTE2AEjXT1Mw8zdQEKFEzNQFK1ExNgBI1UxOgRM3UBChPMw9NgBI1UxOgRM3UBChRMzUBStRMUzPzNFMToETN1AQoUTM1AUrUTE2AEjVTE6A0zTwmTYASNVMToETN1AQoUTM1AUrUTFMz8zRTE6BEzdQEKFEzNQFK1ExNgBI1UxOgPM0smgAlaqYmQImaqQlQomZqApSomaZm5mmmJkCJmqkJUKJmagKUp5mzfCa4maU+m7kasJnXSdDHLJ+ZqJnymYmaKZ+ZqJmmZuZppnxmombKZyZqpnxmombqLw0SNVN/aZCnmYsmQImaqQlQkGZeL6k5Fk2AEjVTE6BEzTQ1M08zNQGK0szLVRjHoglQomZqApSomZoAJWqmJkB5mmmaACVqpiZAUZp5/dd5pglQomZqApSomaZm5mmmJkCJmqkJUKJmagKUqJmaACVqpiZAeZq5agKUqJmaACVqpiZAiZqpCVCiZpqamaeZmgAlaqYmQImaqQlQomZqApSomZoA5WnmpglQomZqApSomZoAJWqmJkCJmmlqZp5magKUqJma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dZfcp+6S+9RFND+NXH7uU3fJfeouuU/dJfepu+Q+ddfcp+6a+9Rdc5+6a+5T99t9U+jl5z51c3dTWe5uKsvdTWW5u6ksdzeV5e6mstzdVJa7m8pyd1NZ7m4qy91NZbm7qSx3N5Xl7qay3N1UlrubynJ3U1nubirL3U1lubupLHc3leXuprLc3VSWu5vKcndTWe5uKsvdTWW5u6ksdzeV5e6mstzdVJa7m8pyd1NZ7m6qJXc31ZK7m2rJ3U215O6mWm6pT90ldzfVkrubasndTbXk7qZacndTLbm7qZbc3VRL7m6qJXc31ZK7m2rJ3U215O6mWnJ3Uy25u6mW3N1US+5uqiV3N9WSu5tqyd1NteTuplpyd1MtubupltzdVEvubqoldzfVkrubasndTbXk7qZacndTLbm7qZbc3VRL7m6qJXc31ZK7m2rJ3U215O6mWnJ3Uy25u6mW3N1US+5uqiV3N9WSu5tqyd1NteTuplpyd1MtubupltzdVEvubqoldzfVkrubasndTbXk7qZacndTLbm7qZbc3VRL7m6qJXc31ZK7m2rJ3U215O6mWnJ3Uy25u6mW3N1US+5uqiV3N9WSu5tqyd1NteTuplpyd1MtubupltzdVEvubqoldzfVkrubasndTbXk7qZacndTLbm7qZbc3VRL7m6qJXc31ZK7m2rJ3U215O6mWnJ3Uy25u6mW3N1US+5uqiV3N9WSu5tqyd1NteTuplpyd1MtubupltzdVGvubqo1dzfVmrubas3dTbXeUp+6a+5uqjV3N9Wau5tqzd1Ntebuplpzd1Otubup1tzdVGvubqo1dzfVmrubas3dTbXm7qZac3dTrbm7qdbc3VRr7m6qNXc31Zq7m2rN3U215u6mWnN3U625u6nW3N1Ua+5uqjV3N9Wau5tqzd1Ntebuplpzd1Otubup1tzdVGvubqo1dzfVmrubas3dTbXm7qZac3dTrbm7qdbc3VRr7m6qNXc31Zq7m2rN3U215u6mWnN3U625u6nW3N1Ua+5uqjV3N9Wau5tqzd1Ntebuplpzd1Otubup1tzdVGvubqo1dzfVmrubas3dTbXm7qZac3dTrbm7qdbc3VRr7m6qNXc31Zq7m2rN3U215u6mWnN3U625u6nW3N1Ua+5uqjV3N9Wau5tqzd1Ntebuplpzd1Otubup1tzdVGvubqo1dzfVmrubas3dTbXm7qZac3dTrbm7qdbc3VRr7m6qNXc31Zq7m2rN3U215u6mWnN3U625u6m23N1UW+5uqi13N9WWu5tqu6U+dbfc3VRb7m6qLXc31Za7m2rL3U215e6m2nJ3U225u6m23N1UW+5uqi13N9WWu5tqy91NteXuptpyd1NtubupttzdVFvubqotdzfVlrubasvdTbXl7qbacndTbbm7qbbc3VRb7m6qLXc31Za7m2rL3U215e6m2nJ3U225u6m23N1UW+5uqi13N9WWu5tqy91NteXuptpyd1NtubupttzdVFvubqotdzfVlrubasvdTbXl7qbacndTbbm7qbbc3VRb7m6qLXc31Za7m2rL3U215e6m2nJ3U225u6m23N1UW+5uqi13N9WWu5tqy91NteXuptpyd1NtubupttzdVFvubqotdzfVlrubasvdTbXl7qbacndTbbm7qbbc3VRb7m6qLXc31Za7m2rL3U215e6m2nJ3U225u6m23N1UW+5uqi13N9WWu5tqy91NteXuptpyd1NtubupttzdVFvubqotdzfVlrubasvdTbXl7qbacndT7bm7qfbc3VR77m6qPXc31X5Lferuubup9tzdVHvubqo9dzfVnrubas/dTbXn7qbac3dT7bm7qfbc3VR77m6qPXc31Z67m2rP3U215+6m2nN3U+25u6n23N1Ue+5uqj13N9Weu5tqz91Ntefuptpzd1Ptubup9tzdVHvubqo9dzfVnrubas/dTbXn7qbac3dT7bm7qfbc3VR77m6qPXc31Z67m2rP3U215+6m2nN3U+25u6n23N1Ue+5uqj13N9Weu5tqz91Ntefuptpzd1Ptubup9tzdVHvubqo9dzfVnrubas/dTbXn7qbac3dT7bm7qfbc3VR77m6qPXc31Z67m2rP3U215+6m2nN3U+25u6n23N1Ue+5uqj13N9Weu5tqz91Ntefuptpzd1Ptubup9tzdVHvubqo9dzfVnrubas/dTbXn7qbac3dT7bm7qfbc3VR77m6qPXc31Z67m2rP3U215+6m2nN3U+25u6n23N1Ue+5uqj13N9Weu5tqz91Ntefupjpyd1MdubupjtzdVEfubqrjlvrUPXJ3Ux25u6mO3N1UR+5uqiN3N9WRu5vqyN1NdeTupjpyd1MdubupjtzdVEfubqojdzfVkbub6sjdTXXk7qY6cndTHbm7qY7c3VRH7m6qI3c31ZG7m+rI3U115O6mOnJ3Ux25u6mO3N1UR+5uqiN3N9WRu5vqyN1NdeTupjpyd1MdubupjtzdVEfubqojdzfVkbub6sjdTXXk7qY6cndTHbm7qY7c3VRH7m6qI3c31ZG7m+rI3U115O6mOnJ3Ux25u6mO3N1UR+5uqiN3N9WRu5vqyN1NdeTupjpyd1MdubupjtzdVEfubqojdzfVkbub6sjdTXXk7qY6cndTHbm7qY7c3VRH7m6qI3c31ZG7m+rI3U115O6mOnJ3Ux25u6mO3N1UR+5uqiN3N9WRu5vqyN1NdeTupjpyd1MdubupjtzdVEfubqojdzfVkbub6sjdTXXk7qY6cndTHbm7qY7c3VRH7m6qI3c31ZG7m+rI3U3VbrnLqe7rT33u3tef+uC9rz/1yXtff+qj977+1Gfvff2pD9/7+lOfvvf1pz5+7+tPfv7mrqm6rz/5+Zu7qOq+/uTnb+6qqvv6k5+/ucuq7utPfv7mrqu6rz/5+Zu7sOq+uuTnb+7Kqvvqkp+/uUur7qtLfv7mrq26ry75+Zu7uOq+uuTnb+7qqvv6k5+/ucur7utPfv7mrq+6rz/5+Zu7wOq+/uTnb+4Kq/v6k5+/uUus7utPfv7mrrG6rz/5+Zu7yOq+/uTnb+4qq/v6k5+/ucus7utPfv7mrrO6rz/5+Zu70Oq+/uTnb+5Kq/v6k5+/uUut7utPfv7mrrW6rz/5+Zu72Oq+/uTnb+5qq/v6k5+/ucut7utPfv7mrre6rz/5+Zu74Oq+/uTnb+6Kq/v6k5+/uUuu7utPfv7mrrm6rz/5+Zu76Oq+/uTnb+6qq/v6k5+/ucuu7utPfv7mrru6rz/5+Zu78Oq+/uTnb+7Kq/v6k5+/uUuv7utPfv7mrr26rz/5+Zu7+Oq+/uTnb+7qq/v6k5+/ucuv7utPfv7mrr+6rz/3+duS91+15P1XLXn/VUvef9Vuuc/flrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+69a8v6rlrz/qiXvv2rJ+6+m5P1XU/L+qyl5/9WUvP9quuU+f6fk/VdT8v6rKXn/1ZS8/2pK3n81Je+/mpL3X03J+6+m5P1XU/L+qyl5/9WUvP9qSt5/NSXvv5qS919NyfuvpuT9V1Py/qspef/VlLz/akrefzUl77+akvdfTcn7r6bk/VdT8v6rKXn/1ZS8/2pK3n81Je+/mpL3X03J+6+m5P1XU/L+qyl5/9WUvP9qSt5/NSXvv5qS919NyfuvpuT9V1Py/qspef/VlLz/akrefzUl77+akvdfTcn7r6bk/VdT8v6rKXn/1ZS8/2pK3n81Je+/mpL3X03J+6+m5P1XU/L+qyl5/9WUvP9qSt5/NSXvv5qS919NyfuvpuT9V1Py/qspef/VlLz/akrefzUl77+akvdfTcn7r6bk/VdT8v6rKXn/1ZS8/2pK3n81Je+/mpL3X03J+6+m5P1XU/L+qyl5/9WUvP9qSt5/NSXvv5qS919NyfuvpuT9V1Py/qspef/VlLz/akrefzUl77+akvdfzcn7r+bk/Vdz8v6rOXn/1XzLff7Oyfuv5uT9V3Py/qs5ef/VnLz/ak7efzUn77+ak/dfzcn7r+bk/Vdz8v6rOXn/1Zy8/2pO3n81J++/mpP3X83J+6/m5P1Xc/L+qzl5/9WcvP9qTt5/NSfvv5qT91/Nyfuv5uT9V3Py/qs5ef/VnLz/ao7cvzQf7c+z89Fdf+D3v2f9kft/7PZYhbW1t/7A7x/X+gO/f1zrD/z+ca3fkq8/sP93rT/w+9/W5bH+vfXWH/j971p/YP/vWn9g/+9Zf+T+H9f6I5+/nvVHPn896498/nrWH/n89aw/8vnrWX/y8zdy/49r/cnP38j9P571R+7/ca0/+fkbuf/Htf7k5+/X+3+6d4K/PLsvj09e9+0lQR7zP1W7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l8tfbaGnlFyhl8tfbaEnilyhl8tfbTcj08vlr7bQkzqu0Mvlr7bQUzWu0Evmr0JPwLhCL5m/Cj2t4gq9ZP4q9GSJK/SS+avQUyCu0Evmr0JPbLhCL5m/Cj1d4Qq9ZP4q9CSEK/SS+avJyPSS+avQUymu0EvmryYyfzWR+avQE0Ku0Evmr0JP87hCL5m/Cj154wq9ZP4q9JSMK/SS+avQEy2u0Evmr0JPn7hCL5m/Cj0p4gq9ZP4q9FSHK/SS+avQExiu0Evmr0JPS7hCL5m/Cj3Z4Aq9ZP4q9BSCK/SS+avQEwOu0Evmr0K3+1+hl8xfhW7iv0Ivmb8K3Zp/hV4yfxW64f4KvWT+KnQb/RV6yfxV6Ob4K/SS+avQLe9X6CXzV6Hb26/QS+avyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyPrbN7L+9o2sv30j62/fyfrbd7L+9p2sv30n62/fb0aml8tf7WT97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tO1t++k/W372T97TtZf/tB1t9+kPW3H2T97QdZf/txMzK9XP7qIOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vajTr/3Pj3k7tPfn/yitszp61Jb5t28z48177b21JZ5M7vUlnkvu9SWeSu71JbJvB61dRqfXWrrnLcetXXOW4/aMlnXpdao1FJ5qTotzy61Sb3Ui4Kk/uhFQWTPMx/TQ8Fys7Pc3ZbH062tP4tu6/qiN3QP8xV6I/ueK/RGdj5X6I3sfa7Qa2R6I/ufK/RGdkBX6I3sga7QG9kxXaGXzF+F7mG+Qi+Zvwrdw3yFXjJ/FbqH+Qq9ZP4qdA/zFXrJ/FXoHuYr9JL5q9A9zFfoJfNXoXuYr9BL5q9C9zBfoZfMX4XuYb5CL5m/Ct3DfIVeKn813UL3MF+hl8pf3fVS+au7Xip/dddrZHqp/NVdL5W/mm6he2vf0nv+y4m72jKnkUttmXfV+V/73dWWeVO51JZ5T7nUlkmBLrVlMqBLbZkE6FEbuscUr7bOeetRWyb7udSWSX4utUallspLhe4u/TdqXxQk9UcvCiJ7nmV5/tJla+0sd6+LPRa9rq+/i/nrv7nIrucCvaH7Ra/QG9n5XKE3sve5Qm9k93OFXiPTG9kBXaE3sge6Qm9kx3SFXjJ/Fbpf9AK9oftFr9BL5q9C94teoZfMX4XuF71CL5m/Ct0veoVeMn8Vul/0Cr1k/moh81eh+2Ov0EvmrxYyf7UYmV4yfxW6JfgKvWT+KnRT8BV6yfxV6LbgK/SWOY88f4kcumUVr7bMu8rz1zOhGz7hakP3e+LVlkmBLrVlMqBLbZkE6FJb57z1qK1z3nrUlsl+LrVlkp9LLZWXCt3mCVcbusvz36h9UZDUH70oiOx5Nnv+5fhut7Pc3ez2WHRbXv6b2/dXvZFdzxV6jUxvZOdzhd7I3ucKvZHdzxV6I/ufK/RGdkAX6A3dt3mF3siO6Qq9ZP4qdN/mFXqNTC+Zvwrdt3mFXjJ/Fbpv8wq9XP6qhe7bvEIvl79qofs2r9DL5a/azcj0cvmrFrpv8wq9XP6q3bj8VbuR+avQ/bFX6CXzV43MXzUyfxW6I/gKvWT+KnRP8BV6yfxV6K7gK/SS+avQfcFX6CXzV6E7g6/QS+avQvcGX6GXzF+F7g6+Qi+ZvwrdS3yFXjJ/FbqX+Aq9ZP4qdC/xFXrJ/FXoXuIr9JL5q9C9xFfoJfNXoXuJr9BL5q9C9xJfoZfMX4XuJb5CL5m/Ct1LfIVeMn8Vupf4Cr1k/ip0L/EVesn8Vehe4iv0kvmr0L3EV+gl81ehe4mv0Evmr0L3El+hl8xfhe4lvkIvmb8K3Ut8hV4yf7WS+auVzF+F7tm+Qi+Zv1rJ/NVK5q9Cd6lfoZfMX4XuU79CL5m/Ct2pfoVeMn8Vulf9Cr1k/ip0t/oVesn8Veh+9Sv0kvmr0B3rV+gl81dk/e2NrL+9kfW3N7L+9kbW397I+tsbWX97I+tvb2T97Y2sv72R9bc3sv72Rtbf3sj62xtZf3sj629vZP3tjay/fSLrb5/I+tsnsv72iay/fboZmV4ufzWR9bdPZP3tE1l/+0TW3z6R9bdPZP3tE1l/+0TW3z6R9bdPZP3tE1l/+0TW3z6R9bdPZP3tE1l/+0TW3z6R9bdPZP3tE1l/+0TW3z6R9bdPZP3tE1l/+0TW3z6R9bdPZP3tU52+631qfx7ep78/+UVtmdPIpbbMu2qfH2vebe2ordOE7FJb5j3lUlsmBbrUlsmALrVGpbbOeetRW+e89agtk/1casskP5daKi9Vp/XYpTapl3pRkNQfvSiI7Hn27ZGkt2M9znL3tByPRU/r/vK0veo1Mr2Rfc8VeiM7nyv0RvY+V+iN7H6u0BvZ/1ygN3Qv8RV6I3ugK/RGdkxX6CXzV6F7ia/QS+avQvcSX6GXzF+F7iW+Qi+ZvwrdS3yFXjJ/FbqX+Aq9ZP4qdC/xFXrJ/FXoXuIr9JL5q9C9xFfoJfNXoXuJr9BL5q9C9xJfoZfMX4XuJb5CL5m/Ct1LfIVeMn8Vupf4Cr1k/ip0L/EVesn8Vehe4iv0kvmr0L3EV+gl81ehe4mv0Evmr0L3El+hl8tfzaF7ia/Qy+Wv5tC9xFfo5fJX883I9HL5qzl0L/EVern81Ry6l/gKvWT+KnQv8RV6yfxV6F7iK/SS+avQvcRX6CXzV6F7ia/QS+avQvcSX6GXzF+F7iW+Qi+ZvwrdS3yFXjJ/FbqX+Aq9ZP4qdC/xFXrJ/FXoXuIr9JL5q9C9xFfoJfNXM5m/msn81Wxkesn8Veim7Sv0kvmrmcxfhe5Sv0Bv6Db1K/SS+avQjepX6CXzV6Fb1a/QS+avQjerX6GXzF+Fble/Qi+ZvwrdsH6FXjJ/FbqR/Qq9ZP6KrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99Jutvn8n622ey/vaZrL99JutvN7L+diPrbzey/nYj62+3m5Hp5fJXRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbmT97UbW325k/e1G1t9uZP3tRtbfbnX6rvep/Xl4n/7+5Be1ZU4jl9oy76p9fqx5t7WntsybyqW2zHvKpbZMCnSpLZMBXWrLJECP2jr9xy61dc5bj9oy2c+ltkzyc6k1KrVUXipr5/GLgqT+6EVBYM+z39pDwX7bppP/4u5XJn8evh9/vf/iAnsevNrIncQXqA3seS5QG9jzXKA2sOe5QK1RqQ3seS5QG9jzXKA2sD+6QC2Vl4rcQAxXu0TuH75ALZOXWiJ3D1+glslLLTejUsvkpZbIncMXqGXyUkvkvuEL1FJ5qchdwxeopfJSkXuGL1BL5aUidwxfoJbKS0XuF75ALZWXitwtfIFaKi8VuVf4ArVUXipyp/AFaqm8VOQ+4QvUljmB5uPx9//zMfXUljmBPGojN3O++V/y7bFma2tPbZ23lEdtnbeUR22dxOdRWyfxedTWSXwetVSJL3IXJ15t5CbOC9RSJb7ILZwXqKVKfJEbOC9QS3V7Hrl98wK1VLfnkZs3L1BL5aUit25eoDapl3pRkNQfvSiI7Hlamx4K2jaf/BfX/+QXtUalNrLnwauN7HnwaiN7HrzayJ4Hrzay54GrjdyEeYHayJ4HrzayP8KrpfJSkRswL1BL5aUit19eoJbKS61UXmql8lKRW1wvUEvlpTYqL7VReanIDb0XqKXyUpEbei9QS+WlIjf0XqCWyktFbui9QC2Vl4rc0HuBWiovFbmh9wK1VF4qckPvBWqpvFTo5l+8WiovFbr5F6+WykuFbv7Fq6XyUqGbf/FqqbxU6OZfvFoqLxW6+RevlslLraGbf/FqmbzUGrr5F6+WyUutN6NSy+Sl1tDNv3i1TF5qDd38i1dL5aVCN//i1VJ5qdDNv3i1VF4qdPMvXi2Vlwrd/ItXS+WlQjf/4tVSeanQzb94tVReKnTzL14tlZcK3fyLV0vlpSYqLzVReanQHdZ4tVReaqbyUjOVlwrdT45XS+WlQveT49VSeanQ/eR4tVReKnSr81tqHRMy1tCtzni1Zd5Sjqb9NXTzL15tmbeUS22ZxOdSWybxedSGbv7Fqy1z3jp6jtfQLcF4tWUSn0utUamt46U8aut4KY/aOl7Ko7aOl/KoreOlHGrrNAq71FJ5qTqNwi61VF4qa6Pwi4Kk/uhFQWTPM90eD+/za7b89b+4Yzn+PHysP0tuS3tVG9nz4NVG9jx4tZE9D1xt6OZfvNrIngevNrLnwauN7Hnwao1KbWR/hFdL5aVCN//i1VJ5qdDNv3C1oZt/8WqpvFTo5l+8WiovFbr5F6+WykuFbv7Fq6XyUqGbf/FqqbxU6OZfvFoqLxW6+RevlspLhW7+xaul8lKhm3/xaqm8VOjmX7xaJi+1hW7+xatl8lJb6OZfvNoyJ9A+PX6Btk9/f/KL2jInkEdt6E7N99TOjzXvtvbUlnlLudSWeUu51JZJfC61RqW2TOJzqa1z3nrU1jlvPWrLJD6X2jKJz6M2dKcmXi2Vlwrdqflv1L4oSOqPXhRYYAXz8vyPaN5uJ//FOVputtDdl3i1kT0PXm1kz/OW2ml6LsOWntrIngevNrLngasN3X2JVxvZ8+DVRvY8eLWR/RFerZVRuzx+q3zPmz21ZbyUS20ZL+VSW8dLedTW8VIetXW8lEOt1fFSHrVpvNTWuY8I3czqU5DG83QVWGAF1p63WjYdgHuD0O24eLWRfcxbaj2OPHQ7Ll5tZB+DVxvZx8DVhm7HxauN7GPwaiN7nvfUOjxq6HZcvFqjUlvGS7nU1vFSHrV1vJRHbR0v5VGbxUvNvb9jCN1461OQxfP0FYT2Mdvjk/dls5P/zTi6WrfQzbR4tUalNrSPgasN7WPgakP7GLja0D4Grja0j0GrDd14i1cb2h/B1VJ5qdCNt3i1RqWWykuFbrzFq6XyUqEbb/FqqbxU6MZbvFoqLxW68RavlspLhW68xaul8lKhG2/xaqm8VOjGW7xaKi8VuvEWr5bKS4VuvMWrpfJSoRtv8WqpvFToxlu8WiovFbrxFq+WyUvtoRtv8WqZvNQeuvEWr5bJS+03o1LL5KX20N3NeLVMXmq/MXmp/UblpUL3cuPVUnmp0L3ceLVUXip0LzdeLZWXCt1m/JZax2SIPXSbMV5tmbeUo814D92ki1db5i3lUlsm8bnUlkl8LrVlEp9LbZ3z1qE2dJMuXm2ZxOdSWybxudRSeanQTbp4tUm91IuCpP7oRUFkz7O2p4LtdPKKJ3WHbrzFq43seeBqQzfe4tVG9jx4tZE9D15tZM+DV2tUaiN7HrzayP4Ir5bKS4Vu3cWrpfJSoVt38WqpvFTo1l28WiovFbp1F6+WykuFbt3Fq6XyUqFbd/FqqbxU6IZevFoqLxW6+RevlspLhW7+xaul8lKhm3/xaqm8VOjmX7xaKi8VuvkXr5bKS4Vu/sWrpfJSoZt/8WqpvFTo5l+8WiovFbr5F6+WykuFbv7Fq6XyUqGbf/FqqbxU6OZfvFoqLxW6+RevlspLhW7+xaul8lKhm3/xasucQJ5f84fuS8WrLfOW8vwCLXSnJlrtEbpTE6+2TOJzqS2T+FxqyyQ+l9o6561HbZ3z1qO2TOJzqS2T+FxqmbzUEbpTE642dKfmv1H7oiCpP3pRENnzbOv0VLAtJ//F9T/5RW1kz4NXa1RqI3uet9RO03MZtvTURvY8eLWRPQ9ebWTPg1cb2fPA1YZuccWrjeyP8GrLeKlpeXyDMW2tp7aMl3KpNSq1dbyUR20dL+VRW8dLedTW8VIetZG91P48Qvd9Prs/8iS+0A29eLWRvdRbaj1eKnRDL15tZC+FV2tUaiN7KbzayF4Krzayl3pPrcNdhG7+xast46U8akM3/+LV1vFSHrV1vJRHbR0v5VFrkdWux0PtcdtP1C7T4+Fl/jlvp/s31y9qQ3spuNrQXuodteu8Pz+5nXyyJwuHbgkeSya0RxtKJrSfG0kmdFPxWDKhfeJQMqE95VAyof3nUDImMh0yZXwtnIw8cI+MPHCPjDxwj4w8cIdM6IbpsWTkgXtk5IF7ZOSBe2RMZDpk5IF7ZOSBe2TkgXtk5IF7ZOSBO2RCN4OPJSMP3CMjD9wjIw/cI2Mi0yEjD9wjIw/cIyMP3CMjD9wjIw/cIRO60X0sGXngHhl54B4ZeeAeGROZDhl54B4ZeeAeGXngHhl54B4ZeeAOmdBN/GPJyAP3yMgD98jIA/fImMh0yMgD98jIA/fIyAP3yMgD98jIA/9KZr6FnvMylow8cI+MPHCPjDxwj4yJTIeMPHCPjDxwj4w8cI+MPHCPjDxwh0zo+TxjycgD98jIA/fIyAP3yJjIdMjIA/fIyAP3yMgD98jIA/fIyAN3yISe1zSWjDxwj4w8cI+MPHCPjIlMh4w8cI+MPHCPjDxwj4w8cI+MPHCHTOw5W0PJyAP3yMgD98jIA/fImMh0yMgD98jIA/fIyAP3yMgD98jIA3fIxJ6PNpSMPHCPjDxwj4w8cI+MiUyHjDxwj4w8cI+MPHCPjDxwj4w8cIeM5sR1ycgD98jIA/fIyAP3yJjIdMhQntrz0f48Ox9dMpSntocM55Qiuz30WVt7ZCjfwC4ylG9gFxnKWwgXGcpbCBcZylsIFxlKP2Pr8iCztx4ZSj/jIcM5pchFhvIWwkWG0wN7yHB6YA8ZE5kOGU4P7CHD6YE9ZDg9sIeMPHCPjDxwhwznlCIXGXngHhl54B4ZeeAeGROZDhl54B6ZOh74jU9uy/r4Ku7+/3x9+vbKpo4LxrOp44PxbOo4YTibQtOK8GzquOG32ByPT27r9jeb//r0Mj0eXubl+ex0/87qhWMd7zyWYx2nPZajiSOEYx0XP5YjqeeHcyTNB3COpFkCzpE0d4A5tkLTpMZyVJ7BcFSewXBUnsFwNHGEcFSewXBUnsFwVJ7BcFSewXBUnoFwLDQZbCxH5RkMR+UZDEf5x3OOtyfHtvc4yj9iOOq8hvzvutAUo7EcdV5jOOq8xnDU/SOGo4nj3xxf2MgT9tnI5/XZcN79rc9KprbNXTac93k+Npye38Wm0CQmPBtOb+5jw+m3fWw4PfS2PX7K1XZr//G5hy40vWksR06/jefI6c3xHDl9PJ4jp+fHc+TMB3COhSZajeXImTvwHDkzCp6j8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyEY6HpZGM5Ks9gOCrPYDgqz2A4mjhCOCrPYDgqz2A4Ks9gOCrPYDgqz0A4rsozGI7KMxiOyjMYjvI95xwdvw0sNFVxKMdC8/SG/u+60PS9sRx1zmA46t4Mw9HEEcJR92b/ieMLG3nCPhv5vD4bzjurfb092RzWY8N5D+ViU2h+IJ4Np4/3seH05j42nH7bx8Yo2RyTPQTetf7HiYdeHw8v+w/H6Ta9cuT00HiOnH4bz5HTm+M5cvp4PEdOzw/nSDpTEc+RM0vgOXLmDjxHzoyC52jiCOGoPIPhqDyD4ag8g+GoPIPhqDyD4DiRzl/Ec1SewXBUnsFwVJ7BcDRxhHBUnsFwVJ7BcFSewXBUnsFwVJ6BcCSdv4jnqDyD4ag8g+GoPIPhaOII4ag8g+GoPIPhqDyD4ag8g+GoPAPhSDqfFs9ReQbDUXkGw1F5BsPRxBHCUXkGw1F5BsNReQbDUXkGw1F5BsKRdKboexzPu8km0pmieI46Z845nncYTaQzHPEcdc5AOJLOcMRz1L0ZhqPuzf4Txxc28oR9NiY2XTaUd1bT7fZ4eLrNXTaU91BONpSe38mG0sc72VB6cx8bzhmDTjaUHnq6bftjzc2m//jvPr475JwbeAFHSr99AUcTRwhHUh8P50jq+eEcSfMBnCNploBzJM0daI6ccwMv4Kg8g+GoPIPhqDyD4WjiCOGoPIPhqDyD4ag8g+GoPIPhqDwD4cg5n/YCjsozGI7KMxiOyjMYjiaOEI7KMxiOyjMYjsozGI7KMxiOyjMQjpyzdy/gqDyD4ag8g+GoPIPhaOII4ag8g+GoPIPhqDyD4ag8g+GoPAPhyDkr+AKOyjMYjsozGI7KMxiOJo4QjsozGI7KMwiOM+dM0Tc5nneTzZwzRS/gqHPmnON5h9HMOcPxAo46ZzAcdW+G4ah7MwxH3Zv9J44/bDjnMjrZcPq8tj/ZTGan//ubfvvf31+5g3PW4gUcOe+38BxNHCEcOXMHniNn7sBz5MwdeI6cueM9jj/3rdvW48iZO+AcOWctXsBReQbDUXkGw1F5BsPRxBHCUXnmHY7d75k5Zy1ewFF5BsORM89MP3fc80vW+53jfmuPZbRXjq/fo3DOWsRznDnzDJ4jZ57Bc+TMM3iOnHkGz9HE8ZSjPXzPvmw9jpx5Bs+RM8/gOXLmGTxH5RkMR+UZCEfOmb5vcnw+vB+tx1F5BsNReQbDUXkGw9HEEcJReQbDUXkGw1F55pTj0R4Cj2ntcVSewXBUnoFwJJ2ZjOeoPIPhqDyD4ag8g+FolBznZX1yPLYTjq2tTxxtfW1AWF5JciaaK0hyZporSHKmmitIcuaa90hO7fEFQ5v27S+S//Vpz6/9SacyD6ZOOsN5NHXOhDWaOmceG02dM72Npm6iPoC6cuEI6sqQI6grb46grmw6grqy6QDqpPO4R1NXNh1BXdl0BHVl0xHUTdQHUFc2HUFd2XQEdWXTEdSVTUdQVzYdQJ10lvWV1B2TZ0gnX4+mLg8z4g0jDzOCujzMCOryMAOok85THk1d9+sfUX8hKQ+OIilfjSJpInlKcr49nm6zdUnqvhpFUvkNRVKZDEVSOQtFUtkJQ9JI56y/SXJ7rKPZcvuL5C9Pb8tjbFXb7fj57GV95a5ENIa78tMY7kpbY7ibuA/hriQ3hrty3xjuSoljuCtTjuGuBDqEe1NeHcNdeXUMd+XVMdyVV8dwN3Efwl15dQx35dUx3JVXx3BXXh3DXXl1CPdJeXUMd+XVMdyVV8dwV14dw93EfQh35dUx3JVXx3BXXh3DXXl1DHfl1SHcZ+XVMdyVV8dwV14dw115dQx3E/ch3JVXx3BXXh3DXXl1CHeTjwRzd7SFmclFjqCuMxVN/bzLx0wn6gjqOk9HUNft7wjquvsdQH3Rze9H1F9IyoOjSMpXn5Nc2kNhW7b99E0w/fYmuE2v1HU3O4K6ifoA6sqQI6grQ46grgw5groy5AjqypBo6uujCnjZtg71VRlyBHXlzRHUlU1HUFc2HUHdRH0AdWXTEdSVTa+jvluPurLpCOrKpiOoK5ueU19v7YFjXdoJ9bYst+cerfPPZ//1t3Gb0ukY7sqnY7groY7hrow6hruJ+xDuyqlw7uvym+f8T9yVVMdwV1Ydw11pdQx35dUh3Hfl1THclVfR3O1Yn9yPv33kP7tD25Vt4++RcnD8PTLtEXiP1u0Jbz1uvTNGmXkMd2XmMdyVmcdwV2Yew12ZeQj3Q5l5DHdlZjj349n3s92WHnfl4DHclW3HcDdxH8JdeXUMd+XVMdyVV8dwV16Fc5+ef7+8TX/79392Z3wo20bfo+WmHBx/j5SZ0Xu0357fj+2t05G73JSZx3BXZh7D3cR9CHdl5jHclZnHcFdmHsNdmRnOfXo+vc/W464cPIR7U7Ydw115dQx35dUx3JVXx3A3cR/CXXkVzf3fzOz6Z3fGTdk2/h4pB8ffI87MbM9BMJPt0+keteeMjtVent5/5bE8flo5be2vdbxQ50zMg6lPnHl5NHXOtDyaOmdWhlF/IcmZfq8gaSIJIsmZUK8gyZkjryDJmfauIKlMhiKpnAUiOSs7OUh2/rL/Vxe/Lfufh7fj9XbmFbqi0wDoSk5g6NPzD8YnWzp5dVbKGkHdRH0AdaW3EdSV9EZQVyocQV0JEk3dcec+K20OoG5KpufUt2l/Urf2eUgyJdMB0JVMwdA9Z6kpmY6gbqI+gLqS6QjqSqYjqCuZjqCuZIqm7slISqYDqC9Kpg7qz3W0bZ8+D0mLkukA6EqmYOies3RRMh1B3UR9AHUl0xHUlUxHUFcyHUFdyRRN3ZORlEwHUF+VTM+p77cnjv215/afhqRVyXQAdCVTMHTPWboqmY6gbqI+gLqS6QjqSqYjqCuZjqCuZIqm7slISqYDqG9Kpm9S3/6i/kJScRNFUhkSRVK50EFysyfJffuPj69ANhP070NXKgRD9zjlTalwBHWlwhHUlQpHUFcqHEB9VyocQV0JEk3dcQOyK22OoK5k6qC+/EzP2PcT6sf8+OhjfWmqt+WfBardtEGxN0iJN/gGKRwH3yDl6OAbpMgdfIOUzmNv0KEgH3yDlPmDb5CuB4JvkG4Sgm+QaYNON+iwZ03jsQBa1Q/dDgyArsQPhu752uRQjB9BXdl8BHUF7u9TX29K0SOoKxqPoK68i6Z+/nX4elOIHUHdRH0AdUXTEdSVTR3U99vj6dvpz+v+3dMv3JVOx3BXPgVzX+f9uY52so7+ml92SFk2+A415d7oO6SMHH2HlKej75Cyd/QdMu1Q8B1Spo++Q8r/0XdINwXRd0h3CtF3SHcKwXdo0p1C9B3SnUL0HdKdQvQd0p1C9B0y7VDwHdKdQvQd0p1C9B3SnUL0HdKdQvQd0p1C8B2adacQfYd0pxB9h3SnEH2HdKcQfYdMOxR8h3SnEH2HdKcQfYeUhwbu0Hw8mlzmo7dDpjwUfYfk5QbukD1nJ1lbeztk2qHgOyQvF32H5OWi75C+H4q+Q/p+KPoOKQ+N3KH10X1ge6/7YFEeir5D+n4o+g7p+6HoO6Q7heg7ZNqh4DukO4XoO6Q7heg7pDuF6DukO4XoO6Q7heA7tOpOIfoO6U4h+g7pTgG9Q2+s46di9q+G2eO1RXPVnUL0HTLtUPAd0p1C9B3SnUL0HdKdQvQd0p1C9B3SncLIHVoenI/t1tmhTXcK0XdIdwrRd0h3CtF3SHcK0XfItEPBd0h3CtF3SHcKX9uhF+q6JxhBXdl/BHXl+QHUd2X0EdSVu0dQV5YeQZ0gH7+oNSq1BLntRS1BBnpRS5A9XtQSeP4XtQRe+0ftEdnjHrM91W7ridq2PJbRFuupjewt8Woje7q31KJ7zY7IvmssGROZDpnIfm4smcjebyyZyD5xLJnInnIsmcj+cySZ7VbGq8LJlPG1cDLywD0y8sA9MiYyHTLywD0y8sA9MvLAPTLywD0y8sAdMk0euEdGHrhHRh64R0YeuEfGRKZDRh64R0YeuEdGHrhHRh64R0YeuENmkgfukZEH7pGRB+6RkQfukTGR6ZCRB+6RkQfukZEH7pGRB+6RkQfukJnlgXtk5IF7ZOSBe2TkgXtkTGQ6ZOSBe2TkgXtk5IF7ZOSBe2TkgTtkQs++H0tGHrhHRh64R0YeuEfGRKZDRh64R0YeuEdGHrhHRh64Qyb0zOjLyMxH+/PsfHTJUPoZFxnKs8luD33W1h4ZyrPJRYbybHKRoTybXGQo72c8ZELPzRxLhtLPOOZEbqHnRI4lQ3k/4yJjItMhw+mBPWQ4PbCHDKcH9pDh9MAeMpwe2EEm9Jy3sWTkgXtk5IF7ZOSBe2RMZDpk5IF7ZOSBe2TkgXtk5IF7ZOp44Dc+uS3LYxx1W7afedRT++3paXlwnLYex9BTlzJxrOOvx3Ks48bHcqzj3UEcX9iY2HTZ1PHveDZ1HDyeTR0Pj2dTx8Xj2cjHd9nUmRZ1ARtOv70+J2i21ab/+Pc+0ZOjC02tGsuR02+/xXGangJt6XE0cYRw5PTxeI6cnh/PkTMf4DlyZgk8R87cgea4F5oSdh3H8/vavdBMsbEcSfPMM6K0dds/zzN7oXllYzmaOJ5xdJ0zpHkGzpE0z8A5kuYZOEfSPAPnSJpn0BwLTXwby5E0z7zF0ZFnCk2TG8tReQbD0cQRwpEzz2y3x8NtW24nHNvyENgW63HkzDN4jpx55i2O4J61vdA0vjzMOXPSUOaFJgjmYc6Zv8Yy58xqY5lz5rqxzE3Mv85cefH7zJUtv89cOfT7zJVDv89cOfTrzAtN8czDXDn0+8yVQ7/PXDn0+8xNzL/OXDn0+8yVQ7/PXDn0+8yVQ7/PXDn068wLTdLNw1w59PvMlUO/z1w59PvMTcy/zlw59PvMlUO/z1w59PvMlUO/z1w59OvMF+XQ7zNXDv0+c+XQ7zNXDv0+cxPzrzNXDv0+c+XQ7zNXDv0+c+XQ7zNXDv0681U59PvMlUO/z1w59PvMlUO/z9zE/OvMlUO/z1z+HMp8PtqfZ+ejy1z+/OvMN/kWKHO7PchZW3vM5Vu+z9zE/OvM5Vu+z1z3599nrvvz7zOXP8cyd8w72eTPv8581/3595nr/vz7zJVDv89cOfT7zE3Mv85cOfT7zJVDv89cOfT7zJVDv89cOfTrzA/l0O8zVw79PnPl0O8zVw79PnMT868zVw79PnPl0HPmb3zyNM23Hxrzz9P7ezRedkipNfoOKeNG3yEl4tg7dNyUn7+2Qy/UlaBHUFeGHkFdKXoEdRP1AdSVpEdQV5YeQV35eAR1Zd4R1JVjB1BvyqZg6vuT+vz6C4Zfbw9a26fHOqbZXp5eX/dISTb+Hin3DtwjcAPA0ZSnK+2maTcL7abyf6Xd1L1Cpd3UfUWl3dQ9SKXd1P1Kod2cdG9TaTd1w1NpN3UXVGk3dRdUaTdNu1loN3UXVGk3dRdUaTd1F1RpN3UXVGk3dRdUaDdn3QVV2k3dBVXaTd0FVdpN3QVV2k3TbhbaTd0FVdpN3QVV2k3dBVXaTd0FVdpN3QUV2k3TXVCl3VTeTLKbjnmLh5l2s9BuytMm2U3HTLHD5Gkr7aY8baHdXORpK+2mvt+stJv6frPSbipvZtnN8/7zYzHtZqHd1PeblXZT329W2k3dBVXaTd0FVdpN3QUV2s1Vd0GVdlN3QZV2U3dBlXZTd0GVdtO0m4V2U3dBlXZTd0Ejd/OdNbfnHwa16dbrAl91G1RrP3UfVGs/dSNUaj833QnV2k/dCtXaT90L1dpP3Qxl3M/Wevtp2s9S+6nboVr7qfuhLPs5tfm5n9Pa20/dD9XaT90P1dpP3Q+V2s9d90O19lP3Q7X2U/dDtfZT90MZ93Oee/tp2s9S+6n7oVr7qfuhkPv5skO68Ym+Q7rDwe7Q3PbnDi12skOt7dPPe673veOue5nwe3TormXgHqH7Jw/dtFTaTd2zVNpN3bJU2k3TbhbaTd2wVNpN3a9U2k3dxVTaTd3bVNpN3fCU2U273XQXVGk3dRdUaTd1F1RpN3UXVGk3TbtZaDd1F1RpN3UXVGk3dRdUaTd1F1RpN3UXVGg3m+6CKu2m7oIq7abugirtpu6CKu2maTcL7abugirtpu6CKu2m7oIq7abuggrt5qS8mWQ352eh3Xx0d1N5s9JuytMm2c3zCeD33ZSnrbSb8rSVdlOettJu6vvNQrs56/vNSrupvJllN0/n6913U3mz0m7q+81Ku2nazUK7qbugSrupu6BKu6m7oEq7qbugSrupu6BCu2m6C6q0m7oLqrSbuguqtJu6C6q0m6bdHLib76zZMSf6vp+6Daq1n7oPqrWfuhGqtZ+6E6q1n7oVKrWfi+6Fau2nboYy7mdrvf3U3VCt/dTtUK39NO1nkv10zIm+76fuh2rtp+6Hau2n7odq7afuh2rtp+6HSu3nqvuhWvup+6GM+znPvf3U/VCt/dT9UK39NO1nxP182SHd+ETfId3hgHdoWZ87dKwnO3RMx5+Hj+3lFvzO+WWHdCsTfYd0zzJwh9Ddk6tuWQrt5qY7lkq7qRuWSrup+5VKu6nblUq7adrNQrupe5hKu6k7m0q7qfudSrupu6BKu6m7oEK7uesuqNJu6i6o0m7qLqjSbuouqNJumnaz0G7qLqjSbuouqNJu6i6o0m7qLqjSbuouqNBuHroLqrSbuguqtJu6C6q0m7oLqrSbpt0stJu6C6q0m7oLqrSbyptJdnN+ltnNR2c32015s9JuytMm2U3H9O92M+1mod2Up620m/K0lXZT329W2k19v1lpN5U3s+zm+Wy91pQ3K+2mvt+stJv6frPSbuouqNJumnaz0G7qLqjSbuouqNJu6i6o0m7qLqjSbuouqNBuTroLqrSbugsauZtvfPJh059nj2V5YXG87qbugirtpu6CKu2maTcL7abugirtpu6CKu2m7oIq7abugrLs5vLYk2O79XZTd0GFdnPWXVCl3dRdUKXd1F1Qpd3UXVCl3TTtZqHd1F1QyN182SHd70TfId3ZgHfoeM52ttZOdmia1vnn6emvp1/2SDcx8fdI9ytD9+hni5bOm850ZxJ9h3QPEn2HdLcRfYd0XxF9h0w7FHyHdK8wcoeWx1/PTlvvr2dN9wrRd0j3CtF3SLcK0XdIdwrBd2jRnUL0HdKdQvQd0p1C9B3SnUL0HTLtUPAd0p1C9B3SnUL0HdKdwgc79MJRyR/DUfkcwnFVisZwVNbFcFQixXBUbsRwNHGEcFQGw3BUUsJwVJ7BcFSewXBUnvlPHH/YbKQZZZuebP51b/Nv/xs7lofAY587/41tpBkFzpE0o8A5kmYUOEcTRwhH0owC50iaUeAcSTMKnCNpRoFzJM0oaI678gyGo/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyE46E8g+GoPIPhqDyD4ag8g+Fo4gjhqDyD4ag8g+GoPIPhqDyD4ag8g+A43ZRnMByVZzAclWcwHJVnMBxNHCEclWcwHJVnMByVZzAclWcwHJVnIByb8gyGo/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyE46Q8g+GoPIPhqDyD4ag8g+Fo4gjhqDyD4ag8g+GoPIPhqDyD4ag8A+E4K89gOCrPYDgqz2A4Ks9gOJo4Qjgqz2A4Ks9gOCrPYDgqz2A4Ks9AOJryDIaj8gyGo/IMhqPyDIajiSOEo/IMhqPyDIaj8gyGo/IMhqPyDITjojyD4ag8g+GoPIPhqDyD4WjiCOGoPIPhqDyD4ag8g+GoPIPhqDwD4bgqz2A4Ks9gOCrPYDgqz2A4mjhCOCrPYDgqz2A4Ks9gOCrPYDgqz0A4bsozGI7KMxiOyjMYjsozGI4mjhCOyjMYjsozGI7KMxiOyjMYjsozEI678gyGo/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyE46E8g+GoPIPhqDyD4ag8g+Fo4gjhqDyD4ag8g+GoPIPhqDyD4ag8g+A435RnMByVZzAclWcwHJVnMBxNHCEclWcwHJVnMByVZzAclWcwHJVnIByb8gyGo/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyE46Q8g+GoPIPhqDyD4ag8g+Fo4gjhSJBnXtQSpI4XtQTZ4EUtgYN/UUvgs3/UMkyXf1FL4Flf1BI4yxe1BP7vRa1RqaXyUgwTxF/UJvVSLwqS+qMXBUk9z4+CrFOlXxQk9SYvCpL6jRcFST3EiwJLryDpWf+iIOn5/aIg/ZmcdUrsi4L0Z3LWyagvCtKfyVmngb4oSH8mZ52A+aIg/Zmcderji4L0Z3LsSYfH/ufh49bmvxT8s+//Ys8jRKuNPTUQrja0L4CrDe0h4GpD+w24WqNSG9rHwNWG9jxwtaH9EVwtlZeKPQsNrTb2xDK4WiovFXv6F1wtlZeKPUkLrpbKS8WeSgVXS+WlYk94gqul8lKxpyXB1VJ5qdiTh+BqqbxU7Ck+cLVUXir2RBy4WiovFXu6DFwtlZeKPakFrpbKS8WeegJXS+WlYk8Qgaul8lKxp3HA1VJ5qdiTLeBqmbyUxZ4SAVfL5KUs9sQFuFomL2U3o1LL5KUs9iQAuFomL2WxW/Xhaqm8VOyGerhaKi8Vu+0drpbKS8VuToerpfJSsVvI4WqpvFTsRm+4WiovFbsdG66WykvFbpqGq6XyUrFbm+FqqbxU7G5luFoqLxW7WxmulspLxe5Whqul8lKxu5Xhaqm8VOxuZbhaKi8Vu1sZrpbKS8XuYYarpfJSsfud4WqpvFTs3mi4WiovFbuPGq6WykvF7rmGq6XyUrH7s+FqqbxU7F5uuFoqLxW77xuulspLxe4Rh6ul8lKx+8nhaqm8FFXvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeG1XvuVH1nhtV77lR9Z4bVe+5UfWeL1S95wtV7/kSp/f8ZU1hHM/LmizgmsK4h5c1hTnjX9YU5iR+WVOY8/JlTWFOtZ81xemJfllTmBPiZU0B3+NxmpFf1hTwPR6nZfhlTQHf43Eae1/WFPA9Hqf99mdNcTpqX9YU8D0ep+/1ZU0B3+NxulNf1hTwPR6nh/RlTQHf43E6PV/WFPA9Hqcf82VNAd/jcbomX9YU8D1+bW/jy79n+dK/Z/3Sv2f70r9n/9K/5/jOv+faTrqXf0/70r9n+tK/Z/7Sv+dL7wP70vvAvvQ+sC+9D+xL7wP70vtg+dL7YPnS+2D50vtg+dL7YPnS+2D50vtg+dL7YPnS+2D50vtg+dL7YP3S+2D90vtg/dL7YP3S+2D90vtg/dL7YP3S+2D90vtg/dL7YP3S+2D70vtg+9L7YPvS+2D70vtg+9L7APAL4mmz579nP/7j39+deP52B/A7X/yatoBr2gOu6Yi3JsDvT/FragHXNAVc0xxwTRZwTQHf43vA9/ge8D2+B3yP7wHf40fA9/gR8D1+BHyPHwHf40fA9/gR8D1+BHyPHwHf40fA9/gR7z2+3uK9x9dbvPf4eov3Hl9v8d7j6y3ee3y9xXuPr7d47/H1Fu89vt7ivcfXW8D3eAv4Hm8B3+Mt4Hu8BXyPt4Dv8RbwPd4CvsdbwPd4C/gebwHf41PA9/gU8D0+BXyPTwHf41PA9/gU8D0+BXyPTwHf41PA9/gU8D0+B3yPzwHf43PA9/gc8D0+B3yPzwHf43PA9/gc8D0+B3yPzwHf4xbwPW4B3+MW8D1uAd/jFvA9bgHf4xbwPW4B3+MW8D1uAd/jS8D3+BLwPb4EfI8vAd/jS8D3+BLwPb4EfI8vAd/jS8D3+BLwPb4GfI+vAd/ja8D3+BrwPb4GfI+vAd/ja8D3+BrwPb4GfI+vAd/jW8D3+BbwPb4FfI9vAd/jW8D3eMDfc64Bf8+5Bvw95xrw95xrwN9zrgF/z7kG/D3nGvD3nGvA33OuAX/PuQb8Peca8Peca8Dfc64Bf8+5Bvw95xrw95xrwN9zrgF/z7kG/D3nGvD3nGvA33OuAX/PuQb8Peca8Peca8Dfc24Bf8+5Bfw95xbw95xbwN9zbrd47/Et4O85t4C/59wC/p5zC/h7zi3g7zm3gL/n3AL+nnML+HvOLeDvObeAv+fcAv6ecwv4e84t4O85t4C/59yv7Yn+r0+/N1V3fqjdj239efrXqbrvfHK7e4+HwG25PZ+e2vThJ0/z8nh4mo+XNe+/0pj35ye3k0+ej/bn2fmYersZev61dvO93by281y7+eXdDD2/XLv55m6GmSOm3QTsZpgJbNpNwG6adrPQboaZ3qrdBOxmmLm32k3AboaZGKzdBOym7oIq7abugpLspk3Hn2fNrLObm+6CKu2m7oIq7abugirtpu6Csuxm+9nNpbebpt0stJu6C6q0m7oLqrSbuguqtJu6C6q0m7oLyrKbt8eeWFs7u7nrLqjSbuouqNJu6i6o0m7qLqjSbpp2s9Bu6i6o0m7qLqjSbuouqNJu6i6o0m7qLqjQbh66C6q0m7oLqrSbuguqtJu6C6q0m6bdLLSbuguqtJu6C6q0m7oLqrSbuguqtJu6C6qzm8dNd0GVdlN3QZV2U3dBlXZTd0GVdtO0m4V2U3dBlXZTd0GVdlN3QZV2U3dBlXZTd0GFdrPpLqjSbuouqNJu6i6o0m7qLqjSbpp2s9Bu6i6o0m7qLqjSbuouqNBuTsqb4N1s+3M3FwPupqM7+piUNyvtpvJmpd1U3qy0m6bdLLSbypuVdlN5s9JuKm9W2k397UGl3dTfHhTazVl3QZV2U3dBSXbTMd3mmHUXVGk3dRdUaTdNu1loN3UXlGU3zydoHLPugirtpu6CKu2m7oIq7abuggrtpukuqNJu6i4oy246/mbPdBdUaTd1F1RpN027WWg3dRdUaTd1F1RpN3UXVGk3dRdUaTd1F1RoNxfdBVXaTd0FVdpN3QVV2k3dBVXaTdNuFtpN3QVV2k3dBVXaTd0FVdpN3QVV2k3dBRXazVV3QZV2U3dBlXZTd0GVdlN3QZV207SbhXZTd0GVdlN3QZV2U3dBlXZTd0GVdlN3QYV2c9NdUKXd1F1Qpd3UXVCl3dRdUKXdNO1mod3UXVCl3dRdUKXd1F1Qpd3UXVCl3dRdUKHd3JU3sbs57bfnbjbkVDhPd/SuvFlpN027WWg3lTcr7abyZqXdVN6stJvKm5V2U3mz0G4e+tuDSrupvz2otJu6C6q0m7oLSrKbnuk2h2k3C+2m7oIq7abugirtpu6CsuymY4LGobugSrupu6Ayu7ncbroLqrSbuguqtJu6C6q0m7oLyrKbp3+zd99N024W2k3dBVXaTd0FVdpN3QVV2k3dBVXaTd0FFdrNprugSrupu6BKu6m7oEq7qbugSrtp2s1Cu6m7oEq7qbugSrupu6BKu6m7oEq7qbugQrs56S6o0m7qLqjSbuouqNJu6i6o0m6adrPQbuouqNJu6i6o0m7qLqjSbuouqNJu6i6o0G7OuguqtJu6C6q0m7oLqrSbuguqtJum3Sy0m7oLqrSbuguqtJu6C6q0m7oLqrSbugsqtJumu6BKu6m7oEq7adrN092ENjzfmSsVfp+5stv3mSthfZ+5ctD3mSutfJ35okzxfeZy/t9nru9qv89c36h+n7mJ+deZK4dCmZ9PqbgzVw79PnPl0O8zVw79PnPlUCxzR0P7qhz6febKod9nrhz6febKod9nbmL+debKoVjmju/9V+XQ7zNXDv0+c+XQ7zNXDv0680059PvMlUO/z1w59PvMlUO/z9zE/OvMlUO/z1w59PvMlUO/z1w59PvMlUO/znxXDv0+c+XQ7zNXDv0+c+XQ7zM3Mf86c+XQ7zNXDv0+c+XQ7zNXDv0+c+XQrzM/lEO/z1w59PvMlUO/z1w59PvMTcy/zlw59PvMlUO/z1w59PvMlUO/z1w59NvM20059PvMlUO/z1w59PvMlUO/z7yOP8e2CbVbHReNJlPH66LJ1HGkYDKtjm9Ek6nj7tBk6ngwNJk6TglNxkSmQ6bO7TeajDxwjwylB3Z007VG6YFdZCg9sIfMROmBXWQoPbCjS6pNlB7YRYbSA7vImMh0yFB6YBcZSg/sIsPpgR3fHUycHthDhtMDO8jMnB7YQ4bTA3vIcHpgDxlOD+whYyLTIcPpgT1kOD2wh4w8cI+MPHCPjDxwh4zJA/fIyAP3yMgD98jIA/fImMh0yMgD98jIA/fIyAP3yMgD98jIA3fIFJp3jyYjD9wjIw/cIyMP3CNjItMhIw/cIyMP3CMjD9wjIw/cIyMP3CFTaNY2mow8cI+MPHCPjDxwj4yJTIeMPHCPTGQ/s6/Hk8xtPyPzxidPPz9WmWx/ffr2y9Pt2G+Pp2/TT3NH248Pd8jz27zQU2m1Q/cdCj3DVjv0rx2K7DO1Q//aoch+Vzv0rx2K7Lu1Q//aIdMOBd+hyDlEO/SvHYr8nYB26F87FPm7Ce3Qv3ZIdwrRd0h3CgN3yNOUEnoesXboXzukO4XoO6Q7heg7pDuFkTvkaEUJPUdZO/SvHdKdQvQd0p1C9B3SnUL0HdKdQvQd0p3CyB1y/K1P6NnS2qF/7ZDuFKLvkO4Uou+Q7hSi75Bph4LvkO4Uou+Q7hSi75DuFKLvkO4Uou+Q7hRi79AUek64duhfO6Q7heg7pDuF6DukO4XoO2TaoeA7pDuF6DukO4XoO6Q7heg7pDuF6DukO4XgO9R0pxB9h3SnEH2HdKcQfYd0pxB9h0w7FHyHdKcQfYd0pxB9h3SnEH2HdKcQfYd0pxB8hybdKUTfId0pRN8h3SlE3yHdKUTfIdMOBd8h3SlE3yHdKUTfId0pBN+hmTMPzcvj4Wk+trMdmrfHOpotPzt0v3b+5enl9nh4afvLs+srdc6MM5o6Z24ZTZ0zi4ymbqI+gDpnZriSuk0P6i80/hN1zhwwmjqntx9NnfM7wNHUOb/Xu5L6M8cuy9yhbsqmI6grm46grmw6grqy6QjqJuoDqCuboqk/r/mXeelRVzYdQV3ZdAR1ZdMR1JVNB1BflE1HUFc2HUFd2XQEdWXTEdRN1AdQVzYdQV3ZdAR1ZdMR1JVNR1BXNh1AfVU2HUFd2XQEdWXTEdSVTUdQN1EfQF3ZdAR1ZdMR1JVNR1BXNh1BXdl0APVN2XQEdWXTEdSVTUdQVzYdQd1EfQB1ZdMR1JVNR1BXNh1BXdl0BHVl0wHUd2XTEdSVTUdQVzYdQV3ZdAR1+fVz6lOzB45p386oO7qQdvn1EdTl10dQl18fQP2QXx9BXX4dTd3R3nDIr4+gLr8+grqJ+gDq+i5pBHVl0xHUlU3R1B33MIey6Qjqyqbfpz7flE1HUFc2HUFd2XQEdWXTEdRN1AdQVzYdQV3ZdAR1ZdMR1JVNR1BXNh1AvSmbjqCubDqCurLpCOrKpiOom6gPoK5sOoK6sukI6sqmI6grm46grmw6gPqkbDqCurLpCOrKpiOoK5uOoG6iPoC6sukI6sqmI6grm46grmw6grqy6QDqs7LpCOrKpiOoK5uOoK5sOoK6ifoA6sqmI6hz+vXb9vhR6J3odELd0YIxz5wOHM7ROD01niOnS8Zz5PS9eI6cTvY9jjY9OL7o+08cTRwhHDndJp4j53cbeI6c31a8x/G8yWU25RkMR+UZCMdFeQbDUXkGw1F5BsNReeaco+P+cTFxhHBUnsFwVJ7BcFSewXBUnsFwVJ6BcFyVZzAclWcwHJVnMByVZzAcTRwhHJVnMByVZzAclWcwHJVnMByVZyAcN+UZDEflGQxH5RkMR+UZDEcTRwhH5RkMR+UZDEflGQxH5RkMR+UZCMddeQbDUXkGw1F5BsNReQbD0cQRwlF5BsNReQbDUXkGw1F5BsNReQbC8VCewXBUnsFwNEaO7ZievTPHftZS4+kDOCj94wUcKf3jBRwp/eMFHCn94wUcKf3jmxzPexXsRukfL+BI6R8v4Eh5H34BR8r78Dc5nv+O3W4mjhCOyjMYjsozGI7KMxiOyjMYjsoz5xzP7x+tKc9gOCrPYDgqz2A4Ks9gOJo4Qjgqz2A4Ks9gOCrPYDgqz2A4Ks9AOHLOd7+Ao/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyEI+dM8As4Ks9gOCrPYDgqz2A4mjhCOCrPYDgqz2A4Ks9gOCrPYDgqz0A4cs5jv4Cj8gyGo/IMhqPyDIajiSOEo/IMhqPyDIaj8gyEI+f86/valofA3doZx/M+AOOcf30BR07/iOfI6R/xHE0cIRw5/eN7HB29Cpzzry/gyOkf8Rw578PxHDnvw9/j6PgdO+f86ws4Ks9gOCrPYDgqz2A4mjhCOCrPnHN03D9yzr++gKPyDIaj8gyGo/IMhCPn/OsLOCrPYDgqz2A4Ks9gOJo4Qjgqz2A4Ks9gOCrPYDgqz2A4Ks9AOHLOv76Ao/IMhqPyDIaj8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8gyEI+f86ws4Ks9gOCrPYDgqz2A4mjhCOCrPYDgqz2A4Ks9gOCrPYDgqzyA4LqTz2PEclWcwHJVnMByVZzAcOf3jcjw+ua3bdMbxvA9gIZ1/jefI6R/xHDn9I5wj6fxrPEdO//gex/PfaS6k86/xHDn9I56jiSOEI+d9OJ6j8gyGo/LMOUdHviadf43nqDwD4Ug6/xrPUXkGw1F5BsNReQbD0cQRwlF5BsNReQbDUXkGw1F5BsNReQbCkXT+NZ6j8gyGo/IMhqPyDIajiSOEo/IMhqPyDIaj8gyGo/IMhqPyDIQj6fxrPEflGQxH5RkMR+UZDEcTRwhH5RkMR+UZDEflGQxH5RkMR+UZCEfSeex4jsozGI7KMxiOyjMYjiaOEI7KMxiOdfzj81cu69pOPnk+2p9n5+PvVbyQqeMIwWQKzahGk6nj2tBk6vgwNJk6zgpNxkSmQ6aO+0GTqXM/iyZT58YVTUYeuEeG0gPbMzeZWYdMobnGaDKUHthFhtIDu8hQemBrP2SWHhkTmQ4ZSg/sIkPpgV1kKD2wiwylB3aR4fTAt4c+u39f8DuZQrNw0WQ4PbCHDKcH9pDh9MAeMiYyHTKcHthDhtMDe8hwemAPGU4P7CEjD9whU2h+KpqMPHCPjDxwj4w8cI+MiUyHjDxwj4w8cI+MPHCPjDxwj4w88O9k1kIzN9Fk5IF7ZOSBe2TkgXtkTGQ6ZOSBe2TkgXtk5IF7ZOSBe2TkgTtkCs0NRZORB+6RkQfukZEH7pExkemQkQfukZEH7pGRB+6QCT038H4+PMhsrwp+JbNPj9+57dPUUxvZo+DVRvYdeLWRvQRerVGpjXzmv6fWni/7bT/75Pmhb7fu+zvymT+WTOQzfyyZyPdeY8lEvvcaSib0PLaxZOp4SjSZOv7zDTLvJLT+il8o1vG1IymaKAIoUvpwOEVKzw6nSOnv4RQpswCcImVuQFMMPSMtD0XKPAKnqOyCoKjsgqBoogigqOyCoKjsgqCo7IKgqOyCoKjsAqAYeh5aHorKLgiKyi4IisouCIomigCKyi4IisouCIrKLgiKyi4IisouAIqh5/zloWii+O+fdUwiWkNPPMtDUafLybOe30aFnoqVhmLoCVp5KOpmDEFRN2MIiroZQ1A0UTyhuC4PinvrUZRfRFDUzRiCom7GEBSVXRAUlV0AFENPPstDUdkFQVHZBUFR2QVB0UQRQFHZBUFR2QVBkTO7vLGKthyPD27rXz1t2ytHzvSC58iZX+AcQ8+ty8SRM8PgOXKmGDxHzhyD52jieMJxnduTo916HDmzDJ4jZ5rBc1SewXBUnsFwVJ5BcNxCzyDMxFF55i2OW4+j8gyGo/IMhqOJ4+uzL2SUUHpklDl6ZJQiemSUC3pk5PQ7ZELPThxLpo4bP++F30LPQ8SrreNsPWqNSm0dT+lRW8cnetTW8X4etXX8nEdtHY/mUFtoxqNHLZWXKjTj0aOWyksVmvHoUUvlpQrNbfSopfJSheYretRSealCcxA9aqm8VKF5hR61VF6q0Pw/j1oqL1Vonp5HLZWXKjSfzqOWyksVmvfmUUvlpQrNT/OopfJSheaRedRSealC8708aqm8VKF5WR61VF6q0Pwpj1oqL1VonpNHLZWXKjQfyaOWyksVmjfkUUvlpQrN7/GopfJShebheNRSeamVykutVF6q0AQmj1oqL7VSeamVyksVmlblUUvlpQpNf/KopfJShaYpedRSealC04k8aqm8VKFpPx61VF6q0PQcj1oqL1VoGo1HLZWXKjTdxaOWyksVmpbiUUvlpQpNH/GopfJShWZ5eNRSeSnSOQRvTA2aj0fd5HxMPYqapoagaKIIoKhpagiKmqaGoKhJ0AiKmgSNoKhJ0J9T3EnnDqApahI0gqKyC4KissvJszY9PtfMehRNFAEUlV0QFJVdEBSVXc4oth+KS4+isguCorILgCLp3AU0RWUXBEVlFwRFZZczircHC2trj6KJIoCisguCorILgqKyC4KisguCorILgGKh2SUjKSq7ICgquyAoKrsgKJooAigquyAoKrsgKCq7ICgquyAoKrsAKBaaFTSSorILgqKyC4KisguCookigKKyC4KisguCorILgqKyC4KisguAYqHZXCMpKrsgKCq7ICgquyAomigCKCq7ICgquyAoKrsgKCq7ICgquwAoFpqFN5KisguCogWmaNuT4rLZGcXp8Zv6fZp6aiP7OrzayP4LrzayT8Krjexn8Goj+4731L7xrnf0RO6hZ8GNJRPZH4wlE/m+ciyZyHeQY8mYyHTI1PGUaDJ1/OdFCa2/4heKdXztSIp1/PJIipQ+HE0x9MzBPBQp/T2cImUWgFOkzA1wiiaKAIqUeQROUdkFQVHZBUFR2QVBUdkFQDH0jM88FJVdEBSVXRAUlV0QFE0UARSVXRAUlV0QFJVdEBSVXRAUlV0AFA9lFwRFZRcERWUXBEVlFwRFE0UARTmdk2c9Uw9DT4PNQvEIPYEzBEXHb6OO0BM481DU6YKgqJsxBEXdjCEo6mYMQVF+8Yziujwo7q1HUX4RQDH0BM48FHUzhqCo7IKgqOyCoGiiCKCo7IKgqOyCoKjsgqCo7IKgqOwCoBh6AmceipzZ5Y1VtOV4fHBbby+ffGyvHDnTC54jZ37BczRxhHDkzDB4jpwpBs+RM8fgOXImmXc4rnN7crRbjyNnloFzDD2TMxNH5RkMR+UZDEflGQxHE0cIR+WZtzhuPY7KMxiOyjMYjsozfz37QkYJpUMm9CzNsWSUInpklAt6ZOT0e2RMZDpk6rjx8174I/RcSLzaOs7Wo7aO//SoreMpHWpDzy3Eq63j/Txq6/g5j9o6Hs2j1qjUUnmpQjMePWqpvFShGY8etVReqtDcRo9aKi9VaL6iRy2Vlyo0B9GjlspLFZpX6FFL5aUKzf/zqKXyUoXm6XnUUnmpQvPpPGqpvFSheW8etVReqtD8NI9aKi9VaB6ZRy2Vlyo038ujlspLFZqX5VFL5aUKzZ/yqKXyUoXmOXnUUnmpQvORPGqpvFSheUMetVReqtD8Ho9aKi9VaB6ORy2VlzqovNRB5aUKTWDyqCXyUuvtRuSl7mqJvNRdLZGXuqsl8lJ3tUallshL3dUSeam7WiIvdVdL5KXuaqm8VKFpPx61VF6q0PQcj1oqL1VoGo1HLZWXKjTdxaOWyksVmpbiUUvlpQpNH/GopfJShWZ5eNRSeSnSOQRvTA2aj0fd5HxMPYqapoagqGlqCIqapgagSDp/AE1Rk6ARFDUJGkFRk6ARFE0UARQ1CRpBUdkFQVHZ5eRZmx6fa2Y9isouCIrKLgCKpHMM0BSVXc4oth+KS4+isguCorILgqKJIoCisguCorILgqKyyxnF24OFtd53gIVmVYykqOwCoFhotsZIisouCIrKLgiKyi4IiiaKAIrKLgiKyi4IisouCIrKLgiKyi4AioVm2YykqOyCoKjsgqCo7IKgaKIIoKjsgqCo7IKgqOyCoKjsgqCo7AKgWGh21EiKyi4IisouCIrKLgiKJooAisouCIrKLgiKyi4IisouCIrKLgCKhWa1jaSo7IKgqOyCoKjsgqBoogigqOyCoBjZL063x8P7/Krgd4rT4zf1+zT11Eb2dXC1oee74dVG9kl4tZH9DF5tZN/xnto33vWensjQs+DGkonsD8aSiXxfOZZM5DvIsWTq+EQ0mTqeEkumhZ6JdxmZdxJaf8UvFOv42pEU6/jlkRQpfTicookigCKlv4dTpMwCcIqUuQFOkTJjwClS5hE0xdAzKPNQVHZBUFR2QVBUdkFQNFEEUFR2QVBUdkFQVHZBUFR2QVBUdgFQDD3zNQ9FZRcERWUXBEVlFwRFE0UARWUXBEVlFwRFZRcERWUXAMXQ02BDUHRMPWyhp8HmoajT5eRZx2+jWugJnHko6nRBUNTNGIBi6AmceSjqZgxBUX7xjOK6PCjurUdRfhFB0UQRQFE3YwiKyi4IisouCIrKLgiKyi4AiqEncOahqOyCoKjsgqCo7IKgaKIIoMiZXd5YxfF89phf5t4v7ZUiZ3ZBU+TMLmiKnNkFTZEzu4Aphp7AmYciZ3ZBU+TMLu9QvM1PiutfFH95dn6s4ViPn2dt+eXZbXl41u346cSdbq+bwxmJkmyOaXPibo4CXODNUS4MvDmKm4E3Ryk28OYoHMfdnNCTY+k3R1E+8ObohiDw5uiG4Gxzlh/ge+cSLPT43DwUlbkRFBWOERSVYhEUFTcRFJULARRDj88dQPGFjNJTj4yiS4+MckOPjIlMh4z8fY+MPHuPTB0f7hjxVWh8sEdtHV/rUFtofLBHbR1P6VFbxyd61Nbxfh61RqW2jkfzqK3juzxqqbxUoRG7HrVMXmoqNArXo5bJS02FRst61DJ5qelmVGqZvNRUaPSpRy2Tl5oKjRL1qKXyUoVGc3rUUnmpQqMuPWqpvFSh0ZEetVReqtAoRo9aKi9VaLShRy2Vlyo0KtCjlspLFRq951FL5aUKjbLzqKXyUoVGw3nUUnmpQqPWPGqpvNRM5aVmKi9VaLifRy2Vl5qNSi2Vlyo0CNGjlspLFRos6FFL5aUKDerzqKXyUoUG33nUUnmpQoPkPGqpvFShwWwetVReqtCgM49aKi9VaHCYRy2Vlyo0iMujlspLFRps5VFL5aUKDYryqKXyUoUGL3nUUnmpQoOMPGqpvFShwUAetVReqtDoGo9aKi9FOiLijQGw89H+PDsfU4+ihrQDKJIOXUBT1JB2BEUNaUdQ1JB2BEUTRQBFzj5SNEXO7lI0Rc55A2iKyi4IisouJ8/a9PhcM+tQJJ03gKao7IKgqOyCoKjsckax/VBcehRNFAEUlV0QFJVdEBSVXRAUlV0QFJVdzijeHiys9b4DLDSrYiRFZRcERWUXBEVlFwRFE0UARWUXBEVlFwRFZRcERWUXBEVll88pzoVmw4ykqOyCoKjsgqCo7IKgaKIIoKjsgqCo7IKgqOyCoKjsgqCo7AKgWGgW00iKyi4IisouCIrKLgiKJooAisouCIrKLgiKyi4IisouCIrKLgCKhWafjaSo7IKgqOyCoKjsgqBoogigqOyCoKjsgqCo7AKgGHq+W2vTA0zb5hOKjt/Uz6Hnu+HVRvZfeLWRfRJerVGpjew78Goj+wO82sjnOF5t5LtCvNrId3pwtaHnu+HVlvFSjtaROfR8N7zaMl7Kpdao1JbxUo4mgjn0fDe82jJeyqW2jJdyqS3jpTxqQ893w6ut46Ucd46h57vh1dbxUh61RqW2jpfyqK3jpTxq63gpj9o6Xsqjto6XcqgNPd8Nr5bKS4We74ZXS+WlQs93w6ul8lIrlZdaqbxU6Nl9eLVUXir0LDy8WiovFXq2HF4tlZcKPasNr5bKS4WefYZXS+WlQs8Sw6ul8lKhZ3Ph1VJ5qdCzrvBqqbxU6NlReLVUXir0LCa8WiovFXq2EV4tlZcKPZ/l1m4PtbdtOlHr+dvz0HNU8Gojn7d4tZHPW7zayOctXm3k8xavNvJ5i1cb+bxFq7XQ8y3waiPfXeDVMnkpCz3X4S21jl8/2c2o1JbxUi61ZbyUS20ZL+X4hYyFng+AV1vGS3nUhu7bx6st46Vcast4KZfaOl7q/M7RQvfB49XW8VIetXW8lEdtHS/lUVvHS3nU1vFSDrWh+7/xaut4KY/aOl7Ko5bKS4Xup8arpfJSofue8WqpvNRE5aUmKi8Vuhsbr5bKS4XuxsarpfJSobux8WqpvFTobmy8WiovFbobG6+WykuF7sbGq6XyUqG7sfFqqbxU6G5svFoqLxW6GxuvlspLhe7Gxqul8lKhu7Hxaqm8VOT+5G3fHmq3Yz1O1O7T42/P92nqqQ183l6gNvB5e4HawOftBWoDn7cXqA183r6p9o3Zq/v80Ldb7/0duWt5MJnA5/hgMoHvTwaTCXzXMpiMiUyHTB1PiSZTx39eNDG9v+IXinV87UiKdfzySIqUPhxNMXKndyKKlP4eTpEyC8ApUuYGOEUTRQBFyjwCp6jsgqCo7IKgqOyCoKjsAqAYuUM/EUVlFwRFZRcERWUXBEUTRQBFZRcERWUXBEVlFwRFZRcERWUXAMVD2QVBUdkFQVHZBUFR2QVB0UQRQFHZBUFR2QVBUdkFQVHZ5XOKS+TpJjEoOqamLJGnpiSiqNPl5FnHb0aXyJNAElHU6YKgqJsxAMXIE1ESUdTNGIKi/OIZxXV5UNxbj6L8IoKiiSKAom7GEBSVXRAUlV0QFJVdEBSVXQAUI08gSkRR2QVBUdkFQVHZBUHRRBFAkTO7vLGK1vbHw60dL5NqD3vlyJle8Bw58wueI2eCwXPkzDBwjpFnf6XiyJlj8Bw5k8w7HKf2sJptmrYeR84sg+do4gjhqDyD4ag8g+GoPIPhqDyD4ag88w7H2TocI8/fS8VReQbDUXnmlONyPDmue4+j8gyGo4kjhKPyDIaj8gyGo/IMhqPyDIaj8sxfz/6QiTzVcjAZZY4eGaWIHhnlgh4ZE5kOGXn3Hpk6bvx8TthSaHKrR20dZ+tRW8d/OtQWmsbqUVvHJ3rU1vF+HrV1/JxHrVGpreO7PGqpvFShaaEetVReqtD0TYfaQlMyPWqpvFShqZMetVReqtAUR49aKi9VaCqiRy2Vlyo0ZdCjlspLFZra51FL5aUKTcHzqKXyUoWmynnUUnmpQlPaPGqpvFShqWcetVReqtAUMY9aKi9VaCqXRy2Vlyo05cqjlspLFZoa5VFL5aUKTWHyqGXyUuuNyUutNyYvtRaa++VRy+Sl1ptRqWXyUmuhGWketUxeai00c8yjlspLFZrh5VFL5aUKzcTyqKXyUoVmTHnUUnmpQjObPGqpvFShGUgetVReqtBMIY9aKi9VaEaPRy2Vlyo088ajlspLFZog41FL5aUKTWPxqKXyUoUmm3jUUnmpQlNCPGqpvFShiRsetVReqtD0Co9aKi9VaBKERy2Vlyo0VcGjlspLFZpQ4FFL5aUKtf171FJ5qULN+R61VF6qUAu9Ry2VlyrU/+5RS+WlCvW0e9RSealCfeoetVReiqr3fKXqPV+pes9Xqt7zlar3fKXqPV+pes9Xqt7zlar3fKXqPV+pes9Xqt7ztVA39juTk+b9uYp28ux8tD/PzsfUo8g55w5NkXMmHpoi5/w8NEUTRQBFzrl8aIqcE7XRFDnnaaMpck7TRlPknKUNplioi34kRWWXk2dtenyumfUoKrsgKCq7ICiaKAIoKrucUWw/FJceRWUXBEVlFwRFZRcERWUXAMVCsx9GUlR2OaN4e7Cw1vsOsNCsipEUlV0QFE0UARSVXRAUlV0QFJVdEBSVXRAUlV0+p7gVmrUykqKyC4KisguCorILgqKJIoCisguCorILgqKyC4KisguCorILgGKh2UYjKSq7ICgquyAoKrsgKJooAigquyAoKrsgKCq7ICgquyAoKrsAKBaaJTaSorILgqKyC4KisguCookigKKyC4KisguCorILgqKyC4KisguAYuj5bptND4q73c4oTo/f1O/T1FMb2dfh1RqV2sg+Ca82sp/Bq43sO95T+8a73tETuYWeBTeWTGR/MJRM6BlzY8lEvoMcS6aOT0STqeMp0WSMkcw7Ca2/4heKdXztSIp1/PJIipQ+HE6R0rPDKVL6ezTF0DMS81CkzA1wipQZA06RMo/AKZooAigquyAoKrsgKCq7ICgquyAoKrsAKIaeSZqHorILgqKyC4KisguCookigKKyC4KisguCorILgqKyC4KisguAYuj5znkoKrsgKCq7ICjK6Zw865h6uIWeBpuGYugJnCEoen4bFXoCZx6KOl0QFHUzhqBoogigqJsxBEX5xTOK6/KguLceRflFBEXdjCEo6mYMQDH0BM48FJVdEBSVXRAUlV0QFE0UARSVXRAUlV0QFJVdEBSVXRAUObPLG6to7fZA3lrbfp7e9x+Oe+gZnJk4cuYXPEfOBIPnyJlh8BxNHCEcOXMMniNnknmLo92eHO3oceTMMniOnGkGz1F5BsIx9FzOTByVZzAclWcwHJVn3uG4rD2OJo4QjsozGI7KM389+0JGCaVHRpmjR0YpokMm9MzLsWTk9Htk5N17ZOq48fNe+D30XEi82jrO1qO2jv/0qK3jKT1q6/hEj9o63s+hdq7j5zxq63g0j9o6vsujlspLFZrx6FFL5aUKzXj0qKXyUoXmNnrUUnmpQvMVPWqpvFShOYgetVReqtC8Qo9aKi9VaP6fRy2Vlyo0T8+jlspLFZpP51FL5aUKzXvzqKXyUoXmp3nUUnmpQvPIPGqpvFSh+V4etVReqtC8LI9aKi9VaP6URy2Vlyo0z8mjlspLFZqP5FFL5aUKzRvyqKXyUoXm93jUUnmpQvNwPGqpvNRmVGqpvFShCUwetVReaqPyUhuVlyo0rcqjlspLFZr+5FFL5aUKTVPyqKXyUoWmE3nUUnmpQtN+PGqpvFSh6TketVReqtA0Go9aKi9VaLqLRy2Vlyo0LcWjlspLFZo+4lHL5KWOQrM8PGqZvNRxq3PeXjQ1aD7an2fnY+pR1DQ1BEVNU0NQ1DQ1BEVNU0NQ1CRoAEXS2QNoipoEjaCoSdAIipoEjaBoogigqOxy8qxNj881sx5FZRcERWUXBEVlFwRFZZcziu2H4tKhSDofAU1R2QVBUdkFQVHZBUHRRBFAUdnljOLtwcJa7zvAQrMqRlJUdkFQVHZBUFR2AVAsNAtkJEVlFwRFZRcERWUXBEUTRQBFZRcERWUXBEVlFwRFZRcERWUXAMVCs3dGUlR2QVBUdkFQVHZBUDRRBFBUdkFQVHZBUFR2QVBUdkFQVHYBUCw062okRWUXBEVlFwRFZRcERRNFAEVlFwRFZRcERWUXBEVlFwRFZRcAxUKz5UZSVHZBUFR2QVBUdkFQjOwXl+XxydvW2hnF6fGb+n2aemoj+zq82sj+C682sk+Cqw093w2vNrLveE/tG+96T09k6FlwY8lE9gdjyZjIdMhEvoMcS6aOT0STqeMp0WTq+M+LElp/xS8U6/jagRRDz/DLQ5HSh8MpUnp2OEVKfw+naKIIoEiZG+AUKTMGnCJlHoFTVHZBUFR2AVAMPTMzD0VlFwRFZRcERWUXBEUTRQBFZRcERWUXBEVlFwRFZRcERWWXjylut9AzavNQVHZBUFR2QVBUdkFQNFEEUFR2QVBUdkFQVHZBUFR2QVBUdgFQDD3fOQ9FE8V//+z5NNg7RTkdBEWdLifPnv9m9E5RpwuAYugJnHko6mYMQVE3YwiKuhlDUDRRPKG4Lg+Ke+tRlF9EUNTNGIKibsYQFJVdEBSVXQAUQ0/gzENR2QVBUdkFQVHZBUHRRBFAUdkFQVHZBUGRM7u8sYq2PPW19fby9PEXR870gufImV/gHEPP4czEkTPD4Dlyphg8R84cg+do4njCcb3Zk2Obexw5swyeI2eawXNUnsFwVJ7BcFSegXAMPZszE0flmVOOyw/HtctReQbDUXkGw9HEEcJReQbDUXkGw1F5BsNReeavZ1/IKKF0yISeqTmWjFJEj4xyQY+MnH6PjIlMh0wdN346T+iuto5n9qit42w9auv4T4/aOp7SobbQrFKP2jrez6O2jp/zqK3j0TxqjUotlZcqNM/To5bKSxWau+lRS+WlCs2x9Kil8lKF5kJ61FJ5qUJzFj1qqbxUobmFHrVUXqrQHECPWiovVWiunkctlZcqNKfOo5bKSxWa++ZRS+WlCs1R86il8lKF5pJ51DJ5qVZozpdHLZOXaoXmZnnUMnmpdjMqtUxeqhWa6+RRy+SlWqE5SR61VF6q0Nwhj1oqL9WovFSj8lKFJl151FJ5qUblpRqVlyo0FcyjlspLFZqy5VFL5aUKTa3yqKXyUoWmQHnUUnmpQlOVPGqpvFShKUUetVReqtDUH49aKi9VaIqORy2Vlyo0lcajlspLFZry4lFL5aUKzUzxqKXyUoXmj3jUUnmpQrM8PGqpvFShuRgetVReqtCMCY9aKi9VaF6DRy2Vlyo0+8CjlspLFZoj4FFL5aUKdfJ71FJ5qUL99h61VF6qUFe8Ry2VlyrU6e5RS+WlCnWve9RSealCHeketVReiqr3vFH1njeq3vNG1XveqHrPG1XveaPqPW9UveeNqve8UfWeN6re81aoG/udyUnz/lxFO3l2PtqfZ+dj6lAs1Lk9kiLnTDw0Rc75eWiKnLP20BRNFAEUOSdqoylyztNGU+Scpo2myDlLG01R2QVAsVDH/UUUbXp8rpn1KCq7ICgquyAoKrsgKJoonlBsPxSXHkVlFwRFZRcERWUXBEVlFwRFZZfPKU6FZkpcRfH2YGFt7VFUdkFQVHZBUFR2QVA0UQRQVHZBUFR2QVBUdkFQVHZBUFR2AVAsNMNlJEVlFwRFZRcERWUXBEUTRQBFZRcERWUXBEVlFwRFZRcERWUXAMVCM5NGUlR2QVBUdkFQVHZBUDRRBFBUdkFQVHZBUFR2QVBUdkFQVHYBUCw0o2wkRWUXBEVlFwRFZRcERRNFAEVlFwRFZRcERWUXBEVlFwDF0PPd5mN6UFxudkZxevymfp+mntrIvg6vNrL/wqs1KrWR/QxebWTf8Z7aN971jp7IKfQsuLFkIvuDsWQi31cOJRN6Ht1YMnV8IppMHU+JJlPHf16U0PorfqFoogigWMcvj6RI6cPhFCk9O5wipb+HU6TMAmiKoWcv5qFImTHgFCnzCJyisguCookigKKyC4KisguCorILgqKyC4KisguAYuhZp3koKrsgKCq7ICgquyAomigCKCq7ICgquyAoKrsgKCq7ICgquwAohp7vnIeisguCopzOybOOqYdT6GmweSjqdDl51vPbqNATOPNQ1OmCoKibMQRF3YwhKJooAijKL55RXJcHxb31KMovIijqZgxBUTdjCIrKLp9TnENP4MxDUdkFQVHZBUFR2QVB0UQRQFHZBUFR2QVBUdkFQZEzu7yxitam2wNGm46fp9f1lSNneoFzDD2FMxNHzgSD58iZYfAcOVMMnqOJI4QjZ5J5i+MyPTm+es2/OXJmGTxHzjSD56g8g+GoPAPhGHoyZyaOyjMYjsozb3HcexyVZzAcTRwhHJVn/nr2hYwSSo+MMkePjFJEj4xyQYdM6DmWY8nIu/fI1HHj573wc+i5kHi1RqW2jv/0qK3jKT1q6/hEj9o63s+jto6fc6i1Oh7No7aO7/KopfJShWY8etQalVoqL1VoxqNHLZWXKjSL0aOWyksVmpnoUUvlpQrNNvSopfJSheYKetRSealCc/o8aqm8VKG5dx61VF6q0Bw5j1oqL1VoLptHLZWXKjTnzKOWyksVmhvmUUvlpQrN4fKopfJSheZaedRSealCc6I8aqm8VKG5Sx61VF6q0Bwjj1oqL1VoLpBHLZWXKjRnx6OWykvtVF5qp/JSu1GppfJShSYledRSeamdyksVmlblUFtoqpRHLZWXKjSlyaOWyksVmnrkUUvlpQpNEfKopfJShabyeNQyeSkrNOXGo5bJS1mhqTEetUxeym5GpZbJS1mhqSYetUxeygpNCfGopfJShSZueNRqmtrJs/eruz/P3pfTo1jnHB9JUdPUEBQ1TQ1BUdPUEBQ1CRpBUZOgARRJJw+gKWoSNIKiJkEjKCq7ICiaKP77Z216fK6Z9SgquyAoKrsgKCq7ICgqu5xRbD8Ulx5FZRcARdJZCmiKyi4IisouCIrKLgiKJoonFG8PFvcvBnoUlV0QFJVdEBSVXRAUlV0QFJVdABQLzRgZSVHZBUFR2QVBUdkFQdFEEUBR2QVBUdkFQVHZBUFR2QVBUdkFQLHQTJ+RFJVdEBSVXRAUlV0QFE0UARSVXRAUlV0QFJVdEBSVXRAUlV0AFAvN0BpJUdkFQVHZBUFR2QVB0UQRQFHZBUFR2QVBUdkFQVHZBUFR2QVAsdDMupEUlV0QFJVdEBQj+8XJHp+8zct8RnF6/KZ+n6ae2si+Dq82sv/Cq43sk/BqI/sZuNrQ893eU/vGu97TExl6FtxYMpH9wVgyke8rx5IxkemQqeMT0WTqeEo0mTr+86KE1l/xC8U6vnYkxTp+eSDF0LMB81Ck9OxwipT+Hk6RMgvAKZooAihSZgw4Rco8Aqeo7IKgqOyCoKjs8jnFJfQszjwUlV0QFJVdEBSVXRAUTRQBFJVdEBSVXRAUlV0QFJVdEBSVXQAUQ8++zUNR2QVBUdkFQVHZBUHRRBFAUdkFQVFO5+RZx9TDJfQ02DwUdbqcPOv4bdQSegJnHoo6XRAUdTOGoKibMQRF3YwhKMovnlFclwfFvXUohp7AmYeibsYQFHUzhqCo7IKgaKIIoKjsgqCo7IKgqOyCoKjsgqCo7AKgGHoCZx6Kyi4IipzZ5Y1VtOV4fHBbby+ffGyvHDnTC56jiSOEI2eCwXPkzDB4jpwpBs+RM8fgOXImmXc4rnN7crRbh2PoiZyZOHKmGTxH5RkMR+UZDEcTRwhH5RkMR+WZtzhuPY7KMxiOyjMYjsozfz37Qyb03M2xZJQ5emSUInpklAt6ZExkOmTk3Xtk6rjx8174JfRcSLzaOs7Wo7aO/3SoDT0PEa+2jk/0qK3j/Txq6/g5j1qjUlvHd3nUUnmpQjMePWqpvFShGY8OtYVmPHrUUnmpQrMYPWqpvFShmYketVReqtBsQ49aKi9VaK6gRy2Vlyo0p8+jlspLFZp751FL5aUKzZHzqKXyUoXmsnnUUnmpQnPOPGqZvNRaaG6YRy2Tl1oLzeHyqGXyUuvNqNQyeam10Jwoj1omL7UWmrvkUUvlpQrNMfKopfJSheYCedRSealCc3Y8aqm8VKPyUo3KSzUqL1VoApNDbaFJSR61VF5qovJShaZVedQalVoqL1VoSpNHLZWXKjT1yKOWyksVmiLkUUvlpQpN5fGopfJShabceNRSealCU2M8aqm8VKEpLB61VF6q0FQTj1oqL1VoSohHLZWXKjRxw6NW09ROnp2PR93kfEw9ipqmhqCoaWoAiqQTCNAUNU0NQVGToBEUNQkaQdFEEUBRk6ARFDUJGkFR2QVBUdnl5FmbHp9rZj2Kyi4AiqSzCdAUlV0QFJVdzii2H4pLj6KyC4KiiSKAorILgqKyC4KisguCorLLGcXbg4W13neAhWZVDKRYaAbGSIrKLgiKyi4IisouCIomigCKyi4IisouCIrKLgiKyi4IisouAIqFZs6MpKjsgqCo7IKgqOyCoGiiCKCo7IKgqOyCoKjsgqCo7IKgqOwCoFhoxtNIisouCIrKLgiKyi4IiiaKAIrKLgiKyi4IisouCIrKLgiKyi6fU9wKzVQbSVHZBUFR2QVBUdkFQdFEEUBR2QVBUdkFQTGyX2zLYxnbdLMTiuDf32+hZ8GNJRPZ140lE9mrjSUT2X+NJWMi0yET2SeNJRPZ+4wlE/kudiyZyPerY8nIA3fIhJ7hdxkZRwvNFnre31gylB7YRYbSA7vIGCWZ8yaNLfR8wrFkKD2wiwylB3aRofTALjKUHthDJvTsxevIOL47CD2ncSwZTg/sIcPpgT1kTGQ6ZDg9sIcMpwf2kOH0wB4ynB7YQ4bTAzvIhJ6ZOZaMPHCPjDxwj4w8cI+MiUyHjDxwj4w8cI+MPHCPjDxwj4w8cIdM6PmtY8nIA/fIyAP3yMgD98iYyHTIyAP3yMgD98jIA/fIyAP3yMgDd8iEngM6low8cI+MPHCPjDxwj4yJTIeMPHCPjDxwj4w8cI+MPHCHTOR5f+sxT4+Hj20FkvH8Ji7yDL/BZAL7mcFkTGQ6ZAL7mcFkAvuZwWQC+5nBZAL7mcFkAt/pjSUTecbcYDLywD0ylB7Y80v2yPPdBpMxkemQofTALjKUHtjzq+TI89IGk6H0wC4ylB7YQybyrLLBZCg9sIsMpwd2fHcQeU7YYDImMh0ynB7YQ4bTA3vIcHpgDxlOD+whw+mBz8nskWdeDSbD6YE9ZOSBe2TkgXtkTGQ6ZOSBe2TkgXtk5IF7ZOSBe2TkgTtkIs/8GkxGHrhHRh64R0YeuEfGRKZDRh64R0YeuEdGHrhHRh64R0YeuEMm8syvwWTkgXtk5IF7ZOSBe2RMZDpk5IF7ZOSBe2TkgXtk5IF7ZOSBO2Qiz/waTObbfgb7y7X961OW0Otfkq9/Tb7+Lfn69+TrP3Kv/+uTdNDrb8nXPyVff/Lz9+sTXrC/SN0t8PnrWn/g89e1/sDnr2v9gc9fx6/edgt8/nrWvwQ+f13rD3z+utYf+Px1rT/w+etaf+Tz13H/sEQ+fz3rj3z+etYf+fz1rD/y+etZf+Tz17H+NfL561l/5PPXs/7I569n/ZHPX8/6k5+/a/Lzd01+/q7Jz981+fm7Jj9/t+Tn75b8/N2Sn79b8vP3603s6PUnP3+35Ofvlvz83ZKfv1vy83dPfv7uyc/fPfn5uyc/f7/eAo1ef/Lzd09+/u7Jz989+fm7Jz9/j+Tn75H8/D2Sn7+IntLn17RTWw24fs/fXyHaRIeuf0u+/j35+o/U6z8QLZdD19+Sr39Kvv45+fot+fpzn7/HLfD56/j71eMW+Px1rT/w+etaf+Dz17P+Fvj8dfz95NECn7+u9Qc+f13rD3z+utYf+Px1rT/w+etaf+Tz9/z+4WiRz1/P+iOfv571Rz5/HeufIp+/nvVHPn896498/nrWH/n89aw/8vnrWX/k89ez/uTn75T8/J2Sn79T8vN3Tn7+zsnP3zn5+TsnP38R/UtD15/8/J2Tn79z8vN3Tn7+zsnPX0t+/lry89eSn7+W/PxF9C8NXX/y89eSn7+W/Py15OevJT9/l+Tn75L8/F2Sn79L8vMX0b80dP2fv/9vtjzWfztuwPV7/v4K0P8zdv1H7vUD+n/Grr8lX/+UfP1z8vVb8vUvyde/Jl9/8vN3DXz+ev5+dQ18/nrWvwU+f13rD3z+utYf+Pz1/P3kFvj8da0/8PnrWn/g89e1/sDnr2v9gc9f1/ojn7+O+4ct8vnrWP8e+fz1rD/y+etZf+Tz17P+yOevZ/2Rz1/P+iOfv571Rz5/PeuPfP561p/8/N2Tn79H8vP3SH7+HsnP3yP5+XskP3+P5Ofvkfz8PZKfv0fy8/dIff7ut1vq8/e+/tTn7339qc/f+/pTn7/39ac+f+/rT33+3tef+vy9rz/1+Xtff+rz977+5OdvS37+tuTnb0t+/rbk5y+gf2ns+pOfvy3n+Xv///2//8P/+b/8D//j//o//1/3f+Jf/8f/53/7n/7v/+V//9/+/H//7//v//hv/5f7s/8/"}],"outputs":{"structs":{"functions":[{"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters","fields":[{"name":"app_payload","type":{"kind":"struct","path":"authwit::entrypoint::app::AppPayload","fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall","fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"target_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"is_public","type":{"kind":"boolean"}}]}}},{"name":"nonce","type":{"kind":"field"}}]}}]}}]}]},"globals":{}},"file_map":{"3":{"source":"use crate::cmp::Eq;\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 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\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","path":"std/collections/bounded_vec.nr"},"20":{"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","path":"std/field.nr"},"51":{"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","path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr"},"84":{"source":"use crate::{\n context::{inputs::PrivateContextInputs, interface::ContextInterface},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n oracle::{\n arguments, returns, call_private_function::call_private_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal, header::get_header_at,\n nullifier_key::{get_nullifier_keys, NullifierKeys}\n}\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, gas::Gas, call_context::CallContext, function_data::FunctionData,\n function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n private_call_stack_item::PrivateCallStackItem,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, side_effect::SideEffect\n},\n 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_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n grumpkin_private_key::GrumpkinPrivateKey, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader,\n traits::{is_empty, Deserialize, Empty}\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\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\n args_hash : Field,\n return_hash : Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<SideEffect, 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 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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n encrypted_logs_hashes: BoundedVec<SideEffect, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<SideEffect, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n // encrypted_logs_preimages: Vec<Field>,\n // unencrypted_logs_preimages: Vec<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.side_effect_counter });\n self.side_effect_counter = self.side_effect_counter + 1;\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.side_effect_counter });\n self.side_effect_counter = self.side_effect_counter + 1;\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 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 new_l2_to_l1_msgs: BoundedVec::new(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = 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 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 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,\n unencrypted_log_preimages_length,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n };\n\n priv_circuit_pub_inputs\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 = SideEffect { value: note_hash, counter: self.side_effect_counter };\n self.note_hash_read_requests.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\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 };\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 pub fn push_encrypted_log(&mut self, log_hash: Field) {\n let side_effect = SideEffect { value: log_hash, counter: self.side_effect_counter };\n self.encrypted_logs_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\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>(&mut self, log: T) {\n let event_selector = 5; // TODO: compute actual event selector.\n let log_hash = emit_unencrypted_log_private_internal(self.this_address(), event_selector, log);\n\n let side_effect = SideEffect { value: log_hash, counter: self.side_effect_counter };\n self.unencrypted_logs_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\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 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 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 // We increment the sideffect counter by one, to account for the call itself being a side effect.\n self.side_effect_counter = self.side_effect_counter + 1;\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.public_call_stack_hashes.push(item.hash());\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 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 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 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) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: T\n) -> Field {\n // https://github.com/AztecProtocol/aztec-packages/issues/885\n emit_unencrypted_log_oracle_private(contract_address, event_selector, message)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr"},"99":{"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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr"},"100":{"source":"use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH\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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr"},"113":{"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};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n pedersen_hash([secret], GENERATOR_INDEX__SECRET_HASH)\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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr"},"130":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/header.nr"},"132":{"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_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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr"},"145":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/eth_address.nr"},"149":{"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(\n [pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1]\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pubkey() {\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr"},"151":{"source":"use crate::{address::EthAddress, constants::L2_TO_L1_MESSAGE_LENGTH, traits::{Deserialize, Empty, Serialize}};\n\n// Note: Not to be confused with L2ToL1Msg in Solidity\nstruct L2ToL1Message {\n recipient: EthAddress,\n content: Field,\n}\n\nimpl Empty for L2ToL1Message {\n fn empty() -> Self {\n Self {\n recipient: EthAddress::empty(),\n content: 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)\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]\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 }\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/messaging/l2_to_l1_message.nr"},"154":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr"},"156":{"source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Hash, 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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/partial_state_reference.nr"},"162":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_data.nr"},"166":{"source":"use crate::{\n abis::side_effect::{OrderedValue, ContractScopedOrderedValue},\n traits::{Empty, Serialize, Deserialize}, address::AztecAddress,\n constants::READ_REQUEST_LENGTH,\n};\nuse dep::std::cmp::Eq;\n\nglobal READ_REQUEST_CONTEXT_SERIALIZED_LEN = 3;\n\nstruct ReadRequest {\n value: Field,\n counter: u32,\n}\n\nimpl OrderedValue<Field> for ReadRequest {\n fn value(self) -> Field {\n self.value\n }\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 to_context(self, contract_address: AztecAddress) -> ReadRequestContext {\n ReadRequestContext { value: self.value, counter: self.counter, contract_address }\n }\n}\n\nstruct ReadRequestContext {\n value: Field,\n counter: u32,\n contract_address: AztecAddress,\n}\n\nimpl OrderedValue<Field> for ReadRequestContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl ContractScopedOrderedValue<Field> for ReadRequestContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Eq for ReadRequestContext {\n fn eq(self, read_request: ReadRequestContext) -> bool {\n (self.value == read_request.value)\n & (self.counter == read_request.counter)\n & (self.contract_address.eq(read_request.contract_address))\n }\n}\n\nimpl Empty for ReadRequestContext {\n fn empty() -> Self {\n ReadRequestContext {\n value: 0,\n counter: 0,\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<READ_REQUEST_CONTEXT_SERIALIZED_LEN> for ReadRequestContext {\n fn serialize(self) -> [Field; READ_REQUEST_CONTEXT_SERIALIZED_LEN] {\n [self.value, self.counter as Field, self.contract_address.to_field()]\n }\n}\n\nimpl Deserialize<READ_REQUEST_CONTEXT_SERIALIZED_LEN> for ReadRequestContext {\n fn deserialize(values: [Field; READ_REQUEST_CONTEXT_SERIALIZED_LEN]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n contract_address: AztecAddress::from_field(values[2]),\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/read_request.nr"},"167":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr"},"177":{"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 = 0x17fd6ffcb3394b845069dc87e055c37ac50599f274130fac69c6fe919bfe382e;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr"},"181":{"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 = 0x1595b195f0faa3a492109039dc807b291d0edd81a5e3a380866d5098ffd505dd;\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 = 0x1122a7d7e6174b7e5d111c8eb0233564d3a1ffd755afc7ce4b594d738e2770d7;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr"},"183":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_selector.nr"},"186":{"source":"use crate::{\n abis::function_selector::FunctionSelector, address::{EthAddress, AztecAddress},\n constants::GAS_LENGTH, hash::pedersen_hash, traits::{Deserialize, Hash, Serialize, Empty},\n abis::side_effect::Ordered, utils::reader::Reader, abis::gas_fees::GasFees\n};\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 add(self, other: Gas) -> Self {\n Gas::new(self.da_gas + other.da_gas, self.l2_gas + other.l2_gas)\n }\n\n pub fn sub(self, other: Gas) -> Self {\n Gas::new(self.da_gas - other.da_gas, self.l2_gas - other.l2_gas)\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\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas.nr"},"187":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_settings.nr"},"188":{"source":"use crate::{\n address::AztecAddress, abis::side_effect::{Ordered, OrderedValue},\n constants::{NOTE_HASH_LENGTH, NOTE_HASH_CONTEXT_LENGTH}, traits::{Empty, Serialize, Deserialize}\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 OrderedValue<Field> for NoteHash {\n fn value(self) -> Field {\n self.value\n }\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 to_context(self, nullifier_counter: u32) -> NoteHashContext {\n NoteHashContext { value: self.value, counter: self.counter, nullifier_counter }\n }\n}\n\nstruct NoteHashContext {\n value: Field,\n counter: u32,\n nullifier_counter: u32,\n}\n\nimpl Ordered for NoteHashContext {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for NoteHashContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteHashContext {\n fn eq(self, other: NoteHashContext) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter) \n & (self.nullifier_counter == other.nullifier_counter)\n }\n}\n\nimpl Empty for NoteHashContext {\n fn empty() -> Self {\n NoteHashContext {\n value: 0,\n counter: 0,\n nullifier_counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_HASH_CONTEXT_LENGTH> for NoteHashContext {\n fn serialize(self) -> [Field; NOTE_HASH_CONTEXT_LENGTH] {\n [self.value, self.counter as Field, self.nullifier_counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_HASH_CONTEXT_LENGTH> for NoteHashContext {\n fn deserialize(values: [Field; NOTE_HASH_CONTEXT_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n nullifier_counter: values[2] as u32,\n }\n }\n}\n\nimpl NoteHashContext {\n pub fn to_note_hash(self) -> NoteHash {\n NoteHash { value: self.value, counter: self.counter }\n }\n\n pub fn expose_to_public(self) -> NoteHash {\n // Hide the actual counter when exposing it to the public kernel.\n NoteHash { value: self.value, counter: 0 }\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/note_hash.nr"},"189":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/global_variables.nr"},"192":{"source":"use dep::std::cmp::Eq;\nuse crate::{\n address::AztecAddress,\n constants::{NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH, NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, grumpkin_point::GrumpkinPoint,\n grumpkin_private_key::GrumpkinPrivateKey\n};\n\nstruct NullifierKeyValidationRequest {\n master_nullifier_public_key: GrumpkinPoint,\n app_nullifier_secret_key: Field, // not a GrumpkinScalar 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 to_context(self, contract_address: AztecAddress) -> NullifierKeyValidationRequestContext {\n NullifierKeyValidationRequestContext {\n master_nullifier_public_key: self.master_nullifier_public_key,\n app_nullifier_secret_key: self.app_nullifier_secret_key,\n contract_address\n }\n }\n}\n\nstruct NullifierKeyValidationRequestContext {\n master_nullifier_public_key: GrumpkinPoint,\n app_nullifier_secret_key: Field,\n contract_address: AztecAddress,\n}\n\nimpl Eq for NullifierKeyValidationRequestContext {\n fn eq(self, request: NullifierKeyValidationRequestContext) -> 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 & (request.contract_address.eq(self.contract_address))\n }\n}\n\nimpl Empty for NullifierKeyValidationRequestContext {\n fn empty() -> Self {\n NullifierKeyValidationRequestContext {\n master_nullifier_public_key: GrumpkinPoint::zero(),\n app_nullifier_secret_key: 0,\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH> for NullifierKeyValidationRequestContext {\n fn serialize(self) -> [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH] {\n [\n self.master_nullifier_public_key.x,\n self.master_nullifier_public_key.y,\n self.app_nullifier_secret_key,\n self.contract_address.to_field(),\n ]\n }\n}\n\nimpl Deserialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH> for NullifierKeyValidationRequestContext {\n fn deserialize(fields: [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH]) -> Self {\n Self {\n master_nullifier_public_key: GrumpkinPoint::new(fields[0], fields[1]),\n app_nullifier_secret_key: fields[2],\n contract_address: AztecAddress::from_field(fields[3]),\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_key_validation_request.nr"},"193":{"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\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: [SideEffect; 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 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.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\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 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 max_block_number: reader.read_struct(MaxBlockNumber::deserialize),\n note_hash_read_requests: reader.read_struct_array(SideEffect::deserialize, [SideEffect::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 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 max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: [SideEffect::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 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 = 0x29129c06414f4ac73bf889692c7011f91727d4cdbfe4fe143e6adee69b565cc8;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr"},"194":{"source":"use crate::{\n abis::side_effect::{Ordered, OrderedValue}, address::AztecAddress, constants::NULLIFIER_LENGTH,\n traits::{Empty, Hash, Serialize, Deserialize}\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier.nr"},"196":{"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 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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr"},"197":{"source":"use crate::{\n address::AztecAddress, constants::GENERATOR_INDEX__SIDE_EFFECT,\n traits::{Empty, Hash, Serialize, Deserialize}, constants::SIDE_EFFECT_LENGTH\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 ContractScopedOrderedValue<T> where T: Eq {\n fn value(self) -> T;\n fn counter(self) -> u32;\n fn contract_address(self) -> AztecAddress;\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/side_effect.nr"},"199":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_fees.nr"},"201":{"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 = 0x1a2da219bb2e3ac24519fd844365c4f656fc3ba8c58f2960706d25bceb4d1769;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr"},"202":{"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}","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/append_only_tree_snapshot.nr"},"205":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::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};\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 silo_note_hash(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\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\npub fn compute_tx_logs_hash<MAX_ENCRYPTED_LOGS_PER_TX>(logs: [SideEffect; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // TODO(Miranda): Below is flat hashing which would reduce constraints (we now only hash once in tail) - convert to this?\n\n // // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n // // Ideally we would define a new global here but for now we assert in case MAX_LOGS changes\n // assert(MAX_ENCRYPTED_LOGS_PER_TX * 32 == 256);\n // let mut hash_input_flattened = [0; 256];\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 // // This differs from accumulate_sha256 as we could increase MAX_LOGS and\n // // ideally we would push to a slice then hash, but in practice compilation was very slow\n // // Hardcode to 256 bytes for now\n // sha256_to_field(hash_input_flattened)\n\n // Assuming logs are pre-sorted\n let mut accumulated_logs_hash = 0;\n for i in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n if !is_empty(logs[i]) {\n accumulated_logs_hash = accumulate_sha256([accumulated_logs_hash, logs[i].value]);\n }\n }\n\n accumulated_logs_hash\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, commitment_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_siloed_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\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 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr"},"206":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/content_commitment.nr"},"212":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/transaction/tx_context.nr"},"215":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/state_reference.nr"},"216":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr"},"321":{"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: pub AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr"}}}
|
|
1
|
+
{"noir_version":"0.28.0+b6ee6a5888e47e7e17024eb66172459a13bdeb3a","name":"MultiCallEntrypoint","functions":[{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"parameters":[{"name":"inputs","type":{"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"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}}]}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","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"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables","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":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"gas_fees","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings","fields":[{"name":"gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"teardown_gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"max_fees_per_gas","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}},{"name":"inclusion_fee","type":{"kind":"field"}}]}}]}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}]},"visibility":"private"},{"name":"app_payload","type":{"kind":"struct","path":"authwit::entrypoint::app::AppPayload","fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall","fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"target_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"is_public","type":{"kind":"boolean"}}]}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"}],"param_witnesses":{"app_payload":[{"start":38,"end":55}],"inputs":[{"start":0,"end":38}]},"return_type":{"abi_type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs","fields":[{"name":"call_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext","fields":[{"name":"msg_sender","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"storage_contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"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}}]}},{"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":"max_block_number","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber","fields":[{"name":"_opt","type":{"kind":"struct","path":"std::option::Option","fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}},{"name":"note_hash_read_requests","type":{"kind":"array","length":32,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"nullifier_key_validation_requests","type":{"kind":"array","length":1,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier_key_validation_request::NullifierKeyValidationRequest","fields":[{"name":"master_nullifier_public_key","type":{"kind":"struct","path":"authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint","fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}}]}},{"name":"app_nullifier_secret_key","type":{"kind":"field"}}]}}},{"name":"new_note_hashes","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"new_nullifiers","type":{"kind":"array","length":16,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}]}}},{"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":"new_l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message","fields":[{"name":"recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"content","type":{"kind":"field"}}]}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::side_effect::SideEffect","fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}]}}},{"name":"encrypted_log_preimages_length","type":{"kind":"field"}},{"name":"unencrypted_log_preimages_length","type":{"kind":"field"}},{"name":"historical_header","type":{"kind":"struct","path":"authwit::aztec::protocol_types::header::Header","fields":[{"name":"last_archive","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"content_commitment","type":{"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment","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"}}]}},{"name":"state","type":{"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference","fields":[{"name":"l1_to_l2_message_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"partial","type":{"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference","fields":[{"name":"note_hash_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"nullifier_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"public_data_tree","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot","fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}]}}]}}]}},{"name":"global_variables","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables","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":{"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"fee_recipient","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"gas_fees","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}}]}}]}},{"name":"tx_context","type":{"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext","fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings","fields":[{"name":"gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"teardown_gas_limits","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas","fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"max_fees_per_gas","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees","fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}]}},{"name":"inclusion_fee","type":{"kind":"field"}}]}}]}}]},"visibility":"public"},"return_witnesses":[1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,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],"error_types":{}},"bytecode":"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","debug_symbols":"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8PyrBJ5/lcDzrxJ4/lUCz79K4PlXCTz/KoHnXyXw/KsEnn+VwPOvEnj+VQLPv0rg+VcJPP8qgedfJfD8qwSef5XA868SeP5VAs+/SuD5Vwk8/yqB518l8PyrBJ5/lcDzrxJ4/lUCz79K4PlXCTz/KoHnXyXw/KsEnn+VwPOvEnj+VQLPv0rg+VcJPP8qgedfJfD8qwSef5XA868SeP5VAs+/SuD5Vwk8/yqB518l8PyrBJ5/lcDzrxJ4/lUCz79K4PlXCTz/KoHnXyXw/KsEnn+VwPOvEnj+VQLPv0rg+VcJPP8qgedfJfD8qwSef5XA868SeP5VAs+/SuD5Vwk8/yqB518l8PyrBJ5/lcDzrxJ4/lUCz79K4PlXCTz/KoHnXyXw/KsEnn+VwPOvEnj+VQbPv8rg+VcZPP8qg+df5Q27/2bw/KsMnn+VwfOvMnj+VQbPv8rg+VcZPP8qg+dfZfD8qwyef5XB868yeP5VBs+/yuD5Vxk8/yqD519l8PyrDJ5/lcHzrzJ4/lUGz7/K4PlXGTz/KoPnX2Xw/KsMnn+VwfOvMnj+VQbPv8rg+VcZPP8qg+dfZfD8qwyef5XB868yeP5VBs+/yuD5Vxk8/yqD519l8PyrDJ5/lcHzrzJ4/lUGz7/K4PlXGTz/KoPnX2Xw/KsMnn+VwfOvMnj+VQbPv8rg+VcZPP8qg+dfZfD8qwyef5XB868yeP5VBs+/yuD5Vxk8/yqD519l8PyrDJ5/lcHzrzJ4/lUGz7/K4PlXGTz/KoPnX2Xw/KsMnn+VwfOvMnj+VQbPv8rg+VcZPP8qg+dfZfD8qwyef5XB868yeP5VBs+/yuD5Vxk8/yqD519l8PyrDJ5/lcHzrzJ4/lUGz7/K4PlXGTz/agfPv9rB86928PyrHTz/at+w++8Onn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1g+df7eD5Vzt4/tUOnn+1m85f2kf662v3Mavf8v2/UL/p/B/ZnmVIqpP6Ld8/K/Vbvn9W6rd8/6zUL+D1W/b/K/Vbvv+llmf9PU3qt3z/r9Rv2f+v1G/Z/y/Ubzr/Z6V+0/13oX7T/XehftP9d6F+0/13oX7T/Xeh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PVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bf3YPntPVh+ew+W396D5bePYPntI1h++wiW3z6C5bePTYLpjeWvRrD89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fwfLbR7D89hEsv30Ey28fjvK9e37K7fnX7/xW66f7rqj1czf3/Vl0lzpR6+dmXlHr515eUevnVl5R62fmXVDrKPF5Ra2jfrug1lG/XVDrZ9ZdUSuh1IbyUo5SnlfUonqptwJUf/RWYNrz7CM/FZRNjubuVJ5fnVL9UPXjf7/02s5hPkGvad9zgl7TzucEvaa9zwl6JZhe0/7nBL2mHdAJek17oBP0mnZMJ+gN5q9s5zCfoDeYv7Kdw3yC3mD+ynYO8wl6g/kr2znMJ+gN5q9s5zCfoDeYv7Kdw3yC3mD+ynYO8wl6g/kr2znMJ+gN5q9s5zCfoDeYv7Kdw3yC3lD+Km+2c5hP0BvKXz30hvJXD72h/NVDrwTTG8pfPfSG8ld5s51b+yO9h5+ceKj1041W1Pq5qw5/2++h1s9NtaLWzz21otbPFLii1s8MuKLWzwS4oNZ2jqm6Wkf9dkGtn9lvRa2fyW9FrYRSG8pL2c4u/UbtWwGqP3orMO15Snl90qWldDR31yLPqmv9+LmYj//mTLsefb2280VP0Gva+Zyg17T3OUGv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ffI+nj/00ft4/tBn7+P5Qx++j+cPffo+nj/08ft4/uDnb+yaqscDBT9/YxdVPR4o+Pkbu6rq8UDBz9/YZVWPBwp+/sauq3o8UPDzN3Zh1ePpgp+/sSurHk8X/PyNXVr1eLrg52/s2qrH0wU/f2MXVz2eLvj5G7u66vH8wc/f2OVVj+cPfv7Grq96PH/w8zd2gdXj+YOfv7ErrB7PH/z8jV1i9Xj+4Odv7Bqrx/MHP39jF1k9nj/4+Ru7yurx/MHP39hlVo/nD37+xq6zejx/8PM3dqHV4/mDn7+xK60ezx/8/I1davV4/uDnb+xaq8fzBz9/YxdbPZ4/+Pkbu9rq8fzBz9/Y5VaP5w9+/saut3o8f/DzN3bB1eP5g5+/sSuuHs8f/PyNXXL1eP7g52/smqvH8wc/f2MXXT2eP/j5G7vq6vH8wc/f2GVXj+cPfv7Grrt6PH/w8zd24dXj+YOfv7Errx7PH/z8jV169Xj+4Odv7Nqrx/MHP39jF189nj/4+Ru7+urx/MHP39jlV4/nD37+xq6/ejx/7PO3BO+/KsH7r0rw/qsSvP+qTLHP3xK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuvSvD+qxK8/6oE778qwfuv5uD9V3Pw/qs5eP/VHLz/ap5in79z8P6rOXj/1Ry8/2oO3n81B++/moP3X83B+6/m4P1Xc/D+qzl4/9UcvP9qDt5/NQfvv5qD91/Nwfuv5uD9V3Pw/qs5eP/VHLz/ag7efzUH77+ag/dfzcH7r+bg/Vdz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O1l/+07W376T9bfvZP3tO1l/+07W376T9bfvZP3tO1l/+07W376T9bfvZP3tO1l/+07W376T9bfvZP3tO1l/+07W376T9bfvZP3tO1l/+07W376T9bfvZP3tO1l/eyXrb69k/e2VrL+9kvW318nI9HL5q0rW317J+tsrWX97Jetvr2T97ZWsv72S9bdXsv72StbfXsn62ytZf3sl62+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/9IOtvP8j62w+y/vaDrL/9mIxML5e/Osj62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9IOtvP8j62w+y/vaDrL/9SNTvXeen3Dr//pNPtXlO3x61ed7NdXk+dLWtoTbPm7lHbZ73co/aPG/lHrV5Mm+H2kSNzz1qE523HWoTnbcdavNk3R61RqWWykslannuURvVS50KovqjU4Frz7Mc81PBOtlV7i7r89OlbG9P/fi/X3p99zB/Qa9r3/MFva6dzxf0uvY+X9BrZHpd+58v6HXtgL6g17UH+oJe147pC3rJ/JXvHuYv6CXzV757mL+gl8xf+e5h/oJeMn/lu4f5C3rJ/JXvHuYv6CXzV757mL+gl8xf+e5h/oJeMn/lu4f5C3rJ/JXvHuYv6CXzV757mL+gl8pfzZPvHuYv6KXyVw+9VP7qoZfK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X23J+6+25P1XW/L+qy15/9WWvP9qS95/tSXvv9qS919tyfuvtuT9V1vy/qstef/Vlrz/akvef7Ul77/akvdfbcn7r7bk/Vdb8v6rLXn/1Za8/2pL3n+1Je+/2pL3X23J+6+25P1XW/L+qy15/9WWvP9qS95/tSXvv9qS919tyfuvtuT9V1vy/qstef/Vlrz/akvef7Ul77/akvdfbcn7r7bk/Vdb8v6rLXn/1Za8/2pL3n+1Je+/2pL3X23J+6+25P1XW/L+qy15/9WWvP9qS95/tSXvv9qS919tyfuvtuT9V1vy/qstef/Vlrz/akvef7Ul77/akvdfbcn7r7bk/Vdb8v6rLXn/1Za8/2pL3n+1Je+/2pL3X23J+6+25P1XW/L+qz15/9WevP9qT95/tSfvv9ofuc/fPXn/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++/2pP3X+3J+6/25P1Xe/L+qz15/9WevP9qT95/tSfvv9qT91/tyfuv9uT9V3vy/qs9ef/Vnrz/ak/ef7Un77/ak/df7cn7r/bk/VdH8v6rI3n/1ZG8/+pI3n91PHKfv0fy/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/6kjef3Uk7786kvdfHcn7r47k/VdH8v6rI3n/1ZG8/+pI3n91JO+/OpL3Xx3J+6+O5P1XR/L+qyN5/9WRvP/qSN5/dSTvvzqS918dyfuvevL+q568/6on77/qyfuv+iP3+duT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/VU/ef9WT91/15P1XPXn/1Zm8/+pM3n91Ju+/OpP3X52P3Ofvmbz/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+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"},{"name":"compute_note_hash_and_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"parameters":[{"name":"contract_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]},"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"}],"param_witnesses":{"contract_address":[{"start":0,"end":1}],"nonce":[{"start":1,"end":2}],"note_type_id":[{"start":3,"end":4}],"serialized_note":[],"storage_slot":[{"start":2,"end":3}]},"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"},"return_witnesses":[4,5,6,7],"error_types":{}},"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/rC7P4+f3x7uo0VGXUYrjMaNjCKjktEoo0lGs4ykiFGKGKWIUYqYpIhJipikiEmKmKSISYqYpIhJipikiEmKmKWIWYqYpYhZipiliFmKmKWIWYqYpYhZimhSRJMimhTRpIgmRTQpokkRTYpoUkSTIhYpYpEiFilikSIWKWKRIhYpYpEiFilikSK6FNGliC5FdCmiSxFdiuhSRJciuhTRpYhVililiFWKWKWIVYpYpYhVililiFWKWKWIbDa0Cq2KViOtJlrNtGq0WmjVaUVthNoItRFqI9RGqI1QG6E2Qm2E2gi1UdRGURtFbRS1UdRGURvEmSHPDIFmSDRDpBkyzRBqhlQzxJoh1wzBZkg2Q7QZss0QboZ0M8SbId8MAWdIOEPEGTLOEHKGlDPEnCHnDEFnSDpD1BmyzhB2hrQzxJ0h7wyBZ0g8Q+QZMs8QeobUM8SeIfcMwWdIPkP0GbLPEH6G9DPEnyH/DAFoSEBDBBoy0BCChhQ0xKAhBw1BaEhCQxQastAQhoY0NMShIQ8NgWhIREMkGjLREIqGVDTEoiEXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctctEiFy1y0SIXLXLRIhctu+Zp9zztoie5aJGLFrlokYsWuWj9t4veTj+37/vt02F3v9l7//hxfP530fd2vPx6+/vl9u9v"}],"outputs":{"structs":{"functions":[{"kind":"struct","path":"MultiCallEntrypoint::entrypoint_abi","fields":[{"name":"parameters","type":{"kind":"struct","path":"MultiCallEntrypoint::entrypoint_parameters","fields":[{"name":"app_payload","type":{"kind":"struct","path":"authwit::entrypoint::app::AppPayload","fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall","fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector","fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}]}},{"name":"target_address","type":{"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress","fields":[{"name":"inner","type":{"kind":"field"}}]}},{"name":"is_public","type":{"kind":"boolean"}}]}}},{"name":"nonce","type":{"kind":"field"}}]}}]}}]}]},"globals":{}},"file_map":{"3":{"source":"use crate::cmp::Eq;\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 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\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","path":"std/collections/bounded_vec.nr"},"20":{"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","path":"std/field.nr"},"51":{"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","path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr"},"84":{"source":"use crate::{\n context::{inputs::PrivateContextInputs, interface::ContextInterface},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n oracle::{\n arguments, returns, call_private_function::call_private_function_internal,\n enqueue_public_function_call::enqueue_public_function_call_internal, header::get_header_at,\n nullifier_key::{get_nullifier_keys, NullifierKeys}\n}\n};\nuse dep::protocol_types::{\n abis::{\n global_variables::GlobalVariables, gas::Gas, call_context::CallContext, function_data::FunctionData,\n function_selector::FunctionSelector, max_block_number::MaxBlockNumber,\n nullifier_key_validation_request::NullifierKeyValidationRequest,\n private_call_stack_item::PrivateCallStackItem,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_stack_item::PublicCallStackItem,\n public_circuit_public_inputs::PublicCircuitPublicInputs, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, side_effect::SideEffect\n},\n 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_PUBLIC_DATA_READS_PER_CALL, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL,\n MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL\n},\n contrakt::{storage_read::StorageRead, storage_update_request::StorageUpdateRequest},\n grumpkin_private_key::GrumpkinPrivateKey, header::Header,\n messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader,\n traits::{is_empty, Deserialize, Empty}\n};\n\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n// use dep::std::collections::vec::Vec;\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\n args_hash : Field,\n return_hash : Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<SideEffect, 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 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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n encrypted_logs_hashes: BoundedVec<SideEffect, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<SideEffect, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n // encrypted_logs_preimages: Vec<Field>,\n // unencrypted_logs_preimages: Vec<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.side_effect_counter });\n self.side_effect_counter = self.side_effect_counter + 1;\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.side_effect_counter });\n self.side_effect_counter = self.side_effect_counter + 1;\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 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 new_l2_to_l1_msgs: BoundedVec::new(),\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n // encrypted_logs_preimages: Vec::new(),\n // unencrypted_logs_preimages: Vec::new(),\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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n let encrypted_log_preimages_length = 0;\n let unencrypted_log_preimages_length = 0;\n\n let priv_circuit_pub_inputs = 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 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 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,\n unencrypted_log_preimages_length,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n };\n\n priv_circuit_pub_inputs\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 = SideEffect { value: note_hash, counter: self.side_effect_counter };\n self.note_hash_read_requests.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.side_effect_counter };\n self.nullifier_read_requests.push(request);\n self.side_effect_counter = self.side_effect_counter + 1;\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 };\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 pub fn push_encrypted_log(&mut self, log_hash: Field) {\n let side_effect = SideEffect { value: log_hash, counter: self.side_effect_counter };\n self.encrypted_logs_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\n }\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>(&mut self, log: T) {\n let event_selector = 5; // TODO: compute actual event selector.\n let log_hash = emit_unencrypted_log_private_internal(self.this_address(), event_selector, log);\n\n let side_effect = SideEffect { value: log_hash, counter: self.side_effect_counter };\n self.unencrypted_logs_hashes.push(side_effect);\n self.side_effect_counter = self.side_effect_counter + 1;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\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 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 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 // We increment the sideffect counter by one, to account for the call itself being a side effect.\n self.side_effect_counter = self.side_effect_counter + 1;\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.public_call_stack_hashes.push(item.hash());\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 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 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 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) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n event_selector: Field,\n message: T\n) -> Field {\n // https://github.com/AztecProtocol/aztec-packages/issues/885\n emit_unencrypted_log_oracle_private(contract_address, event_selector, message)\n}\n","path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr"},"101":{"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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr"},"102":{"source":"use dep::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH\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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr"},"115":{"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};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n pedersen_hash([secret], GENERATOR_INDEX__SECRET_HASH)\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","path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr"},"132":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/header.nr"},"134":{"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_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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr"},"147":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/eth_address.nr"},"151":{"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(\n [pub_keys_hash.to_field(), partial_address.to_field(), GENERATOR_INDEX__CONTRACT_ADDRESS_V1]\n )\n )\n }\n\n pub fn compute_from_public_keys_and_partial_address(\n nullifier_public_key: GrumpkinPoint,\n incoming_public_key: GrumpkinPoint,\n outgoing_public_key: GrumpkinPoint,\n tagging_public_key: GrumpkinPoint,\n partial_address: PartialAddress,\n ) -> AztecAddress {\n let public_keys_hash = PublicKeysHash::compute_new(\n nullifier_public_key,\n incoming_public_key,\n outgoing_public_key,\n tagging_public_key,\n );\n\n let computed_address = AztecAddress::compute(public_keys_hash, partial_address);\n\n computed_address\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_pubkey() {\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr"},"153":{"source":"use crate::{address::EthAddress, constants::L2_TO_L1_MESSAGE_LENGTH, traits::{Deserialize, Empty, Serialize}};\n\n// Note: Not to be confused with L2ToL1Msg in Solidity\nstruct L2ToL1Message {\n recipient: EthAddress,\n content: Field,\n}\n\nimpl Empty for L2ToL1Message {\n fn empty() -> Self {\n Self {\n recipient: EthAddress::empty(),\n content: 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)\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]\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 }\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/messaging/l2_to_l1_message.nr"},"156":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr"},"158":{"source":"use crate::{\n abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot, constants::PARTIAL_STATE_REFERENCE_LENGTH,\n traits::{Deserialize, Empty, Hash, 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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/partial_state_reference.nr"},"164":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_data.nr"},"168":{"source":"use crate::{\n abis::side_effect::{OrderedValue, ContractScopedOrderedValue},\n traits::{Empty, Serialize, Deserialize}, address::AztecAddress,\n constants::READ_REQUEST_LENGTH,\n};\nuse dep::std::cmp::Eq;\n\nglobal READ_REQUEST_CONTEXT_SERIALIZED_LEN = 3;\n\nstruct ReadRequest {\n value: Field,\n counter: u32,\n}\n\nimpl OrderedValue<Field> for ReadRequest {\n fn value(self) -> Field {\n self.value\n }\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 to_context(self, contract_address: AztecAddress) -> ReadRequestContext {\n ReadRequestContext { value: self.value, counter: self.counter, contract_address }\n }\n}\n\nstruct ReadRequestContext {\n value: Field,\n counter: u32,\n contract_address: AztecAddress,\n}\n\nimpl OrderedValue<Field> for ReadRequestContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl ContractScopedOrderedValue<Field> for ReadRequestContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n fn contract_address(self) -> AztecAddress {\n self.contract_address\n }\n}\n\nimpl Eq for ReadRequestContext {\n fn eq(self, read_request: ReadRequestContext) -> bool {\n (self.value == read_request.value)\n & (self.counter == read_request.counter)\n & (self.contract_address.eq(read_request.contract_address))\n }\n}\n\nimpl Empty for ReadRequestContext {\n fn empty() -> Self {\n ReadRequestContext {\n value: 0,\n counter: 0,\n contract_address: AztecAddress::empty(),\n }\n }\n}\n\nimpl Serialize<READ_REQUEST_CONTEXT_SERIALIZED_LEN> for ReadRequestContext {\n fn serialize(self) -> [Field; READ_REQUEST_CONTEXT_SERIALIZED_LEN] {\n [self.value, self.counter as Field, self.contract_address.to_field()]\n }\n}\n\nimpl Deserialize<READ_REQUEST_CONTEXT_SERIALIZED_LEN> for ReadRequestContext {\n fn deserialize(values: [Field; READ_REQUEST_CONTEXT_SERIALIZED_LEN]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n contract_address: AztecAddress::from_field(values[2]),\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/read_request.nr"},"169":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/call_context.nr"},"179":{"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 = 0x17fd6ffcb3394b845069dc87e055c37ac50599f274130fac69c6fe919bfe382e;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_call_stack_item.nr"},"183":{"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 = 0x1595b195f0faa3a492109039dc807b291d0edd81a5e3a380866d5098ffd505dd;\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 = 0x1122a7d7e6174b7e5d111c8eb0233564d3a1ffd755afc7ce4b594d738e2770d7;\n assert_eq(call_stack_item.hash(), test_data_call_stack_item_hash);\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_call_stack_item.nr"},"185":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/function_selector.nr"},"188":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas.nr"},"189":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_settings.nr"},"190":{"source":"use crate::{\n address::AztecAddress, abis::side_effect::{Ordered, OrderedValue},\n constants::{NOTE_HASH_LENGTH, NOTE_HASH_CONTEXT_LENGTH}, traits::{Empty, Serialize, Deserialize}\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 OrderedValue<Field> for NoteHash {\n fn value(self) -> Field {\n self.value\n }\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 to_context(self, nullifier_counter: u32) -> NoteHashContext {\n NoteHashContext { value: self.value, counter: self.counter, nullifier_counter }\n }\n}\n\nstruct NoteHashContext {\n value: Field,\n counter: u32,\n nullifier_counter: u32,\n}\n\nimpl Ordered for NoteHashContext {\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl OrderedValue<Field> for NoteHashContext {\n fn value(self) -> Field {\n self.value\n }\n fn counter(self) -> u32 {\n self.counter\n }\n}\n\nimpl Eq for NoteHashContext {\n fn eq(self, other: NoteHashContext) -> bool {\n (self.value == other.value)\n & (self.counter == other.counter) \n & (self.nullifier_counter == other.nullifier_counter)\n }\n}\n\nimpl Empty for NoteHashContext {\n fn empty() -> Self {\n NoteHashContext {\n value: 0,\n counter: 0,\n nullifier_counter: 0,\n }\n }\n}\n\nimpl Serialize<NOTE_HASH_CONTEXT_LENGTH> for NoteHashContext {\n fn serialize(self) -> [Field; NOTE_HASH_CONTEXT_LENGTH] {\n [self.value, self.counter as Field, self.nullifier_counter as Field]\n }\n}\n\nimpl Deserialize<NOTE_HASH_CONTEXT_LENGTH> for NoteHashContext {\n fn deserialize(values: [Field; NOTE_HASH_CONTEXT_LENGTH]) -> Self {\n Self {\n value: values[0],\n counter: values[1] as u32,\n nullifier_counter: values[2] as u32,\n }\n }\n}\n\nimpl NoteHashContext {\n pub fn to_note_hash(self) -> NoteHash {\n NoteHash { value: self.value, counter: self.counter }\n }\n\n pub fn expose_to_public(self) -> NoteHash {\n // Hide the actual counter when exposing it to the public kernel.\n NoteHash { value: self.value, counter: 0 }\n }\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/note_hash.nr"},"191":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/global_variables.nr"},"194":{"source":"use dep::std::cmp::Eq;\nuse crate::{\n address::AztecAddress,\n constants::{NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH, NULLIFIER_KEY_VALIDATION_REQUEST_LENGTH},\n traits::{Empty, Serialize, Deserialize}, grumpkin_point::GrumpkinPoint,\n grumpkin_private_key::GrumpkinPrivateKey\n};\n\nstruct NullifierKeyValidationRequest {\n master_nullifier_public_key: GrumpkinPoint,\n app_nullifier_secret_key: Field, // not a GrumpkinScalar 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 to_context(self, contract_address: AztecAddress) -> NullifierKeyValidationRequestContext {\n NullifierKeyValidationRequestContext {\n master_nullifier_public_key: self.master_nullifier_public_key,\n app_nullifier_secret_key: self.app_nullifier_secret_key,\n contract_address\n }\n }\n}\n\nstruct NullifierKeyValidationRequestContext {\n master_nullifier_public_key: GrumpkinPoint,\n app_nullifier_secret_key: Field,\n contract_address: AztecAddress,\n}\n\nimpl Eq for NullifierKeyValidationRequestContext {\n fn eq(self, request: NullifierKeyValidationRequestContext) -> 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 & (request.contract_address.eq(self.contract_address))\n }\n}\n\nimpl Empty for NullifierKeyValidationRequestContext {\n fn empty() -> Self {\n NullifierKeyValidationRequestContext {\n master_nullifier_public_key: GrumpkinPoint::zero(),\n app_nullifier_secret_key: 0,\n contract_address: AztecAddress::zero(),\n }\n }\n}\n\nimpl Serialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH> for NullifierKeyValidationRequestContext {\n fn serialize(self) -> [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH] {\n [\n self.master_nullifier_public_key.x,\n self.master_nullifier_public_key.y,\n self.app_nullifier_secret_key,\n self.contract_address.to_field(),\n ]\n }\n}\n\nimpl Deserialize<NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH> for NullifierKeyValidationRequestContext {\n fn deserialize(fields: [Field; NULLIFIER_KEY_VALIDATION_REQUEST_CONTEXT_LENGTH]) -> Self {\n Self {\n master_nullifier_public_key: GrumpkinPoint::new(fields[0], fields[1]),\n app_nullifier_secret_key: fields[2],\n contract_address: AztecAddress::from_field(fields[3]),\n }\n }\n}\n\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier_key_validation_request.nr"},"195":{"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\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: [SideEffect; 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 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.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\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 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 max_block_number: reader.read_struct(MaxBlockNumber::deserialize),\n note_hash_read_requests: reader.read_struct_array(SideEffect::deserialize, [SideEffect::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 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 max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: [SideEffect::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 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 = 0x29129c06414f4ac73bf889692c7011f91727d4cdbfe4fe143e6adee69b565cc8;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/private_circuit_public_inputs.nr"},"196":{"source":"use crate::{\n abis::side_effect::{Ordered, OrderedValue}, address::AztecAddress, constants::NULLIFIER_LENGTH,\n traits::{Empty, Hash, Serialize, Deserialize}\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/nullifier.nr"},"198":{"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 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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/max_block_number.nr"},"199":{"source":"use crate::{\n address::AztecAddress, constants::GENERATOR_INDEX__SIDE_EFFECT,\n traits::{Empty, Hash, Serialize, Deserialize}, constants::SIDE_EFFECT_LENGTH\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 ContractScopedOrderedValue<T> where T: Eq {\n fn value(self) -> T;\n fn counter(self) -> u32;\n fn contract_address(self) -> AztecAddress;\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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/side_effect.nr"},"201":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/gas_fees.nr"},"203":{"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 = 0x1a2da219bb2e3ac24519fd844365c4f656fc3ba8c58f2960706d25bceb4d1769;\n assert_eq(hash, test_data_empty_hash);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/public_circuit_public_inputs.nr"},"204":{"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}","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/append_only_tree_snapshot.nr"},"207":{"source":"use crate::address::{AztecAddress, EthAddress};\nuse crate::mocked::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};\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 silo_note_hash(address: AztecAddress, inner_commitment: Field) -> Field {\n pedersen_hash(\n [\n address.to_field(),\n inner_commitment\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\npub fn compute_tx_logs_hash<MAX_ENCRYPTED_LOGS_PER_TX>(logs: [SideEffect; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // TODO(Miranda): Below is flat hashing which would reduce constraints (we now only hash once in tail) - convert to this?\n\n // // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n // // Ideally we would define a new global here but for now we assert in case MAX_LOGS changes\n // assert(MAX_ENCRYPTED_LOGS_PER_TX * 32 == 256);\n // let mut hash_input_flattened = [0; 256];\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 // // This differs from accumulate_sha256 as we could increase MAX_LOGS and\n // // ideally we would push to a slice then hash, but in practice compilation was very slow\n // // Hardcode to 256 bytes for now\n // sha256_to_field(hash_input_flattened)\n\n // Assuming logs are pre-sorted\n let mut accumulated_logs_hash = 0;\n for i in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n if !is_empty(logs[i]) {\n accumulated_logs_hash = accumulate_sha256([accumulated_logs_hash, logs[i].value]);\n }\n }\n\n accumulated_logs_hash\n}\n\npub fn compute_note_hash_nonce(first_nullifier: Field, commitment_index: u64) -> Field {\n pedersen_hash(\n [\n first_nullifier,\n commitment_index as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_siloed_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n pedersen_hash(\n [\n nonce,\n siloed_note_hash\n ],\n GENERATOR_INDEX__UNIQUE_NOTE_HASH\n )\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 };\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), 2, 4, message);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr"},"208":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/content_commitment.nr"},"214":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/transaction/tx_context.nr"},"217":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/state_reference.nr"},"218":{"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","path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils.nr"},"323":{"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: pub AppPayload) {\n app_payload.execute_calls(&mut context);\n }\n}\n","path":"/usr/src/noir-projects/noir-contracts/contracts/multi_call_entrypoint_contract/src/main.nr"}}}
|