@aztec/accounts 0.75.0 → 0.76.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/EcdsaKAccount.json +500 -500
- package/artifacts/EcdsaRAccount.json +364 -364
- package/artifacts/SchnorrAccount.json +743 -743
- package/artifacts/SchnorrSingleKeyAccount.json +121 -121
- package/package.json +8 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"transpiled": true,
|
|
3
|
-
"noir_version": "1.0.0-beta.1+
|
|
3
|
+
"noir_version": "1.0.0-beta.1+3f8376928465907d",
|
|
4
4
|
"name": "EcdsaKAccount",
|
|
5
5
|
"functions": [
|
|
6
6
|
{
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
"bytecode": "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",
|
|
107
|
-
"debug_symbols": "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",
|
|
107
|
+
"debug_symbols": "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",
|
|
108
108
|
"brillig_names": [
|
|
109
109
|
"compute_note_hash_and_optionally_a_nullifier"
|
|
110
110
|
]
|
|
@@ -1761,7 +1761,7 @@
|
|
|
1761
1761
|
}
|
|
1762
1762
|
},
|
|
1763
1763
|
"bytecode": "H4sIAAAAAAAA/+1dB5gURdPeY3cPjnhkUFAwIWKY2XS7RgygIFFRQQTcdIAiiDl75qyYc44YUDEHzGLOOX3mnHPGvxpnuLq+nuWOrZqb8mee5+Wa3t6et6u76+2a6ZmtCP17PFYZCq3W5t90BSDs/G0F6KflRQ157Qx5HQx5nQx5nQ15PQCDtbyVDeX6GfL6G/JWMeQNcPLwUeH8Hez8jVupRKJYEyvacTtrxTK5dNJKJHOptJ22k+lkIZaOx4vpRLomk8vUWBk7ES/atclMvNb69+gYrq/LKuuI5Tl5diLjaVmcPKuXnWdMz1DcugAiiKvqr0VOes1QfboTyq920u73OsP/uwC6ArqF6/Pdo5VmA6u8wx5AaM/udP1u47ml6u2n2aGC2A5hQjuEGMdsDzofUOTk2XPZeSb1DNPc6oHmkDrcdF+U7qnNrV7w/96AFQArGuZWmHhMrURYV68wXd/0YfLP1PZbk7Cu3oT260toP9PY7oPGdl+UXgGlV9TG9krw/5WVnwT0d8Y2rtPrGExk39boXP2c9CrAY1XAaoDVAWsABgDWBAwErAUYBFgbsA5gXcB6AAugHHIMEAckAElAClADSAMygPUBGwA2BGwE2BiwieobwKbhhlw2g/9vDtgCMAQwFLAlYCvAMMBwwNaAEYCRgFGA0YAxgLGAbQDbAsYBtgNsD9gBMB4wAbAjYCJgJ8AkwGTAFMDOgKwzMXLO37zzt+D8LTp/a13BW7LQhEQbLW9VQ95qhrzVDXlrGPIGGPLWNOQNNOStZcgbZMhb25C3jiFvXUPeeoY8y5BnG/Jihry4IS9hyEsa8lKGvBpDXtqQlzHkrW/I28CQt6EhbyND3saGvE0MeYMNeZsa8jYz5G1uyNvCkDfEkDfUkLelIW8rQ94wQ95wQ97WhrwRhryRhrxRhrzRhrwxhryxhrxtDHnbGvLGGfK2M+Rtb8jbwZA33pA3wZC3oyFvoiFvJ0PeJEPeZEPeFEPezoa8rCFPOcR+oYaHHgCVK+YVIToRVI6dqK6SQYRV3mEXw3T2izj8KkKNj5Ub87atMo5VdPuWUduqjftqmWtbzdTvy1jb6uYxtEy1reE1HpehtgHeY7vZta1Zap40s7aBpedcs2pba2nztxm1DVq6L2hybWs3xa80sbZ1muajmlTbuk31d02obb2m+86l19YcP7yU2uzm+fSStcWaqw8laos3X2s8a0ssi2551JZcNg001pZaVj011Faz7NrcqLZ0OTqv1ZYpb83QoLb1y11/oNo2KH8ts6S2DSnWRU5tG9GssRbXtjHVeg1q24Ru7WcPJlxHuutldUwN//t3WjjU8Ojv/EUnXb5QW8qxfKFmNetYvlBrXm3LF2rNq235Qq15tS1fqDWvtuULtebV9v9toVbuhbSpTa8rv5S67GmEC8hSF/ioL0xuyrTwne4seHfRF75hxgaUOyCmEw6IXXwaENRXfDcjDCQ2JwwktiAMJIYQBhJDCQOJLQkDia0IA4lhhIHEcMJAYmvCQGIEYSAxkjCQGEUYSIwmDCTGEAYSYwkDiW0IA4ltCQOJcYSBxHaEgcT2hIHEDoSBxHjCQGICYSCxI2EgMZEwkNiJMJCYRBhITCYMJKYQBhI7My18d3UWuDP0hS/1Fd/lC7XmHcsXassXavqxfKHWvNqWL9SaV9vyhVrzalu+UGtebf/fFmrlXuDblfAC3wzCBaSfV3yzTAvf3ZwF70x94Ut9xTdLOCB2IxwQM4UOiBzTgJjldPzu3AMiRzggZhEOiN0JDas6XW3W74LsWM8zEUsVU4lssRi3iplMOm/H8+l8sZgvZOPZmpq0VVPIFbOFZCyXj9XGc7VWMVtMJ+1cIldjW3l7kVafDe1NprJWKl2bsuJWLB5LWPlMKpcoZJOJmkQqBdXFc+ka284nY3a+JpGO2bGsnczlrXiimE0tou1fSx/wsXQsma/J5POpbDKfyxWLtTWFVDZda+dSWTuWiwOZbDyeTiSsbLG2mEvEMyk7kc6noYdq8lYi06i90LW1BVu1LldjpWKFVC6pOr4YT+UyVk08FU9atanaXNayY7F0PgFNjlmZTNLK1CZrLLvI3V6rWMjZxVgmno/nixk7VwuNKEIym01ahVg+mbBrs5kCDEDgBc214sXanJ2vzcbyuXg8WVPbqL3xhF1I1SRrs9C7xXwxDh0OoyOez8YTYId4zs7kUsVMTSpmJVI1kJcA88US+QRYuVCMJ/nbaxWyhVgsaSXT8dpYNlNrZfM5aHOhWKi1weIwEXNWHOyRLdYk47XQU3Yil05na9N2PpeMNeKXqYnnLDBUPpvNx+OZYjEBzS1kc0k7HstkYlZtTW7x4LGgIsguJgu1qRorYeXilpVJxdjHc208nogVM5ZVhNEF7YilM+BxssVUGvxKTTxdW8inoHUFGAO2VSjW5OIxK2/BnLRiVrqm0Kh/c7WZZBq+EwerZQrJTAw8mRUHF5bKwMRPFVK1mVgiA9M5lkhAjfGkXQtDIFaoBVPkrTR7/yZgHsVhMoIrtcCnFvLpWDGdTSazmWSskFA0YslUbdECX1rIJDKQDXMua1kwDqCjGo+/bFqN/JRVsOCf2mQhDW46kSkk0rXgGhMFC6a/lcuki4UauyabySXjsWxtKg6eLxm3ajI2R3vbO3WptNpn4D5FPA2lp6P0Lii9K0rPQOndUHomSs9C6d2dNGF7yO2j6psNPPcA7Bn+96npypA/i53aMP24VsdeYUbCqnLqevcmXDRxtXtvtHIkqpf1VSH70A2uBCfPfZedZ1zPUNz01ynsgxySgpuejfL3DTd8ncJ+8P/9AQcADgw3flUItQ0OouuruMkGB6G2FlB6vxI2OBj+fwjgUEBdmP9VRN0JfcBhhJd88BPJqt5+jo1ahfwRiZUYRAI/9Xw41H8E4EjAUYCjAccAjgUcBzgecALgRMBJgJMBpwDmAE4FnAY4HXAG4EzAWYCzAecAzgWcBzgfcAHgQsBFgIsBlwAuBVwGuBxwBeBKwFWAqwHXAOYCrgVcB7gecANgHuBGwE2AmwHzAbcAbgXcBrgdcAfgTsBdgLsB9wDuBSwA3Ae4H/AA4MGw05mt0YDm7MzDwzziEaLkaTe8dPKQI3wPu7PA/as++EXLU4XaaKTCjEZcVk9RrFWHZT9E6HUeJr7m1tRlaLm8H2rAu7zaMN9HwoyEVeWNJai8mh8hlI1HmZe0FDZ81LiUL6/mR4k9HHW7H/Zod7n1LiSWadehqnqrQv6q1BECVeoxx9k8rqvUYwaVetwHlTqCUKUeI3QmjwtVqceYVOqJMCPhJxhU6glClXoy4CqlbPgkg0o9GXCVetyj3eXW+xSTSj3VAip1pECVetpxNs/oKvW0QaWe8UGljiRUqacJnckzQlXqaSaVejbMSPhZBpV6llClngu4SikbPsegUs8FXKWe8Wh3ufU+z6RSz7eASh0lUKVecJzNi7pKvWBQqRd9UKmjCFXqBUJn8qJQlXqBSaVeCjMSfolBpV4iVKmXA65SyoYvM6jUywFXqRc92l1uva8wqdQrLaBSRwtUqVcdZ/OarlKvGlTqNR9U6mhClXqV0Jm8JlSlXmVSqdfDjIRfZ1Cp1wlV6o2Aq5Sy4RsMKvVGwFXqNY92l1vvm0wq9WYLqNQxAlXqLcfZvK2r1FsGlXrbB5U6hlCl3iJ0Jm8LVam3mFTqnTAj4XcYVOodQpX6X8BVStnwfwwq9b+Aq9TbHu0ut953mVTq3RZQqWMFqtR7jrN5X1ep9wwq9b4PKnUsoUq9R+hM3heqUu8xqdQHYUbCHzCo1AeEKvVhwFVK2fBDBpX6MOAq9b5Hu8ut9yMmlfqoBVTqOIEq9bHjbD7RVepjg0p94oNKHUeoUh8TOpNPhKrUx0wq9WmYkfCnDCr1KaFKfRZwlVI2/IxBpT4LuEp94tHucuv9nEmlPm8BlTpeoEp94TibL3WV+sKgUl/6oFLHE6rUF4TO5EuhKvUFk0p9FWYk/BWDSn1FqFJfB1yllA2/ZlCprwOuUl96tLvcer9hUqlvWkClThCoUt86zuY7XaW+NajUdz6o1AmEKvUtoTP5TqhKfcukUt+HGQl/z6BS3xOq1A8BVyllwx8YVOqHgKvUdx7tLrfeH5lU6scWUKkTBarUT46z+VlXqZ8MKvWzDyp1IqFK/UToTH4WqlI/ManUL2FGwr8wqNQvhCr1a8BVStnwVwaV+jXgKvWzR7vLrfc3JpX6rQVU6iSBKvW742z+0FXqd4NK/eGDSp1EqFK/EzqTP4Sq1O9MKvVnmJHwnwwq9SehSv0VcJVSNvyLQaX+CrhK/eHR7nLr/ZtJpf5uAZU6WaBKLXKczT+6Si0yqNQ/PqjUyYQqtYjQmfwjVKUWMalUg1fJUhNWlVOrlKqTapBWRIKtUsqGiiO1SlVEgq1S/3i0u9x6W0V4VErV67dKnSJQpcKOs4m4vzq0RK0ijVVKFeJWqVMIVSpM6EwiEZkqFY7wqFQ0wkg4yqBSUUKVqgy4SikbVjKoVGXAVSri0e5y623NpFKtW0Cl5ghUqTaOs6nSVaqNQaWqfFCpOYQq1YbQmVQJVak2TCrVNsJIuC2DSrUlVKl2AVcpZcN2DCrVLuAqVeXR7nLrbc+kUu1bQKVOFahSHRxn01FXqQ4Glerog0qdSqhSHQidSUehKtWBSaU6RRgJd2JQqU6EKlUdcJVSNqxmUKnqgKtUR492l1tvZyaV6twCKnWaQJXq4jibrrpKdTGoVFcfVOo0QpXqQuhMugpVqS5MKtUtwki4G4NKdSNUqe4BVyllw+4MKtU94CrV1aPd5dbbg0mlerSASp0uUKV6Os6ml65SPQ0q1csHlTqdUKV6EjqTXkJVqieTSvWOMBLuzaBSvQlVaoWAq5Sy4QoMKrVCwFWql0e7y613RSaVWrEFVOoMgSrVx3E2fXWV6mNQqb4+qNQZhCrVh9CZ9BWqUn2YVGqlCCPhlRhUaiVClVo54CqlbLgyg0qtHHCV6uvR7nLr7cekUv1aQKXOFKhS/R1ns4quUv0NKrWKDyp1JqFK9Sd0JqsIVan+TCq1aoSR8KoMKrUqoUqtFnCVUjZcjUGlVgu4Sq3i0e5y612dSaVWbwGVOkugSq3hOJsBukqtYVCpAT6o1FmEKrUGoTMZIFSl1mBSqTUjjITXZFCpNQlVamDAVUrZcCCDSg0MuEoN8Gh3ufWuxaRSa7WASp0tUKUGOc5mbV2lBhlUam0fVOpsQpUaROhM1haqUoOYVGqdCCPhdRhUah1ClVo34CqlbLgug0qtG3CVWtuj3eXWux6TSq3XAip1jkCVshxnY+sqZRlUyvZBpc4hVCmL0JnYQlXKYlKpWISRcIxBpWKEKhUPuEopG8YZVCoecJWyPdpdbr0JJpVKtIBKnStQpZKOs0npKpU0qFTKB5U6l1ClkoTOJCVUpZJMKlUTYSRcw6BSNYQqlQ64SikbphlUKh1wlUp5tLvcejNMKpVpAZU6T6BKre84mw10lVrfoFIb+KBS5xGq1PqEzmQDoSq1PpNKbRhhJLwhg0ptSKhSGwVcpZQNN2JQqY0CrlIbeLS73Ho3ZlKpjVtApc4XqFKbOM5msK5SmxhUarAPKnU+oUptQuhMBgtVqU2YVGrTCCPhTRlUalNCldos4CqlbLgZg0ptFnCVGuzR7nLr3ZxJpTZvAZW6QKBKbeE4myG6Sm1hUKkhPqjUBYQqtQWhMxkiVKW2YFKpoRFGwkMZVGoooUptGXCVUjbckkGltgy4Sg3xaHe59W7FpFJbtYBKXShQpYY5zma4rlLDDCo13AeVupBQpYYROpPhQlVqGJNKbR1hJLw1g0ptTahSIwKuUsqGIxhUakTAVWq4R7vLrXckk0qNbAGVukigSo1ynM1oXaVGGVRqtA8qdRGhSo0idCajharUKCaVGhNhJDyGQaXGEKrU2ICrlLLhWAaVGhtwlRrt0e5y692GSaW2aQGVuligSm3rOJtxukpta1CpcT6o1MWEKrUtoTMZJ1SltmVSqe0ijIS3Y1Cp7QhVavuAq5Sy4fYMKrV9wFVqnEe7y613ByaV2qEFVOoSgSo13nE2E3SVGm9QqQk+qNQlhCo1ntCZTBCqUuOZVGrHCCPhHRlUakdClZoYcJVSNpzIoFITA65SEzzaXW69OzGp1E4toFKXClSpSY6zmayr1CSDSk32QaUuJVSpSYTOZLJQlZrEpFJTIoyEpzCo1BRCldo54CqlbLgzg0rtHHCVmuzR7nLrzTKpVLYFVOoygSqVc5xNXlepnEGl8j6o1GWEKpUjdCZ5oSqVY1KpQoSRcIFBpQqEKlUMuEopGxYZVKoYcJXKe7S73HprmVSqtgVU6nKBKjXVcTbTdJWaalCpaT6o1OWEKjWV0JlME6pSU5lUanqEkfB0BpWaTqhSuwRcpZQNd2FQqV0CrlLTPNpdbr27MqnUri2gUlcIVKkZjrPZTVepGQaV2s0HlbqCUKVmEDqT3YSq1AwmlZoZYSQ8k0GlZhKq1KyAq5Sy4SwGlZoVcJXazaPd5da7O5NK7d4CKnWlQJWa7TibPXSVmm1QqT18UKkrCVVqNqEz2UOoSs1mUqk9I4yE92RQqT0JVWqvgKuUsuFeDCq1V8BVag+Pdpdb795MKrV3C6jUVQJVah/H2eyrq9Q+BpXa1weVuopQpfYhdCb7ClWpfZhUar8II+H9GFRqP0KV2j/gKqVsuD+DSu0fcJXa16Pd5dZ7AJNKHdACKnW1QJU60HE2B+kqdaBBpQ7yQaWuJlSpAwmdyUFCVepAJpU6OMJI+GAGlTqYUKUOCbhKKRsewqBShwRcpQ7yaHe59R7KpFKHtoBKXSNQpeocZ3OYrlJ1BpU6zAeVuoZQpeoInclhQlWqjkmlDo8wEj6cQaUOJ1SpIwKuUsqGRzCo1BEBV6nDPNpdbr1HMqnUkS2gUnMFqtRRjrM5WlepowwqdbQPKjWXUKWOInQmRwtVqaOYVOqYCCPhYxhU6hhClTo24CqlbHgsg0odG3CVOtqj3eXWexyTSh3XAip1rUCVOt5xNifoKnW8QaVO8EGlriVUqeMJnckJQlXqeCaVOjHCSPhEBpU6kVClTgq4SikbnsSgUicFXKVO8Gh3ufWezKRSJ7eASl0nUKVOcZzNHF2lTjGo1BwfVOo6QpU6hdCZzBGqUqcwqdSpEUbCpzKo1KmEKnVawFVK2fA0BpU6LeAqNcej3eXWezqTSp3eAip1vUCVOsNxNmfqKnWGQaXO9EGlridUqTMIncmZQlXqDCaVOivCSPgsBpU6i1Clzg64Sikbns2gUmcHXKXO9Gh3ufWew6RS57SASt0gUKXOdZzNebpKnWtQqfN8UKkbCFXqXEJncp5QlTqXSaXOjzASPp9Bpc4nVKkLAq5SyoYXMKjUBQFXqfM82l1uvRcyqdSFLaBS8wSq1EWOs7lYV6mLDCp1sQ8qNY9QpS4idCYXC1Wpi5hU6pIII+FLGFTqEkKVujTgKqVseCmDSl0acJW62KPd5dZ7GZNKXdYCKnWjQJW63HE2V+gqdblBpa7wQaVuJFSpywmdyRVCVepyJpW6MsJI+EoGlbqSUKWuCrhKKRtexaBSVwVcpa7waHe59V7NpFJXt4BK3SRQpa5xnM1cXaWuMajUXB9U6iZClbqG0JnMFapS1zCp1LURRsLXMqjUtYQqdV3AVUrZ8DoGlbou4Co116Pd5dZ7PZNKXd8CKnWzQJW6wXE283SVusGgUvN8UKmbCVXqBkJnMk+oSt3ApFI3RhgJ38igUjcSqtRNAVcpZcObGFTqpoCr1DyPdpdb781MKnVzC6jUfIEqNd9xNrfoKjXfoFK3+KBS8wlVaj6hM7lFqErNZ1KpWyOMhG9lUKlbCVXqtoCrlLLhbQwqdVvAVeoWj3aXW+/tTCp1ewuo1C0CVeoOx9ncqavUHQaVutMHlbqFUKXuIHQmdwpVqTuYVOquCCPhuxhU6i5Clbo74CqlbHg3g0rdHXCVutOj3eXWew+TSt3TAip1q0CVutdxNgt0lbrXoFILfFCpWwlV6l5CZ7JAqErdy6RS90UYCd/HoFL3EarU/QFXKWXD+xlU6v6Aq9QCj3aXW+8DTCr1QAuo1G0CVepBx9k8pKvUgwaVesgHlbqNUKUeJHQmDwlVqQeZVOrhCCPhhxlU6mFClXok4CqlbPgIg0o9EnCVesij3eXW+yiTSj3aAip1u0CVWug4m8d0lVpoUKnHfFCp2wlVaiGhM3lMqEotZFKpxyOMhB9nUKnHCVXqiYCrlLLhEwwq9UTAVeoxj3aXW++TTCr1ZAuo1B0CVeopx9k8ravUUwaVetoHlbqDUKWeInQmTwtVqaeYVOqZCCPhZxhU6hlClXo24CqlbPgsg0o9G3CVetqj3eXW+xyTSj3XAip1p0CVet5xNi/oKvW8QaVe8EGl7iRUqecJnckLQlXqeSaVejHCSPhFBpV6kVClXgq4SikbvsSgUi8FXKVe8Gh3ufW+zKRSL7eASt0lUKVecZzNq7pKvWJQqVd9UKm7CFXqFUJn8qpQlXqFSaVeizASfo1BpV4jVKnXA65SyoavM6jU6wFXqVc92l1uvW8wqdQbLaBSdwtUqTcdZ/OWrlJvGlTqLR9U6m5ClXqT0Jm8JVSl3mRSqbcjjITfZlCptwlV6p2Aq5Sy4TsMKvVOwFXqLY92l1vv/5hU6n8toFL3CFSpdx1n856uUu8aVOo9H1TqHkKVepfQmbwnVKXeZVKp9yOMhN9nUKn3CVXqg4CrlLLhBwwq9UHAVeo9j3aXW++HTCr1YQuo1L0CVeojx9l8rKvURwaV+tgHlbqXUKU+InQmHwtVqY+YVOqTCCPhTxhU6hNClfo04CqlbPgpg0p9GnCV+tij3eXW+xmTSn3WAiq1QKBKfe44my90lfrcoFJf+KBSCwhV6nNCZ/KFUJX6nEmlvowwEv6SQaW+JFSprwKuUsqGXzGo1FcBV6kvPNpdbr1fM6nU1y2gUvcJVKlvHGfzra5S3xhU6lsfVOo+QpX6htCZfCtUpb5hUqnvIoyEv2NQqe8IVer7gKuUsuH3DCr1fcBV6luPdpdb7w9MKvVDC6jU/QJV6kfH2fykq9SPBpX6yQeVup9QpX4kdCY/CVWpH5lU6ucII+GfGVTqZ0KV+iXgKrV48jKo1C8BV6mfPNpdbr2/MqnUry2gUg8IVKnfHGfzu65SvxlU6ncfVOoBQpX6jdCZ/C5UpX5jUqk/IoyE/2BQqT8IVerPgKuUsuGfDCr1Z8BV6nePdpdb719MKvVXC6jUgwJV6m/H2SzSVepvg0ot8kGlHiRUqb8JnckioSr1N5NK/RNhJPwPg0r9Q6hSoWiwVWrxrI7SqxRut1XmwdHuRR7tLrfeiiiPSql6XZVqE6p3pvigVqmVJKiUFWNVwApk235OuhX0RRgQAUQBlYDWgDaqjwBtAe0A7QEdAB0BnQDVgM6ALoCugG6A7oAegJ6AXoDegBUAKwL6APoCVgKsDOgH6B8NNVRaRaaNlhc25EUMeVFDXqUhr7Uhr40hr8qQ19aQ186Q196Q18GQ19GQ18mQV23I62zI62LI62rI62bI627I62HI62nI62XI623IW8GQt6Ihr48hr68hbyVD3sqGvH6GvP7Rxqu6/s7fwc5fq7yjgdMp1xm3itKtEMNEdak2Rkjq+tde0fLrijn2sivLrSuxxPZ26/LqslA/2m3KqSvWYEzYVctel6WNL7vtMtaVqm00Vu12y1ZX2jDu7fbLUlfaOIfsDs2vq8ZjPtodm1tXjefctjs1r65YCT9hVzenrpqSPsfu3PS68kvxX3aXptZVs1RfaHdtWl1WE/yq3a0pdVlN8tF296XXlWyiv7d7LK2uRJO1w+5Zsq5EbTN0yO5Vqq6aZmma3du7rnQz9dFewaOuTG2ztdZe0VyXtQy6bfcx1WUt0xrA7tu4LnsZ1xP2SnpdhWVem9grN6wrXsY6x+6H6orVlrVmsvsTBrDNuXpllXc04F3eWq9gY76rRBkJq8r1q1flkl+FrgPtVQmMWurqlVXesdiGqxJexXFtuCrxJPDrvgLd5C34dl9hNWeCra5f2VjN6Vict3qU/74CnSex7NUIJ9DqxJ1LPfjUpFmNcDK67V5NqCL1IxtHmQLmu0aUkfAa5IqUKaxBqEgDAq5IyoYDyBUpUxggVJH6kfHO5A10WRRpTWeCDdQVaU2DIg30QZH6ESrSmoQTaCBT51I5IJcnZZvXInRmoRC9Wq7qOKBWxGOQMhQYROjMTDa0yjts1ceDGFYyg4SuZFYm8z+5OOa7dpSR8NrkK5lcfG3Cyb9OwFcyyobrkK9kcvF1mCc/hQMdFHAHui6xDd2DWngpx/h6hHPPzxXwymS8czEDXZYVsOU4ZltfAVuGFbDtwwqYToGgqYSD0mbqXOqJSNnmGPMK2CrvsJVzXI9h9RYP+KpV9UtcQLu5xniccIwnAj7GvRYpFIsfqrqSxILtV7SzEpnWpGsx31SUkXCKPNpJ16YIO7Am4NGOsmENebSTrq0JeLSjHF0yGmxnnCZ2xu5B3WbKMZ4RGu2sRMY7XTTQZYl21ncc8wZ6tLO+IdrZwIdoh06BLHt9wkG5AVPnUk9EyjZvGPCVoHKOGYZV/0YBj3ZUv2wkoN1cY3wjwjG+ccDHuNcixSrvsCkXKZsIvbfTl0xrYg2e+h0c5SRMHu3ErMGEk2DTgEc7yoabkkc7MWvTgEc7ytFtEg22M95MSLRDOcY3Fxrt9CXjbdca6LJEO1s4jnmIHu1sYYh2hvgQ7dApkGVvQTgohzB1LvVEpGzz0ICvBJVz3Jxh1b9lwKMd1S9bCmg31xjfknCMbxXwMe61SLHKO2zKRcowodFOHzKtKTSIdoZHGQkPJ492CtZwwkmwdcCjHWXDrcmjnYK1dcCjHeXohkWD7YxHCIl2KMf4SKHRTh8y3nnfop1RjmMerUc7owzRzmgfoh06BbLsUYSDcjRT51JPRMo2jwn4SlA5x5EMq/6xAY92VL+MFdBurjE+lnCMbxPwMe61SLHKO2zKRcq2QqOdFcm0JtXgnRjjooyEx5FHOyl7HOEk2C7g0Y6y4Xbk0U6qQbutMg9Tuykc3bbRYDvj7YVEO5RjfAeh0c6KZLxTvr1LZbzjmCfo0c54Q7QzwYdoh06BLHs84aCcwNS51BORss07BnwlqJzjDgyr/okBj3ZUv0wU0G6uMT6RcIzvFPAx7rVIsco7bMpFyiSh0c4KdPd20pjv5Cgj4cn093bSkwknwZSARzvKhlPo7+2kpwQ82lGOblI02M54ZyHRDuUYzwqNdlYg412oMdBliXZyjmPO69FOzhDt5H2IdugUyLJzhIMyz9S51BORss2FgK8ElXPMMqz6iwGPdlS/FAW0m2uMFwnHeG3Ax7jXIsUq77ApFylThUY7vcm0JpHBfKdFGQlPI492EplphJNgesCjHWXD6eTRTiIzPeDRjnJ0U6PBdsa7CIl2KMf4rkKjnd5kvBNpA12WaGeG45h306OdGYZoZzcfoh06BbLsGYSDcjemzqWeiJRtnhnwlaByjrsyrPpnBTzaUf0yS0C7ucb4LMIxvnvAx7jXIsUq77ApFymzhUY7vci0JtdgJ9seUUbCe5BHOzl7D8JJsGfAox1lwz3Jo51cg3ZbZR6mdlM4utnRYDvjvYREO5RjfG+h0U4vMt4533ay7eM45n31aGcfQ7Szrw/RDp0CWfY+hINyX6bOpZ6IlG3eL+ArQeUc92ZY9e8f8GhH9cv+AtrNNcb3JxzjBwR8jHstUqzyDptykXKg0GinJ120k8d8D4oyEj6IPtrJH0Q4CQ4OeLSjbHgwfbSTPzjg0Y5ydAdGg+2MDxES7VCO8UOFRjs96RbEOQNdlminznHMh+nRTp0h2jnMh2iHToEsu45wUB7G1LnUE5GyzYcHfCWonOOhDKv+IwIe7ah+OUJAu7nG+BGEY/zIgI9xr0WKVd5hUy5SjhIa7fSg28mWw3yPjjISPpp+J1vuaMJJcEzAox1lw2Pod7Lljgl4tKMc3VHRYDvjY4VEO5Rj/Dih0U4Pus1OWQNdlmjneMcxn6BHO8cbop0TfIh26BTIso8nHJQnMHUu9USkbPOJAV8JKud4HMOq/6SARzuqX04S0G6uMX4S4Rg/OeBj3GuRYpV32JSLlFOERjvdybQm3eAN1HOijITnkEc7aWsO4SQ4NeDRjrLhqeTRTto6NeDRjnJ0p0SD7YxPExLtUI7x04VGO93JeNf49gbqMxzHfKYe7ZxhiHbO9CHaoVMgyz6DcFCeydS51BORss1nBXwlqJzj6Qyr/rMDHu2ofjlbQLu5xvjZhGP8nICPca9FilXeYVMuUs4VGu10Y4p2zosyEj6PIdo5j3ASnB/waEfZ8HyGaOf8gEc7ytGdGw22M75ASLRDOcYvFBrtdBMY7VzkOOaL9WjnIkO0c7EP0Q6dAln2RYSD8mIh0Q5lmy8J+EpQOccLGVb9lwY82lH9cqmAdnON8UsJx/hlAR/jXosUq7zDplykXC402ulKpjXZBu9kuyLKSPgK8mgnm7mCcBJcGfBoR9nwSvJoJ5u5MuDRjnJ0l0eD7YyvEhLtUI7xq4VGO13JeGd9eyfbNY5jnqtHO9cYop25PkQ7dApk2dcQDsq5TJ1LPREp23xtwFeCyjlezbDqvy7g0Y7ql+sEtJtrjF9HOMavD/gY91qkWOUdNuUi5Qah0U4XumgngfnOizISnkcf7STmEU6CGwMe7Sgb3kgf7SRuDHi0oxzdDdFgO+ObhEQ7lGP8ZqHRThe6BXHcQJcl2pnvOOZb9GhnviHaucWHaIdOgSx7PuGgvIWpc6knImWbbw34SlA5x5sZVv23BTzaUf1ym4B2c43x2wjH+O0BH+NeixSrvMOmXKTcITTa6UymNYUG93bujDISvpM82ilk7iScBHcFPNpRNryLPNopZO4KeLSjHN0d0WA747uFRDuUY/weodFOZzLeBd/u7dzrOOYFerRzryHaWeBDtEOnQJZ9L+GgXMDUudQTkbLN9wV8Jaic4z0Mq/77Ax7tqH65X0C7ucb4/YRj/IGAj3GvRYpV3mFTLlIeFBrtVJNpTb6I+T4UZST8EHm0ky8+RDgJHg54tKNs+DB5tJMvPhzwaEc5ugejwXbGjwiJdijH+KNCo51qMt75goEuS7Sz0HHMj+nRzkJDtPOYD9EOnQJZ9kLCQfkYU+dST0TKNj8e8JWgco6PMqz6nwh4tKP65QkB7eYa408QjvEnAz7GvRYpVnmHTblIeUpotNOJTGvsBvd2no4yEn6aPNqxM08TToJnAh7tKBs+Qx7t2JlnAh7tKEf3VDTYzvhZIdEO5Rh/Tmi004mMt+3bvZ3nHcf8gh7tPG+Idl7wIdqhUyDLfp5wUL7A1LnUE5GyzS8GfCWonONzDKv+lwIe7ah+eUlAu7nG+EuEY/zlgI9xr0WKVd5hUy5SXhEa7XQk05pcg2jn1Sgj4VfJo51c5lXCSfBawKMdZcPXyKOdXOa1gEc7ytG9Eg22M35dSLRDOcbfEBrtdCTjnfMt2nnTccxv6dHOm4Zo5y0foh06BbLsNwkH5VtMnUs9ESnb/HbAV4LKOb7BsOp/J+DRjuqXdwS0m2uMv0M4xv8X8DHutUixyjtsykXKu0KjnQ5kWpNOY77vRRkJv0ce7aTT7xFOgvcDHu0oG75PHu2k0+8HPNpRju7daLCd8QdCoh3KMf6h0GinAxnvdI2BLku085HjmD/Wo52PDNHOxz5EO3QKZNkfEQ7Kj5k6l3oiUrb5k4CvBJVz/JBh1f9pwKMd1S+fCmg31xj/lHCMfxbwMe61SLHKO2zKRcrnQqOd9mRak2gQ7XwRZST8BXm0k0h/QTgJvgx4tKNs+CV5tJNIfxnwaEc5us+jwXbGXwmJdijH+NdCo532ZLwTvkU73ziO+Vs92vnGEO1860O0Q6dAlv0N4aD8lqlzqSciZZu/C/hKUDnHrxlW/d8HPNpR/fK9gHZzjfHvCcf4DwEf416LFKu8w6ZcpPwoNNppR6Y1GRvz/SnKSPgn8mgnY/9EOAl+Dni0o2z4M3m0k2nQbqvMw9RuCkf3YzTYzvgXIdEO5Rj/VWi0046Md8Yy0GWJdn5zHPPverTzmyHa+d2HaIdOgSz7N8JB+TtT51JPRMo2/xHwlaByjr8yrPr/DHi0o/rlTwHt5hrjfxKO8b8CPsa9FilWeYdNuUj5W2i005ZMa2oszHdRlJHwIvJop8ZaRDgJ/gl4tKNs+A95tFNj/RPwaEc5ur+jwXbGauZT9XMIHdRtphzjFYRt9jPaaUs23lO1Bros0U6ryn//hl2FcSMb9YEe7ahC3NEOnQJZdqtKukEZruTpXOqJSNnmCLHzoZ5wyjlWVNILQ7SSV7is8g5b9UtUQLu5xniUcIxXBnyMey1SrPIOm3KR0ppw3PgZ7VSRaU2uwRuo21QyElaV00Y7uWIbwklQRTg5uWxYVUkd7eSKVcyiQeHoWlcG2xm3FRLtUI7xdkKjnSqyaCfn2xuo2zuOuYMe7bQ3RDsdfIh2qgijnfaEg7JDJU/nUk9EyjZ3DPhKUDnHdgyr/k4Bj3ZUv3QS0G6uMd6JcIxXB3yMey1SrPIOm3KR0llotNOGTGtiDe7tdKlkJNyFPNqJWV0IJ0HXgEc7yoZdyaOdmNU14NGOcnSdK4PtjLsJiXYox3h3odFOG7Jox6410GWJdno4jrmnHu30MEQ7PX2IdtoQRjs9CAdlz0qezqWeiJRt7hXwlaByjt0ZVv29Ax7tqH7pLaDdXGO8N+EYXyHgY9xrkWKVd9iUi5QVhUY7rem0Jo/59qlkJNyHPNqx8n0IJ0HfgEc7yoZ9yaMdK9834NGOcnQrVgbbGa8kJNqhHOMrC412WtPt3MwZ6LJEO/0cx9xfj3b6GaKd/j5EO4QKZPcjHJT9K3k6l3oiUrZ5lYCvBJVzXJlh1b9qwKMd1S+rCmg31xhflXCMrxbwMe61SLHKO2zKRcrqQqOdSjKtSTXYybZGJSPhNcijnVRxDcJJMCDg0Y6y4QDyaCdVHBDwaEc5utUrg+2M1xQS7VCO8YFCo51Kuud2fNvJtpbjmAfp0c5ahmhnkA/RTiVhtLMW4aAcVMnTudQTkbLNawd8Jaic40CGVf86AY92VL+sI6DdXGN8HcIxvm7Ax7jXIsUq77ApFynrCY12omRaYzd4J5tVyUjYIo92bNsinAR2wKMdZUObPNqxG7TbKvMwtZvC0a1XGWxnHBMS7VCO8bjQaCdKt5PNt3eyJRzHnNSjnYQh2kn6EO1ECaOdBOGgTFbydC71RKRscyrgK0HlHOMMq/6agEc7ql9qBLSba4zXEI7xdMDHuNcixSrvsCkXKRmh0U6E8DVamO/6lYyE16+kr3eDgEcoqt0bVNYbmKhelqhCOZRMZbCd3oZCogrKcbkRs6On6JONGMa4nw41zORQN65kJLwxg0PdJOAOVbV7k+UOlayuwUIcKuW43DTgDlX1yabCHWorypd/Ip6bVTIS3oxhsm5GONg2D7hzVjbcnCG83zzg1+MlOPothDh6yjE+JOCXSFSfDGGYL0MDfhlQ+YmhTIs4rnE5lHBcbhnwcenlz6zyDpvSn20V8DGu+ngrhgCNchyqBWE4VH8rbPGjUaGGBzX//gw/n0LNsZ8AjisL4LiSAI59BXDsI4DjigI4riCAY28BHHsJ4NhTAMceAjh2F8CxmwCOXQVw7CKAY2cBHKsFcOwkgGNHARw7CODYXgDHdgI4thXAsUoAxzYCOLYWwLFSAMeoAI4RARzDAji2YuCID5q6Y4x11z+joGxb7aSHwTXb4YCtASMAIwGjAKMBYwBjAdsAtgWMA2wH2B6wA2C8c59kgv6cg6q0n5Y33JC3tSFvhCFvpCFvlCFvtCFvjCFvQmXji8nUz1yQXai1Las/4Y6FHQlvTmCb7miwKelNGrsh93LtMJHJDhN9GFuEF9jtiYQ23YnJpjv5MLZ2IrTDJCY7TPJhbBHeGLEnEdp0MpNNJ3OPLbDDsIDagXMc9SHUv76E+jeFaRxN8cFHTSEcRzsz2WFnH3wU4Q09e2dCm2aZbJr1YWxlCe2QY7JDzoexRXgj1s4R2jTPZNO8D/o3PKB24BxHvQj1rzeh/hWYxlHBBx9VIBxHRSY7FH3wUYQbCOwioU1rmWxa68PYqiW0w1QmO0z1YWwRbvywpxLadBqTTaf5oH9bB9QOnOOoG6H+dSfUv+lM42i6Dz5qOuE42oXJDrv44KMINyzZuxDadFcmm+7qw9jaldAOM5jsMMOHsUW40cyeQWjT3ZhsupsP+jcioHbgHEfVhPrXmVD/ZjKNo5k++KiZhONoFpMdZvngowg3SNqzCG26O5NNd/dhbO1OaIfZTHaY7cPYItzYas8mtOkeTDbdwwf9GxlQO3COo/aE+teBUP/2ZBpHe/rgo/YkHEd7MdlhLx98FOGGbHsvQpvuzWTTvX0YW3sT2mEfJjvs48PYItxIb+9DaNN9mWy6rw/6NyqgduAcR20I9a+KUP/2YxpH+/ngo/YjHEf7M9lhfx98FOEDIPb+hDY9gMmmB/gwtg4gtMOBTHY40IexRfjgjn0goU0PYrLpQT7o3+iA2oFzHEUI9S9KqH8HM42jg33wUQcTjqNDmOxwiA8+ivCBM/sQQpseymTTQ30YW4cS2qGOyQ51PowtwgcF7TpCmx7GZNPDfNC/MQG1A25zBXGbxwrhuY0QntsK4TlOCM/thPDcXgjPHYTwHE/IU72k031Rp8u1OtTwoOY/jMHO1ByHC+C4tQCOIwRwHCmA4ygBHEcL4DiGycdTcEwz1cvFd3m9/6166eqO2Yx1L/nFFrxWORzm9RGAIwFHAY4GHAM4FnAc4HjACYATAScBTgacApgDOLUy1PDlModXNn7hzBGGvCMNeUcZ8o425B1jyDvWkHecIW+OIe9UJ8/PX3Y+vjLgg9H+9w+2xWmV//49Xe909QH3rzgfT3AVpfjvZRT7NMIrMqcLiXyk8DxBCM8ThfA8SQjPk4XwPEUITwp/WePUhXnqV8fL9Z+EVzTsw5n6hrrNhFdI7COEtJnwiot9pJA2E17BsY8S0mbCK0L20ULaTHiFyT5GSJsJr1jZxwppM+EVMPs4n9psLdthu4k5hLHSGUx38XG9xHZwD/tUwr4/gySWVUfDtVkF8Xg/i6DNpiuz1DzPJuCZylqZYipVw8nzHAKeuVyqJltMJzl5nkvAM55PFWvjNTFOnucR8MwmE7W1yXiWk+f5BDyTtlVMxmpqOXleQMAzk7OSqXQ6z8nzQgKedm06Xshkc5w8L6Lo91zRyhfsjOLWNdT4DfP4zfL4jfL4TfL4DfL4zfH4jfH4TfFnoXSn8LKn8cX2U1H6bJQ+B6XPRenzUPp8lL4ApS9E6Yuc9MXw9xLApYDLAJcDrgBcCbiq8t+L/OpadTjU+KC+BnNx0C/y/3sk2Oq2rQZ3nCJO+mqwyzWAuYBr9ZsJVzs3E3DeNYa8uYa8aysb34iI0hqrQaeW6yCuJlwIXkNUl2rjXMKbLdcSb7nya/JesnzyGifvdWCX6wE3AObpk/c6w6S83pB3gyFvng+T9xLCyXsd4eS9nnDy3kA4eecJnbyXLp+8xsl7I9jlJsDNgPn65L3RMClvMuTdbMib78PkvZRw8t5IOHlvIpy8NxNO3vlCJ+9lyyevcfLeAna5FXAb4HZ98t5imJS3GvJuM+Td7sPkvYxw8t5COHlvJZy8txFO3tuFTt7Ll09e4+S9A+xyJ+AuwN365L3DMCnvNOTdZci724fJeznh5L2DcPLeSTh57yKcvHcLnbxXLJ+8xsl7D9jlXsACwH365L3HMCnvNeQtMOTd58PkvYJw8t5DOHnvJZy8Cwgn731CJ++VyyevcfLeD3Z5APAg4CF98t5vmJQPGPIeNOQ95MPkvZJw8t5POHkfIJy8DxJO3oeETt6rlk9e4+R9GOzyCOBRwEJ98j5smJSPGPIeNeQt9GHyXkU4eR8mnLyPEE7eRwkn70LCSaD62B0vq4Tr+39VlF4NpVdH6TVQegBKr4nSA1F6LZQehNJro/Q6KL0uSq+H0hZK2ygdQ+k4SidQOonSKZSuQek0SmdQen2U3gClN0TpjVB6Y5TeBKUHo/SmKL0ZSm+O0lug9BCUHorSW6L0Vig9DKWHo/TWKD0CpUei9CiUHo3SY1B6LEpvg9LbovQ4lN4OpbdH6R1QejxKT0DpHVF6IkrvhNKTUHoySk9B6Z1ROovSD6P04yj9DEq/iNKvofTbKP0+Sn+C0l+i9Hco/TNK/4HS/6B0JFKfrkLpjijdFaV7oXRflF4FpQeg9NoobaN0CqU3QOnBKD0EpYej9GiUHofSE1B6MkrnUXoaSu+G0nug9L4ofRBKH4bSR6P0CSg9B6XPROnzUPpilL4Cpeei9DyUvgWl70TpBSj9EEo/htJPo/QLKP0qSr+F0u+h9Mco/QVKf4vSP6H07yi9CKWvRfqPt43gbSV428k8lMZ3qvGdbHynez5K45tj+OYZvrl2O0rj6/H4ej2+nn83SuNLgPgSIb6EeB9K46sO+KoEvmrxEErjQAcHQjhQWojSeG2F117u2uwxJcLoqHD+Dnb+WuUd9mOEayy16FRrwFYh74OKdwWyBfU5EjWFbL5QEzdWTv1QBKVRBoZ4oiDqNlcQtnktIW1uRdjmQUxtpnYuaxPPE6++sco77HUIeXYOy+ibdVFdsWQ2mS8ma/I18XQ+W4ync/GaQiqRTaeKuXjBsgrJXG3RimeLKTsVj8Wz8UImbmUSyWI2VbQysSwnz/VCMuxpCeFpC+EZI+ZJ7TNmwzzfO0znN1RdB4fpecZDdBxnh/3RWqu8w04Qtrm7EH+eDMngmRLCs0YIz7QQnhkhPNcXwnMDITw3FMJzIyE8NxbCcxMhPAcL4bmpEJ6bCeG5uRCeWwjhOUQIz6FCeG4phOdWQngOE8JzuBCeWwvhOUIIz5FCeI4SwnO0EJ5jhPAcK4TnNkJ4biuE5zghPLcTwnN7ITx3EMJzvBCeE4Tw3FEIz4lCeO4khOckITwnC+E5RQjPnYXwzArhmRPCMy+EZ0EIz6IQnrVCeE4VwnOaEJ7ThfDcRQjPXYXwnCGE525CeM4UwnOWEJ67C+E5WwjPPYTw3FMIz72E8NxbCM99hPDcVwjP/YTw3F8IzwOE8DxQCM+DhPA8WAjPQ4TwPFQIzzohPA8TwvNwITyPEMLzSCE8jxLC82ghPI8RwvNYITyPE8LzeCE8TxDC80QhPE8SwvNkITxPEcJzjhCepwrheZoQnqcL4XmGEJ5nCuF5lhCeZwvheY4QnucK4XmeEJ7nC+F5gRCeFwrheZEQnhcL4XmJEJ6XCuF5mRCelwvheYUQnlcK4XmVEJ5XC+F5jRCec4XwvFYIz+uE8LxeCM8bhPCcJ4TnjUJ43iSE581CeM4XwvMWITxvFcLzNiE8bxfC8w4hPO8UwvMuITzvFsLzHiE87xXCc4EQnvcJ4Xm/EJ4PCOH5oBCeDwnh+bAQno8I4fmoEJ4LhfB8TAjPx4XwfEIIzyeF8HxKCM+nhfB8RgjPZ4XwfE4Iz+eF8HxBCM8XhfB8SQjPl4XwfEUIz1eF8HxNCM/XhfB8QwjPN4XwfEsIz7eF8HxHCM//CeH5rhCe7wnh+b4Qnh8I4fmhEJ4fCeH5sRCenwjh+akQnp8J4fm5EJ5fCOH5pRCeXwnh+bUQnt8I4fmtEJ7fCeH5vRCePwjh+aMQnj8J4fmzEJ6/COH5qxCevwnh+bsQnn8I4fmnEJ5/CeH5txCei4Tw/EcIT1WhBJ4VQni2EsIzLIRnRAjPqBCelUJ4thbCs40QnlVCeLYVwrOdEJ7thfDsIIRnRyE8OwnhWS2EZ2chPLsI4dlVCM9uQnh2F8KzhxCePYXw7CWEZ28hPFcQwnNFITz7COHZVwjPlYTwXFkIz35CePYXwnMVITxXFcJzNSE8VxfCcw0hPAcI4bmmEJ4DhfBcSwjPQUJ4ri2E5zpCeK4rhOd6QnhaQnjaQnjGhPCMC+GZEMIzKYRnSgjPGiE800J4ZoTwXF8Izw2E8NxQCM+NhPDcWAjPTYTwHCyE56ZCeG4mhOfmQnhuIYTnECE8hwrhuaUQnlsJ4TlMCM/hQnhuLYTnCCE8RwrhOUoIz9FCeI4RwnOsEJ7bCOG5rRCe44Tw3E4Iz+2F8NxBCM/xQnhOEMJzRyE8JwrhuZMQnpOE8JwshOcUITx3FsIzK4RnTgjPvBCeBSE8i0J41grhOVUIz2lCeE4XwnMXITx3FcJzhhCeuwnhOVMIz1lCeO4uhOdsITz3EMJzTyE89xLCc28hPPcRwnNfITz3E8JzfyE8DxDC80AhPA8SwvNgITwPEcLzUCE864TwPEwIz8OF8DxCCM8jhfA8SgjPo4XwPEYIz2OF8DxOCM/jhfA8QQjPE4XwPEkIz5OF8DxFCM85QnieKoTnaUJ4ni6E5xlCeJ4phOdZQnieLYTnOUJ4niuE53lCeJ4vhOcFQnheKITnRUJ4XiyE5yVCeF4qhOdlQnheLoTnFUJ4XimE51VCeF4thOc1QnjOFcLzWiE8rxPC83ohPG8QwnOeEJ43CuF5kxCeNwvhOV8Iz1uE8LxVCM/bhPC8XQjPO4TwvFMIz7uE8LxbCM97hPC8VwjPBUJ43ieE5/1CeD4ghOeDQng+JITnw0J4PiKE56NCeC4UwvMxITwfF8LzCSE8nxTC8ykhPJ8WwvMZITyfFcLzOSE8nxfC8wUhPF8UwvMlITxfFsLzFSE8XxXC8zUhPF8XwvMNITzfFMLzLSE83xbC8x0hPP8nhOe7Qni+J4Tn+0J4fiCE54dCeH4khOfHQnh+IoTnp0J4fiaE5+dCeH4hhOeXQnh+JYTn10J4fiOE57dCeH4nhOf3Qnj+IITnj0J4/iSE589CeP4ihOevQnj+JoTn70J4/iGE559CeP4lhOffQnguEsLzHyE8Q61k8KwQwrOVEJ5hITwjQnhGhfCsFMKztRCebYTwrBLCs60Qnu2E8GwvhGcHITw7CuHZSQjPaiE8Owvh2UUIz65CeHYTwrO7EJ49hPDsKYRnLyE8ewvhuYIQnisK4dlHCM++QniuJITnykJ49hPCs78QnqsI4bmqEJ6rCeG5uhCeawjhOUAIzzWF8BwohOdaQngOEsJzbSE81xHCc10hPNcTwtMSwtMWwjMmhGdcCM+EEJ5JITxTQnjWCOGZFsIzI4Tn+kJ4biCE54ZCeG4khOfGQnhuIoTnYCE8NxXCczMhPDcXwnMLITyHCOE5VAjPLYXw3EoIz2FCeA4XwnNrITxHCOE5UgjPUUJ4jhbCc4wQnmOF8NxGCM9thfAcJ4TndkJ4bi+E5w5CeI4XwnOCEJ47CuE5UQjPnYTwnCSE52QhPKcI4bmzEJ5ZITxzQnjmhfAsCOFZFMKzVgjPqUJ4ThPCc7oQnrsI4bmrEJ4zhPDcTQjPmUJ4zhLCc3chPGcL4bmHEJ57CuG5lxCeewvhuY8QnvsK4bmfEJ77C+F5gBCeBwrheZAQngcL4XmIEJ6HCuFZJ4TnYUJ4Hi6E5xFCeB4phOdRQngeLYTnMUJ4HiuE53FCeB4vhOcJQnieKITnSUJ4niyE5ylCeM4RwvNUITxPE8LzdCE8zxDC80whPM8SwvNsITzPEcLzXCE8zxPC83whPC8QwvNCITwvEsLzYiE8LxHC81IhPC8TwvNyITyvEMLzSiE8rxLC82ohPK8RwnOuEJ7XCuF5nRCe1wvheYMQnvOE8LxRCM+bhPC8WQjP+UJ43iKE561CeN4mhOftQnjeIYTnnUJ43iWE591CeN4jhOe9QnguEMLzPiE87xfC8wEhPB8UwvMhITwfFsLzESE8HxXCc6EQno8J4fm4EJ5PCOH5pBCeTwnh+bQQns8I4fmsEJ7PCeH5vBCeLwjh+aIQni8J4fmyEJ6vCOH5qhCerwnh+boQnm8I4fmmEJ5vCeH5thCe7wjh+T8hPN8VwvM9ITzfF8LzAyE8PxTC8yMhPD8WwvMTITw/FcLzMyaerTSecSuVSBRrYkU7bmetWCaXTlqJZC6VttN2Mp0sxNLxeDGdSNdkcpkaK2Mn4kW7NpmJ1zp1DyBs8+c+tdkq77C/aEVnv8PCMvo5Qmi/L4WM7Shhm78S0uZKwjZ/LaTNrQnb/I2QNrchbPO3QtpcRdjm74S0uS1hm78X0uZ2hG3+QUib2xO2+Uchbe5A2OafhLS5I2GbfxbS5k6Ebf5FSJurCdv8q5A2dyZs829C2tyFsM2/C2lzV8I2/yGkzd0I2/ynkDZ3J2zzX0La3IOwzX8LaXNPwjYvEtLmXoRt/kdIm3sTtjkk5LrnCoRtrhDS5hUJ29xKSJv7ELY5LKTNfQnbHBHS5pUI2xwV0uaVCdtcKaTN/Qjb3FpIm/sTtrmNkDavQtjmKiFtXpWwzW2FtHk1wja3E9Lm1Qnb3F5Im9cgbHMHwjZDVYv3+HzsNHggYC3AIMDagHUA6wLWU+cC2ICYsgcgAUgCUoAaQBqQAawP2ACwIWAjwMaATZz2bwrYDLA5YAvAEMBQwJaArQDDAMMBWwNGAEYCRgFGA8YAxgK2AWwLGAfYDrA9YAfAeMAEwI6AiYCdAJMAkwFTADsDsoAcIA8oAIqAWsBUwDTAdMAugF0BMwC7AWYCZgF2B8wG7AHYE7AXYG/APoB9AfsB9gccADgQcBDgYMAhgEMBdYDDAIcDjgAcCTgKcDTgGMCxgOMAxwNOAJwIOAlwMuAUwBzAqYDTAKcDzgCcCTgLcDbgHMC5gPMA5wMuAFwIuAhwMeASwKWAywCXA64AXAm4CnA14BrAXMC1gOsA1wNuAMwD3Ai4CXAzYD7gFsCtgNsAtwPuANwJuAtwN+AewL2ABYD7APcDHgA8CHgI8DDgEcCjgIWAxwCPA54APAl4CvA04BnAs4DnAM8DXgC8CHgJ8DLgFcCrgNcArwPeALwJeAvwNuAdwP8A7wLeA7wP+ADwIeAjwMeATwCfAj4DfA74AvAl4CvA14BvAN8CvgN8D/gB8CPgJ8DPgF8AvwJ+A/wO+APwJ+AvwN+ARYB/AGqiVQBaAcKACCAKqAS0BrQBVAHaAtoB2gM6ADoCOgGqAZ0BXQBdAd0A3QE9AD0BvQC9ASsAVgT0AfQFrARYGdAP0B+wCmBVwGqA1QFrAAYA1gQMBKwFGARYG7AOYF3AegALYANigDggAUgCUoAaQBqQAawP2ACwIWAjwMaATQCDAZsCNgNsDtgCMAQwFLAlYCvAMMBwwNaAEYCRgFGA0YAxgLGAbQDbAsYBtgNsD9gBMB4wAbAjYCJgJ8AkwGTAFMDOgCwgB8gDCoAioBYwFTANMB2wC2BXwAzAboCZgFmA3QGzAXsA9gTsBdgbsA9gX8B+gP0BBwAOBBwEOBhwCOBQQB3gMMDhgCMARwKOAhwNOAZwLOA4wPGAEwAnAk4CnAw4BTAHcCrgNMDpgDMAZwLOApwNOAdwLuA8wPmACwAXAi4CXAy4BHAp4DLA5YArAFcCrgJcDbgGMBdwLeA6wPWAGwDzADcCbgLcDJgPuAVwK+A2wO2AOwB3Au4C3A24B3AvYAHgPsD9gAcADwIeAjwMeATwKGAh4DHA44AnAE8CngI8DXgG8CzgOcDzgBcALwJeArwMeAXwKuA1wOuANwBvAt4CvA14B/A/wLuA9wDvAz4AfAj4CPAx4BPAp4DPAJ8DvgB8CfgK8DXgG8C3gO8A3wN+APwI+AnwM+AXwK+A3wC/A/4A/An4C/A3YBHgH4BaVFQAWgHCgAggCqgEtAa0AVQB2gLaAdoDOgA6AjoBqgGdAV0AXQHdAN0BPQA9Ab0AvQErAFYE9AH0BawEWBnQD9AfsApgVcBqgNUBawAGANYEDASsBRgEWBuwDmBdwHoAC2ADYoA4IAFIAlKAGkAakAGsD9gAsCFgI8DGgE0AgwGbAjYDbA7YAjAEMBSwJWArwDDAcMDWgBGAkYBRgNGAMYCxgG0A2wLGAbYDbA/YATAeMAGwI2AiYCfAJMBkwBTAzoAsIAfIAwqAIqAWMBUwDTAdsAtA/V69+i149Tvr6jfM1e+Dq9/eVr9rrX4zWv0es/qtY/U7wuo3etXv36rfllW/26p+E1X93qj6LU/1O5nqNyjV7zvWAdTvEqrf/FO/p6d+q079Dpz6jTX1+2Xqt8HU726p37RSvxelfotJ/c6R+g0h9fs86rdv1O/KqN9sUb+Hon5rRP2Oh/qNDPX7E+q3HdTvJqjfJFDv+1fv0lfvqVfvgFfvV78EoN4Lrt65rd5nrd4Vrd7DrN5xrN4frN7Nq957q94pq97Xqt6Fqt4zqt7hqd6Pqd49qd7rqN6ZqN5HqN71p96jp95Rp97/pt6tpt5bpt4Jpt63pd5lpd4Tpd7BpN5v9ABAvZdHvfNGvU9GvatFvQdFvWNEvb9DvRtDvXdCvdNBvS9BvYtAPeevnqFXz6erZ7/Vc9XqmWX1PLB61lY9x6qeEVXPX6pnG9Vzg+qZPPW8m3qWTD2npZ6BUs8XvQdQz8WoZ07U8xzqWQm17lV7/NX+ebU3Xe3VVvug1V5etbdV7fVUex/VXkC1N07tFVN7p9ReIrW3Ru01UXsv1F4EdW9e3atW927VvUx1b0/d61L3ftS9EHVvQF0rV9eO1bVUdW1RXWtT157UtRh1bULF6ip2VbGcim3UWr/Vv0uHkNqrrI6BofrDcSuq6sWfq729aq+r2vup9kKqvYFqr5zaO6b2Uqm9RWqvjdp7ovZiqL0J6l69unet7uWqe5vqXp+696XuBal7I+pegbp2rq4lq2ur6lqjuvbWD9AfsApAxe4qllWxnYp11P75NUONj/VQurPzt/tHm/ae/eTVQ3C5Ls7fhcndD53Vv8FHi9f26nhvXNXV8xeNm4I/28n5+2uXNhu9tuO1PfFns0uc7/CI92dHOp89dcZzC685NlvAnx1d4nvHlvje8SW+d1KJz04pUeepJb53eonvnVnie+eU+Oy8EnVeUOJ7F5X43iUlvnd5ic+uLFHn1SW+N7fE964r8b15JT67qUSd80t879YS37u9xPfuKvHZPSXqXFDie/eX+N6DJb73SInPFpao8/ES33uyxPeeLvG950p89kKJOl8q8b1XSnzvtRLf+6fE9zaM/vv3jsGXXjbw2pO2cPOrnL9qXYD/7/x3se9Xfn+w83+rvMOuQvVS15+Ga2JVoYYHMf94VaheD7ns49bJUP/i5zXUsXVdff16W9TRwfl/BbKl+x2l+SuH6tNrou9XOHnuETbU457PbWsVQ1vTViLv1t+WoX7Lii3eQ724jXX19bdB9lNHBH1WpX0WRZ+1RfbcpNXS7dnKd3umxNvTLXdiXUP++LOT0GcR7bOT0WdR7bNT0GeV2mdz0Gfu/KvS2sc19jnGggV3Jboa+Fehtqlj87rQkmMZz2vrGW7dW9SxtGtJ/UNY6v9XP9QxFNVfEaLX1y15+Cfc+rfiqb/o1j8M1V/G+Gl0uPUP5+Bv//v8lJoTw9F6StdYwv62OoQa+jFsM/fckRBHX8XsCu18oVDDdUtIO3/bEOvaxq7Qzufy0e2j62WUxz5WhVY/5hM12Mfty0rDZ25drn5EUV24fBS1EZfHaff7OC/t/K021KmP3cpQ4/bgPLe8yos56U4h81jE9Zr6LWKot9rwfbdcleF7g52/VpkH73ipn8vYlvpcbs1z7kxT57J7/rahxuOEYy631vh4jTXXdm0MXKu1z9SB9cVrjd3GcJ7qkHndFsS6IsvralZdeE2vjz19HnKs22HYp5s6D93ztw2x+gW7lF1bG+zKG3fYNRVa/ZhPlcE+bl+2NXzm1tXO+T/WVFweXxPD5XHa/T7O29n5W22oUx+3bUON24PzsKbuqLUNa12Fx1+3Xj3PrbdtyKzPg53/W+UdJceRSeM7hejnOv6+Pj7w98q1IY9vqLdhVRPb3SnUeF7oNiw1j3BdJhtWlThPZZnnqTScp4Phe8vaV9UlOLdH+XvuPzM/atZexT1DSzk6GYhjp4w/c8npeTq51gZyVYbzcFyA5rnIV+/A2xlsYXIEbvn2zSzfoZnlOxrKtylRvlMz669uZvnOzSzfpZnluzazfDdDedMCwJ2k3dFn+uKpB8pvicWTe/62Glcuh90j1Nh23Q22U2PcHXNTi3st9juYN66rp6FduN24DB57ermKUOO+bqfVY5qDOL+DR35Hj/xOHvnVHvmdPfK7eOR3DTU+dF+r/h/VyrgXZd3P22r1unPAZFedg8nOnP8P+XguCq7uXDOlK7T8UmPb1V08hrtrdeGbZaVuoFUbvq/PDdNFKtNcdsubLmDgRVS0RDtaa99r7cEr7FG36dz4e/pivxTnUm0sFRzieWe6CNhG+0wPZENL4WXSINMFwtYedeGgD1/Y0wNa3GZ1DHb+WuUdNu8FBauGdz1nJd362/HUH3Prb89Tf0q/EH6p81eN2QMrGo4Z0xqx1LwwrRE7ojKuzdyx3wF91qkJdZU6t2m9iesYUtfw3JhXtfa9avQZLhc21O117o4ebQsvhXOpNprWyLiOLbU24vN2bkJdpc5tWm/jOt351inU2IZdmlBXqXOb1u64zvbauTGvrk2oq9S5TXEArlP355iX+90qw/cI53Ta5drUdbdbvqehPI5Vumpt64Y+09cjetvweUw272rgZdIxt1wHw/cqPP6GQqEmXQwxcXbb0z3k3Z7uhvZ0b2J7umvt6U7YHhNn5hi0xm1Hg13hWht7oXNjn6QfYe3/mLeaZ2O0jU0hQ136BgF8fpNf1PvWpDs4r1TfuuWqPM4z2Pm/VdZh1+o3bFTaXcspHX9Ja5NrQ7z2a23gHdXKr9aqvs5XQw1tiL/fVWt3T552p/XxhA/3s97o3FiD9MM01lzeaqxNbsZYw3MLn39pPlYduk/uZSiP7en2lUlneyFei79fV/8Z3oinjgj6jHKTjLLdjFZm+6gjWuePfapDjX1PtfYZ9v89kH10uxKO4ZTJJu7RwdAevJbRD9MYdnk311/i+axrO7aFHlea1rA4r9Q1/mqNA/al2J/97HFO7M9Mfjiqla9C/uw3rY0mjQ7aWMBrS/1Y2liYXOZYcG1vihtM1yQqNM64PB7TpfxZF8Rr8ffr6j/D6xt1RLTPBjv5VlmH2Z812FhW5499qkONx4Duz/D6zz2naXzr63ru9ZDpPK3LPE/rJp7nv9Ye/Sa07pswh+b6Zvz96hLn4dCA/1p7TD4LxwfqiKDPCK8HZEw+C/Nvis8ytbepPiuq2Qf7LP06M/4exzUR99xeG4g7o89xecsRRmXLwzXtxH26ZG3h/I3UsbTH2KfYnzSlT03+p6l96trM1Kf6tQae9VJ9n+I+c7ni6/F4fYjLb9DEPm3JeYrXcXqfmvwSLt+c68XYZtWhxv2tP7jFcy2jvk/1Nb06htTVn9NrTT+0iX3qz3rR3Kel1oumdUKp9WJT73NUhxr3t349uiX6dEvUfq8+HdvEPvXnmkbz56mpT0vN06X1qWszU5/qD4IwbYxO623z2jyM7zPj8jsJmKd4r4Pep6X2NaijKfdCcd+4NqsONZ6LHZAN/OjTJQ8UI674/rPep275qU3sUzxG1RGpY2lPs+epqU9LzVPTHkvcN67NqrXy7vddG2CbcPWpab+HaXO5vh9gDwHz1LXlYv51DW1s2q+Eyzd3v5JrM1Os11H7rEqrWx14X0Un7TPTd6j56/utcEysr/G4/YzbVq9YTPczbvkjDGOyVPtL2cu0Mb+pe7f0ay+lHlxt7t73iIFDS/YLjqe8+uUkH/tF3ztkemDCdG9SfzCjuXvqTOOT96Gv+n7RH9RSx5C6xu3WH8Q6u0S/mOxcql9Mzy3gOlw+Jtu30+zFtGfOcx2jDhxvYHvi8heVsJep/aXsZVoj4Dq21OyFx5C+7uvAbK+Omr1UXlsDn6hW/soS9jK1v5S9THsMcbv1fWV4DHUMgL3aN8Fe1/toL30vXNuA2atNE+x1i4/20vfvtS9hrwqt7sEk9krVmPZE09Ufs0z9Tch/ycuXOrLUn0iZrlcR8q81XbcmrD9hutdBWH/Grb8LT/1F0/5VuvprltinGw//JXv2u/PUb5v2cbi+gnlPXLJCO18o1DDGC2nnb6txJfb9S54BbOq+LtMeUfy8mf6Z7mNM+8F6Gc5jqqs7YV2dCevqQFhXN8K6qgnrakNYV1fCujoFtI0VhHVRjglK21Pai3JuU/LqQlgX5Vil7Ed3fLnr+iV65HzJtJ4m1MRUqZec8MY+dqpCO18oZNZj9/wdDHz0lx3hzyJlcM1kisVkrDZrW8l4Kl5MVGj1u1z1vKbEVCZtZ34OImG6L9ER2VUdEfRZB+2zKPrM5YhfoGuKayj5N8X++Pym+0r4Gd7m9GWXkNm3ufapCDXs90rtM3xdtK32mekeg2lvcXvtM9yWdtpneO7oL5A0XaNX3zft9dN1wbRHJmxot1veHeeVHuX1/WRu+Y6OMZW9j9LGF09sUP9Czl6Ik2lvV0+Ns1u+C+KsX4cxre9L7VtZ2nMbLp9Omt3wd1vSXuEm2Ku3wV4tt2fQvHcdj3fs/7z6FJdvbp+6NjOtEXpon+F5qcdSpfa9mXwT/sz9Ln6OxDTG9PVPqfFt8gu90HlM5b3GzMASfgE/S8YxzldAnEz911vj7JZfp4RfcL+D7VZqT8UKhvK9DXbrFGo8htzvtqS9WjfBXokm+gX8DJo6InUs7TH6BTzedb9g6lNcvrl9qr+odgX0WS/tMzwv9WeRTM+7m+aoae2BdRw/L6uO1nUN6138F+W59nH7sA0ur31WhT6L1DU8T1vn/xF0HlyXyyOqlR/mGNxds1ai77jfrzacv1I7fwPehjzcr3pdYUOeW17ZdDPnP2odxjmea9KWu1V/ie3x/V98RNDnuPxohyu+V+b+LSfeqq3J2rXxbG02mS0UEvms6fk912ZeL9LXY8dl5aIf+hofnyOoL9JvxcKn9Iv0Wxn6ivtF+mr94/o/bCP8Iw6mPV54vJj2mul+usLQXtPYrPb4vjo6lDjP8jHdMG/5mP5vjGmT7uJ1nDpc7cbajsu79UW18rs7HygN3UNbK0YN51PlDitRrsLj7+I6DHmRuoZ5Js3HayG3vHvutnWNObqftUOf4TWmOto7/8f2wnW5PKJa+UO0tRBev7jfrzacv412/ga8DXn6WqidoXw7Q3nVP/tq6wvcduo5v/icWv04T+d2GFqnUa9/iulMwcrUFrO2bccKVnFp6x/q8yeS2Zp8tsa2Mwm7mLCTSzv/ICddpX1G3U9VhnZS1Z+2EkW8P5OB//IfhQz9u65xr8urdE/0HXWMQHVXaJ+NNJyXs834B/KYnjuJdTXw15/72bwutORYxvMu/4G85h3LfyBvKYdfP5C3ulOf6fq1rnf6Oh2XDxnyKkLe61X9HKZrsu68DIca+wgvbqZ5HjLkmbiFl8ItYuCm19uqRDu8zoM5ufYx3essFQcsWeuFgn9day3n/y19XSvlpGWvq9L55euq0gfVusq95q/SfdD3db9WKr6XvZ5KGH8cGvssdUTqGp4bf4ZjzAiy5+qafTjGGrYPz1hLWF1D3uNr+XrT81i+3ix9/GfWm5ZTX1OuiTPN0SZfE19yvS3Eq38VocbrwlLXxNX+NDfGn1rca9O995q2w/S9Zhb3bPQrRW6Ng1E+/hwfehm9nF5+aVej3fyg37Vez/l/kO9ar+mkJazuk87/W3p1v5bzgezVfY1vV02Z7kDGeO/gmVf3pjt2Ya2c/h3sL0egMiM8yoxEZUZ6lBmFyozyKDMalRntUWYMKjPGo8xYVGasR5ltUJltPMpsi8ps61FmHCozzqPMdqjMdh5ltkdltvcoswMqs4NHmfGozHiPMhNQmQkeZXZEZXb0KDMRlZnoUWYnVGYnjzKTUJlJHmUmozKTPcpMQWWmeJTZGZXZ2aNMFpXJepTJoTI5jzJ5VCbvUaaAyhQ8yhRRmaJHmVpUptajzFRUZqpHmWmozDSPMtNRmekeZXZBZXbxKLMrKrMrKhNGZWagMjO0MpxPKUGEnOPecWF6q52+8uf5Vd2m74Zxz+/Xz3Gb3spkeouf6epLhfZZpK5xO0xXX9z+VVHZ5qicPrb0p1pwROKOX9Nb7dxxq+ofhc61Q6ghd1PUY1rTca5T0laqwDvubavU2+pMfRfRPmtK36njYFTOn6uO9bbjmSe2XeourjtWgh5njnT+H+Q4c6iTxnHm8quVjY7lVytLH/+Zq5UfO/Vxx7D606vYZrxvW7SbvCZyz982xLlGq18Tmd6IaHpTpektVZS6XaHVj/m0MdjH7csqw2duXUt2XKK6cPk2qI24PE6738d5U52/pje/6k9km964iPOwLmS1tuG+qfD469ar57XSOJZ6etG0LsbrxS3qGpZvgzjr5XF9Ua38TOev+v+XIXOduK9aNaHOPRGX2U7aFPu4bVDl6pp57rDHuQ9C597Ho86KpdSpjxMvm7bSOLjlD3D+qvN9E2rYftzPuM8OKVEuWqKc6S21Jnu6XMMhc5zl6m0pf7ys4xy3RfddTG9sTej+xtRu/fwK7VAbwqHGPkgvbxpTuP52Wvkl9zBCZl8a1ezD9Kvstj5mT3P+qr460YNzKGSeN/obK9qiukzl9bfkuuXnOH+xLzKNITwvXd6mt7fqb23Wfexg5/9WmYdpxxqes2d52CfaTPtcgOo8V2u3ab1i4uWOzXboc/w23HLnOh7vuu62R9/R260O1wfxvuXFWrKuWXLtAfHpaOCjv534aq1d1cg+Ya2tuB63fCfDefEbUXRd6aSdV82P752024fYR+GxN1fjit/wqvu3Um1egOq83kmb3mir/8ohfnur/vZppjc+Lelf09tu8VzwetvtfOevsvNPTtp0Dastao86InUs7Vn8doBfEQ99zkbReXG7QqH6duPy2Ab6mA+HGveNPsfxvGyv1dXWUJdJK0xrYP0NQ/h7WFPOagL/9obv6vOv0qM8Hje4/IPOX9Na2fQrPNhOEY86FyIuj4Qath/3AV7bveRxbtz+sKE9ur/yWtd6/QrUk6HG7Te9qZfynonL2fQLc/gtZl6/MPcs4vyThx2w3UzapnPA5asNdnN9H7a7+11T37rlcN+a6tD9J9OvINumNxOFNP5dDPzdz7qi8vg6oX6Etf/jNqn+6lBRX69eTueDx0IXVL9uQ11zSvlMXGdT5pDpF6P0OfQ+ap++xm3nwdOLH/Zrrl81rQc6IK7ueiDoe6m+cP7f0nupWvoJWOrzx9LpVCaWsxI1hXxtIRH3+/ypRMpOp7PpfCpfm0nkc36fv7lPQHO+WeBPtyzgbye9tDcLtK/wLlfh8XdxHYa8SF3DvKC/WaDKqSDIbxZo5XwpiG8WcMeO1z0epr0eS9Zwbn/iuFef16FQvWa65VetqG9DlwpvzhV0nNM651boHKanFk33qgj5LLFhJbJhheGc+rUDt/yKFQ15ufqP+yFqqMf9rI3hvPham953bbTz4msWFdo52obM40G/FloR4rBtfYyht0G3SUUJPqEQ3dyOanz6IxsOQP4fz3lsT9Xnq5coFylRDrdpia8L0etwPpOqzcTjOTueKRQzdmppOjwTzXv8GbVfrTK0k3q/ED6I+TPvabfF7GkPozJee9pxGa897biM1552XMZrTzsu47WnHZfx2tOOy3jtacdlvPa04zJee9pxGa897biM1552XMZrTzsu47WnHZfx2tOOy3jtacdlvPa04zJee9rV57L3JNstuCfZXr4nGX2G97XGUDl9bJXak+yOX9OeZHfcqvo3QucaGmrIHddX6poo777aJPe+Wran+WOafTjWKdg+HPZX9in1NL87HtzrGKGQ+XqBa6OW2ne8ofP/IO87dp8ZXb7vuOSxfN9x6eM/s+94oEPc9GvvFVra9CZdk05Xh5auo6b1T1PWJ6bzmDi754kSnsd0vYZ3z3T9vro2iKfpPr9+HQzH7WGtDlN5fc2p11/lT3sb7YHG1y5Nv0SvX/86wfmryo7X2ljKhurAvgi3GWsxLqPvbzPtw6s01K/vM5vk/FX81nMGYJVWhnq94XLGvwhvGid47xwun0WcYxVmO4RCpde0Ogdc3nSv1fVR2O7ttO/he7r63lFT3bh82KMefT9LlUf+YOf/VnnHkmvheP9eRQnupv17hHyM+/cqDOfEYwmX313jhffv6W3Vba/QyXDeakP/6Ht93POq8ZP0GKPtQmb/0l6zLeZH6O8K+v4UfLifdTS01bQPA9tNP8La/3GblH3SFfX16uV0PthO+i/E6/NpsPN/q6yj3l+5nL38lT4G3fIHo7bGtLaarif4scdwm4qGdm3wvI3GqZSPVIfuU9sbyuO+0fcF4vFdqX2G11e6z6swnMe0bqjQ6vbaq+7Wp99PO875q3hPq2jIz3TPSH3PXQt0MpxH/w6+zl1qbcB5nUENDNM1KLy/eI4HbzwfcJ+48Y9+j7d3RX2dp4cato3pXkNaHwN4bWr6tQvmZ1ZKrjVNaz99rXlBqGFf4LWISVPCWvm2hvOa9vN7PZeAdS1sOAdee5quLYcIbVkq3mJ+tiZToZ3PtQfOw+dvG2Id57Y+rnD/YPvoMSTTOE/jX57B6wB8bQH3Talneniuf1oxk99zYzzF4RqUj3mZ/J5pzrrlb0B1XuekTc/04Od2SvktPOZ0jWAa70v8lmsf07NtmE9UK38b4oX9islv4Xrc8qZn6vR1gTr0Z97c82K/5doeX0/Qr+fo80gd+LpehVZef45UL9/Gg9/diJ+7xuCNw+s10RSHm35hWo/D70OcmxKHm/yPzgGXx+12+Zie/dNjNtO5Tc+l6ueuDDWv/Y+G6tuv9xlTzLakz0o924XPr8fDTyDOep+Z1u2l+sy0T930LE6nUON+0ve8L63P9PWLe56m9plb/vlQffv1PuN5Rq2+z0zPqJn27uvPqL2MOOt9ZuqDUn22tOe/9D4zPSvVlD5Tx5A6M9em9plb/q1Qfful9Nm7iLPffWa6RmLirq/5mG1a7GBoj3uYrinp15vwM1zNfdZoyX3pUPOuN2EbdUL167bUrz2V0jVcp752Mc0Rk9bpc+Q71D6f1g/Nvn6oP/OJn2Vsbn+2Re1d1v4sNTd0/V7W/jTpVKn+dMv/jdrnU3/mO2gcQgb7dTBwN83rlujPJddUQ43tZLrHiPPx90r1p2mtaIpZ9bVi24r69vnTn+XfZ+uIOJe6bu3GTy1x3RrvsY6i8+J2hUKN+0ody3ov0PQMZ6nr1l7XofF5KlAZvDdN/wxfw3avS7i6j68p4V//0/ubY4zh95iY2uQV967UxDGGnw9RR6SOpT3GMYb7Sx9jputspve36XbC5fV36qjD9G4zfd9E1FCXaRyZxiTen6p/z3TNP+jPEK/rVPBfe4a4pZ/hbelfEW7uM8R4X1nQn3Uc5RRS82yjEpwrQvRx7X/lWcehFQ15+fWs41CkW/r+juXPOhqPRs86jkA23FXTXHy9D++hHlOiXKREOdwm9zvcz/xvj+b3eMRncVnD+VS5qSXKVXj8XVyHIS9S1zAv6M/8F5wKgvzM/yRtnYHbTn0fd/E5tfpxns7NHTv/xXeZNPcZYvc8Vdpn1P1UZWgnVf1pK+HbM8Rc99a512CmZ4hNmhDWypm+o2sFLsP7jBf3L9rW//owz/OdVlxfV7g219ukx504xmuOvuFztQ2xjmG7VNsw/1LPbOjreVNd0WbW1ZJ9atrr1dznLKPaZ1hL8XOWK6NypjnollsLpeOajTj9M5dfUEdXA399/eKuN0Mh87rOtWtLPZs50Pl/kJ/NXMVJL382s+Sx/NnM0sd/5tnM9UMN+9ekAa1Qnps2PcupX+9g0qtYRaixJuvais+v7nN2d9J77jVrj+KwmUP2K+b33mv6rJmbZ/PTingBolcSMjTe/awC5XstSPXvhFF5fEj4MeRNnP+39MV3/KCoOrqH6O1lISfVjad+C//wTEhrCz6vHtyGCDm49bnjIBpqfOgXvvBiDPOroOdnh7TDdAHMPdyXFHdDed09uDJtroi59fM8pGYeM/gGeDvtM7fvIobvVXj8v5X2t1TZihL1mjYMuXW6fYX5uu1wX1KNbza79VLaEm/iZqh/if9gepA9bhoLOE+fr7rOYU66TyXmml0SxCAOYe2cOkdcxjR+W2n/1zU33ISypvHrfrYkWCnxPf1Gv56nB80hQ/klgY/zN+pRF34hAS6vb8zh6sOuBk4u9/8DRAtJrZoxBwA=",
|
|
1764
|
-
"debug_symbols": "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",
|
|
1764
|
+
"debug_symbols": "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",
|
|
1765
1765
|
"brillig_names": [
|
|
1766
1766
|
"get_note_internal",
|
|
1767
1767
|
"decompose_hint",
|
|
@@ -1776,18 +1776,173 @@
|
|
|
1776
1776
|
"verification_key": "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"
|
|
1777
1777
|
},
|
|
1778
1778
|
{
|
|
1779
|
-
"name": "
|
|
1779
|
+
"name": "process_log",
|
|
1780
|
+
"is_unconstrained": true,
|
|
1781
|
+
"custom_attributes": [],
|
|
1782
|
+
"abi": {
|
|
1783
|
+
"error_types": {
|
|
1784
|
+
"16761564377371454734": {
|
|
1785
|
+
"error_kind": "string",
|
|
1786
|
+
"string": "Array index out of bounds"
|
|
1787
|
+
},
|
|
1788
|
+
"16954218183513903507": {
|
|
1789
|
+
"error_kind": "string",
|
|
1790
|
+
"string": "Attempted to read past end of BoundedVec"
|
|
1791
|
+
},
|
|
1792
|
+
"17843811134343075018": {
|
|
1793
|
+
"error_kind": "string",
|
|
1794
|
+
"string": "Stack too deep"
|
|
1795
|
+
},
|
|
1796
|
+
"2920182694213909827": {
|
|
1797
|
+
"error_kind": "string",
|
|
1798
|
+
"string": "attempt to subtract with overflow"
|
|
1799
|
+
},
|
|
1800
|
+
"5019202896831570965": {
|
|
1801
|
+
"error_kind": "string",
|
|
1802
|
+
"string": "attempt to add with overflow"
|
|
1803
|
+
},
|
|
1804
|
+
"6753155520859132764": {
|
|
1805
|
+
"error_kind": "string",
|
|
1806
|
+
"string": "Failed to deliver note"
|
|
1807
|
+
},
|
|
1808
|
+
"8270195893599566439": {
|
|
1809
|
+
"error_kind": "string",
|
|
1810
|
+
"string": "Invalid public keys hint for address"
|
|
1811
|
+
},
|
|
1812
|
+
"8861757336002045335": {
|
|
1813
|
+
"error_kind": "fmtstring",
|
|
1814
|
+
"item_types": [
|
|
1815
|
+
{
|
|
1816
|
+
"kind": "integer",
|
|
1817
|
+
"sign": "unsigned",
|
|
1818
|
+
"width": 32
|
|
1819
|
+
},
|
|
1820
|
+
{
|
|
1821
|
+
"kind": "integer",
|
|
1822
|
+
"sign": "unsigned",
|
|
1823
|
+
"width": 32
|
|
1824
|
+
},
|
|
1825
|
+
{
|
|
1826
|
+
"kind": "field"
|
|
1827
|
+
}
|
|
1828
|
+
],
|
|
1829
|
+
"length": 99
|
|
1830
|
+
},
|
|
1831
|
+
"9862881900111276825": {
|
|
1832
|
+
"error_kind": "fmtstring",
|
|
1833
|
+
"item_types": [
|
|
1834
|
+
{
|
|
1835
|
+
"kind": "field"
|
|
1836
|
+
}
|
|
1837
|
+
],
|
|
1838
|
+
"length": 35
|
|
1839
|
+
}
|
|
1840
|
+
},
|
|
1841
|
+
"parameters": [
|
|
1842
|
+
{
|
|
1843
|
+
"name": "log_plaintext",
|
|
1844
|
+
"type": {
|
|
1845
|
+
"fields": [
|
|
1846
|
+
{
|
|
1847
|
+
"name": "storage",
|
|
1848
|
+
"type": {
|
|
1849
|
+
"kind": "array",
|
|
1850
|
+
"length": 18,
|
|
1851
|
+
"type": {
|
|
1852
|
+
"kind": "field"
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"name": "len",
|
|
1858
|
+
"type": {
|
|
1859
|
+
"kind": "integer",
|
|
1860
|
+
"sign": "unsigned",
|
|
1861
|
+
"width": 32
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
],
|
|
1865
|
+
"kind": "struct",
|
|
1866
|
+
"path": "std::collections::bounded_vec::BoundedVec"
|
|
1867
|
+
},
|
|
1868
|
+
"visibility": "private"
|
|
1869
|
+
},
|
|
1870
|
+
{
|
|
1871
|
+
"name": "tx_hash",
|
|
1872
|
+
"type": {
|
|
1873
|
+
"kind": "field"
|
|
1874
|
+
},
|
|
1875
|
+
"visibility": "private"
|
|
1876
|
+
},
|
|
1877
|
+
{
|
|
1878
|
+
"name": "unique_note_hashes_in_tx",
|
|
1879
|
+
"type": {
|
|
1880
|
+
"fields": [
|
|
1881
|
+
{
|
|
1882
|
+
"name": "storage",
|
|
1883
|
+
"type": {
|
|
1884
|
+
"kind": "array",
|
|
1885
|
+
"length": 64,
|
|
1886
|
+
"type": {
|
|
1887
|
+
"kind": "field"
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
"name": "len",
|
|
1893
|
+
"type": {
|
|
1894
|
+
"kind": "integer",
|
|
1895
|
+
"sign": "unsigned",
|
|
1896
|
+
"width": 32
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
],
|
|
1900
|
+
"kind": "struct",
|
|
1901
|
+
"path": "std::collections::bounded_vec::BoundedVec"
|
|
1902
|
+
},
|
|
1903
|
+
"visibility": "private"
|
|
1904
|
+
},
|
|
1905
|
+
{
|
|
1906
|
+
"name": "first_nullifier_in_tx",
|
|
1907
|
+
"type": {
|
|
1908
|
+
"kind": "field"
|
|
1909
|
+
},
|
|
1910
|
+
"visibility": "private"
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
"name": "recipient",
|
|
1914
|
+
"type": {
|
|
1915
|
+
"fields": [
|
|
1916
|
+
{
|
|
1917
|
+
"name": "inner",
|
|
1918
|
+
"type": {
|
|
1919
|
+
"kind": "field"
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1922
|
+
],
|
|
1923
|
+
"kind": "struct",
|
|
1924
|
+
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
1925
|
+
},
|
|
1926
|
+
"visibility": "private"
|
|
1927
|
+
}
|
|
1928
|
+
],
|
|
1929
|
+
"return_type": null
|
|
1930
|
+
},
|
|
1931
|
+
"bytecode": "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",
|
|
1932
|
+
"debug_symbols": "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",
|
|
1933
|
+
"brillig_names": [
|
|
1934
|
+
"process_log"
|
|
1935
|
+
]
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
"name": "constructor",
|
|
1780
1939
|
"is_unconstrained": false,
|
|
1781
1940
|
"custom_attributes": [
|
|
1782
|
-
"private"
|
|
1941
|
+
"private",
|
|
1942
|
+
"initializer"
|
|
1783
1943
|
],
|
|
1784
1944
|
"abi": {
|
|
1785
1945
|
"error_types": {
|
|
1786
|
-
"11091894166229312484": {
|
|
1787
|
-
"error_kind": "fmtstring",
|
|
1788
|
-
"item_types": [],
|
|
1789
|
-
"length": 20
|
|
1790
|
-
},
|
|
1791
1946
|
"14514982005979867414": {
|
|
1792
1947
|
"error_kind": "string",
|
|
1793
1948
|
"string": "attempt to bit-shift with overflow"
|
|
@@ -1796,14 +1951,22 @@
|
|
|
1796
1951
|
"error_kind": "string",
|
|
1797
1952
|
"string": "Array index out of bounds"
|
|
1798
1953
|
},
|
|
1799
|
-
"
|
|
1954
|
+
"17618083556256589634": {
|
|
1800
1955
|
"error_kind": "string",
|
|
1801
|
-
"string": "
|
|
1956
|
+
"string": "Initialization hash does not match"
|
|
1802
1957
|
},
|
|
1803
1958
|
"17843811134343075018": {
|
|
1804
1959
|
"error_kind": "string",
|
|
1805
1960
|
"string": "Stack too deep"
|
|
1806
1961
|
},
|
|
1962
|
+
"2233873454491509486": {
|
|
1963
|
+
"error_kind": "string",
|
|
1964
|
+
"string": "Initializer address is not the contract deployer"
|
|
1965
|
+
},
|
|
1966
|
+
"2709101749560550278": {
|
|
1967
|
+
"error_kind": "string",
|
|
1968
|
+
"string": "Cannot serialize point at infinity as bytes."
|
|
1969
|
+
},
|
|
1807
1970
|
"2920182694213909827": {
|
|
1808
1971
|
"error_kind": "string",
|
|
1809
1972
|
"string": "attempt to subtract with overflow"
|
|
@@ -1812,13 +1975,9 @@
|
|
|
1812
1975
|
"error_kind": "string",
|
|
1813
1976
|
"string": "attempt to add with overflow"
|
|
1814
1977
|
},
|
|
1815
|
-
"
|
|
1816
|
-
"error_kind": "string",
|
|
1817
|
-
"string": "push out of bounds"
|
|
1818
|
-
},
|
|
1819
|
-
"6869395374906889440": {
|
|
1978
|
+
"6485997221020871071": {
|
|
1820
1979
|
"error_kind": "string",
|
|
1821
|
-
"string": "
|
|
1980
|
+
"string": "call to assert_max_bit_size"
|
|
1822
1981
|
},
|
|
1823
1982
|
"7233212735005103307": {
|
|
1824
1983
|
"error_kind": "string",
|
|
@@ -2308,193 +2467,48 @@
|
|
|
2308
2467
|
"visibility": "private"
|
|
2309
2468
|
},
|
|
2310
2469
|
{
|
|
2311
|
-
"name": "
|
|
2470
|
+
"name": "signing_pub_key_x",
|
|
2312
2471
|
"type": {
|
|
2313
|
-
"
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
}
|
|
2354
|
-
],
|
|
2355
|
-
"kind": "struct",
|
|
2356
|
-
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
2357
|
-
}
|
|
2358
|
-
},
|
|
2359
|
-
{
|
|
2360
|
-
"name": "is_public",
|
|
2361
|
-
"type": {
|
|
2362
|
-
"kind": "boolean"
|
|
2363
|
-
}
|
|
2364
|
-
},
|
|
2365
|
-
{
|
|
2366
|
-
"name": "is_static",
|
|
2367
|
-
"type": {
|
|
2368
|
-
"kind": "boolean"
|
|
2369
|
-
}
|
|
2370
|
-
}
|
|
2371
|
-
],
|
|
2372
|
-
"kind": "struct",
|
|
2373
|
-
"path": "authwit::entrypoint::function_call::FunctionCall"
|
|
2374
|
-
}
|
|
2375
|
-
}
|
|
2376
|
-
},
|
|
2377
|
-
{
|
|
2378
|
-
"name": "nonce",
|
|
2379
|
-
"type": {
|
|
2380
|
-
"kind": "field"
|
|
2381
|
-
}
|
|
2382
|
-
}
|
|
2383
|
-
],
|
|
2384
|
-
"kind": "struct",
|
|
2385
|
-
"path": "authwit::entrypoint::app::AppPayload"
|
|
2386
|
-
},
|
|
2387
|
-
"visibility": "private"
|
|
2388
|
-
},
|
|
2389
|
-
{
|
|
2390
|
-
"name": "fee_payload",
|
|
2391
|
-
"type": {
|
|
2392
|
-
"fields": [
|
|
2393
|
-
{
|
|
2394
|
-
"name": "function_calls",
|
|
2395
|
-
"type": {
|
|
2396
|
-
"kind": "array",
|
|
2397
|
-
"length": 2,
|
|
2398
|
-
"type": {
|
|
2399
|
-
"fields": [
|
|
2400
|
-
{
|
|
2401
|
-
"name": "args_hash",
|
|
2402
|
-
"type": {
|
|
2403
|
-
"kind": "field"
|
|
2404
|
-
}
|
|
2405
|
-
},
|
|
2406
|
-
{
|
|
2407
|
-
"name": "function_selector",
|
|
2408
|
-
"type": {
|
|
2409
|
-
"fields": [
|
|
2410
|
-
{
|
|
2411
|
-
"name": "inner",
|
|
2412
|
-
"type": {
|
|
2413
|
-
"kind": "integer",
|
|
2414
|
-
"sign": "unsigned",
|
|
2415
|
-
"width": 32
|
|
2416
|
-
}
|
|
2417
|
-
}
|
|
2418
|
-
],
|
|
2419
|
-
"kind": "struct",
|
|
2420
|
-
"path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
|
|
2421
|
-
}
|
|
2422
|
-
},
|
|
2423
|
-
{
|
|
2424
|
-
"name": "target_address",
|
|
2425
|
-
"type": {
|
|
2426
|
-
"fields": [
|
|
2427
|
-
{
|
|
2428
|
-
"name": "inner",
|
|
2429
|
-
"type": {
|
|
2430
|
-
"kind": "field"
|
|
2431
|
-
}
|
|
2432
|
-
}
|
|
2433
|
-
],
|
|
2434
|
-
"kind": "struct",
|
|
2435
|
-
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
2436
|
-
}
|
|
2437
|
-
},
|
|
2438
|
-
{
|
|
2439
|
-
"name": "is_public",
|
|
2440
|
-
"type": {
|
|
2441
|
-
"kind": "boolean"
|
|
2442
|
-
}
|
|
2443
|
-
},
|
|
2444
|
-
{
|
|
2445
|
-
"name": "is_static",
|
|
2446
|
-
"type": {
|
|
2447
|
-
"kind": "boolean"
|
|
2448
|
-
}
|
|
2449
|
-
}
|
|
2450
|
-
],
|
|
2451
|
-
"kind": "struct",
|
|
2452
|
-
"path": "authwit::entrypoint::function_call::FunctionCall"
|
|
2453
|
-
}
|
|
2454
|
-
}
|
|
2455
|
-
},
|
|
2456
|
-
{
|
|
2457
|
-
"name": "nonce",
|
|
2458
|
-
"type": {
|
|
2459
|
-
"kind": "field"
|
|
2460
|
-
}
|
|
2461
|
-
},
|
|
2462
|
-
{
|
|
2463
|
-
"name": "is_fee_payer",
|
|
2464
|
-
"type": {
|
|
2465
|
-
"kind": "boolean"
|
|
2466
|
-
}
|
|
2467
|
-
}
|
|
2468
|
-
],
|
|
2469
|
-
"kind": "struct",
|
|
2470
|
-
"path": "authwit::entrypoint::fee::FeePayload"
|
|
2471
|
-
},
|
|
2472
|
-
"visibility": "private"
|
|
2473
|
-
},
|
|
2474
|
-
{
|
|
2475
|
-
"name": "cancellable",
|
|
2476
|
-
"type": {
|
|
2477
|
-
"kind": "boolean"
|
|
2478
|
-
},
|
|
2479
|
-
"visibility": "private"
|
|
2480
|
-
}
|
|
2481
|
-
],
|
|
2482
|
-
"return_type": {
|
|
2483
|
-
"abi_type": {
|
|
2484
|
-
"fields": [
|
|
2485
|
-
{
|
|
2486
|
-
"name": "call_context",
|
|
2487
|
-
"type": {
|
|
2488
|
-
"fields": [
|
|
2489
|
-
{
|
|
2490
|
-
"name": "msg_sender",
|
|
2491
|
-
"type": {
|
|
2492
|
-
"fields": [
|
|
2493
|
-
{
|
|
2494
|
-
"name": "inner",
|
|
2495
|
-
"type": {
|
|
2496
|
-
"kind": "field"
|
|
2497
|
-
}
|
|
2472
|
+
"kind": "array",
|
|
2473
|
+
"length": 32,
|
|
2474
|
+
"type": {
|
|
2475
|
+
"kind": "integer",
|
|
2476
|
+
"sign": "unsigned",
|
|
2477
|
+
"width": 8
|
|
2478
|
+
}
|
|
2479
|
+
},
|
|
2480
|
+
"visibility": "private"
|
|
2481
|
+
},
|
|
2482
|
+
{
|
|
2483
|
+
"name": "signing_pub_key_y",
|
|
2484
|
+
"type": {
|
|
2485
|
+
"kind": "array",
|
|
2486
|
+
"length": 32,
|
|
2487
|
+
"type": {
|
|
2488
|
+
"kind": "integer",
|
|
2489
|
+
"sign": "unsigned",
|
|
2490
|
+
"width": 8
|
|
2491
|
+
}
|
|
2492
|
+
},
|
|
2493
|
+
"visibility": "private"
|
|
2494
|
+
}
|
|
2495
|
+
],
|
|
2496
|
+
"return_type": {
|
|
2497
|
+
"abi_type": {
|
|
2498
|
+
"fields": [
|
|
2499
|
+
{
|
|
2500
|
+
"name": "call_context",
|
|
2501
|
+
"type": {
|
|
2502
|
+
"fields": [
|
|
2503
|
+
{
|
|
2504
|
+
"name": "msg_sender",
|
|
2505
|
+
"type": {
|
|
2506
|
+
"fields": [
|
|
2507
|
+
{
|
|
2508
|
+
"name": "inner",
|
|
2509
|
+
"type": {
|
|
2510
|
+
"kind": "field"
|
|
2511
|
+
}
|
|
2498
2512
|
}
|
|
2499
2513
|
],
|
|
2500
2514
|
"kind": "struct",
|
|
@@ -3584,213 +3598,41 @@
|
|
|
3584
3598
|
"visibility": "databus"
|
|
3585
3599
|
}
|
|
3586
3600
|
},
|
|
3587
|
-
"bytecode": "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wJjrksScBYy5HknMNYEx1yeJuRYw5lySmLOBMTcgiTkHGHNDkphrA2NuRBJzHWDMjUlirguMuQlJzPWAMTclibk+MOatSGLOBcbcjCTmBsCYm5PE3BAY89YkMTcCxrwNScyNgTFvSxJzE2DM25HE3BQYcwuSmLcCxrw9SczNgDG3JIm5OTDmHUhi3hoY844kMW8DjHknkpi3Bca8M0nM2wFj3oUk5hbAmHcliXl7YMytSGJuCYy5NUnMOwBjbkMS847AmNuSxLwTMOZ2JDHvDIy5PUnMuwBj7kAS867AmHcDxqybMss5Qx9FAx6obZC2wdqGaBuqbZi24dpGaBupbQ9to7SN1rantjHa9tI2Vts4bXtrG69tH20TtE3UNklbqbYybeXaKrRVaqvSNlnbFG1TtU3Ttq+2/bRN1zZD20xt+2s7QNuB2mZpm63tIG0Ha5uj7RBth2o7TNvh2o7QdqS2udqO0jZP29Ha5ms7Rtux2o7Tdry2BdpO0HaitpO0naztFG2najtN2+naztB2praztJ2t7Rxt52o7T9v52i7QdqG2i7RdrO0SbZdqu0zb5doWartC25XartJ2tbZrtF2r7Tpt12u7QduN2m7SdrO2W7Tdqu02bbdru0Pbndru0na3tnu03avtf9ru03a/tge0PajtIW0Pa3tE26PaHtP2uLYntC3S9qS2xdqe0va0tme0PavtOW1LtD2vbam2F7Qt0/aituXaXtK2QttKbS9re0XbKm2vantN2+va3tD2pra3tL2t7R1t72p7T9v72j7Q9qG2j7R9rO0TbZ9q+0zb59q+0Paltq+0fa3tG23favtO2/faftD2o7aftP2s7Rdtv2r7Tdvv2v7Q9qe2v7T9re0fbWaBU5q2GtrStWVoy9SWpa2mtlrasrXlaKutrY62utrqaauvLVdbA20NtTXS1lhbE21NtW2lrZm25tq21raNtm21baethbbttbXUtoO2HbXtpG1nbbto21VbK22ttbXR1lZbO23ttXXQtpu23bWFtSltEW152vK1FWgr1FakrVhbibaO2jpp66yti7au2rpp666th7ae2npp662tj7a+2vpp669tgLaB2gZpG6xtiLah2oZpG65thLaR2vbQNkrbaG17ahujbS9tY7WN07a3tvHa9tE2QdtEbZO0lWor01aurUJbpbYqbZO1TdE2Vds0bftq20/bdG0ztM3Utr+2A7QdqG2WttnaDtJ2sLY52g7Rdqi2w7Qdru0IbUdqm6vtKG3ztB2tbb62Y7Qdq+04bcdrW6DtBG0najtJ28naTtF2qrbTtJ2u7QxtZ2o7S9vZ2s7Rdq6287Sdr+0CbRdqu0jbxdou0Xaptsu0Xa5tobYrtF2p7SptV2u7Rtu12q7Tdr22G7TdqO0mbTdru0Xbrdpu03a7tju03antLm13a7tH273a/qftPm33a3tA24PaHtL2sLZHtD2q7TFtj2t7QtsibU9qW6ztKW1Pa3tG27PantO2RNvz2pZqe0HbMm0valuu7SVtK7St1Paytle0rdL2qrbXtL2u7Q1tb2p7S9vb2t7R9q6297S9r+0DbR9q+0jbx9o+0fapts+0fa7tC21favtK29favtH2rbbvtH2v7QdtP2r7SdvP2n7R9qu237T9ru0PbX9q+0vb39r+0WYEPU1bDW3p2jK0ZWrL0lZTWy1t2dpytNXWVkdbXW31tNXXlqutgbaG2hppa6ytibam2rbS1kxbc21ba9tG27battPWQtv22lpq20Hbjtp20raztl207aqtlbbW2tpoa6utnbb22jpo203b7trC2pS2iLY8bfnaCrQVaivSVqytRFtHbZ20ddbWRVtXbd20ddfWQ1tPbb209dbWR1tfbf209dc2QNtAbYO0DdY2RNtQbcO0Ddc2QttIbXtoG6VttLY9tY3Rtpe2sdrGadtb23ht+2iboG2itknaSrWVaSvXVqGtUluVtsnapmibqm2atn217adturYZ2mZq21/bAdoO1DZL22xtB2k7WNscbYdoO1TbYdoO13aEtiO1zdV2lLZ52o7WNl/bMdqO1XactuO1LdB2grYTtZ2k7WRtp2gz75c3724370U37xw37/M278o276E273g270827yY27/0179Q176s174I171k17zA17wc1794077VcqM28j9G869C8R9C8o8+8/868W868t828E828b8y8y8u8J8u8g8q838m8O8m8l8i888e8T8e8q8a8B8a8Y8W8v8S8G8S8d8O808K8L8K8i8G858C8Q8A8n988+948V/4xbeZ56OZZ4+Y53uYZ2eb50+bZzua5yeaZxOZ5v+ZZuuY5teYZsOb5qubZpea5oOaZm+Z5luZZkeY5jOYZh+b5gebZfOa5d+aZcuZ5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",
|
|
3588
|
-
"debug_symbols": "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Pdau7LF2ZY+1K3usXdlj7coea1f2WLuyx9qVPdauHLB2ZazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrt0+wevsEq7dPsHr7BKu3TxzUrixYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fQmrty9h9fYlrN6+hNXblxzUrpywevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C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",
|
|
3601
|
+
"bytecode": "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",
|
|
3602
|
+
"debug_symbols": "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",
|
|
3589
3603
|
"brillig_names": [
|
|
3590
|
-
"
|
|
3604
|
+
"get_contract_instance_internal",
|
|
3591
3605
|
"decompose_hint",
|
|
3592
|
-
"
|
|
3606
|
+
"lte_hint",
|
|
3607
|
+
"notify_created_nullifier_oracle_wrapper",
|
|
3608
|
+
"notify_created_note_oracle_wrapper",
|
|
3609
|
+
"debug_log_oracle_wrapper",
|
|
3610
|
+
"random",
|
|
3611
|
+
"field_less_than",
|
|
3593
3612
|
"build_msg_block",
|
|
3594
3613
|
"attach_len_to_msg_block",
|
|
3595
|
-
"
|
|
3596
|
-
"
|
|
3597
|
-
"
|
|
3598
|
-
"notify_set_min_revertible_side_effect_counter_oracle_wrapper",
|
|
3599
|
-
"notify_created_nullifier_oracle_wrapper",
|
|
3600
|
-
"directive_invert",
|
|
3614
|
+
"get_random_bytes",
|
|
3615
|
+
"get_app_tag_as_sender",
|
|
3616
|
+
"increment_app_tagging_secret_index_as_sender_wrapper",
|
|
3601
3617
|
"directive_integer_quotient",
|
|
3618
|
+
"directive_invert",
|
|
3602
3619
|
"directive_to_radix"
|
|
3603
3620
|
],
|
|
3604
|
-
"verification_key": "
|
|
3605
|
-
},
|
|
3606
|
-
{
|
|
3607
|
-
"name": "process_log",
|
|
3608
|
-
"is_unconstrained": true,
|
|
3609
|
-
"custom_attributes": [],
|
|
3610
|
-
"abi": {
|
|
3611
|
-
"error_types": {
|
|
3612
|
-
"16761564377371454734": {
|
|
3613
|
-
"error_kind": "string",
|
|
3614
|
-
"string": "Array index out of bounds"
|
|
3615
|
-
},
|
|
3616
|
-
"16954218183513903507": {
|
|
3617
|
-
"error_kind": "string",
|
|
3618
|
-
"string": "Attempted to read past end of BoundedVec"
|
|
3619
|
-
},
|
|
3620
|
-
"17843811134343075018": {
|
|
3621
|
-
"error_kind": "string",
|
|
3622
|
-
"string": "Stack too deep"
|
|
3623
|
-
},
|
|
3624
|
-
"2920182694213909827": {
|
|
3625
|
-
"error_kind": "string",
|
|
3626
|
-
"string": "attempt to subtract with overflow"
|
|
3627
|
-
},
|
|
3628
|
-
"5019202896831570965": {
|
|
3629
|
-
"error_kind": "string",
|
|
3630
|
-
"string": "attempt to add with overflow"
|
|
3631
|
-
},
|
|
3632
|
-
"6753155520859132764": {
|
|
3633
|
-
"error_kind": "string",
|
|
3634
|
-
"string": "Failed to deliver note"
|
|
3635
|
-
},
|
|
3636
|
-
"8270195893599566439": {
|
|
3637
|
-
"error_kind": "string",
|
|
3638
|
-
"string": "Invalid public keys hint for address"
|
|
3639
|
-
},
|
|
3640
|
-
"8861757336002045335": {
|
|
3641
|
-
"error_kind": "fmtstring",
|
|
3642
|
-
"item_types": [
|
|
3643
|
-
{
|
|
3644
|
-
"kind": "integer",
|
|
3645
|
-
"sign": "unsigned",
|
|
3646
|
-
"width": 32
|
|
3647
|
-
},
|
|
3648
|
-
{
|
|
3649
|
-
"kind": "integer",
|
|
3650
|
-
"sign": "unsigned",
|
|
3651
|
-
"width": 32
|
|
3652
|
-
},
|
|
3653
|
-
{
|
|
3654
|
-
"kind": "field"
|
|
3655
|
-
}
|
|
3656
|
-
],
|
|
3657
|
-
"length": 99
|
|
3658
|
-
},
|
|
3659
|
-
"9862881900111276825": {
|
|
3660
|
-
"error_kind": "fmtstring",
|
|
3661
|
-
"item_types": [
|
|
3662
|
-
{
|
|
3663
|
-
"kind": "field"
|
|
3664
|
-
}
|
|
3665
|
-
],
|
|
3666
|
-
"length": 35
|
|
3667
|
-
}
|
|
3668
|
-
},
|
|
3669
|
-
"parameters": [
|
|
3670
|
-
{
|
|
3671
|
-
"name": "log_plaintext",
|
|
3672
|
-
"type": {
|
|
3673
|
-
"fields": [
|
|
3674
|
-
{
|
|
3675
|
-
"name": "storage",
|
|
3676
|
-
"type": {
|
|
3677
|
-
"kind": "array",
|
|
3678
|
-
"length": 18,
|
|
3679
|
-
"type": {
|
|
3680
|
-
"kind": "field"
|
|
3681
|
-
}
|
|
3682
|
-
}
|
|
3683
|
-
},
|
|
3684
|
-
{
|
|
3685
|
-
"name": "len",
|
|
3686
|
-
"type": {
|
|
3687
|
-
"kind": "integer",
|
|
3688
|
-
"sign": "unsigned",
|
|
3689
|
-
"width": 32
|
|
3690
|
-
}
|
|
3691
|
-
}
|
|
3692
|
-
],
|
|
3693
|
-
"kind": "struct",
|
|
3694
|
-
"path": "std::collections::bounded_vec::BoundedVec"
|
|
3695
|
-
},
|
|
3696
|
-
"visibility": "private"
|
|
3697
|
-
},
|
|
3698
|
-
{
|
|
3699
|
-
"name": "tx_hash",
|
|
3700
|
-
"type": {
|
|
3701
|
-
"kind": "field"
|
|
3702
|
-
},
|
|
3703
|
-
"visibility": "private"
|
|
3704
|
-
},
|
|
3705
|
-
{
|
|
3706
|
-
"name": "unique_note_hashes_in_tx",
|
|
3707
|
-
"type": {
|
|
3708
|
-
"fields": [
|
|
3709
|
-
{
|
|
3710
|
-
"name": "storage",
|
|
3711
|
-
"type": {
|
|
3712
|
-
"kind": "array",
|
|
3713
|
-
"length": 64,
|
|
3714
|
-
"type": {
|
|
3715
|
-
"kind": "field"
|
|
3716
|
-
}
|
|
3717
|
-
}
|
|
3718
|
-
},
|
|
3719
|
-
{
|
|
3720
|
-
"name": "len",
|
|
3721
|
-
"type": {
|
|
3722
|
-
"kind": "integer",
|
|
3723
|
-
"sign": "unsigned",
|
|
3724
|
-
"width": 32
|
|
3725
|
-
}
|
|
3726
|
-
}
|
|
3727
|
-
],
|
|
3728
|
-
"kind": "struct",
|
|
3729
|
-
"path": "std::collections::bounded_vec::BoundedVec"
|
|
3730
|
-
},
|
|
3731
|
-
"visibility": "private"
|
|
3732
|
-
},
|
|
3733
|
-
{
|
|
3734
|
-
"name": "first_nullifier_in_tx",
|
|
3735
|
-
"type": {
|
|
3736
|
-
"kind": "field"
|
|
3737
|
-
},
|
|
3738
|
-
"visibility": "private"
|
|
3739
|
-
},
|
|
3740
|
-
{
|
|
3741
|
-
"name": "recipient",
|
|
3742
|
-
"type": {
|
|
3743
|
-
"fields": [
|
|
3744
|
-
{
|
|
3745
|
-
"name": "inner",
|
|
3746
|
-
"type": {
|
|
3747
|
-
"kind": "field"
|
|
3748
|
-
}
|
|
3749
|
-
}
|
|
3750
|
-
],
|
|
3751
|
-
"kind": "struct",
|
|
3752
|
-
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
3753
|
-
},
|
|
3754
|
-
"visibility": "private"
|
|
3755
|
-
}
|
|
3756
|
-
],
|
|
3757
|
-
"return_type": null
|
|
3758
|
-
},
|
|
3759
|
-
"bytecode": "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",
|
|
3760
|
-
"debug_symbols": "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",
|
|
3761
|
-
"brillig_names": [
|
|
3762
|
-
"process_log"
|
|
3763
|
-
]
|
|
3764
|
-
},
|
|
3765
|
-
{
|
|
3766
|
-
"name": "sync_notes",
|
|
3767
|
-
"is_unconstrained": true,
|
|
3768
|
-
"custom_attributes": [],
|
|
3769
|
-
"abi": {
|
|
3770
|
-
"error_types": {
|
|
3771
|
-
"17843811134343075018": {
|
|
3772
|
-
"error_kind": "string",
|
|
3773
|
-
"string": "Stack too deep"
|
|
3774
|
-
}
|
|
3775
|
-
},
|
|
3776
|
-
"parameters": [],
|
|
3777
|
-
"return_type": null
|
|
3778
|
-
},
|
|
3779
|
-
"bytecode": "H4sIAAAAAAAA/7WTyw7CIBBFqcUo0sTEx39MU0y7dOHafyCtLHVRN+766dZkJkyI0QVwEzJMgMNcHoXwKjBKESGCHDEqjAs2Xs7tjDnEqVbBvin5HRijvvhLWH+jkFnk4QPxM50/rJBzmTyfe6F913PTrF8J/z5y+af7y+l//8OzRq9bzCvh/8P4uvfXx/M2ij/SbJGc0ptoOwAqvkT+EvmhJBvn8w+Yb4Svj6KMqNO1tnaNdfZkh8H0dhfwP+KH/QbzqHp4zgQAAA==",
|
|
3780
|
-
"debug_symbols": "bY/dCoMwDIXfJde9aKob01eRIVWjFEortQ6G+O5Lh0j3cxPOCV8OORsM1K1Ta9zoF6ibDazvdTTesdt2AV0w1pqpzdcg08DizS+zdskuUYcItSoKAeQGViXy/WgsQX1Vu/hBUaJUB8xaVSeO5e0/X+HJK5Qf/H1n+9DB6M7S8fy4uj7rEp8zfdWag+9pWAOlglk3ng1ehJIcy9Ev",
|
|
3781
|
-
"brillig_names": [
|
|
3782
|
-
"sync_notes"
|
|
3783
|
-
]
|
|
3621
|
+
"verification_key": "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"
|
|
3784
3622
|
},
|
|
3785
3623
|
{
|
|
3786
|
-
"name": "
|
|
3624
|
+
"name": "entrypoint",
|
|
3787
3625
|
"is_unconstrained": false,
|
|
3788
3626
|
"custom_attributes": [
|
|
3789
|
-
"private"
|
|
3790
|
-
"initializer"
|
|
3627
|
+
"private"
|
|
3791
3628
|
],
|
|
3792
3629
|
"abi": {
|
|
3793
3630
|
"error_types": {
|
|
3631
|
+
"11091894166229312484": {
|
|
3632
|
+
"error_kind": "fmtstring",
|
|
3633
|
+
"item_types": [],
|
|
3634
|
+
"length": 20
|
|
3635
|
+
},
|
|
3794
3636
|
"14514982005979867414": {
|
|
3795
3637
|
"error_kind": "string",
|
|
3796
3638
|
"string": "attempt to bit-shift with overflow"
|
|
@@ -3799,22 +3641,14 @@
|
|
|
3799
3641
|
"error_kind": "string",
|
|
3800
3642
|
"string": "Array index out of bounds"
|
|
3801
3643
|
},
|
|
3802
|
-
"
|
|
3644
|
+
"1705275289401561847": {
|
|
3803
3645
|
"error_kind": "string",
|
|
3804
|
-
"string": "
|
|
3646
|
+
"string": "Mismatch note header storage slot."
|
|
3805
3647
|
},
|
|
3806
3648
|
"17843811134343075018": {
|
|
3807
3649
|
"error_kind": "string",
|
|
3808
3650
|
"string": "Stack too deep"
|
|
3809
3651
|
},
|
|
3810
|
-
"2233873454491509486": {
|
|
3811
|
-
"error_kind": "string",
|
|
3812
|
-
"string": "Initializer address is not the contract deployer"
|
|
3813
|
-
},
|
|
3814
|
-
"2709101749560550278": {
|
|
3815
|
-
"error_kind": "string",
|
|
3816
|
-
"string": "Cannot serialize point at infinity as bytes."
|
|
3817
|
-
},
|
|
3818
3652
|
"2920182694213909827": {
|
|
3819
3653
|
"error_kind": "string",
|
|
3820
3654
|
"string": "attempt to subtract with overflow"
|
|
@@ -3823,9 +3657,13 @@
|
|
|
3823
3657
|
"error_kind": "string",
|
|
3824
3658
|
"string": "attempt to add with overflow"
|
|
3825
3659
|
},
|
|
3826
|
-
"
|
|
3660
|
+
"5727012404371710682": {
|
|
3827
3661
|
"error_kind": "string",
|
|
3828
|
-
"string": "
|
|
3662
|
+
"string": "push out of bounds"
|
|
3663
|
+
},
|
|
3664
|
+
"6869395374906889440": {
|
|
3665
|
+
"error_kind": "string",
|
|
3666
|
+
"string": "Mismatch note header contract address."
|
|
3829
3667
|
},
|
|
3830
3668
|
"7233212735005103307": {
|
|
3831
3669
|
"error_kind": "string",
|
|
@@ -4289,54 +4127,199 @@
|
|
|
4289
4127
|
"kind": "struct",
|
|
4290
4128
|
"path": "authwit::aztec::protocol_types::abis::gas_fees::GasFees"
|
|
4291
4129
|
}
|
|
4292
|
-
}
|
|
4293
|
-
],
|
|
4294
|
-
"kind": "struct",
|
|
4295
|
-
"path": "authwit::aztec::protocol_types::abis::gas_settings::GasSettings"
|
|
4130
|
+
}
|
|
4131
|
+
],
|
|
4132
|
+
"kind": "struct",
|
|
4133
|
+
"path": "authwit::aztec::protocol_types::abis::gas_settings::GasSettings"
|
|
4134
|
+
}
|
|
4135
|
+
}
|
|
4136
|
+
],
|
|
4137
|
+
"kind": "struct",
|
|
4138
|
+
"path": "authwit::aztec::protocol_types::transaction::tx_context::TxContext"
|
|
4139
|
+
}
|
|
4140
|
+
},
|
|
4141
|
+
{
|
|
4142
|
+
"name": "start_side_effect_counter",
|
|
4143
|
+
"type": {
|
|
4144
|
+
"kind": "integer",
|
|
4145
|
+
"sign": "unsigned",
|
|
4146
|
+
"width": 32
|
|
4147
|
+
}
|
|
4148
|
+
}
|
|
4149
|
+
],
|
|
4150
|
+
"kind": "struct",
|
|
4151
|
+
"path": "aztec::context::inputs::private_context_inputs::PrivateContextInputs"
|
|
4152
|
+
},
|
|
4153
|
+
"visibility": "private"
|
|
4154
|
+
},
|
|
4155
|
+
{
|
|
4156
|
+
"name": "app_payload",
|
|
4157
|
+
"type": {
|
|
4158
|
+
"fields": [
|
|
4159
|
+
{
|
|
4160
|
+
"name": "function_calls",
|
|
4161
|
+
"type": {
|
|
4162
|
+
"kind": "array",
|
|
4163
|
+
"length": 4,
|
|
4164
|
+
"type": {
|
|
4165
|
+
"fields": [
|
|
4166
|
+
{
|
|
4167
|
+
"name": "args_hash",
|
|
4168
|
+
"type": {
|
|
4169
|
+
"kind": "field"
|
|
4170
|
+
}
|
|
4171
|
+
},
|
|
4172
|
+
{
|
|
4173
|
+
"name": "function_selector",
|
|
4174
|
+
"type": {
|
|
4175
|
+
"fields": [
|
|
4176
|
+
{
|
|
4177
|
+
"name": "inner",
|
|
4178
|
+
"type": {
|
|
4179
|
+
"kind": "integer",
|
|
4180
|
+
"sign": "unsigned",
|
|
4181
|
+
"width": 32
|
|
4182
|
+
}
|
|
4183
|
+
}
|
|
4184
|
+
],
|
|
4185
|
+
"kind": "struct",
|
|
4186
|
+
"path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
|
|
4187
|
+
}
|
|
4188
|
+
},
|
|
4189
|
+
{
|
|
4190
|
+
"name": "target_address",
|
|
4191
|
+
"type": {
|
|
4192
|
+
"fields": [
|
|
4193
|
+
{
|
|
4194
|
+
"name": "inner",
|
|
4195
|
+
"type": {
|
|
4196
|
+
"kind": "field"
|
|
4197
|
+
}
|
|
4198
|
+
}
|
|
4199
|
+
],
|
|
4200
|
+
"kind": "struct",
|
|
4201
|
+
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
4202
|
+
}
|
|
4203
|
+
},
|
|
4204
|
+
{
|
|
4205
|
+
"name": "is_public",
|
|
4206
|
+
"type": {
|
|
4207
|
+
"kind": "boolean"
|
|
4208
|
+
}
|
|
4209
|
+
},
|
|
4210
|
+
{
|
|
4211
|
+
"name": "is_static",
|
|
4212
|
+
"type": {
|
|
4213
|
+
"kind": "boolean"
|
|
4214
|
+
}
|
|
4296
4215
|
}
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4216
|
+
],
|
|
4217
|
+
"kind": "struct",
|
|
4218
|
+
"path": "authwit::entrypoint::function_call::FunctionCall"
|
|
4219
|
+
}
|
|
4301
4220
|
}
|
|
4302
4221
|
},
|
|
4303
4222
|
{
|
|
4304
|
-
"name": "
|
|
4223
|
+
"name": "nonce",
|
|
4305
4224
|
"type": {
|
|
4306
|
-
"kind": "
|
|
4307
|
-
"sign": "unsigned",
|
|
4308
|
-
"width": 32
|
|
4225
|
+
"kind": "field"
|
|
4309
4226
|
}
|
|
4310
4227
|
}
|
|
4311
4228
|
],
|
|
4312
4229
|
"kind": "struct",
|
|
4313
|
-
"path": "
|
|
4230
|
+
"path": "authwit::entrypoint::app::AppPayload"
|
|
4314
4231
|
},
|
|
4315
4232
|
"visibility": "private"
|
|
4316
4233
|
},
|
|
4317
4234
|
{
|
|
4318
|
-
"name": "
|
|
4235
|
+
"name": "fee_payload",
|
|
4319
4236
|
"type": {
|
|
4320
|
-
"
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4237
|
+
"fields": [
|
|
4238
|
+
{
|
|
4239
|
+
"name": "function_calls",
|
|
4240
|
+
"type": {
|
|
4241
|
+
"kind": "array",
|
|
4242
|
+
"length": 2,
|
|
4243
|
+
"type": {
|
|
4244
|
+
"fields": [
|
|
4245
|
+
{
|
|
4246
|
+
"name": "args_hash",
|
|
4247
|
+
"type": {
|
|
4248
|
+
"kind": "field"
|
|
4249
|
+
}
|
|
4250
|
+
},
|
|
4251
|
+
{
|
|
4252
|
+
"name": "function_selector",
|
|
4253
|
+
"type": {
|
|
4254
|
+
"fields": [
|
|
4255
|
+
{
|
|
4256
|
+
"name": "inner",
|
|
4257
|
+
"type": {
|
|
4258
|
+
"kind": "integer",
|
|
4259
|
+
"sign": "unsigned",
|
|
4260
|
+
"width": 32
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4263
|
+
],
|
|
4264
|
+
"kind": "struct",
|
|
4265
|
+
"path": "authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"
|
|
4266
|
+
}
|
|
4267
|
+
},
|
|
4268
|
+
{
|
|
4269
|
+
"name": "target_address",
|
|
4270
|
+
"type": {
|
|
4271
|
+
"fields": [
|
|
4272
|
+
{
|
|
4273
|
+
"name": "inner",
|
|
4274
|
+
"type": {
|
|
4275
|
+
"kind": "field"
|
|
4276
|
+
}
|
|
4277
|
+
}
|
|
4278
|
+
],
|
|
4279
|
+
"kind": "struct",
|
|
4280
|
+
"path": "authwit::aztec::protocol_types::address::aztec_address::AztecAddress"
|
|
4281
|
+
}
|
|
4282
|
+
},
|
|
4283
|
+
{
|
|
4284
|
+
"name": "is_public",
|
|
4285
|
+
"type": {
|
|
4286
|
+
"kind": "boolean"
|
|
4287
|
+
}
|
|
4288
|
+
},
|
|
4289
|
+
{
|
|
4290
|
+
"name": "is_static",
|
|
4291
|
+
"type": {
|
|
4292
|
+
"kind": "boolean"
|
|
4293
|
+
}
|
|
4294
|
+
}
|
|
4295
|
+
],
|
|
4296
|
+
"kind": "struct",
|
|
4297
|
+
"path": "authwit::entrypoint::function_call::FunctionCall"
|
|
4298
|
+
}
|
|
4299
|
+
}
|
|
4300
|
+
},
|
|
4301
|
+
{
|
|
4302
|
+
"name": "nonce",
|
|
4303
|
+
"type": {
|
|
4304
|
+
"kind": "field"
|
|
4305
|
+
}
|
|
4306
|
+
},
|
|
4307
|
+
{
|
|
4308
|
+
"name": "is_fee_payer",
|
|
4309
|
+
"type": {
|
|
4310
|
+
"kind": "boolean"
|
|
4311
|
+
}
|
|
4312
|
+
}
|
|
4313
|
+
],
|
|
4314
|
+
"kind": "struct",
|
|
4315
|
+
"path": "authwit::entrypoint::fee::FeePayload"
|
|
4327
4316
|
},
|
|
4328
4317
|
"visibility": "private"
|
|
4329
4318
|
},
|
|
4330
4319
|
{
|
|
4331
|
-
"name": "
|
|
4320
|
+
"name": "cancellable",
|
|
4332
4321
|
"type": {
|
|
4333
|
-
"kind": "
|
|
4334
|
-
"length": 32,
|
|
4335
|
-
"type": {
|
|
4336
|
-
"kind": "integer",
|
|
4337
|
-
"sign": "unsigned",
|
|
4338
|
-
"width": 8
|
|
4339
|
-
}
|
|
4322
|
+
"kind": "boolean"
|
|
4340
4323
|
},
|
|
4341
4324
|
"visibility": "private"
|
|
4342
4325
|
}
|
|
@@ -5446,27 +5429,44 @@
|
|
|
5446
5429
|
"visibility": "databus"
|
|
5447
5430
|
}
|
|
5448
5431
|
},
|
|
5449
|
-
"bytecode": "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",
|
|
5450
|
-
"debug_symbols": "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",
|
|
5432
|
+
"bytecode": "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wJjrksScBYy5HknMNYEx1yeJuRYw5lySmLOBMTcgiTkHGHNDkphrA2NuRBJzHWDMjUlirguMuQlJzPWAMTclibk+MOatSGLOBcbcjCTmBsCYm5PE3BAY89YkMTcCxrwNScyNgTFvSxJzE2DM25HE3BQYcwuSmLcCxrw9SczNgDG3JIm5OTDmHUhi3hoY844kMW8DjHknkpi3Bca8M0nM2wFj3oUk5hbAmHcliXl7YMytSGJuCYy5NUnMOwBjbkMS847AmNuSxLwTMOZ2JDHvDIy5PUnMuwBj7kAS867AmHcDxqybMss5Qx9FAx6obZC2wdqGaBuqbZi24dpGaBupbQ9to7SN1rantjHa9tI2Vts4bXtrG69tH20TtE3UNklbqbYybeXaKrRVaqvSNlnbFG1TtU3Ttq+2/bRN1zZD20xt+2s7QNuB2mZpm63tIG0Ha5uj7RBth2o7TNvh2o7QdqS2udqO0jZP29Ha5ms7Rtux2o7Tdry2BdpO0HaitpO0naztFG2najtN2+naztB2praztJ2t7Rxt52o7T9v52i7QdqG2i7RdrO0SbZdqu0zb5doWartC25XartJ2tbZrtF2r7Tpt12u7QduN2m7SdrO2W7Tdqu02bbdru0Pbndru0na3tnu03avtf9ru03a/tge0PajtIW0Pa3tE26PaHtP2uLYntC3S9qS2xdqe0va0tme0PavtOW1LtD2vbam2F7Qt0/aituXaXtK2QttKbS9re0XbKm2vantN2+va3tD2pra3tL2t7R1t72p7T9v72j7Q9qG2j7R9rO0TbZ9q+0zb59q+0Paltq+0fa3tG23favtO2/faftD2o7aftP2s7Rdtv2r7Tdvv2v7Q9qe2v7T9re0fbWaBU5q2GtrStWVoy9SWpa2mtlrasrXlaKutrY62utrqaauvLVdbA20NtTXS1lhbE21NtW2lrZm25tq21raNtm21baethbbttbXUtoO2HbXtpG1nbbto21VbK22ttbXR1lZbO23ttXXQtpu23bWFtSltEW152vK1FWgr1FakrVhbibaO2jpp66yti7au2rpp666th7ae2npp662tj7a+2vpp669tgLaB2gZpG6xtiLah2oZpG65thLaR2vbQNkrbaG17ahujbS9tY7WN07a3tvHa9tE2QdtEbZO0lWor01aurUJbpbYqbZO1TdE2Vds0bftq20/bdG0ztM3Utr+2A7QdqG2WttnaDtJ2sLY52g7Rdqi2w7Qdru0IbUdqm6vtKG3ztB2tbb62Y7Qdq+04bcdrW6DtBG0najtJ28naTtF2qrbTtJ2u7QxtZ2o7S9vZ2s7Rdq6287Sdr+0CbRdqu0jbxdou0Xaptsu0Xa5tobYrtF2p7SptV2u7Rtu12q7Tdr22G7TdqO0mbTdru0Xbrdpu03a7tju03antLm13a7tH273a/qftPm33a3tA24PaHtL2sLZHtD2q7TFtj2t7QtsibU9qW6ztKW1Pa3tG27PantO2RNvz2pZqe0HbMm0valuu7SVtK7St1Paytle0rdL2qrbXtL2u7Q1tb2p7S9vb2t7R9q6297S9r+0DbR9q+0jbx9o+0fapts+0fa7tC21favtK29favtH2rbbvtH2v7QdtP2r7SdvP2n7R9qu237T9ru0PbX9q+0vb39r+0WYEPU1bDW3p2jK0ZWrL0lZTWy1t2dpytNXWVkdbXW31tNXXlqutgbaG2hppa6ytibam2rbS1kxbc21ba9tG27battPWQtv22lpq20Hbjtp20raztl207aqtlbbW2tpoa6utnbb22jpo203b7trC2pS2iLY8bfnaCrQVaivSVqytRFtHbZ20ddbWRVtXbd20ddfWQ1tPbb209dbWR1tfbf209dc2QNtAbYO0DdY2RNtQbcO0Ddc2QttIbXtoG6VttLY9tY3Rtpe2sdrGadtb23ht+2iboG2itknaSrWVaSvXVqGtUluVtsnapmibqm2atn217adturYZ2mZq21/bAdoO1DZL22xtB2k7WNscbYdoO1TbYdoO13aEtiO1zdV2lLZ52o7WNl/bMdqO1XactuO1LdB2grYTtZ2k7WRtp2gz75c3724370U37xw37/M278o276E273g270827yY27/0179Q176s174I171k17zA17wc1794077VcqM28j9G869C8R9C8o8+8/868W868t828E828b8y8y8u8J8u8g8q838m8O8m8l8i888e8T8e8q8a8B8a8Y8W8v8S8G8S8d8O808K8L8K8i8G858C8Q8A8n988+948V/4xbeZ56OZZ4+Y53uYZ2eb50+bZzua5yeaZxOZ5v+ZZuuY5teYZsOb5qubZpea5oOaZm+Z5luZZkeY5jOYZh+b5gebZfOa5d+aZcuZ5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",
|
|
5433
|
+
"debug_symbols": "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sXZlj7Ure6xd2WPtyh5rV/ZYu7LH2pU91q4csHZlrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3L2L19kWs3r6I1dsXsXr7IlZvX8Tq7YtYvX0Rq7cvYvX2RazevojV2xexevsiVm9fxOrti1i9fRGrty9i9fZFrN6+iNXbF7F6+yJWb1/E6u2LWL19Eau3T7B6+wSrt0+wevsEq7dPHNSuLFi9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19gtXbJ1i9fYLV2ydYvX2C1dsnWL19Cau3L2H19iWs3r6E1duXHNSunLB6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtYvX0Jq7cvYfX2JazevoTV25ewevsSVm9fwurtS1i9fQmrty9h9fYlrN6+hNXbl7B6+xJWb1/C6u1LWL19Cau3L2H19iWs3r6E1duXsHr7ElZvX8Lq7UtY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joaWohMeqTS0FB0NLUVHQ0vR0dBSdDy05HloyfPQkuehJc9DS4d7bp8olYeWPA8teR5a8jy05HloKfDQUuChpcBDS4GHlg733D5RKg8tBR5aCjy0FHhoKfDQUuShpchDS5GHliIPLR3uuX2iVB5aijy0FHloKfLQUuShJeGhJeGhJeGhJeGhpcM9t0+UykNLwkNLwkNLwkNLwkNLiYeWEg8tJR5aSjy0dLjn9olSeWgp8dBS4qGlxENLiYeWlIeWlIeWlIeWlIeWDvfcPlHqVLRUc3yNOhUt1aVORUt1qdC0ZFbcmkf29ij1I31oAmqmb9BU004fmlTa6UPTRzt9aKJopy9jpw9d+dvpQ1fzdvrQFbqd/thVF9vnuZk+tndzO/2xqy62x3I7/bGrLrYXcjv9sasutmdxO/2xqy62t3A7/bGrLrYHcDv9sasutldvO/2xqy62p247/bGrLrb3bTv9sasutkdtO/2hq65ge8m20x+66gq252s7/aGrrrihq65g+6220x+66gq2L2o7/aGrrmD7lzbTx/Ykbac/dtXF9g5tpz921cX2+GynP3bVxfbibKc/dtXF9sxspz921cX2tmynP3bVxfagbKc/dtXF9opspz921cX2dGynP3bVxfZebKc/dtXF9khspz921cX2MmynP3bVxfYcbKc/dtXF9gZspz921cX28GunP3bVxfbaa6c/dtXF9sRrpz921cX2rmunT9MzLHP50dWlDtsz/JH+0dU8xdto+qS+nr568behX65eLw7Jf8u+jJz94U5w+2Z/dCnX8DCVU2PilxTLukzSQ/4v13gIudwuD6GE/LRODvd3O1dtpFIrVGoTlVqlUmtUavM8atWvWWvw6VlrAdYanM96e1QuFv+U/uE2bp9L30pe08/fz7QXjyqn9YUgm//xhUCRuWhnqchQtLNUZCLaWarwSEVmoZ2lIoPQzlKRKeizUqs+hKLICLSzVGwC2lOqzURLDakz0VJD6ky01JA6Ey01pAqP1JloqSF1JlpqSOWhJeOhJeOhpcxDS5mHljIPLWUeWjrchvBEqTy0lHloKfPQUuahpcxDS4WHlgoPLRUeWio8tHS4feSJUnloqfDQUuGhpcJDS4WGlpKjoaXkaGgpORpaSo6GlpITHqk0tJQcDS0lR0NLydHQUnI8tOR5aMnz0JLnoSXPQ0uH27We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",
|
|
5451
5434
|
"brillig_names": [
|
|
5452
|
-
"
|
|
5435
|
+
"get_note_internal",
|
|
5453
5436
|
"decompose_hint",
|
|
5454
|
-
"
|
|
5455
|
-
"notify_created_nullifier_oracle_wrapper",
|
|
5456
|
-
"notify_created_note_oracle_wrapper",
|
|
5457
|
-
"debug_log_oracle_wrapper",
|
|
5458
|
-
"random",
|
|
5459
|
-
"field_less_than",
|
|
5437
|
+
"get_auth_witness",
|
|
5460
5438
|
"build_msg_block",
|
|
5461
5439
|
"attach_len_to_msg_block",
|
|
5462
|
-
"
|
|
5463
|
-
"
|
|
5464
|
-
"
|
|
5465
|
-
"
|
|
5440
|
+
"enqueue_public_function_call_internal",
|
|
5441
|
+
"call_private_function_internal",
|
|
5442
|
+
"debug_log_oracle_wrapper",
|
|
5443
|
+
"notify_set_min_revertible_side_effect_counter_oracle_wrapper",
|
|
5444
|
+
"notify_created_nullifier_oracle_wrapper",
|
|
5466
5445
|
"directive_invert",
|
|
5446
|
+
"directive_integer_quotient",
|
|
5467
5447
|
"directive_to_radix"
|
|
5468
5448
|
],
|
|
5469
|
-
"verification_key": "
|
|
5449
|
+
"verification_key": "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"
|
|
5450
|
+
},
|
|
5451
|
+
{
|
|
5452
|
+
"name": "sync_notes",
|
|
5453
|
+
"is_unconstrained": true,
|
|
5454
|
+
"custom_attributes": [],
|
|
5455
|
+
"abi": {
|
|
5456
|
+
"error_types": {
|
|
5457
|
+
"17843811134343075018": {
|
|
5458
|
+
"error_kind": "string",
|
|
5459
|
+
"string": "Stack too deep"
|
|
5460
|
+
}
|
|
5461
|
+
},
|
|
5462
|
+
"parameters": [],
|
|
5463
|
+
"return_type": null
|
|
5464
|
+
},
|
|
5465
|
+
"bytecode": "H4sIAAAAAAAA/7WTyw7CIBBFqcUo0sTEx39MU0y7dOHafyCtLHVRN+766dZkJkyI0QVwEzJMgMNcHoXwKjBKESGCHDEqjAs2Xs7tjDnEqVbBvin5HRijvvhLWH+jkFnk4QPxM50/rJBzmTyfe6F913PTrF8J/z5y+af7y+l//8OzRq9bzCvh/8P4uvfXx/M2ij/SbJGc0ptoOwAqvkT+EvmhJBvn8w+Yb4Svj6KMqNO1tnaNdfZkh8H0dhfwP+KH/QbzqHp4zgQAAA==",
|
|
5466
|
+
"debug_symbols": "bY/dCoMwDIXfJde9aKob01eRIVWjFEortQ6G+O5Lh0j3cxPOCV8OORsM1K1Ta9zoF6ibDazvdTTesdt2AV0w1pqpzdcg08DizS+zdskuUYcItSoKAeQGViXy/WgsQX1Vu/hBUaJUB8xaVSeO5e0/X+HJK5Qf/H1n+9DB6M7S8fy4uj7rEp8zfdWag+9pWAOlglk3ng1ehJIcy9Ev",
|
|
5467
|
+
"brillig_names": [
|
|
5468
|
+
"sync_notes"
|
|
5469
|
+
]
|
|
5470
5470
|
}
|
|
5471
5471
|
],
|
|
5472
5472
|
"outputs": {
|
|
@@ -5641,33 +5641,6 @@
|
|
|
5641
5641
|
"kind": "struct",
|
|
5642
5642
|
"path": "EcdsaKAccount::constructor_abi"
|
|
5643
5643
|
},
|
|
5644
|
-
{
|
|
5645
|
-
"fields": [
|
|
5646
|
-
{
|
|
5647
|
-
"name": "parameters",
|
|
5648
|
-
"type": {
|
|
5649
|
-
"fields": [
|
|
5650
|
-
{
|
|
5651
|
-
"name": "inner_hash",
|
|
5652
|
-
"type": {
|
|
5653
|
-
"kind": "field"
|
|
5654
|
-
}
|
|
5655
|
-
}
|
|
5656
|
-
],
|
|
5657
|
-
"kind": "struct",
|
|
5658
|
-
"path": "EcdsaKAccount::verify_private_authwit_parameters"
|
|
5659
|
-
}
|
|
5660
|
-
},
|
|
5661
|
-
{
|
|
5662
|
-
"name": "return_type",
|
|
5663
|
-
"type": {
|
|
5664
|
-
"kind": "field"
|
|
5665
|
-
}
|
|
5666
|
-
}
|
|
5667
|
-
],
|
|
5668
|
-
"kind": "struct",
|
|
5669
|
-
"path": "EcdsaKAccount::verify_private_authwit_abi"
|
|
5670
|
-
},
|
|
5671
5644
|
{
|
|
5672
5645
|
"fields": [
|
|
5673
5646
|
{
|
|
@@ -5850,6 +5823,33 @@
|
|
|
5850
5823
|
],
|
|
5851
5824
|
"kind": "struct",
|
|
5852
5825
|
"path": "EcdsaKAccount::entrypoint_abi"
|
|
5826
|
+
},
|
|
5827
|
+
{
|
|
5828
|
+
"fields": [
|
|
5829
|
+
{
|
|
5830
|
+
"name": "parameters",
|
|
5831
|
+
"type": {
|
|
5832
|
+
"fields": [
|
|
5833
|
+
{
|
|
5834
|
+
"name": "inner_hash",
|
|
5835
|
+
"type": {
|
|
5836
|
+
"kind": "field"
|
|
5837
|
+
}
|
|
5838
|
+
}
|
|
5839
|
+
],
|
|
5840
|
+
"kind": "struct",
|
|
5841
|
+
"path": "EcdsaKAccount::verify_private_authwit_parameters"
|
|
5842
|
+
}
|
|
5843
|
+
},
|
|
5844
|
+
{
|
|
5845
|
+
"name": "return_type",
|
|
5846
|
+
"type": {
|
|
5847
|
+
"kind": "field"
|
|
5848
|
+
}
|
|
5849
|
+
}
|
|
5850
|
+
],
|
|
5851
|
+
"kind": "struct",
|
|
5852
|
+
"path": "EcdsaKAccount::verify_private_authwit_abi"
|
|
5853
5853
|
}
|
|
5854
5854
|
]
|
|
5855
5855
|
}
|
|
@@ -5943,19 +5943,19 @@
|
|
|
5943
5943
|
"path": "std/field/bn254.nr",
|
|
5944
5944
|
"source": "use crate::field::field_less_than;\nuse crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\npub(crate) global TWO_POW_128: Field = 0x100000000000000000000000000000000;\nglobal TWO_POW_64: Field = 0x10000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(mut x: Field) -> (Field, Field) {\n // Here's we're taking advantage of truncating 64 bit limbs from the input field\n // and then subtracting them from the input such the field division is equivalent to integer division.\n let low_lower_64 = (x as u64) as Field;\n x = (x - low_lower_64) / TWO_POW_64;\n let low_upper_64 = (x as u64) as Field;\n\n let high = (x - low_upper_64) / TWO_POW_64;\n let low = low_upper_64 * TWO_POW_64 + low_lower_64;\n\n (low, high)\n}\n\npub(crate) unconstrained fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nunconstrained fn lte_hint(x: Field, y: Field) -> bool {\n if x == y {\n true\n } else {\n field_less_than(x, y)\n }\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n /// Safety: borrow is enforced to be boolean due to its type.\n /// if borrow is 0, it asserts that (alo > blo && ahi >= bhi)\n /// if borrow is 1, it asserts that (alo <= blo && ahi > bhi)\n unsafe {\n let borrow = lte_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size::<128>();\n rhi.assert_max_bit_size::<128>();\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n /// Safety: decomposition is properly checked below\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size::<128>();\n xhi.assert_max_bit_size::<128>();\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(\n /// Safety: already unconstrained\n unsafe { field_less_than(b, a) },\n );\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n /// Safety: unsafe in unconstrained\n unsafe {\n field_less_than(b, a)\n }\n } else if a == b {\n false\n } else {\n /// Safety: Take a hint of the comparison and verify it\n unsafe {\n if field_less_than(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{assert_gt, decompose, gt, lte_hint, PHI, PLO, TWO_POW_128};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_lte_hint() {\n assert(lte_hint(0, 1));\n assert(lte_hint(0, 0x100));\n assert(lte_hint(0x100, TWO_POW_128 - 1));\n assert(!lte_hint(0 - 1, 0));\n\n assert(lte_hint(0, 0));\n assert(lte_hint(0x100, 0x100));\n assert(lte_hint(0 - 1, 0 - 1));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"
|
|
5945
5945
|
},
|
|
5946
|
-
"
|
|
5946
|
+
"183": {
|
|
5947
5947
|
"path": "/build-volume/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
|
|
5948
5948
|
"source": "/// Returns `DST_LEN` elements from a source array, starting at `offset`. `DST_LEN` must not be larger than the number\n/// of elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SRC_LEN: u32, let DST_LEN: u32>(\n src: [T; SRC_LEN],\n offset: u32,\n) -> [T; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"DST_LEN too large for offset\");\n\n let mut dst: [T; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DST_LEN to be 0, so we always get back an emtpy array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
|
|
5949
5949
|
},
|
|
5950
|
-
"
|
|
5950
|
+
"184": {
|
|
5951
5951
|
"path": "/build-volume/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
|
|
5952
5952
|
"source": "use crate::utils::array;\n\n/// Returns `DST_MAX_LEN` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DST_LEN` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DST_LEN` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SRC_MAX_LEN: u32, let DST_MAX_LEN: u32>(\n vec: BoundedVec<T, SRC_MAX_LEN>,\n offset: u32,\n) -> BoundedVec<T, DST_MAX_LEN> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(vec.storage(), offset), vec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not supprt capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DST_LEN too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
|
|
5953
5953
|
},
|
|
5954
|
-
"
|
|
5954
|
+
"185": {
|
|
5955
5955
|
"path": "/build-volume/noir-projects/aztec-nr/aztec/src/utils/bytes.nr",
|
|
5956
5956
|
"source": "use crate::oracle::random::random;\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole bytes.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted into a Field. If the last chunk\n/// is less than 31 bytes long, then only the relevant bytes are considered.\n/// For example, [1, 10, 3] is encoded as [1 * 256^2 + 10 * 256 + 3]\n/// Note: ceil(N / 31) = (N + 30) / 31\npub fn be_bytes_31_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; (N + 30) / 31] {\n let mut fields = [0; (N + 30) / 31];\n\n // There are N / 31 whole fields that can be populated.\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + j] as Field;\n }\n fields[i] = field;\n }\n\n // Note: if 31 divides N, then this loop does not execute.\n // ceil(N/31) - floor(N/31) = 1, unless 31 divides N, in which case it's 0.\n for _ in 0..((N + 30) / 31) - (N / 31) {\n let mut final_field = 0;\n let final_field_idx = fields.len() - 1;\n let final_offset = final_field_idx * 31;\n // N - ((N / 31) * 31) = N - floor(N/31) * 31 = the number of bytes to go in the final field.\n for j in 0..N - ((N / 31) * 31) {\n // Shift the existing value left by 8 bits and add the new byte\n final_field = final_field * 256 + bytes[final_offset + j] as Field;\n }\n\n fields[final_field_idx] = final_field;\n }\n\n fields\n}\n\npub fn le_bytes_31_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; (N + 30) / 31] {\n let mut fields = [0; (N + 30) / 31];\n\n // There are N / 31 whole fields that can be populated.\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n let k = 31 - j - 1; // iterate in reverse.\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + k] as Field;\n }\n fields[i] = field;\n }\n\n // Note: if 31 divides N, then this loop does not execute.\n // ceil(N/31) - floor(N/31) = 1, unless 31 divides N, in which case it's 0.\n for _ in 0..((N + 30) / 31) - (N / 31) {\n let mut final_field = 0;\n let final_field_idx = fields.len() - 1;\n let final_offset = final_field_idx * 31;\n // N - ((N / 31) * 31) = N - floor(N/31) * 31 = the number of bytes to go in the final field.\n for j in 0..N - ((N / 31) * 31) {\n let k = (N - ((N / 31) * 31)) - j - 1; // iterate in reverse.\n // Shift the existing value left by 8 bits and add the new byte\n final_field = final_field * 256 + bytes[final_offset + k] as Field;\n }\n fields[final_field_idx] = final_field;\n }\n\n fields\n}\n\n/// Converts an input array of fields into a single array of bytes.\n/// Each input field must contain only 31 bytes (this is constrained to be so).\n/// Each field is converted into 31 big-endian bytes, and the resulting 31-byte\n/// chunks are concatenated back together in the order of the original fields.\n///\n/// It appears that the original author of this function wants to give the caller some control\n/// over the number of bytes that are returned: the final field can be mapped to fewer than 31 bytes,\n/// based on the caller's choice of M.\n/// Given the input is N fields, and each field (except the last) is mapped to 31 bytes,\n/// we definitely need M > (N - 1) * 31 to cover those first (N - 1) fields. Hence the static assertion.\n/// TODO: this is the same as the \"le\" version of this function, save for the `field.to_be_bytes()` calls. I tried passing the conversion function in as a parameter, to reduce code duplication, but couldn't get it to work.\npub fn fields_to_be_bytes_31<let N: u32, let M: u32>(fields: [Field; N]) -> [u8; M] {\n let mut bytes = [0; M];\n\n std::static_assert(M > (N - 1) * 31, \"Not enough output bytes specified\");\n // We make this assertion to keep the logic simpler:\n std::static_assert(N * 31 >= M, \"Too many output bytes specified.\");\n\n for i in 0..N - 1 {\n let field = fields[i];\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_be_bytes();\n\n for j in 0..31 {\n bytes[i * 31 + j] = field_as_bytes[j];\n }\n }\n\n let final_field = fields[N - 1];\n final_field.assert_max_bit_size::<8 * (M - ((N - 1) * 31))>();\n\n let final_field_as_bytes: [u8; M - ((N - 1) * 31)] = final_field.to_be_bytes();\n\n let start_index = (N - 1) * 31;\n for j in 0..M - ((N - 1) * 31) {\n bytes[start_index + j] = final_field_as_bytes[j];\n }\n\n bytes\n}\n\n/// Converts an input array of fields into a single array of bytes.\n/// Each input field must contain only 31 bytes (this is constrained to be so).\n/// Each field is converted into 31 little-endian bytes, and the resulting 31-byte\n/// chunks are concatenated back together in the order of the original fields. You'll\n/// end up with quite a strange ordering of bytes if you use this particular function.\npub fn fields_to_le_bytes_31<let N: u32, let M: u32>(fields: [Field; N]) -> [u8; M] {\n let mut bytes = [0; M];\n\n std::static_assert(M > (N - 1) * 31, \"Not enough output bytes specified\");\n // We make this assertion to keep the logic simpler:\n std::static_assert(N * 31 >= M, \"Too many output bytes specified.\");\n\n for i in 0..N - 1 {\n let field = fields[i];\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_le_bytes();\n\n for j in 0..31 {\n bytes[i * 31 + j] = field_as_bytes[j];\n }\n }\n\n let final_field = fields[N - 1];\n final_field.assert_max_bit_size::<8 * (M - ((N - 1) * 31))>();\n\n let final_field_as_bytes: [u8; M - ((N - 1) * 31)] = final_field.to_le_bytes();\n\n let start_index = (N - 1) * 31;\n for j in 0..M - ((N - 1) * 31) {\n bytes[start_index + j] = final_field_as_bytes[j];\n }\n\n bytes\n}\n\n/// Converts an input array of fields into a single array of bytes.\n/// Each field is converted to a 32-byte big-endian array.\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end,\n/// every 32 bytes. Be careful that such a gap doesn't leak information!\npub fn fields_to_be_bytes_32<let N: u32>(fields: [Field; N]) -> [u8; 32 * N] {\n let mut bytes = [0; 32 * N];\n\n for i in 0..N {\n let field = fields[i];\n let field_as_bytes: [u8; 32] = field.to_be_bytes();\n\n for j in 0..32 {\n bytes[i * 32 + j] = field_as_bytes[j];\n }\n }\n\n bytes\n}\n\nunconstrained fn byte_to_bits(byte: u8) -> [u1; 8] {\n let mut mut_byte = byte;\n let mut bits: [u1; 8] = [0; 8];\n for i in 0..8 {\n bits[i] = (mut_byte & 1) as u1;\n mut_byte >>= 1;\n }\n bits\n}\n\n/// Returns as many random bytes as specified through N.\npub unconstrained fn get_random_bytes<let N: u32>() -> [u8; N] {\n let mut bytes = [0; N];\n let mut idx = 32;\n let mut randomness = [0; 32];\n for i in 0..N {\n if idx == 32 {\n randomness = random().to_be_bytes();\n idx = 1; // Skip the first byte as it's always 0.\n }\n bytes[i] = randomness[idx];\n idx += 1;\n }\n bytes\n}\n\n/// Returns as many random bits as specified through N.\nunconstrained fn get_random_bits<let N: u32>() -> [u1; N] {\n // Note: (N + 7) / 8 = ceil(N / 8)\n let bytes = get_random_bytes::<(N + 7) / 8>();\n let mut bits: [u1; N] = [0; N];\n for i in 0..bytes.len() - 1 {\n let mut byte = bytes[i];\n for j in 0..8 {\n let bit_idx = i * 8 + j;\n bits[bit_idx] = (byte & 1) as u1;\n byte >>= 1;\n }\n }\n\n // N - ((N / 8) * 8) = N - floor(N/8) * 8 = the number of bits remaining.\n let byte_idx = bytes.len() - 1;\n let mut byte = bytes[byte_idx];\n for j in 0..N - ((N / 8) * 8) {\n let bit_idx = (byte_idx) * 8 + j;\n bits[bit_idx] = (byte & 1) as u1;\n byte >>= 1;\n }\n\n bits\n}\n\n/// Returns random bits, in chunks, according to the provided numeric generics.\nunconstrained fn get_chunks_of_random_bits<let NUM_CHUNKS: u32, let NUM_BITS: u32>() -> [[u1; NUM_BITS]; NUM_CHUNKS] {\n let random_bits = get_random_bits::<NUM_CHUNKS * NUM_BITS>();\n let mut chunks: [[u1; NUM_BITS]; NUM_CHUNKS] = [[0; NUM_BITS]; NUM_CHUNKS];\n for i in 0..NUM_CHUNKS {\n let mut chunk: [u1; NUM_BITS] = [0; NUM_BITS];\n for j in 0..NUM_BITS {\n chunk[j] = random_bits[i * NUM_BITS + j];\n }\n chunks[i] = chunk;\n }\n chunks\n}\n\n/**\n * Helper fn for be/le_bytes_to_padded_fields() fns.\n */\nfn pad_31_byte_fields_with_random_bits<let N: u32>(input: [Field; N]) -> [Field; N] {\n /// Safety: we can't constrain whether or not the returned bits are actually random;\n /// we can only rely on it being in the caller's best interest.\n let chunks_of_random_bits = unsafe { get_chunks_of_random_bits::<((N + 30) / 31), 6>() };\n let mut fields = input;\n // We push the random bits to the \"big end\" of each field\n let TWO_POW_248 = 0x100000000000000000000000000000000000000000000000000000000000000;\n for i in 0..fields.len() {\n let mut shift = TWO_POW_248;\n for j in 0..5 {\n fields[i] += shift * chunks_of_random_bits[i][j] as Field;\n shift *= 2;\n }\n\n // This might overflow the field modulus, so we need to be careful.\n // By this point, shift = 2 ^ 253, so will populate the 254th bit (counting from 1)\n let field_with_254th_bit = fields[i] + shift * chunks_of_random_bits[i][6 - 1] as Field;\n\n // Expensive comparison (one for each field), but it's important -- if we want to hide that we were\n // working with bytes -- that we include the 254th random bit when it fits.\n fields[i] = if (fields[i].lt(field_with_254th_bit)) {\n field_with_254th_bit\n } else {\n fields[i]\n };\n }\n fields\n}\n\n/**\n * The above functions be_bytes_31_to_fields and le_bytes_31_to_fields have a privacy-leakage problem:\n * they result in fields which are all 248-bits instead of 254-bits.\n * That means if the above functions are used to convert a ciphertext from bytes to\n * fields, it leaks (with very high probability) to all observers of the log that the\n * ciphertext was created with a \"bit twiddly\" encryption scheme like AES.\n * This reduces privacy sets for all apps.\n *\n * This function seeks to \"pad\" those remaining 6 bits with randomness, so that all\n * encrypted logs look even more similar (full fields of 254-bits of random-looking\n * information). Of course, this adds some extra constraints, unfortunately.\n */\npub fn le_bytes_to_padded_fields<let N: u32>(input: [u8; N]) -> [Field; (N + 30) / 31] {\n let mut fields = le_bytes_31_to_fields(input);\n pad_31_byte_fields_with_random_bits(fields)\n}\n\npub fn be_bytes_to_padded_fields<let N: u32>(input: [u8; N]) -> [Field; (N + 30) / 31] {\n let mut fields = be_bytes_31_to_fields(input);\n pad_31_byte_fields_with_random_bits(fields)\n}\n\nmod test {\n use crate::utils::bytes::{\n be_bytes_31_to_fields, fields_to_be_bytes_31, fields_to_le_bytes_31, le_bytes_31_to_fields,\n };\n\n // BE BYTES\n\n #[test]\n fn test_be_bytes_31_to_1_field() {\n let input = [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31,\n ];\n let output = be_bytes_31_to_fields(input);\n\n assert_eq(output[0], 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f);\n }\n\n #[test]\n fn test_1_field_to_be_bytes_31() {\n let input = [0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f];\n let output: [u8; 31] = fields_to_be_bytes_31(input);\n\n assert_eq(\n output,\n [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n 24, 25, 26, 27, 28, 29, 30, 31,\n ],\n );\n }\n\n #[test]\n fn test_3_small_fields_to_be_bytes_31() {\n let input = [1, 2, 3];\n let output: [u8; 93] = fields_to_be_bytes_31(input);\n\n // Each field should occupy 31 bytes with the non-zero value being placed in the last one.\n assert_eq(\n output,\n [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 3,\n ],\n );\n }\n\n #[test]\n fn test_3_small_fields_to_fewer_be_bytes() {\n let input = [1, 2, 3];\n let output: [u8; 63] = fields_to_be_bytes_31(input);\n println(f\"output: {output}\");\n\n // First 2 fields should occupy 31 bytes with the non-zero value being placed in the last one while the last\n // field should occupy 1 byte. There is not information destruction here because the last field fits into\n // 1 byte.\n assert_eq(\n output,\n [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 2, 3,\n ],\n );\n }\n\n #[test]\n fn test_be_bytes_31_to_2_fields() {\n let input = [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,\n 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n ];\n let output = be_bytes_31_to_fields(input);\n\n assert_eq(output[0], 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f);\n assert_eq(output[1], 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b);\n }\n\n #[test]\n fn test_2_fields_to_be_bytes_31() {\n let input = [\n 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f,\n 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b,\n ];\n let output: [u8; 62] = fields_to_be_bytes_31(input);\n\n assert_eq(\n output,\n [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n 24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,\n 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n ],\n );\n }\n\n #[test]\n fn test_large_random_be_bytes_31_input_to_fields_and_back(input: [u8; 128]) {\n let output = be_bytes_31_to_fields(input);\n let input_back: [u8; 128] = fields_to_be_bytes_31(output);\n\n assert_eq(input, input_back);\n }\n\n // I need to get an array of random values lower than 2^248 on input and since there is no u248 type and modulo\n // operation is not supported on a Field (to do field % 2^248), I will take multiple smaller values and combine\n // them to get a value lower than 2^248.\n #[test]\n fn test_large_random_input_to_be_bytes_31_and_back(\n input1: [u64; 5],\n input2: [u64; 5],\n input3: [u64; 5],\n input4: [u32; 5],\n input5: [u16; 5],\n input6: [u8; 5],\n ) {\n let mut input = [0; 5];\n for i in 0..5 {\n input[i] = (input1[i] as Field * 2.pow_32(184))\n + (input2[i] as Field * 2.pow_32(120))\n + (input3[i] as Field * 2.pow_32(56))\n + (input4[i] as Field * 2.pow_32(24))\n + (input5[i] as Field * 2.pow_32(8))\n + input6[i] as Field;\n }\n\n let output: [u8; 155] = fields_to_be_bytes_31(input);\n let input_back = be_bytes_31_to_fields(output);\n\n assert_eq(input, input_back);\n }\n\n #[test(should_fail_with = \"call to assert_max_bit_size\")]\n fn test_too_few_destination_be_bytes() {\n // We should get an error here because first field gets converted to 31 bytes and the second field needs\n // at least 2 bytes but we provide it with 1.\n let input = [1, 256];\n let _ignored_result: [u8; 32] = fields_to_be_bytes_31(input);\n }\n\n #[test(should_fail_with = \"call to assert_max_bit_size\")]\n fn test_fields_to_be_bytes_31_value_too_large() {\n let input = [2.pow_32(248)]; // this number is 1 bit larger than 31 bytes.\n let _ignored_result: [u8; 31] = fields_to_be_bytes_31(input);\n }\n\n #[test]\n fn test_fields_to_be_bytes_31_max_value() {\n let input = [2.pow_32(248) - 1];\n let result: [u8; 31] = fields_to_be_bytes_31(input);\n\n // We check that all the bytes were set to max value (255)\n for i in 0..31 {\n assert_eq(result[i], 255);\n }\n }\n\n // LE BYTES\n\n #[test]\n fn test_le_bytes_31_to_1_field() {\n let input = [\n 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10,\n 9, 8, 7, 6, 5, 4, 3, 2, 1,\n ];\n let output = le_bytes_31_to_fields(input);\n\n assert_eq(output[0], 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f);\n }\n\n #[test]\n fn test_1_field_to_le_bytes_31() {\n let input = [0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f];\n let output: [u8; 31] = fields_to_le_bytes_31(input);\n\n assert_eq(\n output,\n [\n 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,\n 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,\n ],\n );\n }\n\n #[test]\n fn test_3_small_fields_to_le_bytes_31() {\n let input = [1, 2, 3];\n let output: [u8; 93] = fields_to_le_bytes_31(input);\n\n // Each field should occupy 31 bytes with the non-zero value being placed in the last one.\n assert_eq(\n output,\n [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ],\n );\n }\n\n #[test]\n fn test_3_small_fields_to_fewer_le_bytes() {\n let input = [1, 2, 3];\n let output: [u8; 63] = fields_to_le_bytes_31(input);\n\n // First 2 fields should occupy 31 bytes with the non-zero value being placed in the last one while the last\n // field should occupy 1 byte. There is not information destruction here because the last field fits into\n // 1 byte.\n assert_eq(\n output,\n [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 3,\n ],\n );\n }\n\n #[test]\n fn test_le_bytes_31_to_2_fields() {\n let input = [\n 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38,\n 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16,\n 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,\n ];\n let output = le_bytes_31_to_fields(input);\n\n assert_eq(output[0], 0x1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b);\n assert_eq(output[1], 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c);\n }\n\n #[test]\n fn test_2_fields_to_le_bytes_31() {\n let input = [\n 0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f,\n 0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b,\n ];\n let output: [u8; 62] = fields_to_le_bytes_31(input);\n\n assert_eq(\n output,\n [\n 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11,\n 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47,\n 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 0, 0, 0,\n ],\n );\n }\n\n #[test]\n fn test_large_random_le_bytes_input_to_fields_and_back(input: [u8; 128]) {\n let output = le_bytes_31_to_fields(input);\n let input_back: [u8; 128] = fields_to_le_bytes_31(output);\n\n assert_eq(input, input_back);\n }\n\n // I need to get an array of random values lower than 2^248 on input and since there is no u248 type and modulo\n // operation is not supported on a Field (to do field % 2^248), I will take multiple smaller values and combine\n // them to get a value lower than 2^248.\n #[test]\n fn test_large_random_input_to_le_bytes_and_back(\n input1: [u64; 5],\n input2: [u64; 5],\n input3: [u64; 5],\n input4: [u32; 5],\n input5: [u16; 5],\n input6: [u8; 5],\n ) {\n let mut input = [0; 5];\n for i in 0..5 {\n input[i] = (input1[i] as Field * 2.pow_32(184))\n + (input2[i] as Field * 2.pow_32(120))\n + (input3[i] as Field * 2.pow_32(56))\n + (input4[i] as Field * 2.pow_32(24))\n + (input5[i] as Field * 2.pow_32(8))\n + input6[i] as Field;\n }\n\n let output: [u8; 155] = fields_to_le_bytes_31(input);\n let input_back = le_bytes_31_to_fields(output);\n\n assert_eq(input, input_back);\n }\n\n #[test(should_fail_with = \"call to assert_max_bit_size\")]\n fn test_too_few_destination_le_bytes() {\n // We should get an error here because first field gets converted to 31 bytes and the second field needs\n // at least 2 bytes but we provide it with 1.\n let input = [1, 256];\n let _ignored_result: [u8; 32] = fields_to_le_bytes_31(input);\n }\n\n #[test(should_fail_with = \"call to assert_max_bit_size\")]\n fn test_fields_to_le_bytes_31_value_too_large() {\n let input = [2.pow_32(248)];\n let _ignored_result: [u8; 31] = fields_to_le_bytes_31(input);\n }\n\n #[test]\n fn test_fields_to_le_bytes_31_max_value() {\n let input = [2.pow_32(248) - 1];\n let result: [u8; 31] = fields_to_le_bytes_31(input);\n\n // We check that all the bytes were set to max value (255)\n for i in 0..31 {\n assert_eq(result[i], 255);\n }\n }\n}\n"
|
|
5957
5957
|
},
|
|
5958
|
-
"
|
|
5958
|
+
"189": {
|
|
5959
5959
|
"path": "/build-volume/noir-projects/aztec-nr/aztec/src/utils/point.nr",
|
|
5960
5960
|
"source": "use crate::utils::field::sqrt;\nuse dep::protocol_types::point::Point;\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field =\n 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a point to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(p: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!p.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = p.x.to_be_bytes();\n\n if get_sign_of_point(p) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\n/**\n * Returns: true if p.y <= MOD_DIV_2, else false.\n */\npub fn get_sign_of_point(p: Point) -> bool {\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n !BN254_FR_MODULUS_DIV_2.lt(p.y)\n}\n\npub fn point_from_x_coord(x: Field) -> Point {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n let y = sqrt(rhs).unwrap();\n Point { x, y, is_infinite: false }\n}\n\nmod test {\n use crate::utils::point::point_to_bytes;\n use dep::protocol_types::point::Point;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122,\n 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115,\n ];\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169,\n 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181,\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n}\n"
|
|
5961
5961
|
},
|
|
@@ -5967,19 +5967,19 @@
|
|
|
5967
5967
|
"path": "std/hash/mod.nr",
|
|
5968
5968
|
"source": "pub mod poseidon;\npub mod poseidon2;\npub mod keccak;\npub mod sha256;\npub mod sha512;\n\nuse crate::default::Default;\nuse crate::embedded_curve_ops::{\n EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_array_return,\n};\nuse crate::meta::derive_via;\nuse crate::uint128::U128;\n\n// Kept for backwards compatibility\npub use sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\n#[inline_always]\npub fn pedersen_commitment_with_separator<let N: u32>(\n input: [Field; N],\n separator: u32,\n) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n pedersen_hash_with_separator(input, 0)\n}\n\n#[no_predicates]\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: [EmbeddedCurveScalar; N + 1] = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N + 1];\n let mut generators: [EmbeddedCurvePoint; N + 1] =\n [EmbeddedCurvePoint::point_at_infinity(); N + 1];\n let domain_generators: [EmbeddedCurvePoint; N] =\n derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n\n for i in 0..N {\n scalars[i] = from_field_unsafe(input[i]);\n generators[i] = domain_generators[i];\n }\n scalars[N] = EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field };\n\n let length_generator: [EmbeddedCurvePoint; 1] =\n derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n generators[N] = length_generator[0];\n multi_scalar_mul_array_return(generators, scalars)[0]\n}\n\n#[field(bn254)]\n#[inline_always]\npub fn derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32,\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n// Same as from_field but:\n// does not assert the limbs are 128 bits\n// does not assert the decomposition does not overflow the EmbeddedCurveScalar\nfn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n /// Safety: xlo and xhi decomposition is checked below\n let (xlo, xhi) = unsafe { crate::field::bn254::decompose_hint(scalar) };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support.\n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\npub trait Hash {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(\n s,\n name,\n signature,\n for_each_field,\n quote {},\n |fields| fields,\n )\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\npub trait Hasher {\n fn finish(self) -> Field;\n\n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\npub trait BuildHasher<H>\nwhere\n H: Hasher,\n{\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere\n H: Hasher + Default,\n{\n fn default() -> Self {\n BuildHasherDefault {}\n }\n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H)\n where\n H: Hasher,\n {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T]\nwhere\n T: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B)\nwhere\n A: Hash,\n B: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E)\nwhere\n A: Hash,\n B: Hash,\n C: Hash,\n D: Hash,\n E: Hash,\n{\n fn hash<H>(self, state: &mut H)\n where\n H: Hasher,\n {\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1),\n 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f,\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1),\n EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false,\n },\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2),\n 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2),\n EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3),\n 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3),\n EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4),\n 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4),\n EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5),\n 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5),\n EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6),\n 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6),\n EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7),\n EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8),\n EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9),\n EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false,\n },\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94,\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10),\n EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false,\n },\n );\n}\n"
|
|
5969
5969
|
},
|
|
5970
|
-
"
|
|
5970
|
+
"244": {
|
|
5971
5971
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr",
|
|
5972
5972
|
"source": "use crate::{point::Point, traits::{Deserialize, Empty, Serialize}};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct KeyValidationRequest {\n pub pk_m: Point,\n pub sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [self.pk_m.x, self.pk_m.y, self.pk_m.is_infinite as Field, self.sk_app]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool },\n sk_app: fields[3],\n }\n }\n}\n"
|
|
5973
5973
|
},
|
|
5974
|
-
"
|
|
5974
|
+
"251": {
|
|
5975
5975
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
|
|
5976
5976
|
"source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, ToPoint, TpkM},\n traits::{Deserialize, Empty, FromField, Packable, Serialize, ToField},\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse ec::{pow, sqrt};\nuse std::{\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n ops::Add,\n};\n\n// Aztec address\npub struct AztecAddress {\n pub 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 { inner: 0 }\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\n/// We implement the Packable trait for AztecAddress because it can be stored in contract's storage (and there\n/// the implementation of Packable is required).\nimpl Packable<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn pack(self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n self.serialize()\n }\n\n fn unpack(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n Self::deserialize(fields)\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_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\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn compute_preaddress_from_partial_and_pub_keys() {\n let pre_address = poseidon2_hash_with_separator([1, 2], GENERATOR_INDEX__CONTRACT_ADDRESS_V1);\n let expected_computed_preaddress_from_partial_and_pubkey =\n 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(pre_address == expected_computed_preaddress_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"
|
|
5977
5977
|
},
|
|
5978
|
-
"
|
|
5978
|
+
"254": {
|
|
5979
5979
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
|
|
5980
5980
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
5981
5981
|
},
|
|
5982
|
-
"
|
|
5982
|
+
"256": {
|
|
5983
5983
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
|
|
5984
5984
|
"source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
|
|
5985
5985
|
},
|
|
@@ -5987,19 +5987,19 @@
|
|
|
5987
5987
|
"path": "std/hash/poseidon2.nr",
|
|
5988
5988
|
"source": "use crate::default::Default;\nuse crate::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
|
|
5989
5989
|
},
|
|
5990
|
-
"
|
|
5990
|
+
"261": {
|
|
5991
5991
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr",
|
|
5992
5992
|
"source": "use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress},\n constants::CONTRACT_INSTANCE_LENGTH,\n contract_class_id::ContractClassId,\n public_keys::PublicKeys,\n traits::{Deserialize, FromField, Hash, Serialize, ToField},\n};\n\npub struct ContractInstance {\n pub salt: Field,\n pub deployer: AztecAddress,\n pub contract_class_id: ContractClassId,\n pub initialization_hash: Field,\n pub public_keys: PublicKeys,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys.eq(other.public_keys)\n & self.initialization_hash.eq(other.initialization_hash)\n & self.contract_class_id.eq(other.contract_class_id)\n & self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n let public_keys_serialized = self.public_keys.serialize();\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n public_keys_serialized[0],\n public_keys_serialized[1],\n public_keys_serialized[2],\n public_keys_serialized[3],\n public_keys_serialized[4],\n public_keys_serialized[5],\n public_keys_serialized[6],\n public_keys_serialized[7],\n public_keys_serialized[8],\n public_keys_serialized[9],\n public_keys_serialized[10],\n public_keys_serialized[11],\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys: PublicKeys::deserialize([\n serialized[4],\n serialized[5],\n serialized[6],\n serialized[7],\n serialized[8],\n serialized[9],\n serialized[10],\n serialized[11],\n serialized[12],\n serialized[13],\n serialized[14],\n serialized[15],\n ]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n pub fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer,\n ),\n )\n }\n}\n"
|
|
5993
5993
|
},
|
|
5994
|
-
"
|
|
5994
|
+
"267": {
|
|
5995
5995
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
|
|
5996
5996
|
"source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n /// Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n /// to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
|
|
5997
5997
|
},
|
|
5998
|
-
"
|
|
5998
|
+
"268": {
|
|
5999
5999
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
|
|
6000
6000
|
"source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n private_log::{PrivateLog, PrivateLogData},\n side_effect::{OrderedValue, scoped::Scoped},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n poseidon2::Poseidon2Sponge,\n traits::{FromField, Hash, is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::{constants::TWO_POW_64, utils::{arrays::array_concat, field::field_from_bytes}};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(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(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n let nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(nonce, siloed_note_hash)\n }\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.value())\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<PrivateLogData>) -> PrivateLog {\n if private_log.contract_address.is_zero() {\n private_log.inner.log\n } else {\n let mut fields = private_log.inner.log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog { fields }\n }\n}\n\nfn compute_siloed_contract_class_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_contract_class_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_contract_class_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: [u8; 160] = std::mem::zeroed();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..5 {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes[32 * i + j] = item_bytes[j];\n }\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // 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: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n let inputs_with_separator = array_concat([separator.to_field()], inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n// Performs a fixed length hash with a subarray of the given input.\n// Useful for SpongeBlob in which we aborb M things and want to check it vs a hash of M elts of an N-len array.\n// Using stdlib poseidon, this will always absorb an extra 1 as a 'variable' hash, and not match spongeblob.squeeze()\n// or any ts implementation. Also checks that any remaining elts not hashed are empty.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, false);\n sponge.squeeze()\n}\n\n// NB the below is the same as std::hash::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_chunks(input, in_len, true);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// The below fn reduces gates of a conditional poseidon2 hash by approx 3x (thank you ~* Giant Brain Dev @IlyasRidhuan *~ for the idea)\n// Why? Because when we call stdlib poseidon, we call absorb for each item. When absorbing is conditional, it seems the compiler does not know\n// what cache_size will be when calling absorb, so it assigns the permutation gates for /each i/ rather than /every 3rd i/, which is actually required.\n// The below code forces the compiler to:\n// - absorb normally up to 2 times to set cache_size to 1\n// - absorb in chunks of 3 to ensure perm. only happens every 3rd absorb\n// - absorb normally up to 2 times to add any remaining values to the hash\n// In fixed len hashes, the compiler is able to tell that it will only need to perform the permutation every 3 absorbs.\n// NB: it also replaces unnecessary range checks (i < thing) with a bit check (&= i != thing), which alone reduces the gates of a var. hash by half.\n\n#[no_predicates]\nfn poseidon2_absorb_chunks<let N: u32>(\n input: [Field; N],\n in_len: u32,\n variable: bool,\n) -> Poseidon2Sponge {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n // Even though shift is always 1 here, if we input in_len = 0 we get an underflow\n // since we cannot isolate computation branches. The below is just to avoid that.\n let shift = if in_len == 0 { 0 } else { 1 };\n if in_len != 0 {\n // cache_size = 0, init absorb\n sponge.cache[0] = input[0];\n sponge.cache_size = 1;\n // shift = num elts already added to make cache_size 1 = 1 for a fresh sponge\n // M = max_chunks = (N - 1 - (N - 1) % 3) / 3: (must be written as a fn of N to compile)\n // max_remainder = (N - 1) % 3;\n // max_chunks = (N - 1 - max_remainder) / 3;\n sponge = poseidon2_absorb_chunks_loop::<N, (N - 1 - (N - 1) % 3) / 3>(\n sponge,\n input,\n in_len,\n variable,\n shift,\n );\n }\n sponge\n}\n\n// NB: If it's not required to check that the non-absorbed elts of 'input' are 0s, set skip_0_check=true\n#[no_predicates]\npub fn poseidon2_absorb_chunks_existing_sponge<let N: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n skip_0_check: bool,\n) -> Poseidon2Sponge {\n let mut sponge = in_sponge;\n // 'shift' is to account for already added inputs\n let mut shift = 0;\n // 'stop' is to avoid an underflow when inputting in_len = 0\n let mut stop = false;\n for i in 0..3 {\n if shift == in_len {\n stop = true;\n }\n if (sponge.cache_size != 1) & (!stop) {\n sponge.absorb(input[i]);\n shift += 1;\n }\n }\n sponge = if stop {\n sponge\n } else {\n // max_chunks = (N - (N % 3)) / 3;\n poseidon2_absorb_chunks_loop::<N, (N - (N % 3)) / 3>(\n sponge,\n input,\n in_len,\n skip_0_check,\n shift,\n )\n };\n sponge\n}\n\n// The below is the loop to absorb elts into a poseidon sponge in chunks of 3\n// shift - the num of elts already absorbed to ensure the sponge's cache_size = 1\n// M - the max number of chunks required to absorb N things (must be comptime to compile)\n// NB: The 0 checks ('Found non-zero field...') are messy, but having a separate loop over N to check\n// for 0s costs 3N gates. Current approach is approx 2N gates.\n#[no_predicates]\nfn poseidon2_absorb_chunks_loop<let N: u32, let M: u32>(\n in_sponge: Poseidon2Sponge,\n input: [Field; N],\n in_len: u32,\n variable: bool,\n shift: u32,\n) -> Poseidon2Sponge {\n assert(in_len <= N, \"Given in_len to absorb is larger than the input array len\");\n // When we have an existing sponge, we may have a shift of 0, and the final 'k+2' below = N\n // The below avoids an overflow\n let skip_last = 3 * M == N;\n // Writing in_sponge: &mut does not compile\n let mut sponge = in_sponge;\n let mut should_add = true;\n // The num of things left over after absorbing in 3s\n let remainder = (in_len - shift) % 3;\n // The num of chunks of 3 to absorb (maximum M)\n let chunks = (in_len - shift - remainder) / 3;\n for i in 0..M {\n // Now we loop through cache size = 1 -> 3\n should_add &= i != chunks;\n // This is the index at the start of the chunk (for readability)\n let k = 3 * i + shift;\n if should_add {\n // cache_size = 1, 2 => just assign\n sponge.cache[1] = input[k];\n sponge.cache[2] = input[k + 1];\n // cache_size = 3 => duplex + perm\n for j in 0..3 {\n sponge.state[j] += sponge.cache[j];\n }\n sponge.state = std::hash::poseidon2_permutation(sponge.state, 4);\n sponge.cache[0] = input[k + 2];\n // cache_size is now 1 again, repeat loop\n } else if (!variable) & (i != chunks) {\n // if we are hashing a fixed len array which is a subarray, we check the remaining elts are 0\n // NB: we don't check at i == chunks, because that chunk contains elts to be absorbed or checked below\n let last_0 = if (i == M - 1) & (skip_last) {\n 0\n } else {\n input[k + 2]\n };\n let all_0 = (input[k] == 0) & (input[k + 1] == 0) & (last_0 == 0);\n assert(all_0, \"Found non-zero field after breakpoint\");\n }\n }\n // we have 'remainder' num of items left to absorb\n should_add = true;\n // below is to avoid overflows (i.e. if inlen is close to N)\n let mut should_check = !variable;\n for i in 0..3 {\n should_add &= i != remainder;\n should_check &= in_len - remainder + i != N;\n if should_add {\n // we want to absorb the final 'remainder' items\n sponge.absorb(input[in_len - remainder + i]);\n } else if should_check {\n assert(input[in_len - remainder + i] == 0, \"Found non-zero field after breakpoint\");\n }\n }\n sponge\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = std::hash::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = std::hash::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\n}\n\n#[test]\nfn existing_sponge_poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n // absorb 250 of the 501 things\n let empty_sponge = Poseidon2Sponge::new((in_len as Field) * TWO_POW_64);\n let first_sponge = poseidon2_absorb_chunks_existing_sponge(empty_sponge, input, 250, true);\n // now absorb the final 251 (since they are all 3s, im being lazy and not making a new array)\n let mut final_sponge = poseidon2_absorb_chunks_existing_sponge(first_sponge, input, 251, true);\n let fixed_len_hash = Poseidon2Sponge::hash(fixed_input, fixed_input.len());\n assert(final_sponge.squeeze() == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_empty_inputs() {\n let in_len = 0;\n let mut input: [Field; 4096] = [0; 4096];\n let mut constructed_empty_sponge = poseidon2_absorb_chunks(input, in_len, true);\n let mut first_sponge =\n poseidon2_absorb_chunks_existing_sponge(constructed_empty_sponge, input, in_len, true);\n assert(first_sponge.squeeze() == constructed_empty_sponge.squeeze());\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, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 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::digest(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 =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
|
|
6001
6001
|
},
|
|
6002
|
-
"
|
|
6002
|
+
"269": {
|
|
6003
6003
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/indexed_tagging_secret.nr",
|
|
6004
6004
|
"source": "use crate::traits::{Deserialize, Serialize, ToField};\nuse super::{address::aztec_address::AztecAddress, hash::poseidon2_hash};\nuse std::meta::derive;\n\npub global INDEXED_TAGGING_SECRET_LENGTH: u32 = 2;\n\n#[derive(Serialize, Deserialize)]\npub struct IndexedTaggingSecret {\n app_tagging_secret: Field,\n index: u32,\n}\n\nimpl IndexedTaggingSecret {\n pub fn compute_tag(self, recipient: AztecAddress) -> Field {\n poseidon2_hash(\n [self.app_tagging_secret, recipient.to_field(), self.index as Field],\n )\n }\n}\n"
|
|
6005
6005
|
},
|
|
@@ -6007,35 +6007,35 @@
|
|
|
6007
6007
|
"path": "std/hash/sha256.nr",
|
|
6008
6008
|
"source": "use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE: u32 = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR: u32 = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE: u32 = 16;\n\n// A `u32` integer consists of 4 bytes.\nglobal INT_SIZE: u32 = 4;\n\n// Index of the integer in the `INT_BLOCK` where the length is written.\nglobal INT_SIZE_PTR: u32 = MSG_SIZE_PTR / INT_SIZE;\n\n// Magic numbers for bit shifting.\n// Works with actual bit shifting as well as the compiler turns them into * and /\n// but circuit execution appears to be 10% faster this way.\nglobal TWO_POW_8: u32 = 256;\nglobal TWO_POW_16: u32 = TWO_POW_8 * 256;\nglobal TWO_POW_24: u32 = TWO_POW_16 * 256;\nglobal TWO_POW_32: u64 = TWO_POW_24 as u64 * 256;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeros, with neighbouring 4 bytes packed into integers.\ntype MSG_BLOCK = INT_BLOCK;\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: INT_BLOCK, _state: STATE) -> STATE {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ];\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n /// Safety: the msg_block is checked below in verify_msg_block\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n /// Safety: the msg_block is checked below in verify_msg_block\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block = update_block_item(\n msg_block,\n msg_byte_ptr,\n |msg_item| set_item_byte_then_zeros(msg_item, msg_byte_ptr, 1 << 7),\n );\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n /// Safety: the msg_len is checked below in verify_msg_len\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Apply a function on the block item which the pointer indicates.\nfn update_block_item<Env>(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n f: fn[Env](u32) -> u32,\n) -> MSG_BLOCK {\n let i = msg_byte_ptr / INT_SIZE;\n msg_block[i] = f(msg_block[i]);\n msg_block\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n if item == 0 {\n 0\n } else {\n // Brillig wouldn't shift 0<<4 without overflow.\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::{\n attach_len_to_msg_block, build_msg_block, byte_into_item, get_item_byte, make_item,\n set_item_byte_then_zeros, set_item_zeros,\n };\n use super::INT_BLOCK;\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d,\n 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0,\n 0x8f, 0xfe, 0x73, 0x2b,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94,\n 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99,\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154,\n 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59,\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213,\n 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115,\n 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49,\n 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46,\n 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115,\n 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97,\n 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45,\n 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55,\n 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32,\n 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32,\n 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64,\n 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103,\n 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115,\n 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101,\n 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109,\n 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56,\n 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48,\n 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75,\n 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67,\n 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101,\n 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97,\n 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61,\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186,\n 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17,\n 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12,\n 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48,\n 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6,\n 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2,\n 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89,\n 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2,\n 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75,\n 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1,\n 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189,\n 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4,\n 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45,\n 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4,\n 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188,\n 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38,\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212,\n 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53,\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253,\n 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9,\n 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214,\n 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107,\n 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198,\n 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126,\n 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36,\n 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59,\n 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97,\n 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180,\n 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216,\n 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70,\n 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246,\n 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193,\n 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74,\n 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210,\n 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210,\n 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69,\n 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22,\n 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175,\n 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53,\n 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200,\n 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86,\n 119, 30, 63, 129, 143, 32, 96,\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n\n #[test]\n fn test_get_item_byte() {\n let fld = make_item(10, 20, 30, 40);\n assert_eq(fld, 0x0a141e28);\n assert_eq(get_item_byte(fld, 0), 10);\n assert_eq(get_item_byte(fld, 4), 10);\n assert_eq(get_item_byte(fld, 6), 30);\n }\n\n #[test]\n fn test_byte_into_item() {\n let fld = make_item(0, 20, 0, 0);\n assert_eq(byte_into_item(20, 1), fld);\n assert_eq(byte_into_item(20, 5), fld);\n }\n\n #[test]\n fn test_set_item_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 0, 0, 0);\n assert_eq(set_item_zeros(fld0, 3), fld1);\n assert_eq(set_item_zeros(fld0, 4), 0);\n assert_eq(set_item_zeros(0, 4), 0);\n }\n\n #[test]\n fn test_set_item_byte_then_zeros() {\n let fld0 = make_item(10, 20, 30, 40);\n let fld1 = make_item(10, 50, 0, 0);\n assert_eq(set_item_byte_then_zeros(fld0, 1, 50), fld1);\n }\n\n #[test]\n fn test_build_msg_block_start_0() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48,\n ];\n assert_eq(input.len(), 22);\n\n /// Safety: testing context\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 0) };\n assert_eq(msg_byte_ptr, input.len());\n assert_eq(msg_block[0], make_item(input[0], input[1], input[2], input[3]));\n assert_eq(msg_block[1], make_item(input[4], input[5], input[6], input[7]));\n assert_eq(msg_block[5], make_item(input[20], input[21], 0, 0));\n assert_eq(msg_block[6], 0);\n }\n\n #[test]\n fn test_build_msg_block_start_1() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117,\n 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99,\n 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112,\n 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116,\n ];\n assert_eq(input.len(), 68);\n /// Safety: test context\n let (msg_block, msg_byte_ptr) = unsafe { build_msg_block(input, input.len(), 64) };\n assert_eq(msg_byte_ptr, 4);\n assert_eq(msg_block[0], make_item(input[64], input[65], input[66], input[67]));\n assert_eq(msg_block[1], 0);\n }\n\n #[test]\n fn test_attach_len_to_msg_block() {\n let input: INT_BLOCK = [\n 2152555847, 1397309779, 1936618851, 1262052426, 1936876331, 1985297723, 543702374,\n 1919905082, 1131376244, 1701737517, 1417244773, 978151789, 1697470053, 1920166255,\n 1849316213, 1651139939,\n ];\n /// Safety: testing context\n let msg_block = unsafe { attach_len_to_msg_block(input, 1, 448) };\n assert_eq(msg_block[0], ((1 << 7) as u32) * 256 * 256 * 256);\n assert_eq(msg_block[1], 0);\n assert_eq(msg_block[15], 3584);\n }\n}\n"
|
|
6009
6009
|
},
|
|
6010
|
-
"
|
|
6010
|
+
"284": {
|
|
6011
6011
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/point.nr",
|
|
6012
6012
|
"source": "pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{hash::poseidon2_hash, traits::{Deserialize, Empty, Hash, Packable, Serialize}};\n\npub global POINT_LENGTH: u32 = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n// TODO(#11356): use compact representation here.\nimpl Packable<POINT_LENGTH> for Point {\n fn pack(self) -> [Field; POINT_LENGTH] {\n self.serialize()\n }\n\n fn unpack(packed: [Field; POINT_LENGTH]) -> Self {\n Self::deserialize(packed)\n }\n}\n"
|
|
6013
6013
|
},
|
|
6014
|
-
"
|
|
6014
|
+
"285": {
|
|
6015
6015
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
|
|
6016
6016
|
"source": "use crate::constants::TWO_POW_64;\n\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
|
|
6017
6017
|
},
|
|
6018
|
-
"
|
|
6018
|
+
"294": {
|
|
6019
6019
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
|
|
6020
6020
|
"source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
|
|
6021
6021
|
},
|
|
6022
|
-
"
|
|
6022
|
+
"331": {
|
|
6023
6023
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/arrays.nr",
|
|
6024
6024
|
"source": "pub mod assert_array_appended;\npub mod assert_array_prepended;\npub mod assert_combined_array;\npub mod assert_combined_transformed_array;\npub mod assert_exposed_sorted_transformed_value_array;\npub mod assert_sorted_array;\npub mod assert_sorted_transformed_value_array;\npub mod assert_split_sorted_transformed_value_arrays;\npub mod assert_split_transformed_value_arrays;\npub mod get_sorted_result;\npub mod get_sorted_tuple;\npub mod sort_by;\npub mod sort_by_counter;\n\n// Re-exports.\npub use assert_array_appended::{\n assert_array_appended, assert_array_appended_and_scoped, assert_array_appended_reversed,\n assert_array_appended_scoped,\n};\npub use assert_array_prepended::assert_array_prepended;\npub use assert_combined_array::{assert_combined_array, combine_arrays};\npub use assert_combined_transformed_array::{\n assert_combined_transformed_array, combine_and_transform_arrays,\n};\npub use assert_exposed_sorted_transformed_value_array::{\n assert_exposed_sorted_transformed_value_array,\n get_order_hints::{get_order_hints_asc, get_order_hints_desc, OrderHint},\n};\npub use assert_sorted_array::assert_sorted_array;\npub use assert_sorted_transformed_value_array::{\n assert_sorted_transformed_value_array, assert_sorted_transformed_value_array_capped_size,\n};\npub use assert_split_sorted_transformed_value_arrays::{\n assert_split_sorted_transformed_value_arrays_asc,\n assert_split_sorted_transformed_value_arrays_desc,\n get_split_order_hints::{get_split_order_hints_asc, get_split_order_hints_desc, SplitOrderHints},\n};\npub use assert_split_transformed_value_arrays::assert_split_transformed_value_arrays;\npub use get_sorted_result::{get_sorted_result, SortedResult};\npub use sort_by_counter::{sort_by_counter_asc, sort_by_counter_desc};\n\nuse crate::traits::{Empty, is_empty};\n\npub fn subarray<let SRC_LEN: u32, let DST_LEN: u32>(\n src: [Field; SRC_LEN],\n offset: u32,\n) -> [Field; DST_LEN] {\n assert(offset + DST_LEN <= SRC_LEN, \"offset too large\");\n\n let mut dst: [Field; DST_LEN] = std::mem::zeroed();\n for i in 0..DST_LEN {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\n// Helper function to convert a validated array to BoundedVec.\n// Important: Only use it for validated arrays: validate_array(array) should be true.\npub unconstrained fn array_to_bounded_vec<T, let N: u32>(array: [T; N]) -> BoundedVec<T, N>\nwhere\n T: Empty + Eq,\n{\n let len = array_length(array);\n BoundedVec::from_parts_unchecked(array, len)\n}\n\n// Helper function to find the index of the first element in an array that satisfies a given predicate. If the element\n// is not found, the function returns N as the index.\npub unconstrained fn find_index_hint<T, let N: u32, Env>(\n array: [T; N],\n find: fn[Env](T) -> bool,\n) -> u32 {\n let mut index = N;\n for i in 0..N {\n // We check `index == N` to ensure that we only update the index if we haven't found a match yet.\n if (index == N) & find(array[i]) {\n index = i;\n }\n }\n index\n}\n\n// Routine which validates that all zero values of an array form a contiguous region at the end, i.e.,\n// of the form: [*,*,*...,0,0,0,0] where any * is non-zero. Note that a full array of non-zero values is\n// valid.\npub fn validate_array<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n let mut seen_empty = false;\n let mut length = 0;\n for i in 0..N {\n if is_empty(array[i]) {\n seen_empty = true;\n } else {\n assert(seen_empty == false, \"invalid array\");\n length += 1;\n }\n }\n length\n}\n\n// Helper function to count the number of non-empty elements in a validated array.\n// Important: Only use it for validated arrays where validate_array(array) returns true,\n// which ensures that:\n// 1. All elements before the first empty element are non-empty\n// 2. All elements after and including the first empty element are empty\n// 3. The array forms a contiguous sequence of non-empty elements followed by empty elements\npub fn array_length<T, let N: u32>(array: [T; N]) -> u32\nwhere\n T: Empty + Eq,\n{\n // We get the length by checking the index of the first empty element.\n\n /// Safety: This is safe because we have validated the array (see function doc above) and the emptiness\n /// of the element and non-emptiness of the previous element is checked below.\n let length = unsafe { find_index_hint(array, |elem: T| is_empty(elem)) };\n if length != 0 {\n assert(!is_empty(array[length - 1]));\n }\n if length != N {\n assert(is_empty(array[length]));\n }\n length\n}\n\npub fn array_concat<T, let N: u32, let M: u32>(array1: [T; N], array2: [T; M]) -> [T; N + M] {\n let mut result = [array1[0]; N + M];\n for i in 1..N {\n result[i] = array1[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n}\n\npub fn array_merge<T, let N: u32>(array1: [T; N], array2: [T; N]) -> [T; N]\nwhere\n T: Empty + Eq,\n{\n let mut result: [T; N] = [T::empty(); N];\n let mut i = 0;\n for elem in array1 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n for elem in array2 {\n if !is_empty(elem) {\n result[i] = elem;\n i += 1;\n }\n }\n result\n}\n\n// Helper fn to create a subarray from a given array\npub fn array_splice<T, let N: u32, let M: u32>(array: [T; N], offset: u32) -> [T; M]\nwhere\n T: Empty,\n{\n assert(M + offset <= N, \"Subarray length larger than array length\");\n let mut result: [T; M] = [T::empty(); M];\n for i in 0..M {\n result[i] = array[offset + i];\n }\n result\n}\n\npub fn check_permutation<T, let N: u32>(\n original_array: [T; N],\n permuted_array: [T; N],\n original_indexes: [u32; N],\n)\nwhere\n T: Eq + Empty,\n{\n let mut seen_value = [false; N];\n for i in 0..N {\n let index = original_indexes[i];\n let original_value = original_array[index];\n assert(permuted_array[i].eq(original_value), \"Invalid index\");\n assert(!seen_value[index], \"Duplicated index\");\n seen_value[index] = true;\n }\n}\n\n#[test]\nfn smoke_validate_array() {\n let valid_array: [Field; 0] = [];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [0];\n assert(validate_array(valid_array) == 0);\n\n let valid_array = [3];\n assert(validate_array(valid_array) == 1);\n\n let valid_array = [1, 2, 3];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0];\n assert(validate_array(valid_array) == 3);\n\n let valid_array = [1, 2, 3, 0, 0];\n assert(validate_array(valid_array) == 3);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case0() {\n let invalid_array = [0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case1() {\n let invalid_array = [1, 0, 0, 1, 0];\n let _ = validate_array(invalid_array);\n}\n\n#[test(should_fail_with = \"invalid array\")]\nfn smoke_validate_array_invalid_case2() {\n let invalid_array = [0, 0, 0, 0, 1];\n let _ = validate_array(invalid_array);\n}\n\n#[test]\nfn test_empty_array_length() {\n assert_eq(array_length([0]), 0);\n assert_eq(array_length([0, 0, 0]), 0);\n}\n\n#[test]\nfn test_array_length() {\n assert_eq(array_length([123]), 1);\n assert_eq(array_length([123, 0, 0]), 1);\n assert_eq(array_length([123, 456]), 2);\n assert_eq(array_length([123, 456, 0]), 2);\n}\n\n#[test]\nfn test_array_length_invalid_arrays() {\n // Result can be misleading (but correct) for invalid arrays.\n assert_eq(array_length([0, 0, 123]), 0);\n assert_eq(array_length([0, 123, 0]), 0);\n assert_eq(array_length([0, 123, 456]), 0);\n assert_eq(array_length([123, 0, 456]), 1);\n}\n\n#[test]\nunconstrained fn find_index_greater_than_min() {\n let values = [10, 20, 30, 40];\n let min = 22;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 2);\n}\n\n#[test]\nunconstrained fn find_index_not_found() {\n let values = [10, 20, 30, 40];\n let min = 100;\n let index = find_index_hint(values, |v: Field| min.lt(v));\n assert_eq(index, 4);\n}\n\n#[test]\nfn test_array_concat() {\n let array0 = [1, 2, 3];\n let array1 = [4, 5];\n let concatenated = array_concat(array0, array1);\n assert_eq(concatenated, [1, 2, 3, 4, 5]);\n}\n\n#[test]\nfn check_permutation_basic_test() {\n let original_array = [1, 2, 3];\n let permuted_array = [3, 1, 2];\n let indexes = [2, 0, 1];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Duplicated index\")]\nfn check_permutation_duplicated_index() {\n let original_array = [0, 1, 0];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 0];\n check_permutation(original_array, permuted_array, indexes);\n}\n\n#[test(should_fail_with = \"Invalid index\")]\nfn check_permutation_invalid_index() {\n let original_array = [0, 1, 2];\n let permuted_array = [1, 0, 0];\n let indexes = [1, 0, 2];\n check_permutation(original_array, permuted_array, indexes);\n}\n"
|
|
6025
6025
|
},
|
|
6026
|
-
"
|
|
6026
|
+
"334": {
|
|
6027
6027
|
"path": "/build-volume/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
|
|
6028
6028
|
"source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; 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 pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [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"
|
|
6029
6029
|
},
|
|
6030
|
-
"
|
|
6030
|
+
"339": {
|
|
6031
6031
|
"path": "/root/nargo/github.com/noir-lang/ec/v0.1.2/src/lib.nr",
|
|
6032
6032
|
"source": "// Elliptic curve implementation\n// Overview\n// ========\n// The following three elliptic curve representations are admissible:\npub mod tecurve; // Twisted Edwards curves\npub mod swcurve; // Elliptic curves in Short Weierstrass form\npub mod montcurve; // Montgomery curves\npub mod consts; // Commonly used curve presets\n//\n// Note that Twisted Edwards and Montgomery curves are (birationally) equivalent, so that\n// they may be freely converted between one another, whereas Short Weierstrass curves are\n// more general. Diagramatically:\n//\n// tecurve == montcurve `subset` swcurve\n//\n// Each module is further divided into two submodules, 'affine' and 'curvegroup', depending\n// on the preferred coordinate representation. Affine coordinates are none other than the usual\n// two-dimensional Cartesian coordinates used in the definitions of these curves, whereas\n// 'CurveGroup' coordinates (terminology borrowed from Arkworks, whose conventions we try\n// to follow) are special coordinate systems with respect to which the group operations may be\n// implemented more efficiently, usually by means of an appropriate choice of projective coordinates.\n//\n// In each of these submodules, there is a Point struct and a Curve struct, the former\n// representing a point in the coordinate system and the latter a curve configuration.\n//\n// Points\n// ======\n// Points may be instantiated using the associated function `new`, which takes coordinates\n// as its arguments. For instance,\n//\n// `let p = swcurve::Point::new(1,1);`\n//\n// The additive identity may be constructed by a call to the associated function `zero` of no\n// arguments:\n//\n// `let zero = swcurve::Point::zero();`\n//\n// Points may be tested for equality by calling the method `eq`:\n//\n// `let pred = p.eq(zero);`\n//\n// There is also the method `is_zero` to explicitly check whether a point is the additive identity:\n//\n// `constrain pred == p.is_zero();`\n//\n// Points may be negated by calling the `negate` method and converted to CurveGroup (or affine)\n// coordinates by calling the `into_group` (resp. `into_affine`) method on them. Finally,\n// Points may be freely mapped between their respective Twisted Edwards and Montgomery\n// representations by calling the `into_montcurve` or `into_tecurve` methods. For mappings\n// between Twisted Edwards/Montgomery curves and Short Weierstrass curves, see the Curve section\n// below, as the underlying mappings are those of curves rather than ambient spaces.\n// As a rule, Points in affine (or CurveGroup) coordinates are mapped to Points in affine\n// (resp. CurveGroup) coordinates.\n//\n// Curves\n// ======\n// A curve configuration (Curve) is completely determined by the Field coefficients of its defining\n// equation (a and b in the case of swcurve, a and d in the case of tecurve, and j and k in\n// the case of montcurve) together with a generator (`gen`) in the corresponding coordinate system.\n// For example, the Baby Jubjub curve configuration as defined in ERC-2494 may be instantiated as a Twisted\n// Edwards curve in affine coordinates as follows:\n//\n// `let bjj_affine = tecurve::Curve::new(168700, 168696, tecurve::Point::new(995203441582195749578291179787384436505546430278305826713579947235728471134,5472060717959818805561601436314318772137091100104008585924551046643952123905));`\n//\n// The `contains` method may be used to check whether a Point lies on a given curve:\n//\n// `constrain bjj_affine.contains(tecurve::Point::zero());`\n//\n// The elliptic curve group's addition operation is exposed as the `add` method, e.g.\n//\n// `let p = bjj_affine.add(bjj_affine.gen, bjj_affine.gen);`\n//\n// subtraction as the `subtract` method, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.subtract(bjj_affine.gen, bjj_affine.gen));`\n//\n// scalar multiplication as the `mul` method, where the scalar is assumed to be a Field* element, e.g.\n//\n// `constrain tecurve::Point::zero().eq(bjj_affine.mul(2, tecurve::Point::zero());`\n//\n// There is a scalar multiplication method (`bit_mul`) provided where the scalar input is expected to be\n// an array of bits (little-endian convention), as well as a multi-scalar multiplication method** (`msm`)\n// which takes an array of Field elements and an array of elliptic curve points as arguments, both assumed\n// to be of the same length.\n//\n// Curve configurations may be converted between different coordinate representations by calling the `into_group`\n// and `into_affine` methods on them, e.g.\n//\n// `let bjj_curvegroup = bjj_affine.into_group();`\n//\n// Curve configurations may also be converted between different curve representations by calling the `into_swcurve`,\n// `into_montcurve` and `into_tecurve` methods subject to the relation between the curve representations mentioned\n// above. Note that it is possible to map Points from a Twisted Edwards/Montgomery curve to the corresponding\n// Short Weierstrass representation and back, and the methods to do so are exposed as `map_into_swcurve` and\n// `map_from_swcurve`, which each take one argument, the point to be mapped.\n//\n// Curve maps\n// ==========\n// There are a few different ways of mapping Field elements to elliptic curves. Here we provide the simplified\n// Shallue-van de Woestijne-Ulas and Elligator 2 methods, the former being applicable to all curve types\n// provided above subject to the constraint that the coefficients of the corresponding Short Weierstrass curve satisfies\n// a*b != 0 and the latter being applicable to Montgomery and Twisted Edwards curves subject to the constraint that\n// the coefficients of the corresponding Montgomery curve satisfy j*k != 0 and (j^2 - 4)/k^2 is non-square.\n//\n// The simplified Shallue-van de Woestijne-Ulas method is exposed as the method `swu_map` on the Curve configuration and\n// depends on two parameters, a Field element z != -1 for which g(x) - z is irreducible over Field and g(b/(z*a)) is\n// square, where g(x) = x^3 + a*x + b is the right-hand side of the defining equation of the corresponding Short\n// Weierstrass curve, and a Field element u to be mapped onto the curve. For example, in the case of bjj_affine above,\n// it may be determined using the scripts provided at <https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve> that z = 5.\n//\n// The Elligator 2 method is exposed as the method `elligator2_map` on the Curve configurations of Montgomery and\n// Twisted Edwards curves. Like the simplified SWU method above, it depends on a certain non-square element of Field,\n// but this element need not satisfy any further conditions, so it is included as the (Field-dependent) constant\n//`ZETA` below. Thus, the `elligator2_map` method depends only on one parameter, the Field element to be mapped onto\n// the curve.\n//\n// For details on all of the above in the context of hashing to elliptic curves, see <https://datatracker.ietf.org/doc/id/draft-irtf-cfrg-hash-to-curve-06.html>.\n//\n//\n// *TODO: Replace Field with Bigint.\n// **TODO: Support arrays of structs to make this work.\n// Field-dependent constant ZETA = a non-square element of Field\n// Required for Elligator 2 map\n// TODO: Replace with built-in constant.\nglobal ZETA: Field = 5;\n// Field-dependent constants for Tonelli-Shanks algorithm (see sqrt function below)\n// TODO: Possibly make this built-in.\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n// Higher-order version of scalar multiplication\n// TODO: Make this work so that the submodules' bit_mul may be defined in terms of it.\n//fn bit_mul<T,N>(add: fn(T,T) -> T, e: T, bits: [u1; N], p: T) -> T {\n// let mut out = e;\n// let n = bits.len();\n//\n// for i in 0..n {\n// out = add(\n// add(out, out),\n// if(bits[n - i - 1] == 0) {e} else {p});\n// }\n//\n// out\n//}\n// TODO: Make this built-in.\npub fn safe_inverse(x: Field) -> Field {\n if x == 0 {\n 0\n } else {\n 1 / x\n }\n}\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\npub fn is_square(x: Field) -> bool {\n let v = pow(x, 0 - 1 / 2);\n\n v * (v - 1) == 0\n}\n// Power function of two Field arguments of arbitrary size.\n// Adapted from std::field::pow_32.\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\npub fn sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\nmod tests {\n use crate::montcurve::affine::Point as MGaffine;\n use crate::montcurve::curvegroup::Point as MG;\n use crate::swcurve::affine::Point as SWGaffine;\n use crate::swcurve::curvegroup::Point as SWG;\n use crate::tecurve::affine::Curve as AffineCurve;\n use crate::tecurve::affine::Point as Gaffine;\n use crate::tecurve::curvegroup::Point as G;\n\n #[test]\n fn smoke_test() {\n // Tests may be checked against https://github.com/cfrg/draft-irtf-cfrg-hash-to-curve/tree/main/poc\n // Define Baby Jubjub (ERC-2494) parameters in affine representation\n let bjj_affine = AffineCurve::new(\n 168700,\n 168696,\n Gaffine::new(\n 995203441582195749578291179787384436505546430278305826713579947235728471134,\n 5472060717959818805561601436314318772137091100104008585924551046643952123905,\n ),\n );\n // Test addition\n let p1_affine = Gaffine::new(\n 17777552123799933955779906779655732241715742912184938656739573121738514868268,\n 2626589144620713026669568689430873010625803728049924121243784502389097019475,\n );\n let p2_affine = Gaffine::new(\n 16540640123574156134436876038791482806971768689494387082833631921987005038935,\n 20819045374670962167435360035096875258406992893633759881276124905556507972311,\n );\n\n let p3_affine = bjj_affine.add(p1_affine, p2_affine);\n assert(p3_affine.eq(Gaffine::new(\n 7916061937171219682591368294088513039687205273691143098332585753343424131937,\n 14035240266687799601661095864649209771790948434046947201833777492504781204499,\n )));\n // Test scalar multiplication\n let p4_affine = bjj_affine.mul(2, p1_affine);\n assert(p4_affine.eq(Gaffine::new(\n 6890855772600357754907169075114257697580319025794532037257385534741338397365,\n 4338620300185947561074059802482547481416142213883829469920100239455078257889,\n )));\n assert(p4_affine.eq(bjj_affine.bit_mul([0, 1], p1_affine)));\n // Test subtraction\n let p5_affine = bjj_affine.subtract(p3_affine, p3_affine);\n assert(p5_affine.eq(Gaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_affine.contains(bjj_affine.gen)\n & bjj_affine.contains(p1_affine)\n & bjj_affine.contains(p2_affine)\n & bjj_affine.contains(p3_affine)\n & bjj_affine.contains(p4_affine)\n & bjj_affine.contains(p5_affine),\n );\n // Test CurveGroup equivalents\n let bjj = bjj_affine.into_group(); // Baby Jubjub\n let p1 = p1_affine.into_group();\n let p2 = p2_affine.into_group();\n let p3 = p3_affine.into_group();\n let p4 = p4_affine.into_group();\n let p5 = p5_affine.into_group();\n // Test addition\n assert(p3.eq(bjj.add(p1, p2)));\n // Test scalar multiplication\n assert(p4.eq(bjj.mul(2, p1)));\n assert(p4.eq(bjj.bit_mul([0, 1], p1)));\n // Test subtraction\n assert(G::zero().eq(bjj.subtract(p3, p3)));\n assert(p5.eq(G::zero()));\n // Check that these points are on the curve\n assert(\n bjj.contains(bjj.gen)\n & bjj.contains(p1)\n & bjj.contains(p2)\n & bjj.contains(p3)\n & bjj.contains(p4)\n & bjj.contains(p5),\n );\n // Test SWCurve equivalents of the above\n // First the affine representation\n let bjj_swcurve_affine = bjj_affine.into_swcurve();\n\n let p1_swcurve_affine = bjj_affine.map_into_swcurve(p1_affine);\n let p2_swcurve_affine = bjj_affine.map_into_swcurve(p2_affine);\n let p3_swcurve_affine = bjj_affine.map_into_swcurve(p3_affine);\n let p4_swcurve_affine = bjj_affine.map_into_swcurve(p4_affine);\n let p5_swcurve_affine = bjj_affine.map_into_swcurve(p5_affine);\n // Addition\n assert(p3_swcurve_affine.eq(bjj_swcurve_affine.add(p1_swcurve_affine, p2_swcurve_affine)));\n // Doubling\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.mul(2, p1_swcurve_affine)));\n assert(p4_swcurve_affine.eq(bjj_swcurve_affine.bit_mul([0, 1], p1_swcurve_affine)));\n // Subtraction\n assert(SWGaffine::zero().eq(bjj_swcurve_affine.subtract(\n p3_swcurve_affine,\n p3_swcurve_affine,\n )));\n assert(p5_swcurve_affine.eq(SWGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve_affine.contains(bjj_swcurve_affine.gen)\n & bjj_swcurve_affine.contains(p1_swcurve_affine)\n & bjj_swcurve_affine.contains(p2_swcurve_affine)\n & bjj_swcurve_affine.contains(p3_swcurve_affine)\n & bjj_swcurve_affine.contains(p4_swcurve_affine)\n & bjj_swcurve_affine.contains(p5_swcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_swcurve = bjj.into_swcurve();\n\n let p1_swcurve = bjj.map_into_swcurve(p1);\n let p2_swcurve = bjj.map_into_swcurve(p2);\n let p3_swcurve = bjj.map_into_swcurve(p3);\n let p4_swcurve = bjj.map_into_swcurve(p4);\n let p5_swcurve = bjj.map_into_swcurve(p5);\n // Addition\n assert(p3_swcurve.eq(bjj_swcurve.add(p1_swcurve, p2_swcurve)));\n // Doubling\n assert(p4_swcurve.eq(bjj_swcurve.mul(2, p1_swcurve)));\n assert(p4_swcurve.eq(bjj_swcurve.bit_mul([0, 1], p1_swcurve)));\n // Subtraction\n assert(SWG::zero().eq(bjj_swcurve.subtract(p3_swcurve, p3_swcurve)));\n assert(p5_swcurve.eq(SWG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_swcurve.contains(bjj_swcurve.gen)\n & bjj_swcurve.contains(p1_swcurve)\n & bjj_swcurve.contains(p2_swcurve)\n & bjj_swcurve.contains(p3_swcurve)\n & bjj_swcurve.contains(p4_swcurve)\n & bjj_swcurve.contains(p5_swcurve),\n );\n // Test MontCurve conversions\n // First the affine representation\n let bjj_montcurve_affine = bjj_affine.into_montcurve();\n\n let p1_montcurve_affine = p1_affine.into_montcurve();\n let p2_montcurve_affine = p2_affine.into_montcurve();\n let p3_montcurve_affine = p3_affine.into_montcurve();\n let p4_montcurve_affine = p4_affine.into_montcurve();\n let p5_montcurve_affine = p5_affine.into_montcurve();\n // Addition\n assert(p3_montcurve_affine.eq(bjj_montcurve_affine.add(\n p1_montcurve_affine,\n p2_montcurve_affine,\n )));\n // Doubling\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.mul(2, p1_montcurve_affine)));\n assert(p4_montcurve_affine.eq(bjj_montcurve_affine.bit_mul([0, 1], p1_montcurve_affine)));\n // Subtraction\n assert(MGaffine::zero().eq(bjj_montcurve_affine.subtract(\n p3_montcurve_affine,\n p3_montcurve_affine,\n )));\n assert(p5_montcurve_affine.eq(MGaffine::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve_affine.contains(bjj_montcurve_affine.gen)\n & bjj_montcurve_affine.contains(p1_montcurve_affine)\n & bjj_montcurve_affine.contains(p2_montcurve_affine)\n & bjj_montcurve_affine.contains(p3_montcurve_affine)\n & bjj_montcurve_affine.contains(p4_montcurve_affine)\n & bjj_montcurve_affine.contains(p5_montcurve_affine),\n );\n // Then the CurveGroup representation\n let bjj_montcurve = bjj.into_montcurve();\n\n let p1_montcurve = p1_montcurve_affine.into_group();\n let p2_montcurve = p2_montcurve_affine.into_group();\n let p3_montcurve = p3_montcurve_affine.into_group();\n let p4_montcurve = p4_montcurve_affine.into_group();\n let p5_montcurve = p5_montcurve_affine.into_group();\n // Addition\n assert(p3_montcurve.eq(bjj_montcurve.add(p1_montcurve, p2_montcurve)));\n // Doubling\n assert(p4_montcurve.eq(bjj_montcurve.mul(2, p1_montcurve)));\n assert(p4_montcurve.eq(bjj_montcurve.bit_mul([0, 1], p1_montcurve)));\n // Subtraction\n assert(MG::zero().eq(bjj_montcurve.subtract(p3_montcurve, p3_montcurve)));\n assert(p5_montcurve.eq(MG::zero()));\n // Check that these points are on the curve\n assert(\n bjj_montcurve.contains(bjj_montcurve.gen)\n & bjj_montcurve.contains(p1_montcurve)\n & bjj_montcurve.contains(p2_montcurve)\n & bjj_montcurve.contains(p3_montcurve)\n & bjj_montcurve.contains(p4_montcurve)\n & bjj_montcurve.contains(p5_montcurve),\n );\n // Elligator 2 map-to-curve\n let ell2_pt_map = bjj_affine.elligator2_map(27);\n\n assert(ell2_pt_map.eq(MGaffine::new(\n 7972459279704486422145701269802978968072470631857513331988813812334797879121,\n 8142420778878030219043334189293412482212146646099536952861607542822144507872,\n )\n .into_tecurve()));\n // SWU map-to-curve\n let swu_pt_map = bjj_affine.swu_map(5, 27);\n\n assert(swu_pt_map.eq(bjj_affine.map_from_swcurve(SWGaffine::new(\n 2162719247815120009132293839392097468339661471129795280520343931405114293888,\n 5341392251743377373758788728206293080122949448990104760111875914082289313973,\n ))));\n }\n\n}\n"
|
|
6033
6033
|
},
|
|
6034
|
-
"
|
|
6034
|
+
"345": {
|
|
6035
6035
|
"path": "/root/nargo/github.com/noir-lang/sha256/v0.1.0/src/sha256.nr",
|
|
6036
6036
|
"source": "use std::hash::sha256_compression;\nuse std::runtime::is_unconstrained;\n\nmod tests;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// A message block is up to 64 bytes taken from the input.\nglobal BLOCK_SIZE: u32 = 64;\n\n// The first index in the block where the 8 byte message size will be written.\nglobal MSG_SIZE_PTR: u32 = 56;\n\n// Size of the message block when packed as 4-byte integer array.\nglobal INT_BLOCK_SIZE: u32 = 16;\n\n// A `u32` integer consists of 4 bytes.\nglobal INT_SIZE: u32 = 4;\n\n// Index of the integer in the `INT_BLOCK` where the length is written.\nglobal INT_SIZE_PTR: u32 = MSG_SIZE_PTR / INT_SIZE;\n\n// Magic numbers for bit shifting.\n// Works with actual bit shifting as well as the compiler turns them into * and /\n// but circuit execution appears to be 10% faster this way.\nglobal TWO_POW_8: u32 = 256;\nglobal TWO_POW_16: u32 = TWO_POW_8 * 256;\nglobal TWO_POW_24: u32 = TWO_POW_16 * 256;\nglobal TWO_POW_32: u64 = TWO_POW_24 as u64 * 256;\n\n// Index of a byte in a 64 byte block; ie. 0..=63\ntype BLOCK_BYTE_PTR = u32;\n\n// The foreign function to compress blocks works on 16 pieces of 4-byte integers, instead of 64 bytes.\ntype INT_BLOCK = [u32; INT_BLOCK_SIZE];\n\n// A message block is a slice of the original message of a fixed size,\n// potentially padded with zeros, with neighbouring 4 bytes packed into integers.\ntype MSG_BLOCK = INT_BLOCK;\n\n// The hash is 32 bytes.\ntype HASH = [u8; 32];\n\n// The state accumulates the blocks.\n// Its overall size is the same as the `HASH`.\ntype STATE = [u32; 8];\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N as u64)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> HASH {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = [\n 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635,\n 1541459225,\n ];\n // Pointer into msg_block on a 64 byte scale\n let mut msg_byte_ptr = 0;\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_block, h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) =\n unsafe { build_msg_block(msg, message_size, msg_start) };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n verify_msg_block_padding(msg_block, msg_byte_ptr);\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n // If we had modulo == 0 then it means the last block was full,\n // and we can reset the pointer to zero to overwrite it.\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n msg_block = update_block_item(\n msg_block,\n msg_byte_ptr,\n |msg_item| set_item_byte_then_zeros(msg_item, msg_byte_ptr, 1 << 7),\n );\n msg_byte_ptr = msg_byte_ptr + 1;\n let last_block = msg_block;\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr > MSG_SIZE_PTR {\n h = sha256_compression(msg_block, h);\n // `attach_len_to_msg_block` will zero out everything after the `msg_byte_ptr`.\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe { attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size) };\n\n if !is_unconstrained() {\n verify_msg_len(msg_block, last_block, msg_byte_ptr, message_size);\n }\n\n hash_final_block(msg_block, h)\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start`.\n// Returns the block and the length that has been copied rather than padded with zeros.\nunconstrained fn build_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> (MSG_BLOCK, BLOCK_BYTE_PTR) {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let mut int_input = block_input / INT_SIZE;\n if block_input % INT_SIZE != 0 {\n int_input = int_input + 1;\n };\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = lshift8(msg_item, 1) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed by `build_msg_block`\n// and matches the input data. Returns the index of the first unset item.\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: MSG_BLOCK,\n msg_start: u32,\n) -> BLOCK_BYTE_PTR {\n let mut msg_byte_ptr = 0;\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n // We might have to go beyond the input to pad the fields.\n if msg_end % INT_SIZE != 0 {\n msg_end = msg_end + INT_SIZE - msg_end % INT_SIZE;\n }\n\n // Reconstructed packed item.\n let mut msg_item: u32 = 0;\n\n // Inclusive at the end so that we can compare the last item.\n let mut i: u32 = 0;\n for k in msg_start..=msg_end {\n if k % INT_SIZE == 0 {\n // If we consumed some input we can compare against the block.\n if (msg_start < message_size) & (k > msg_start) {\n assert_eq(msg_block[i], msg_item as u32);\n i = i + 1;\n msg_item = 0;\n }\n }\n // Shift the accumulator\n msg_item = lshift8(msg_item, 1);\n // If we have input to consume, add it at the rightmost position.\n if k < message_size & k < msg_end {\n msg_item = msg_item + msg[k] as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\n// Verify the block we are compressing was appropriately padded with zeros by `build_msg_block`.\n// This is only relevant for the last, potentially partially filled block.\nfn verify_msg_block_padding(msg_block: MSG_BLOCK, msg_byte_ptr: BLOCK_BYTE_PTR) {\n // Check all the way to the end of the block.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_BLOCK_SIZE);\n}\n\n// Verify that a region of ints in the message block are (partially) zeroed,\n// up to an (exclusive) maximum which can either be the end of the block\n// or just where the size is to be written.\nfn verify_msg_block_zeros(\n msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n max_int_byte_ptr: u32,\n) {\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // First integer which is supposed to be (partially) zero.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n let zeros = INT_SIZE - modulo;\n let mask = if zeros == 3 {\n TWO_POW_24\n } else if zeros == 2 {\n TWO_POW_16\n } else {\n TWO_POW_8\n };\n assert_eq(msg_block[int_byte_ptr] % mask, zero);\n int_byte_ptr = int_byte_ptr + 1;\n }\n\n // Check the rest of the items.\n for i in 0..max_int_byte_ptr {\n if i >= int_byte_ptr {\n assert_eq(msg_block[i], zero);\n }\n }\n}\n\n// Verify that up to the byte pointer the two blocks are equal.\n// At the byte pointer the new block can be partially zeroed.\nfn verify_msg_block_equals_last(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n) {\n // msg_byte_ptr is the position at which they are no longer have to be the same.\n // First integer which is supposed to be (partially) zero contains that pointer.\n let mut int_byte_ptr = msg_byte_ptr / INT_SIZE;\n\n // Check partial zeros.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Reconstruct the partially zero item from the last block.\n let last_field = last_block[int_byte_ptr];\n let mut msg_item: u32 = 0;\n // Reset to where they are still equal.\n msg_byte_ptr = msg_byte_ptr - modulo;\n for i in 0..INT_SIZE {\n msg_item = lshift8(msg_item, 1);\n if i < modulo {\n msg_item = msg_item + get_item_byte(last_field, msg_byte_ptr) as u32;\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n assert_eq(msg_block[int_byte_ptr], msg_item);\n }\n\n for i in 0..INT_SIZE_PTR {\n if i < int_byte_ptr {\n assert_eq(msg_block[i], last_block[i]);\n }\n }\n}\n\n// Apply a function on the block item which the pointer indicates.\nfn update_block_item<Env>(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n f: fn[Env](u32) -> u32,\n) -> MSG_BLOCK {\n let i = msg_byte_ptr / INT_SIZE;\n msg_block[i] = f(msg_block[i]);\n msg_block\n}\n\n// Set the rightmost `zeros` number of bytes to 0.\nfn set_item_zeros(item: u32, zeros: u8) -> u32 {\n lshift8(rshift8(item, zeros), zeros)\n}\n\n// Replace one byte in the item with a value, and set everything after it to zero.\nfn set_item_byte_then_zeros(msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR, msg_byte: u8) -> u32 {\n let zeros = INT_SIZE - msg_byte_ptr % INT_SIZE;\n let zeroed_item = set_item_zeros(msg_item, zeros as u8);\n let new_item = byte_into_item(msg_byte, msg_byte_ptr);\n zeroed_item + new_item\n}\n\n// Get a byte of a message item according to its overall position in the `BLOCK_SIZE` space.\nfn get_item_byte(mut msg_item: u32, msg_byte_ptr: BLOCK_BYTE_PTR) -> u8 {\n // How many times do we have to shift to the right to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n msg_item = rshift8(msg_item, shifts as u8);\n // At this point the byte we want is in the rightmost position.\n msg_item as u8\n}\n\n// Project a byte into a position in a field based on the overall block pointer.\n// For example putting 1 into pointer 5 would be 100, because overall we would\n// have [____, 0100] with indexes [0123,4567].\nfn byte_into_item(msg_byte: u8, msg_byte_ptr: BLOCK_BYTE_PTR) -> u32 {\n let mut msg_item = msg_byte as u32;\n // How many times do we have to shift to the left to get to the position we want?\n let max_shifts = INT_SIZE - 1;\n let shifts = max_shifts - msg_byte_ptr % INT_SIZE;\n lshift8(msg_item, shifts as u8)\n}\n\n// Construct a field out of 4 bytes.\nfn make_item(b0: u8, b1: u8, b2: u8, b3: u8) -> u32 {\n let mut item = b0 as u32;\n item = lshift8(item, 1) + b1 as u32;\n item = lshift8(item, 1) + b2 as u32;\n item = lshift8(item, 1) + b3 as u32;\n item\n}\n\n// Shift by 8 bits to the left between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise multiplies by 256.\nfn lshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n if item == 0 {\n 0\n } else {\n // Brillig wouldn't shift 0<<4 without overflow.\n item << (8 * shifts)\n }\n } else {\n // We can do a for loop up to INT_SIZE or an if-else.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item * TWO_POW_8\n } else if shifts == 2 {\n item * TWO_POW_16\n } else if shifts == 3 {\n item * TWO_POW_24\n } else {\n // Doesn't make sense, but it's most likely called on 0 anyway.\n 0\n }\n }\n}\n\n// Shift by 8 bits to the right between 0 and 4 times.\n// Checks `is_unconstrained()` to just use a bitshift if we're running in an unconstrained context,\n// otherwise divides by 256.\nfn rshift8(item: u32, shifts: u8) -> u32 {\n if is_unconstrained() {\n item >> (8 * shifts)\n } else {\n // Division wouldn't work on `Field`.\n if shifts == 0 {\n item\n } else if shifts == 1 {\n item / TWO_POW_8\n } else if shifts == 2 {\n item / TWO_POW_16\n } else if shifts == 3 {\n item / TWO_POW_24\n } else {\n 0\n }\n }\n}\n\n// Zero out all bytes between the end of the message and where the length is appended,\n// then write the length into the last 8 bytes of the block.\nunconstrained fn attach_len_to_msg_block(\n mut msg_block: MSG_BLOCK,\n mut msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) -> MSG_BLOCK {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 bits (i.e. until msg_byte_ptr = 56).\n // There can be one item which has to be partially zeroed.\n let modulo = msg_byte_ptr % INT_SIZE;\n if modulo != 0 {\n // Index of the block in which we find the item we need to partially zero.\n let i = msg_byte_ptr / INT_SIZE;\n let zeros = INT_SIZE - modulo;\n msg_block[i] = set_item_zeros(msg_block[i], zeros as u8);\n msg_byte_ptr = msg_byte_ptr + zeros;\n }\n\n // The rest can be zeroed without bit shifting anything.\n for i in (msg_byte_ptr / INT_SIZE)..INT_SIZE_PTR {\n msg_block[i] = 0;\n }\n\n // Set the last two 4 byte ints as the first/second half of the 8 bytes of the length.\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..=1 {\n let shift = i * 4;\n msg_block[INT_SIZE_PTR + i] = make_item(\n len_bytes[shift],\n len_bytes[shift + 1],\n len_bytes[shift + 2],\n len_bytes[shift + 3],\n );\n }\n msg_block\n}\n\n// Verify that the message length was correctly written by `attach_len_to_msg_block`,\n// and that everything between the byte pointer and the size pointer was zeroed,\n// and that everything before the byte pointer was untouched.\nfn verify_msg_len(\n msg_block: MSG_BLOCK,\n last_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n message_size: u32,\n) {\n // Check zeros up to the size pointer.\n verify_msg_block_zeros(msg_block, msg_byte_ptr, INT_SIZE_PTR);\n\n // Check that up to the pointer we match the last block.\n verify_msg_block_equals_last(msg_block, last_block, msg_byte_ptr);\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let mut reconstructed_len: u64 = 0;\n for i in INT_SIZE_PTR..INT_BLOCK_SIZE {\n reconstructed_len = reconstructed_len * TWO_POW_32;\n reconstructed_len = reconstructed_len + msg_block[i] as u64;\n }\n let len = 8 * message_size as u64;\n assert_eq(reconstructed_len, len);\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\n"
|
|
6037
6037
|
},
|
|
6038
|
-
"
|
|
6038
|
+
"346": {
|
|
6039
6039
|
"path": "/build-volume/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr",
|
|
6040
6040
|
"source": "use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::{get_nsk_app, get_public_keys},\n protocol_types::{address::AztecAddress, constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator},\n macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as G_owner, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[note_custom_interface]\npub struct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n owner: AztecAddress,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic packing since x and y don't fit. Pack the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = owner\n fn pack_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n\n [x, last_x, y, last_y, self.owner.to_field()]\n }\n\n // Cannot use the automatic unpacking for the aforementioned reasons\n fn unpack_content(packed_content: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x:[u8; 32] = packed_content[0].to_be_bytes();\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = packed_content[1].to_be_bytes::<32>()[31];\n\n let part_y:[u8; 32] = packed_content[2].to_be_bytes();\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = packed_content[3].to_be_bytes::<32>()[31];\n\n EcdsaPublicKeyNote { x, y, owner: AztecAddress::from_field(packed_content[4]), header: NoteHeader::empty() }\n }\n\n fn get_note_type_id() -> Field {\n // randomly chosen note type id --> has to fit within 7 bits\n 76\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let packed_content = self.pack_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, G_owner, G_slot],\n [\n from_field_unsafe(packed_content[0]),\n from_field_unsafe(packed_content[1]),\n from_field_unsafe(packed_content[2]),\n from_field_unsafe(packed_content[3]),\n from_field_unsafe(packed_content[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = context.request_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let owner_npk_m_hash = get_public_keys(self.owner).npk_m.hash();\n let secret = get_nsk_app(owner_npk_m_hash);\n poseidon2_hash_with_separator(\n [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], owner: AztecAddress) -> Self {\n EcdsaPublicKeyNote { x, y, owner, header: NoteHeader::empty() }\n }\n}\n"
|
|
6041
6041
|
},
|
|
@@ -6049,7 +6049,7 @@
|
|
|
6049
6049
|
},
|
|
6050
6050
|
"6": {
|
|
6051
6051
|
"path": "std/cmp.nr",
|
|
6052
|
-
"source": "use crate::meta::derive_via;\n\n#[derive_via(derive_eq)]\n// docs:start:eq-trait\npub trait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\n// docs:start:derive_eq\ncomptime fn derive_eq(s: StructDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields_as_written().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u64 {\n fn eq(self, other: u64) -> bool {\n self == other\n }\n}\nimpl Eq for u32 {\n fn eq(self, other: u32) -> bool {\n self == other\n }\n}\nimpl Eq for u16 {\n fn eq(self, other: u16) -> bool {\n self == other\n }\n}\nimpl Eq for u8 {\n fn eq(self, other: u8) -> bool {\n self == other\n }\n}\nimpl Eq for u1 {\n fn eq(self, other: u1) -> bool {\n self == other\n }\n}\n\nimpl Eq for i8 {\n fn eq(self, other: i8) -> bool {\n self == other\n }\n}\nimpl Eq for i16 {\n fn eq(self, other: i16) -> bool {\n self == other\n }\n}\nimpl Eq for i32 {\n fn eq(self, other: i32) -> bool {\n self == other\n }\n}\nimpl Eq for i64 {\n fn eq(self, other: i64) -> bool {\n self == other\n }\n}\n\nimpl Eq for () {\n fn eq(_self: Self, _other: ()) -> bool {\n true\n }\n}\nimpl Eq for bool {\n fn eq(self, other: bool) -> bool {\n self == other\n }\n}\n\nimpl<T, let N: u32> Eq for [T; N]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B)\nwhere\n A: Eq,\n B: Eq,\n{\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n{\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n{\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n E: Eq,\n{\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0)\n & self.1.eq(other.1)\n & self.2.eq(other.2)\n & self.3.eq(other.3)\n & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\npub struct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n#[derive_via(derive_ord)]\n// docs:start:ord-trait\npub trait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// docs:start:derive_ord\ncomptime fn derive_ord(s: StructDefinition) -> Quoted {\n let signature = quote { fn cmp(_self: Self, _other: Self) -> std::cmp::Ordering };\n let for_each_field = |name| quote {\n if result == std::cmp::Ordering::equal() {\n result = _self.$name.cmp(_other.$name);\n }\n };\n let body = |fields| quote {\n let mut result = std::cmp::Ordering::equal();\n $fields\n result\n };\n crate::meta::make_trait_impl(s, quote { Ord }, signature, for_each_field, quote {}, body)\n}\n// docs:end:derive_ord\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let mut result = self.len().cmp(other.len());\n for i in 0..self.len() {\n if result == Ordering::equal() {\n let result_i = self[i].cmp(other[i]);\n\n if result_i == Ordering::less() {\n result = result_i;\n } else if result_i == Ordering::greater() {\n result = result_i;\n }\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B)\nwhere\n A: Ord,\n B: Ord,\n{\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n{\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n{\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n E: Ord,\n{\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use crate::cmp::{max, min};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0 as u64, 1 as u64), 0);\n assert_eq(min(0 as u64, 0 as u64), 0);\n assert_eq(min(1 as u64, 1 as u64), 1);\n assert_eq(min(255 as u8, 0 as u8), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0 as u64, 1 as u64), 1);\n assert_eq(max(0 as u64, 0 as u64), 0);\n assert_eq(max(1 as u64, 1 as u64), 1);\n assert_eq(max(255 as u8, 0 as u8), 255);\n }\n}\n"
|
|
6052
|
+
"source": "use crate::meta::derive_via;\n\n#[derive_via(derive_eq)]\n// docs:start:eq-trait\npub trait Eq {\n fn eq(self, other: Self) -> bool;\n}\n// docs:end:eq-trait\n\n// docs:start:derive_eq\ncomptime fn derive_eq(s: StructDefinition) -> Quoted {\n let signature = quote { fn eq(_self: Self, _other: Self) -> bool };\n let for_each_field = |name| quote { (_self.$name == _other.$name) };\n let body = |fields| {\n if s.fields_as_written().len() == 0 {\n quote { true }\n } else {\n fields\n }\n };\n crate::meta::make_trait_impl(\n s,\n quote { Eq },\n signature,\n for_each_field,\n quote { & },\n body,\n )\n}\n// docs:end:derive_eq\n\nimpl Eq for Field {\n fn eq(self, other: Field) -> bool {\n self == other\n }\n}\n\nimpl Eq for u64 {\n fn eq(self, other: u64) -> bool {\n self == other\n }\n}\nimpl Eq for u32 {\n fn eq(self, other: u32) -> bool {\n self == other\n }\n}\nimpl Eq for u16 {\n fn eq(self, other: u16) -> bool {\n self == other\n }\n}\nimpl Eq for u8 {\n fn eq(self, other: u8) -> bool {\n self == other\n }\n}\nimpl Eq for u1 {\n fn eq(self, other: u1) -> bool {\n self == other\n }\n}\n\nimpl Eq for i8 {\n fn eq(self, other: i8) -> bool {\n self == other\n }\n}\nimpl Eq for i16 {\n fn eq(self, other: i16) -> bool {\n self == other\n }\n}\nimpl Eq for i32 {\n fn eq(self, other: i32) -> bool {\n self == other\n }\n}\nimpl Eq for i64 {\n fn eq(self, other: i64) -> bool {\n self == other\n }\n}\n\nimpl Eq for () {\n fn eq(_self: Self, _other: ()) -> bool {\n true\n }\n}\nimpl Eq for bool {\n fn eq(self, other: bool) -> bool {\n self == other\n }\n}\n\nimpl<T, let N: u32> Eq for [T; N]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T; N]) -> bool {\n let mut result = true;\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<T> Eq for [T]\nwhere\n T: Eq,\n{\n fn eq(self, other: [T]) -> bool {\n let mut result = self.len() == other.len();\n for i in 0..self.len() {\n result &= self[i].eq(other[i]);\n }\n result\n }\n}\n\nimpl<let N: u32> Eq for str<N> {\n fn eq(self, other: str<N>) -> bool {\n let self_bytes = self.as_bytes();\n let other_bytes = other.as_bytes();\n self_bytes == other_bytes\n }\n}\n\nimpl<A, B> Eq for (A, B)\nwhere\n A: Eq,\n B: Eq,\n{\n fn eq(self, other: (A, B)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1)\n }\n}\n\nimpl<A, B, C> Eq for (A, B, C)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n{\n fn eq(self, other: (A, B, C)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2)\n }\n}\n\nimpl<A, B, C, D> Eq for (A, B, C, D)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n{\n fn eq(self, other: (A, B, C, D)) -> bool {\n self.0.eq(other.0) & self.1.eq(other.1) & self.2.eq(other.2) & self.3.eq(other.3)\n }\n}\n\nimpl<A, B, C, D, E> Eq for (A, B, C, D, E)\nwhere\n A: Eq,\n B: Eq,\n C: Eq,\n D: Eq,\n E: Eq,\n{\n fn eq(self, other: (A, B, C, D, E)) -> bool {\n self.0.eq(other.0)\n & self.1.eq(other.1)\n & self.2.eq(other.2)\n & self.3.eq(other.3)\n & self.4.eq(other.4)\n }\n}\n\nimpl Eq for Ordering {\n fn eq(self, other: Ordering) -> bool {\n self.result == other.result\n }\n}\n\n// Noir doesn't have enums yet so we emulate (Lt | Eq | Gt) with a struct\n// that has 3 public functions for constructing the struct.\npub struct Ordering {\n result: Field,\n}\n\nimpl Ordering {\n // Implementation note: 0, 1, and 2 for Lt, Eq, and Gt are built\n // into the compiler, do not change these without also updating\n // the compiler itself!\n pub fn less() -> Ordering {\n Ordering { result: 0 }\n }\n\n pub fn equal() -> Ordering {\n Ordering { result: 1 }\n }\n\n pub fn greater() -> Ordering {\n Ordering { result: 2 }\n }\n}\n\n#[derive_via(derive_ord)]\n// docs:start:ord-trait\npub trait Ord {\n fn cmp(self, other: Self) -> Ordering;\n}\n// docs:end:ord-trait\n\n// docs:start:derive_ord\ncomptime fn derive_ord(s: StructDefinition) -> Quoted {\n let signature = quote { fn cmp(_self: Self, _other: Self) -> std::cmp::Ordering };\n let for_each_field = |name| quote {\n if result == std::cmp::Ordering::equal() {\n result = _self.$name.cmp(_other.$name);\n }\n };\n let body = |fields| quote {\n let mut result = std::cmp::Ordering::equal();\n $fields\n result\n };\n crate::meta::make_trait_impl(s, quote { Ord }, signature, for_each_field, quote {}, body)\n}\n// docs:end:derive_ord\n\n// Note: Field deliberately does not implement Ord\n\nimpl Ord for u64 {\n fn cmp(self, other: u64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u32 {\n fn cmp(self, other: u32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u16 {\n fn cmp(self, other: u16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for u8 {\n fn cmp(self, other: u8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i8 {\n fn cmp(self, other: i8) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i16 {\n fn cmp(self, other: i16) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i32 {\n fn cmp(self, other: i32) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for i64 {\n fn cmp(self, other: i64) -> Ordering {\n if self < other {\n Ordering::less()\n } else if self > other {\n Ordering::greater()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl Ord for () {\n fn cmp(_self: Self, _other: ()) -> Ordering {\n Ordering::equal()\n }\n}\n\nimpl Ord for bool {\n fn cmp(self, other: bool) -> Ordering {\n if self {\n if other {\n Ordering::equal()\n } else {\n Ordering::greater()\n }\n } else if other {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n\nimpl<T, let N: u32> Ord for [T; N]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T; N]) -> Ordering {\n let mut result = Ordering::equal();\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<T> Ord for [T]\nwhere\n T: Ord,\n{\n // The first non-equal element of both arrays determines\n // the ordering for the whole array.\n fn cmp(self, other: [T]) -> Ordering {\n let mut result = self.len().cmp(other.len());\n for i in 0..self.len() {\n if result == Ordering::equal() {\n result = self[i].cmp(other[i]);\n }\n }\n result\n }\n}\n\nimpl<A, B> Ord for (A, B)\nwhere\n A: Ord,\n B: Ord,\n{\n fn cmp(self, other: (A, B)) -> Ordering {\n let result = self.0.cmp(other.0);\n\n if result != Ordering::equal() {\n result\n } else {\n self.1.cmp(other.1)\n }\n }\n}\n\nimpl<A, B, C> Ord for (A, B, C)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n{\n fn cmp(self, other: (A, B, C)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D> Ord for (A, B, C, D)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n{\n fn cmp(self, other: (A, B, C, D)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n result\n }\n}\n\nimpl<A, B, C, D, E> Ord for (A, B, C, D, E)\nwhere\n A: Ord,\n B: Ord,\n C: Ord,\n D: Ord,\n E: Ord,\n{\n fn cmp(self, other: (A, B, C, D, E)) -> Ordering {\n let mut result = self.0.cmp(other.0);\n\n if result == Ordering::equal() {\n result = self.1.cmp(other.1);\n }\n\n if result == Ordering::equal() {\n result = self.2.cmp(other.2);\n }\n\n if result == Ordering::equal() {\n result = self.3.cmp(other.3);\n }\n\n if result == Ordering::equal() {\n result = self.4.cmp(other.4);\n }\n\n result\n }\n}\n\n// Compares and returns the maximum of two values.\n//\n// Returns the second argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::max(1, 2), 2);\n// assert_eq(cmp::max(2, 2), 2);\n// ```\npub fn max<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v1\n } else {\n v2\n }\n}\n\n// Compares and returns the minimum of two values.\n//\n// Returns the first argument if the comparison determines them to be equal.\n//\n// # Examples\n//\n// ```\n// use std::cmp;\n//\n// assert_eq(cmp::min(1, 2), 1);\n// assert_eq(cmp::min(2, 2), 2);\n// ```\npub fn min<T>(v1: T, v2: T) -> T\nwhere\n T: Ord,\n{\n if v1 > v2 {\n v2\n } else {\n v1\n }\n}\n\nmod cmp_tests {\n use crate::cmp::{max, min};\n\n #[test]\n fn sanity_check_min() {\n assert_eq(min(0 as u64, 1 as u64), 0);\n assert_eq(min(0 as u64, 0 as u64), 0);\n assert_eq(min(1 as u64, 1 as u64), 1);\n assert_eq(min(255 as u8, 0 as u8), 0);\n }\n\n #[test]\n fn sanity_check_max() {\n assert_eq(max(0 as u64, 1 as u64), 1);\n assert_eq(max(0 as u64, 0 as u64), 0);\n assert_eq(max(1 as u64, 1 as u64), 1);\n assert_eq(max(255 as u8, 0 as u8), 255);\n }\n}\n"
|
|
6053
6053
|
},
|
|
6054
6054
|
"62": {
|
|
6055
6055
|
"path": "/build-volume/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr",
|